{
-}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/order/config/TradeOrderProperties.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/order/config/TradeOrderProperties.java
index dad8982d27..4d584f4c91 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/order/config/TradeOrderProperties.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/framework/order/config/TradeOrderProperties.java
@@ -5,8 +5,11 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
+import java.time.Duration;
/**
+ * 交易订单的配置项
+ *
* @author LeeYan9
* @since 2022-09-15
*/
@@ -15,16 +18,16 @@ import javax.validation.constraints.NotNull;
@Validated
public class TradeOrderProperties {
- /**
- * 商户订单编号
- */
- @NotNull(message = "商户订单编号不能为空")
- private String merchantOrderId;
-
/**
* 应用编号
*/
@NotNull(message = "应用编号不能为空")
private Long appId;
+ /**
+ * 支付超时时间
+ */
+ @NotNull(message = "支付超时时间不能为空")
+ private Duration expireTime;
+
}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleService.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleService.java
new file mode 100644
index 0000000000..1eff8c94a2
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleService.java
@@ -0,0 +1,75 @@
+package cn.iocoder.yudao.module.trade.service.aftersale;
+
+import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleDisagreeReqVO;
+import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleRefuseReqVO;
+import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleCreateReqVO;
+import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleDeliveryReqVO;
+
+/**
+ * 交易售后 Service 接口
+ *
+ * @author 芋道源码
+ */
+public interface TradeAfterSaleService {
+
+ /**
+ * 【会员】创建交易售后
+ *
+ * 一般是用户发起售后请求
+ *
+ * @param userId 会员用户编号
+ * @param createReqVO 创建 Request 信息
+ * @return 交易售后编号
+ */
+ Long createAfterSale(Long userId, AppTradeAfterSaleCreateReqVO createReqVO);
+
+ /**
+ * 【管理员】同意交易售后
+ *
+ * @param userId 管理员用户编号
+ * @param id 交易售后编号
+ */
+ void agreeAfterSale(Long userId, Long id);
+
+ /**
+ * 【管理员】拒绝交易售后
+ *
+ * @param userId 管理员用户编号
+ * @param auditReqVO 审批 Request 信息
+ */
+ void disagreeAfterSale(Long userId, TradeAfterSaleDisagreeReqVO auditReqVO);
+
+ /**
+ * 【会员】退回货物
+ *
+ * @param userId 会员用户编号
+ * @param deliveryReqVO 退货 Request 信息
+ */
+ void deliveryAfterSale(Long userId, AppTradeAfterSaleDeliveryReqVO deliveryReqVO);
+
+ /**
+ * 【管理员】确认收货
+ *
+ * @param userId 管理员编号
+ * @param id 交易售后编号
+ */
+ void receiveAfterSale(Long userId, Long id);
+
+ /**
+ * 【管理员】拒绝收货
+ *
+ * @param userId 管理员用户编号
+ * @param confirmReqVO 收货 Request 信息
+ */
+ void refuseAfterSale(Long userId, TradeAfterSaleRefuseReqVO confirmReqVO);
+
+ /**
+ * 【管理员】确认退款
+ *
+ * @param userId 管理员用户编号
+ * @param userIp 管理员用户 IP
+ * @param id 售后编号
+ */
+ void refundAfterSale(Long userId, String userIp, Long id);
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java
new file mode 100644
index 0000000000..7db32ff2be
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java
@@ -0,0 +1,322 @@
+package cn.iocoder.yudao.module.trade.service.aftersale;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.iocoder.yudao.module.pay.api.refund.PayRefundApi;
+import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO;
+import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleDisagreeReqVO;
+import cn.iocoder.yudao.module.trade.controller.admin.aftersale.vo.TradeAfterSaleRefuseReqVO;
+import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleCreateReqVO;
+import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleDeliveryReqVO;
+import cn.iocoder.yudao.module.trade.convert.aftersale.TradeAfterSaleConvert;
+import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO;
+import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
+import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
+import cn.iocoder.yudao.module.trade.dal.mysql.aftersale.TradeAfterSaleMapper;
+import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleStatusEnum;
+import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleTypeEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
+import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
+import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.support.TransactionSynchronization;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
+
+/**
+ * 交易售后 Service 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class TradeAfterSaleServiceImpl implements TradeAfterSaleService {
+
+ @Resource
+ private TradeOrderService tradeOrderService;
+
+ @Resource
+ private TradeAfterSaleMapper tradeAfterSaleMapper;
+
+ @Resource
+ private PayRefundApi payRefundApi;
+
+ @Resource
+ private TradeOrderProperties tradeOrderProperties;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Long createAfterSale(Long userId, AppTradeAfterSaleCreateReqVO createReqVO) {
+ // 第一步,前置校验
+ TradeOrderItemDO tradeOrderItem = validateOrderItemApplicable(userId, createReqVO);
+
+ // 第二步,存储交易售后
+ TradeAfterSaleDO afterSale = createAfterSale(createReqVO, tradeOrderItem);
+ return afterSale.getId();
+ }
+
+ /**
+ * 校验交易订单项是否可以申请售后
+ *
+ * @param userId 用户编号
+ * @param createReqVO 售后创建信息
+ * @return 交易订单项
+ */
+ private TradeOrderItemDO validateOrderItemApplicable(Long userId, AppTradeAfterSaleCreateReqVO createReqVO) {
+ // 校验订单项存在
+ TradeOrderItemDO orderItem = tradeOrderService.getOrderItem(userId, createReqVO.getOrderItemId());
+ if (orderItem == null) {
+ throw exception(ORDER_ITEM_NOT_FOUND);
+ }
+
+ // 已申请售后,不允许再发起售后申请
+ if (!TradeOrderItemAfterSaleStatusEnum.isNone(orderItem.getAfterSaleStatus())) {
+ throw exception(AFTER_SALE_CREATE_FAIL_ORDER_ITEM_APPLIED);
+ }
+ // TODO 芋艿:超过一定时间,不允许售后
+
+ // 申请的退款金额,不能超过商品的价格
+ if (createReqVO.getApplyPrice() > orderItem.getOrderDividePrice()) {
+ throw exception(AFTER_SALE_CREATE_FAIL_REFUND_PRICE_ERROR);
+ }
+
+ // 校验订单存在
+ TradeOrderDO order = tradeOrderService.getOrder(userId, orderItem.getOrderId());
+ if (order == null) {
+ throw exception(ORDER_NOT_FOUND);
+ }
+ // 已取消,无法发起售后
+ if (TradeOrderStatusEnum.isCanceled(order.getStatus())) {
+ throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_CANCELED);
+ }
+ // 未支付,无法发起售后
+ if (!TradeOrderStatusEnum.havePaid(order.getStatus())) {
+ throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_PAID);
+ }
+ // 如果是【退货退款】的情况,需要额外校验是否发货
+ if (createReqVO.getType().equals(TradeAfterSaleTypeEnum.RETURN_AND_REFUND.getType())
+ && !TradeOrderStatusEnum.haveDelivered(order.getStatus())) {
+ throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_NO_DELIVERED);
+ }
+ return orderItem;
+ }
+
+ private TradeAfterSaleDO createAfterSale(AppTradeAfterSaleCreateReqVO createReqVO,
+ TradeOrderItemDO tradeOrderItem) {
+ // 创建售后单
+ TradeAfterSaleDO afterSale = TradeAfterSaleConvert.INSTANCE.convert(createReqVO, tradeOrderItem);
+ afterSale.setNo(RandomUtil.randomString(10)); // TODO 芋艿:优化 no 生成逻辑
+ afterSale.setStatus(TradeAfterSaleStatusEnum.APPLY.getStatus());
+ // TODO 退还积分
+ tradeAfterSaleMapper.insert(afterSale);
+
+ // 更新交易订单项的售后状态
+ tradeOrderService.updateOrderItemAfterSaleStatus(tradeOrderItem.getId(),
+ TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(),
+ TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(), null);
+
+ // TODO 记录售后日志
+
+ // TODO 发送售后消息
+ return afterSale;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void agreeAfterSale(Long userId, Long id) {
+ // 校验售后单存在,并状态未审批
+ TradeAfterSaleDO afterSale = validateAfterSaleAuditable(id);
+
+ // 更新售后单的状态
+ // 情况一:退款:标记为 WAIT_REFUND 状态。后续等退款发起成功后,在标记为 COMPLETE 状态
+ // 情况二:退货退款:需要等用户退货后,才能发起退款
+ Integer newStatus = afterSale.getType().equals(TradeAfterSaleTypeEnum.REFUND.getType()) ?
+ TradeAfterSaleStatusEnum.WAIT_REFUND.getStatus() : TradeAfterSaleStatusEnum.SELLER_AGREE.getStatus();
+ updateAfterSaleStatus(afterSale.getId(), TradeAfterSaleStatusEnum.APPLY.getStatus(), new TradeAfterSaleDO()
+ .setStatus(newStatus).setAuditUserId(userId).setAuditTime(LocalDateTime.now()));
+
+ // TODO 记录售后日志
+
+ // TODO 发送售后消息
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void disagreeAfterSale(Long userId, TradeAfterSaleDisagreeReqVO auditReqVO) {
+ // 校验售后单存在,并状态未审批
+ TradeAfterSaleDO afterSale = validateAfterSaleAuditable(auditReqVO.getId());
+
+ // 更新售后单的状态
+ Integer newStatus = TradeAfterSaleStatusEnum.SELLER_DISAGREE.getStatus();
+ updateAfterSaleStatus(afterSale.getId(), TradeAfterSaleStatusEnum.APPLY.getStatus(), new TradeAfterSaleDO()
+ .setStatus(newStatus).setAuditUserId(userId).setAuditTime(LocalDateTime.now())
+ .setAuditReason(auditReqVO.getAuditReason()));
+
+ // TODO 记录售后日志
+
+ // TODO 发送售后消息
+
+ // 更新交易订单项的售后状态为【未申请】
+ tradeOrderService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
+ TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),
+ TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null);
+ }
+
+ /**
+ * 校验售后单是否可审批(同意售后、拒绝售后)
+ *
+ * @param id 售后编号
+ * @return 售后单
+ */
+ private TradeAfterSaleDO validateAfterSaleAuditable(Long id) {
+ TradeAfterSaleDO afterSale = tradeAfterSaleMapper.selectById(id);
+ if (afterSale == null) {
+ throw exception(AFTER_SALE_NOT_FOUND);
+ }
+ if (ObjectUtil.notEqual(afterSale.getStatus(), TradeAfterSaleStatusEnum.APPLY.getStatus())) {
+ throw exception(AFTER_SALE_AUDIT_FAIL_STATUS_NOT_APPLY);
+ }
+ return afterSale;
+ }
+
+ private void updateAfterSaleStatus(Long id, Integer status, TradeAfterSaleDO updateObj) {
+ int updateCount = tradeAfterSaleMapper.updateByIdAndStatus(id, status, updateObj);
+ if (updateCount == 0) {
+ throw exception(AFTER_SALE_UPDATE_STATUS_FAIL);
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deliveryAfterSale(Long userId, AppTradeAfterSaleDeliveryReqVO deliveryReqVO) {
+ // 校验售后单存在,并状态未退货
+ TradeAfterSaleDO afterSale = tradeAfterSaleMapper.selectById(deliveryReqVO.getId());
+ if (afterSale == null) {
+ throw exception(AFTER_SALE_NOT_FOUND);
+ }
+ if (ObjectUtil.notEqual(afterSale.getStatus(), TradeAfterSaleStatusEnum.SELLER_AGREE.getStatus())) {
+ throw exception(AFTER_SALE_DELIVERY_FAIL_STATUS_NOT_SELLER_AGREE);
+ }
+
+ // 更新售后单的物流信息
+ updateAfterSaleStatus(afterSale.getId(), TradeAfterSaleStatusEnum.SELLER_AGREE.getStatus(), new TradeAfterSaleDO()
+ .setStatus(TradeAfterSaleStatusEnum.BUYER_DELIVERY.getStatus())
+ .setLogisticsId(deliveryReqVO.getLogisticsId()).setLogisticsNo(deliveryReqVO.getLogisticsNo())
+ .setDeliveryTime(deliveryReqVO.getDeliveryTime()));
+
+ // TODO 记录售后日志
+
+ // TODO 发送售后消息
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void receiveAfterSale(Long userId, Long id) {
+ // 校验售后单存在,并状态为已退货
+ TradeAfterSaleDO afterSale = validateAfterSaleReceivable(id);
+
+ // 更新售后单的状态
+ updateAfterSaleStatus(afterSale.getId(), TradeAfterSaleStatusEnum.BUYER_DELIVERY.getStatus(), new TradeAfterSaleDO()
+ .setStatus(TradeAfterSaleStatusEnum.WAIT_REFUND.getStatus()).setReceiveTime(LocalDateTime.now()));
+
+ // TODO 记录售后日志
+
+ // TODO 发送售后消息
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void refuseAfterSale(Long userId, TradeAfterSaleRefuseReqVO confirmReqVO) {
+ // 校验售后单存在,并状态为已退货
+ TradeAfterSaleDO afterSale = tradeAfterSaleMapper.selectById(confirmReqVO.getId());
+ if (afterSale == null) {
+ throw exception(AFTER_SALE_NOT_FOUND);
+ }
+ if (ObjectUtil.notEqual(afterSale.getStatus(), TradeAfterSaleStatusEnum.BUYER_DELIVERY.getStatus())) {
+ throw exception(AFTER_SALE_CONFIRM_FAIL_STATUS_NOT_BUYER_DELIVERY);
+ }
+
+ // 更新售后单的状态
+ updateAfterSaleStatus(afterSale.getId(), TradeAfterSaleStatusEnum.BUYER_DELIVERY.getStatus(), new TradeAfterSaleDO()
+ .setStatus(TradeAfterSaleStatusEnum.SELLER_REFUSE.getStatus()).setReceiveTime(LocalDateTime.now())
+ .setReceiveReason(confirmReqVO.getRefuseMemo()));
+
+ // TODO 记录售后日志
+
+ // TODO 发送售后消息
+
+ // 更新交易订单项的售后状态为【未申请】
+ tradeOrderService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
+ TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),
+ TradeOrderItemAfterSaleStatusEnum.NONE.getStatus(), null);
+ }
+
+ /**
+ * 校验售后单是否可收货,即处于买家已发货
+ *
+ * @param id 售后编号
+ * @return 售后单
+ */
+ private TradeAfterSaleDO validateAfterSaleReceivable(Long id) {
+ TradeAfterSaleDO afterSale = tradeAfterSaleMapper.selectById(id);
+ if (afterSale == null) {
+ throw exception(AFTER_SALE_NOT_FOUND);
+ }
+ if (ObjectUtil.notEqual(afterSale.getStatus(), TradeAfterSaleStatusEnum.BUYER_DELIVERY.getStatus())) {
+ throw exception(AFTER_SALE_CONFIRM_FAIL_STATUS_NOT_BUYER_DELIVERY);
+ }
+ return afterSale;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void refundAfterSale(Long userId, String userIp, Long id) {
+ // 校验售后单的状态,并状态待退款
+ TradeAfterSaleDO afterSale = tradeAfterSaleMapper.selectByPayRefundId(id);
+ if (afterSale == null) {
+ throw exception(AFTER_SALE_NOT_FOUND);
+ }
+ if (ObjectUtil.notEqual(afterSale.getStatus(), TradeAfterSaleStatusEnum.WAIT_REFUND.getStatus())) {
+ throw exception(AFTER_SALE_REFUND_FAIL_STATUS_NOT_WAIT_REFUND);
+ }
+
+ // 发起退款单。注意,需要在事务提交后,再进行发起,避免重复发起
+ createPayRefund(userIp, afterSale);
+
+ // 更新售后单的状态为【已完成】
+ updateAfterSaleStatus(afterSale.getId(), TradeAfterSaleStatusEnum.WAIT_REFUND.getStatus(), new TradeAfterSaleDO()
+ .setStatus(TradeAfterSaleStatusEnum.COMPLETE.getStatus()).setRefundTime(LocalDateTime.now()));
+
+ // TODO 记录售后日志
+
+ // TODO 发送售后消息
+
+ // 更新交易订单项的售后状态为【已完成】
+ tradeOrderService.updateOrderItemAfterSaleStatus(afterSale.getOrderItemId(),
+ TradeOrderItemAfterSaleStatusEnum.APPLY.getStatus(),
+ TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus(), afterSale.getRefundPrice());
+ }
+
+ private void createPayRefund(String userIp, TradeAfterSaleDO afterSale) {
+ TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
+
+ @Override
+ public void afterCommit() {
+ // 创建退款单
+ PayRefundCreateReqDTO createReqDTO = TradeAfterSaleConvert.INSTANCE.convert(userIp, afterSale, tradeOrderProperties);
+ Long payRefundId = payRefundApi.createPayRefund(createReqDTO);
+ // 更新售后单的退款单号
+ tradeAfterSaleMapper.updateById(new TradeAfterSaleDO().setId(afterSale.getId()).setPayRefundId(payRefundId));
+ }
+ });
+ }
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java
index 572a654bac..be101bbe6d 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderService.java
@@ -1,6 +1,8 @@
package cn.iocoder.yudao.module.trade.service.order;
import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
+import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
+import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
/**
* 交易订单 Service 接口
@@ -10,13 +12,46 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreate
*/
public interface TradeOrderService {
+ // =================== Order ===================
+
/**
* 创建交易订单
*
- * @param loginUserId 登录用户
- * @param clientIp 用户 IP 地址
+ * @param userId 登录用户
+ * @param userIp 用户 IP 地址
* @param createReqVO 创建交易订单请求模型
* @return 交易订单的编号
*/
- Long createTradeOrder(Long loginUserId, String clientIp, AppTradeOrderCreateReqVO createReqVO);
+ Long createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO);
+
+ /**
+ * 获得指定用户,指定的交易订单
+ *
+ * @param userId 用户编号
+ * @param orderId 交易订单编号
+ * @return 交易订单
+ */
+ TradeOrderDO getOrder(Long userId, Long orderId);
+
+ // =================== Order Item ===================
+
+ /**
+ * 获得指定用户,指定的交易订单项
+ *
+ * @param userId 用户编号
+ * @param itemId 交易订单项编号
+ * @return 交易订单项
+ */
+ TradeOrderItemDO getOrderItem(Long userId, Long itemId);
+
+ /**
+ * 更新交易订单项的售后状态
+ *
+ * @param id 交易订单项编号
+ * @param oldAfterSaleStatus 当前售后状态;如果不符,更新后会抛出异常
+ * @param newAfterSaleStatus 目标售后状态
+ * @param refundPrice 退款金额;当订单项退款成功时,必须传递该值
+ */
+ void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus,
+ Integer newAfterSaleStatus, Integer refundPrice);
}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java
index 9b7b877fad..912c5116e5 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceImpl.java
@@ -1,48 +1,48 @@
package cn.iocoder.yudao.module.trade.service.order;
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.text.StrBuilder;
import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
-import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
-import cn.iocoder.yudao.framework.common.util.string.StrUtils;
-import cn.iocoder.yudao.module.promotion.api.price.PriceApi;
-import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateReqDTO;
-import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateRespDTO;
+import cn.iocoder.yudao.module.member.api.address.AddressApi;
+import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
-import cn.iocoder.yudao.module.pay.api.order.PayOrderInfoCreateReqDTO;
+import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
-import cn.iocoder.yudao.module.product.api.sku.dto.SkuDecrementStockBatchReqDTO;
+import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO;
import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
-import cn.iocoder.yudao.module.product.api.spu.dto.SpuInfoRespDTO;
+import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
+import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi;
+import cn.iocoder.yudao.module.promotion.api.coupon.dto.CouponUseReqDTO;
+import cn.iocoder.yudao.module.promotion.api.price.PriceApi;
+import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateRespDTO;
import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO.Item;
import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
-import cn.iocoder.yudao.module.trade.convert.order.TradeOrderItemConvert;
-import cn.iocoder.yudao.module.trade.convert.pay.PayOrderConvert;
-import cn.iocoder.yudao.module.trade.convert.price.PriceConvert;
-import cn.iocoder.yudao.module.trade.convert.sku.ProductSkuConvert;
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
+import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper;
import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderMapper;
-import cn.iocoder.yudao.module.trade.dal.mysql.orderitem.TradeOrderItemMapper;
import cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants;
-import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemRefundStatusEnum;
-import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum;
-import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
-import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
+import cn.iocoder.yudao.module.trade.enums.order.*;
import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
+import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
/**
* 交易订单 Service 实现类
@@ -53,10 +53,6 @@ import java.util.Objects;
@Service
public class TradeOrderServiceImpl implements TradeOrderService {
- // TODO LeeYan9: 静态变量, 需要在最前面哈; 另外, 静态变量的注释最好写下;
- private static final String BLANK_PLACEHOLDER = " ";
- private static final String MULTIPLIER_PLACEHOLDER = "x";
-
@Resource
private TradeOrderMapper tradeOrderMapper;
@Resource
@@ -70,138 +66,238 @@ public class TradeOrderServiceImpl implements TradeOrderService {
private ProductSpuApi productSpuApi;
@Resource
private PayOrderApi payOrderApi;
+ @Resource
+ private AddressApi addressApi;
+ @Resource
+ private CouponApi couponApi;
@Resource
private TradeOrderProperties tradeOrderProperties;
+ // =================== Order ===================
+
@Override
@Transactional(rollbackFor = Exception.class)
- public Long createTradeOrder(Long loginUserId, String clientIp, AppTradeOrderCreateReqVO createReqVO) {
- List- items = createReqVO.getItems();
- // 商品SKU检查 sku可售状态,库存
- List skuInfos = productSkuApi.getSkuList(CollectionUtils.convertSet(items, Item::getSkuId));
- Map skuInfoMap = CollectionUtils.convertMap(skuInfos, ProductSkuRespDTO::getId);
- checkSaleableAndStockFromSpu(skuInfoMap, items);
-
- // 商品SPU检查 sku可售状态,库存
- List spuInfos = productSpuApi.getSpuList(CollectionUtils.convertSet(skuInfos, ProductSkuRespDTO::getSpuId));
- checkSaleableFromSpu(spuInfos);
+ public Long createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO) {
+ // 商品 SKU 检查:可售状态、库存
+ List skus = validateSkuSaleable(createReqVO.getItems());
+ // 商品 SPU 检查:可售状态
+ List spus = validateSpuSaleable(convertSet(skus, ProductSkuRespDTO::getSpuId));
+ // 用户收件地址的校验
+ AddressRespDTO address = validateAddress(userId, createReqVO.getAddressId());
// 价格计算
- PriceCalculateReqDTO priceCalculateReqDTO = PriceConvert.INSTANCE.convert(createReqVO, loginUserId);
- PriceCalculateRespDTO priceResp = priceApi.calculatePrice(priceCalculateReqDTO);
+ PriceCalculateRespDTO priceResp = priceApi.calculatePrice(TradeOrderConvert.INSTANCE.convert(createReqVO, userId));
+
+ // 插入 TradeOrderDO 订单
+ TradeOrderDO tradeOrderDO = createTradeOrder(userId, userIp, createReqVO, priceResp.getOrder(), address);
+ // 插入 TradeOrderItemDO 订单项
+ List tradeOrderItems = createTradeOrderItems(tradeOrderDO, priceResp.getOrder().getItems(), skus);
+
+ // 订单创建完后的逻辑
+ afterCreateTradeOrder(userId, createReqVO, tradeOrderDO, tradeOrderItems, spus);
// TODO @LeeYan9: 是可以思考下, 订单的营销优惠记录, 应该记录在哪里, 微信讨论起来!
-
- // 订单信息记录
- TradeOrderDO tradeOrderDO = TradeOrderConvert.INSTANCE.convert(createReqVO, priceResp.getOrder());
- fillTradeOrderInfoFromReqInfo(tradeOrderDO,createReqVO,loginUserId, clientIp); // TODO @LeeYan9: tradeOrderDO, createReqVO, loginUserId, clientIp
- tradeOrderMapper.insert(tradeOrderDO);
-
- // 订单项信息记录
- List tradeOrderItems = TradeOrderItemConvert.INSTANCE.convertList(priceResp.getOrder().getItems());
- // 填充订单项-SKU信息
- fillItemsInfoFromSkuAndOrder(tradeOrderDO, tradeOrderItems, skuInfoMap);
- tradeOrderItemMapper.insertBatch(tradeOrderItems);
-
- // TODO @LeeYan9: 先扣减库存哈; 可能会扣减失败; 毕竟 get 和 update 之间, 会有并发的可能性
- // 库存扣减
- List skuDecrementStockItems = ProductSkuConvert.INSTANCE.convert(tradeOrderItems);
- productSkuApi.decrementStockBatch(SkuDecrementStockBatchReqDTO.of(skuDecrementStockItems));
-
- // 构建预支付请求参数
- // TODO @LeeYan9: 需要更新到订单上
- PayOrderInfoCreateReqDTO payOrderCreateReqDTO = PayOrderConvert.INSTANCE.convert(tradeOrderDO);
- fillPayOrderInfoFromItems(payOrderCreateReqDTO, tradeOrderItems);
- // 生成预支付
- return payOrderApi.createPayOrder(payOrderCreateReqDTO);
+ return tradeOrderDO.getId();
}
- // TODO @LeeYan9: 填充就好, 不用 from 哈;
- private void fillTradeOrderInfoFromReqInfo(TradeOrderDO tradeOrderDO, AppTradeOrderCreateReqVO createReqVO,
- Long loginUserId, String clientIp) {
- tradeOrderDO.setUserId(loginUserId);
- tradeOrderDO.setUserIp(clientIp);
+ @Override
+ public TradeOrderDO getOrder(Long userId, Long orderId) {
+ TradeOrderDO order = tradeOrderMapper.selectById(orderId);
+ if (order != null
+ && ObjectUtil.notEqual(order.getUserId(), userId)) {
+ return null;
+ }
+ return order;
+ }
+
+ /**
+ * 校验商品 SKU 是否可出售
+ *
+ * @param items 商品 SKU
+ * @return 商品 SKU 数组
+ */
+ private List validateSkuSaleable(List
- items) {
+ List skus = productSkuApi.getSkuList(convertSet(items, Item::getSkuId));
+ // SKU 不存在
+ if (items.size() != skus.size()) {
+ throw exception(ErrorCodeConstants.ORDER_CREATE_SKU_NOT_FOUND);
+ }
+ // 校验是否禁用 or 库存不足
+ Map skuMap = convertMap(skus, ProductSkuRespDTO::getId);
+ items.forEach(item -> {
+ ProductSkuRespDTO sku = skuMap.get(item.getSkuId());
+ // SKU 禁用
+ if (ObjectUtil.notEqual(CommonStatusEnum.ENABLE.getStatus(), sku.getStatus())) {
+ throw exception(ORDER_CREATE_SKU_NOT_SALE);
+ }
+ // SKU 库存不足
+ if (item.getCount() > sku.getStock()) {
+ throw exception(ErrorCodeConstants.ORDER_CREATE_SKU_STOCK_NOT_ENOUGH);
+ }
+ });
+ return skus;
+ }
+
+ /**
+ * 校验商品 SPU 是否可出售
+ *
+ * @param spuIds 商品 SPU 编号数组
+ * @return 商品 SPU 数组
+ */
+ private List validateSpuSaleable(Set spuIds) {
+ List spus = productSpuApi.getSpuList(spuIds);
+ // SPU 不存在
+ if (spus.size() != spuIds.size()) {
+ throw exception(ORDER_CREATE_SPU_NOT_FOUND);
+ }
+ // 校验是否存在禁用的 SPU
+ ProductSpuRespDTO spu = CollectionUtils.findFirst(spus,
+ spuDTO -> ObjectUtil.notEqual(ProductSpuStatusEnum.ENABLE.getStatus(), spuDTO.getStatus()));
+ if (spu != null) {
+ throw exception(ErrorCodeConstants.ORDER_CREATE_SPU_NOT_SALE);
+ }
+ return spus;
+ }
+
+ /**
+ * 校验收件地址是否存在
+ *
+ * @param userId 用户编号
+ * @param addressId 收件地址编号
+ * @return 收件地址
+ */
+ private AddressRespDTO validateAddress(Long userId, Long addressId) {
+ AddressRespDTO address = addressApi.getAddress(userId, addressId);
+ if (Objects.isNull(address)) {
+ throw exception(ErrorCodeConstants.ORDER_CREATE_ADDRESS_NOT_FOUND);
+ }
+ return address;
+ }
+
+ private TradeOrderDO createTradeOrder(Long userId, String clientIp, AppTradeOrderCreateReqVO createReqVO,
+ PriceCalculateRespDTO.Order order, AddressRespDTO address) {
+ TradeOrderDO tradeOrderDO = TradeOrderConvert.INSTANCE.convert(userId, clientIp, createReqVO, order, address);
tradeOrderDO.setNo(IdUtil.getSnowflakeNextId() + ""); // TODO @LeeYan9: 思考下, 怎么生成好点哈; 这个是会展示给用户的;
- tradeOrderDO.setStatus(TradeOrderStatusEnum.WAITING_PAYMENT.getStatus());
+ tradeOrderDO.setStatus(TradeOrderStatusEnum.UNPAID.getStatus());
tradeOrderDO.setType(TradeOrderTypeEnum.NORMAL.getType());
- tradeOrderDO.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
- tradeOrderDO.setProductCount(CollectionUtils.getSumValue(createReqVO.getItems(), Item::getCount,Integer::sum));
- // todo 地址&用户信息解析
-
- // todo 数据来源?
- tradeOrderDO.setTerminal(TerminalEnum.H5.getTerminal());
+ tradeOrderDO.setAfterSaleStatus(TradeOrderAfterSaleStatusEnum.NONE.getStatus());
+ tradeOrderDO.setProductCount(getSumValue(order.getItems(), PriceCalculateRespDTO.OrderItem::getCount, Integer::sum));
+ tradeOrderDO.setTerminal(TerminalEnum.H5.getTerminal()); // todo 数据来源?
+ tradeOrderDO.setAdjustPrice(0).setPayed(false); // 支付信息
+ tradeOrderDO.setDeliveryStatus(false); // 物流信息
+ tradeOrderDO.setAfterSaleStatus(TradeOrderAfterSaleStatusEnum.NONE.getStatus()).setRefundPrice(0); // 退款信息
+ tradeOrderMapper.insert(tradeOrderDO);
+ return tradeOrderDO;
}
- private void fillPayOrderInfoFromItems(PayOrderInfoCreateReqDTO payOrderInfoCreateReqDTO,
- List tradeOrderItems) {
- // 填写 商品&应用信息
- payOrderInfoCreateReqDTO.setMerchantOrderId(tradeOrderProperties.getMerchantOrderId());
- payOrderInfoCreateReqDTO.setAppId(tradeOrderProperties.getAppId());
-
- // 填写商品信息
- StrBuilder subject = new StrBuilder();
- StrBuilder body = new StrBuilder();
- for (TradeOrderItemDO tradeOrderItem : tradeOrderItems) {
- // append subject
- subject.append(BLANK_PLACEHOLDER);
- subject.append(tradeOrderItem.getName());
- // append body
- body.append(BLANK_PLACEHOLDER);
- body.append(tradeOrderItem.getName());
- body.append(MULTIPLIER_PLACEHOLDER);
- body.append(tradeOrderItem.getCount());
- }
- // 设置 subject & body
- // TODO @LeeYan9: 可以抽象一个 StrUtils 方法; 或者看看 hutool 有没自带的哈
- payOrderInfoCreateReqDTO.setSubject(StrUtils.maxLength(subject.subString(1), 32));
- payOrderInfoCreateReqDTO.setBody(StrUtils.maxLength(body.subString(1), 128));
+ private List createTradeOrderItems(TradeOrderDO tradeOrderDO,
+ List orderItems, List skus) {
+ List tradeOrderItemDOs = TradeOrderConvert.INSTANCE.convertList(tradeOrderDO, orderItems, skus);
+ tradeOrderItemMapper.insertBatch(tradeOrderItemDOs);
+ return tradeOrderItemDOs;
}
- private void fillItemsInfoFromSkuAndOrder(TradeOrderDO tradeOrderDO, List tradeOrderItems,
- Map spuInfos) {
- for (TradeOrderItemDO tradeOrderItem : tradeOrderItems) {
- // 填充订单信息
- tradeOrderItem.setOrderId(tradeOrderDO.getId());
- tradeOrderItem.setUserId(tradeOrderDO.getUserId());
- // 填充SKU信息
- ProductSkuRespDTO skuInfoRespDTO = spuInfos.get(tradeOrderItem.getSkuId());
- tradeOrderItem.setSpuId(skuInfoRespDTO.getSpuId());
- tradeOrderItem.setPicUrl(skuInfoRespDTO.getPicUrl());
- tradeOrderItem.setName(skuInfoRespDTO.getName());
- tradeOrderItem.setRefundStatus(TradeOrderItemRefundStatusEnum.NONE.getStatus());
- // todo
- List property =
- BeanUtil.copyToList(skuInfoRespDTO.getProperties(), TradeOrderItemDO.Property.class);
- tradeOrderItem.setProperties(property);
- }
- }
+ /**
+ * 执行创建完创建完订单后的逻辑
+ *
+ * 例如说:优惠劵的扣减、积分的扣减、支付单的创建等等
+ *
+ * @param userId 用户编号
+ * @param createReqVO 创建订单请求
+ * @param tradeOrderDO 交易订单
+ */
+ private void afterCreateTradeOrder(Long userId, AppTradeOrderCreateReqVO createReqVO,
+ TradeOrderDO tradeOrderDO, List tradeOrderItemDOs,
+ List spus) {
+ // 下单时扣减商品库存
+ productSkuApi.updateSkuStock(new ProductSkuUpdateStockReqDTO(TradeOrderConvert.INSTANCE.convertList(tradeOrderItemDOs)));
- private void checkSaleableFromSpu(List spuInfos) {
- SpuInfoRespDTO spu = CollectionUtils.findFirst(spuInfos,
- spuInfoDTO -> !Objects.equals(ProductSpuStatusEnum.ENABLE.getStatus(), spuInfoDTO.getStatus()));
- if (Objects.isNull(spu)) {
- throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_SPU_NOT_SALE);
- }
- }
+ // 删除购物车商品 TODO 芋艿:待实现
- // TODO @LeeYan9: checkSpuXXX 会不会好点哈? ps: 这个貌似是 sku 哈
- private void checkSaleableAndStockFromSpu(Map skuInfoMap,
- List
- items) {
- // sku 不存在
- if (items.size() != skuInfoMap.size()) {
- throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_SKU_NOT_FOUND);
- }
- for (Item item : items) {
- ProductSkuRespDTO skuInfoDTO = skuInfoMap.get(item.getSkuId());
- // sku禁用
- if (!Objects.equals(CommonStatusEnum.ENABLE.getStatus(), skuInfoDTO.getStatus())) {
- throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_SKU_NOT_SALE);
- }
- // sku库存不足
- if (item.getCount() > skuInfoDTO.getStock()) {
- throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_SKU_STOCK_NOT_ENOUGH);
- }
+ // 扣减积分,抵扣金额 TODO 芋艿:待实现
+
+ // 有使用优惠券时更新
+ if (createReqVO.getCouponId() != null) {
+ couponApi.useCoupon(new CouponUseReqDTO().setId(createReqVO.getCouponId()).setUserId(userId)
+ .setOrderId(tradeOrderDO.getId()));
}
+ // 生成预支付
+ createPayOrder(tradeOrderDO, tradeOrderItemDOs, spus);
+
+ // 增加订单日志 TODO 芋艿:待实现
}
+
+ private void createPayOrder(TradeOrderDO tradeOrderDO, List tradeOrderItemDOs,
+ List spus) {
+ // 创建支付单,用于后续的支付
+ PayOrderCreateReqDTO payOrderCreateReqDTO = TradeOrderConvert.INSTANCE.convert(
+ tradeOrderDO, tradeOrderItemDOs, spus, tradeOrderProperties);
+ Long payOrderId = payOrderApi.createPayOrder(payOrderCreateReqDTO);
+
+ // 更新到交易单上
+ tradeOrderMapper.updateById(new TradeOrderDO().setId(tradeOrderDO.getId()).setPayOrderId(payOrderId));
+ }
+
+ // =================== Order ===================
+
+ @Override
+ public TradeOrderItemDO getOrderItem(Long userId, Long itemId) {
+ TradeOrderItemDO orderItem = tradeOrderItemMapper.selectById(itemId);
+ if (orderItem != null
+ && ObjectUtil.notEqual(orderItem.getUserId(), userId)) {
+ return null;
+ }
+ return orderItem;
+ }
+
+ @Override
+ public void updateOrderItemAfterSaleStatus(Long id, Integer oldAfterSaleStatus, Integer newAfterSaleStatus, Integer refundPrice) {
+ // 如果退款成功,则 refundPrice 非空
+ if (Objects.equals(newAfterSaleStatus, TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus())
+ && refundPrice == null) {
+ throw new IllegalArgumentException(StrUtil.format("id({}) 退款成功,退款金额不能为空", id));
+ }
+
+ // 更新订单项
+ int updateCount = tradeOrderItemMapper.updateAfterSaleStatus(id, oldAfterSaleStatus, newAfterSaleStatus);
+ if (updateCount <= 0) {
+ throw exception(ORDER_ITEM_UPDATE_AFTER_SALE_STATUS_FAIL);
+ }
+
+ // 如果有退款金额,则需要更新订单
+ if (refundPrice == null) {
+ return;
+ }
+ // 计算总的退款金额
+ TradeOrderDO order = tradeOrderMapper.selectById(tradeOrderItemMapper.selectById(id).getOrderId());
+ Integer orderRefundPrice = order.getRefundPrice() + refundPrice;
+ if (isAllOrderItemAfterSaleSuccess(order.getId())) { // 如果都售后成功,则需要取消订单
+ tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId())
+ .setAfterSaleStatus(TradeOrderAfterSaleStatusEnum.ALL.getStatus()).setRefundPrice(orderRefundPrice)
+ .setCancelType(TradeOrderCancelTypeEnum.AFTER_SALE_CLOSE.getType()).setCancelTime(LocalDateTime.now()));
+
+ // TODO 芋艿:记录订单日志
+
+ // TODO 芋艿:站内信?
+ } else { // 如果部分售后,则更新退款金额
+ tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId())
+ .setAfterSaleStatus(TradeOrderAfterSaleStatusEnum.PART.getStatus()).setRefundPrice(orderRefundPrice));
+ }
+
+ // TODO 芋艿:未来如果有分佣,需要更新相关分佣订单为已失效
+ }
+
+ /**
+ * 判断指定订单的所有订单项,是不是都售后成功
+ *
+ * @param id 订单编号
+ * @return 是否都售后成功
+ */
+ private boolean isAllOrderItemAfterSaleSuccess(Long id) {
+ List orderItems = tradeOrderItemMapper.selectListByOrderId(id);
+ return orderItems.stream().allMatch(orderItem -> Objects.equals(orderItem.getAfterSaleStatus(),
+ TradeOrderItemAfterSaleStatusEnum.SUCCESS.getStatus()));
+ }
+
}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java b/yudao-module-mall/yudao-module-trade-biz/src/main/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java
deleted file mode 100644
index a2c1972675..0000000000
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package cn.iocoder.yudao.module.trade.service.order;
-
-import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
-import cn.iocoder.yudao.module.promotion.api.price.PriceApi;
-import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateRespDTO;
-import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
-import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
-import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
-import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
-import cn.iocoder.yudao.module.product.api.spu.dto.SpuInfoRespDTO;
-import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
-import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
-import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
-import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderMapper;
-import cn.iocoder.yudao.module.trade.dal.mysql.orderitem.TradeOrderItemMapper;
-import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderConfig;
-import com.google.common.collect.Lists;
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.context.annotation.Import;
-
-import javax.annotation.Resource;
-import java.util.Collections;
-
-import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomInteger;
-import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.when;
-
-// TODO @芋艿: 单测的 review; 最后搞;
-/**
- * @author LeeYan9
- * @since 2022-09-07
- */
-@Import({TradeOrderServiceImpl.class, TradeOrderConfig.class})
-class TradeOrderServiceTest extends BaseDbUnitTest {
-
-
- @Resource
- TradeOrderService tradeOrderService;
- @Resource
- TradeOrderMapper tradeOrderMapper;
- @Resource
- TradeOrderItemMapper tradeOrderItemMapper;
- @MockBean
- ProductSpuApi productSpuApi;
- @MockBean
- ProductSkuApi productSkuApi;
- @MockBean
- PriceApi priceApi;
- @MockBean
- private PayOrderApi payOrderApi;
-
- @Test
- void testCreateTradeOrder_success() {
- // mock 商品SPU数据
- SpuInfoRespDTO spuInfoRespDTO = randomPojo(SpuInfoRespDTO.class, spuInfo -> {
- spuInfo.setId(1L);
- spuInfo.setStatus(CommonStatusEnum.ENABLE.getStatus());
- });
- when(productSpuApi.getSpuList(Collections.singleton(1L))).thenReturn(Lists.newArrayList(spuInfoRespDTO));
- // mock 商品SkU数据
- ProductSkuRespDTO skuInfoRespDTO = randomPojo(ProductSkuRespDTO.class, skuInfo -> {
- skuInfo.setId(1L);
- skuInfo.setStatus(CommonStatusEnum.ENABLE.getStatus());
- skuInfo.setStock(randomInteger());
- skuInfo.setSpuId(1L);
- });
- when(productSkuApi.getSkuList(Collections.singleton(1L))).thenReturn(Lists.newArrayList(skuInfoRespDTO));
- // mock 价格信息
- PriceCalculateRespDTO calculateRespDTO = randomPojo(PriceCalculateRespDTO.class, priceCalculateRespDTO -> {
- PriceCalculateRespDTO.OrderItem item = priceCalculateRespDTO.getOrder().getItems().get(0);
- item.setSkuId(1L);
- item.setCount(2);
- priceCalculateRespDTO.getOrder().setItems(Collections.singletonList(item));
- });
- when(priceApi.calculatePrice(any())).thenReturn(calculateRespDTO);
- //mock 支付订单信息
- when(payOrderApi.createPayOrder(any())).thenReturn(1L);
-
- // 准备请求数据
- AppTradeOrderCreateReqVO tradeOrderCreateReqVO = randomPojo(AppTradeOrderCreateReqVO.class, reqVO -> {
- AppTradeOrderCreateReqVO.Item item = randomPojo(AppTradeOrderCreateReqVO.Item.class, o -> {
- o.setSkuId(1L);
- o.setCount(2);
- });
- reqVO.setItems(Collections.singletonList(item));
- });
- // 创建交易订单,支付订单记录
- Long payOrderId = tradeOrderService.createTradeOrder(1L, "127.0.0.1", tradeOrderCreateReqVO);
- //断言交易订单
- TradeOrderDO tradeOrderDO = tradeOrderMapper.selectOne(TradeOrderDO::getUserId, 1L);
- assertNotNull(tradeOrderDO);
- //价格&用户
- assertEquals(calculateRespDTO.getOrder().getPayPrice(), tradeOrderDO.getPayPrice());
- assertEquals(1L, tradeOrderDO.getUserId());
- //断言交易订单项
- TradeOrderItemDO tradeOrderItemDO = tradeOrderItemMapper.selectOne(TradeOrderItemDO::getOrderId, tradeOrderDO.getId());
- assertNotNull(tradeOrderDO);
- //商品&用户
- assertEquals(skuInfoRespDTO.getId(), tradeOrderItemDO.getSkuId());
- assertEquals(1L, tradeOrderItemDO.getUserId());
- //价格
- assertEquals(calculateRespDTO.getOrder().getItems().get(0).getPresentPrice(), tradeOrderItemDO.getPresentPrice());
- }
-
-}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/sql/create_tables.sql b/yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/sql/create_tables.sql
deleted file mode 100644
index 16e441516c..0000000000
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/sql/create_tables.sql
+++ /dev/null
@@ -1,78 +0,0 @@
-/**todo cancelType 设置默认值 0?*/
-
-CREATE TABLE IF NOT EXISTS `trade_order`
-(
- `id` number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- `sn` varchar(32) NOT NULL,
- `type` int NOT NULL,
- `terminal` int NOT NULL,
- `user_id` bigint unsigned NOT NULL,
- `user_ip` varchar(30) NOT NULL,
- `user_remark` varchar(200),
- `status` int NOT NULL,
- `product_count` int NOT NULL,
- `cancel_type` int DEFAULT NULL,
- `remark` varchar(200),
- `payed` bit(1) NOT NULL DEFAULT FALSE,
- `pay_time` datetime DEFAULT NULL,
- `finish_time` datetime DEFAULT NULL,
- `cancel_time` datetime DEFAULT NULL,
- `sku_original_price` int NOT NULL DEFAULT '0',
- `sku_promotion_price` int NOT NULL DEFAULT '0',
- `order_promotion_price` int NOT NULL DEFAULT '0',
- `delivery_price` int NOT NULL DEFAULT '0',
- `pay_price` int DEFAULT '0',
- `pay_order_id` int DEFAULT NULL,
- `pay_channel` int DEFAULT NULL,
- `delivery_type` int NOT NULL DEFAULT '1',
- `actual_delivery_type` int NOT NULL DEFAULT '1',
- `delivery_template_id` int DEFAULT NULL,
- `express_no` int DEFAULT NULL,
- `delivery_status` bit(1) NOT NULL DEFAULT FALSE,
- `delivery_time` datetime DEFAULT NULL,
- `receive_time` datetime DEFAULT NULL,
- `receiver_name` varchar(20) DEFAULT NULL,
- `receiver_mobile` varchar(20) DEFAULT NULL,
- `receiver_area_id` int DEFAULT NULL,
- `receiver_post_code` int DEFAULT NULL,
- `receiver_detail_address` varchar(255) DEFAULT NULL,
- `refund_status` int NOT NULL DEFAULT '0',
- `refund_price` int NOT NULL DEFAULT '0',
- `coupon_id` bigint unsigned DEFAULT NULL,
- `creator` varchar(64) DEFAULT '',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updater` varchar(64) DEFAULT '',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- `deleted` bit(1) NOT NULL DEFAULT FALSE,
- PRIMARY KEY ("id")
-);
-
-
-CREATE TABLE IF NOT EXISTS `trade_order_item`
-(
- `id` number NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- `user_id` bigint unsigned NOT NULL,
- `order_id` bigint unsigned NOT NULL,
- `spu_id` bigint unsigned NOT NULL,
- `sku_id` bigint unsigned NOT NULL,
- `properties` json DEFAULT NULL,
- `name` varchar(128) DEFAULT NULL,
- `pic_url` varchar(200) DEFAULT NULL,
- `count` int NOT NULL,
- `commented` bit(1) DEFAULT NULL,
- `original_price` int NOT NULL DEFAULT '0',
- `total_original_price` int NOT NULL DEFAULT '0',
- `total_promotion_price` int NOT NULL DEFAULT '0',
- `present_price` int NOT NULL DEFAULT '0',
- `total_present_price` int NOT NULL DEFAULT '0',
- `total_pay_price` int NOT NULL DEFAULT '0',
- `refund_status` int NOT NULL DEFAULT '0',
- `refund_total` int NOT NULL DEFAULT '0',
- `creator` varchar(64) DEFAULT '',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `updater` varchar(64) DEFAULT '',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- `deleted` bit(1) DEFAULT FALSE,
- PRIMARY KEY ("id")
-);
-
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java
new file mode 100644
index 0000000000..66e494b1ca
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java
@@ -0,0 +1,260 @@
+package cn.iocoder.yudao.module.trade.service.order;
+
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
+import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
+import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
+import cn.iocoder.yudao.module.member.api.address.AddressApi;
+import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
+import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
+import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
+import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
+import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO;
+import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
+import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
+import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
+import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi;
+import cn.iocoder.yudao.module.promotion.api.price.PriceApi;
+import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateRespDTO;
+import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
+import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
+import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
+import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderMapper;
+import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderAfterSaleStatusEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
+import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderConfig;
+import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentMatcher;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.context.annotation.Import;
+
+import javax.annotation.Resource;
+import java.time.Duration;
+import java.util.Arrays;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
+import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
+import static java.util.Collections.singletonList;
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+/**
+ * {@link TradeOrderServiceImpl} 的单元测试类
+ *
+ * @author LeeYan9
+ * @since 2022-09-07
+ */
+@Import({TradeOrderServiceImpl.class, TradeOrderConfig.class})
+class TradeOrderServiceTest extends BaseDbUnitTest {
+
+ @Resource
+ private TradeOrderServiceImpl tradeOrderService;
+
+ @Resource
+ private TradeOrderMapper tradeOrderMapper;
+ @Resource
+ private TradeOrderItemMapper tradeOrderItemMapper;
+
+ @MockBean
+ private ProductSpuApi productSpuApi;
+ @MockBean
+ private ProductSkuApi productSkuApi;
+ @MockBean
+ private PriceApi priceApi;
+ @MockBean
+ private PayOrderApi payOrderApi;
+ @MockBean
+ private AddressApi addressApi;
+ @MockBean
+ private CouponApi couponApi;
+
+ @MockBean
+ private TradeOrderProperties tradeOrderProperties;
+
+ @BeforeEach
+ public void setUp() {
+ when(tradeOrderProperties.getAppId()).thenReturn(888L);
+ when(tradeOrderProperties.getExpireTime()).thenReturn(Duration.ofDays(1));
+ }
+
+ @Test
+ public void testCreateTradeOrder_success() {
+ // 准备参数
+ Long userId = 100L;
+ String userIp = "127.0.0.1";
+ AppTradeOrderCreateReqVO reqVO = new AppTradeOrderCreateReqVO()
+ .setAddressId(10L).setCouponId(101L).setRemark("我是备注").setFromCart(true)
+ .setItems(Arrays.asList(new AppTradeOrderCreateReqVO.Item().setSkuId(1L).setCount(3),
+ new AppTradeOrderCreateReqVO.Item().setSkuId(2L).setCount(4)));
+ // mock 方法(商品 SKU 检查)
+ ProductSkuRespDTO sku01 = randomPojo(ProductSkuRespDTO.class, o -> o.setId(1L).setSpuId(11L)
+ .setPrice(50).setStock(100).setStatus(CommonStatusEnum.ENABLE.getStatus())
+ .setProperties(singletonList(new ProductSkuRespDTO.Property().setPropertyId(111L).setValueId(222L))));
+ ProductSkuRespDTO sku02 = randomPojo(ProductSkuRespDTO.class, o -> o.setId(2L).setSpuId(21L)
+ .setPrice(20).setStock(50).setStatus(CommonStatusEnum.ENABLE.getStatus()))
+ .setProperties(singletonList(new ProductSkuRespDTO.Property().setPropertyId(333L).setValueId(444L)));
+ when(productSkuApi.getSkuList(eq(asSet(1L, 2L)))).thenReturn(Arrays.asList(sku01, sku02));
+ // mock 方法(商品 SPU 检查)
+ ProductSpuRespDTO spu01 = randomPojo(ProductSpuRespDTO.class, o -> o.setId(11L)
+ .setStatus(ProductSpuStatusEnum.ENABLE.getStatus()).setName("商品 1"));
+ ProductSpuRespDTO spu02 = randomPojo(ProductSpuRespDTO.class, o -> o.setId(21L)
+ .setStatus(ProductSpuStatusEnum.ENABLE.getStatus()));
+ when(productSpuApi.getSpuList(eq(asSet(11L, 21L)))).thenReturn(Arrays.asList(spu01, spu02));
+ // mock 方法(用户收件地址的校验)
+ AddressRespDTO addressRespDTO = new AddressRespDTO().setId(10L).setUserId(userId).setName("芋艿")
+ .setMobile("15601691300").setAreaId(3306L).setPostCode("85757").setDetailAddress("土豆村");
+ when(addressApi.getAddress(eq(userId), eq(10L))).thenReturn(addressRespDTO);
+ // mock 方法(价格计算)
+ PriceCalculateRespDTO.OrderItem priceOrderItem01 = new PriceCalculateRespDTO.OrderItem()
+ .setSpuId(11L).setSkuId(1L).setCount(3).setOriginalPrice(150).setOriginalUnitPrice(50)
+ .setDiscountPrice(20).setPayPrice(130).setOrderPartPrice(7).setOrderDividePrice(35);
+ PriceCalculateRespDTO.OrderItem priceOrderItem02 = new PriceCalculateRespDTO.OrderItem()
+ .setSpuId(21L).setSkuId(2L).setCount(4).setOriginalPrice(80).setOriginalUnitPrice(20)
+ .setDiscountPrice(40).setPayPrice(40).setOrderPartPrice(15).setOrderDividePrice(25);
+ PriceCalculateRespDTO.Order priceOrder = new PriceCalculateRespDTO.Order()
+ .setOriginalPrice(230).setOrderPrice(100).setDiscountPrice(0).setCouponPrice(30)
+ .setPointPrice(10).setDeliveryPrice(20).setPayPrice(80).setCouponId(101L).setCouponPrice(30)
+ .setItems(Arrays.asList(priceOrderItem01, priceOrderItem02));
+ when(priceApi.calculatePrice(argThat(priceCalculateReqDTO -> {
+ assertEquals(priceCalculateReqDTO.getUserId(), 100L);
+ assertEquals(priceCalculateReqDTO.getCouponId(), 101L);
+ assertEquals(priceCalculateReqDTO.getItems().get(0).getSkuId(), 1L);
+ assertEquals(priceCalculateReqDTO.getItems().get(0).getCount(), 3);
+ assertEquals(priceCalculateReqDTO.getItems().get(1).getSkuId(), 2L);
+ assertEquals(priceCalculateReqDTO.getItems().get(1).getCount(), 4);
+ return true;
+ }))).thenReturn(new PriceCalculateRespDTO().setOrder(priceOrder));
+ // mock 方法(创建支付单)
+ when(payOrderApi.createPayOrder(argThat(createReqDTO -> {
+ assertEquals(createReqDTO.getAppId(), 888L);
+ assertEquals(createReqDTO.getUserIp(), userIp);
+ assertNotNull(createReqDTO.getMerchantOrderId()); // 由于 tradeOrderId 后生成,只能校验非空
+ assertEquals(createReqDTO.getSubject(), "商品 1 等多件");
+ assertNull(createReqDTO.getBody());
+ assertEquals(createReqDTO.getAmount(), 80);
+ assertNotNull(createReqDTO.getExpireTime());
+ return true;
+ }))).thenReturn(1000L);
+
+ // 调用方法
+ Long tradeOrderId = tradeOrderService.createOrder(userId, userIp, reqVO);
+ // 断言 TradeOrderDO 订单
+ List tradeOrderDOs = tradeOrderMapper.selectList();
+ assertEquals(tradeOrderDOs.size(), 1);
+ TradeOrderDO tradeOrderDO = tradeOrderDOs.get(0);
+ assertEquals(tradeOrderDO.getId(), tradeOrderId);
+ assertNotNull(tradeOrderDO.getNo());
+ assertEquals(tradeOrderDO.getType(), TradeOrderTypeEnum.NORMAL.getType());
+ assertEquals(tradeOrderDO.getTerminal(), TerminalEnum.H5.getTerminal());
+ assertEquals(tradeOrderDO.getUserId(), userId);
+ assertEquals(tradeOrderDO.getUserIp(), userIp);
+ assertEquals(tradeOrderDO.getStatus(), TradeOrderStatusEnum.UNPAID.getStatus());
+ assertEquals(tradeOrderDO.getProductCount(), 7);
+ assertNull(tradeOrderDO.getFinishTime());
+ assertNull(tradeOrderDO.getCancelTime());
+ assertNull(tradeOrderDO.getCancelType());
+ assertEquals(tradeOrderDO.getUserRemark(), "我是备注");
+ assertNull(tradeOrderDO.getRemark());
+ assertFalse(tradeOrderDO.getPayed());
+ assertNull(tradeOrderDO.getPayTime());
+ assertEquals(tradeOrderDO.getOriginalPrice(), 230);
+ assertEquals(tradeOrderDO.getOrderPrice(), 100);
+ assertEquals(tradeOrderDO.getDiscountPrice(), 0);
+ assertEquals(tradeOrderDO.getAdjustPrice(), 0);
+ assertEquals(tradeOrderDO.getPayPrice(), 80);
+ assertEquals(tradeOrderDO.getPayOrderId(), 1000L);
+ assertNull(tradeOrderDO.getPayChannel());
+ assertNull(tradeOrderDO.getDeliveryTemplateId());
+ assertNull(tradeOrderDO.getExpressNo());
+ assertFalse(tradeOrderDO.getDeliveryStatus());
+ assertNull(tradeOrderDO.getDeliveryTime());
+ assertNull(tradeOrderDO.getReceiveTime());
+ assertEquals(tradeOrderDO.getReceiverName(), "芋艿");
+ assertEquals(tradeOrderDO.getReceiverMobile(), "15601691300");
+ assertEquals(tradeOrderDO.getReceiverAreaId(), 3306L);
+ assertEquals(tradeOrderDO.getReceiverPostCode(), 85757);
+ assertEquals(tradeOrderDO.getReceiverDetailAddress(), "土豆村");
+ assertEquals(tradeOrderDO.getAfterSaleStatus(), TradeOrderAfterSaleStatusEnum.NONE.getStatus());
+ assertEquals(tradeOrderDO.getRefundPrice(), 0);
+ assertEquals(tradeOrderDO.getCouponPrice(), 30);
+ assertEquals(tradeOrderDO.getPointPrice(), 10);
+ // 断言 TradeOrderItemDO 订单(第 1 个)
+ List tradeOrderItemDOs = tradeOrderItemMapper.selectList();
+ assertEquals(tradeOrderItemDOs.size(), 2);
+ TradeOrderItemDO tradeOrderItemDO01 = tradeOrderItemDOs.get(0);
+ assertNotNull(tradeOrderItemDO01.getId());
+ assertEquals(tradeOrderItemDO01.getUserId(), userId);
+ assertEquals(tradeOrderItemDO01.getOrderId(), tradeOrderId);
+ assertEquals(tradeOrderItemDO01.getSpuId(), 11L);
+ assertEquals(tradeOrderItemDO01.getSkuId(), 1L);
+ assertEquals(tradeOrderItemDO01.getProperties().size(), 1);
+ assertEquals(tradeOrderItemDO01.getProperties().get(0).getPropertyId(), 111L);
+ assertEquals(tradeOrderItemDO01.getProperties().get(0).getValueId(), 222L);
+ assertEquals(tradeOrderItemDO01.getName(), sku01.getName());
+ assertEquals(tradeOrderItemDO01.getPicUrl(), sku01.getPicUrl());
+ assertEquals(tradeOrderItemDO01.getCount(), 3);
+ assertEquals(tradeOrderItemDO01.getOriginalPrice(), 150);
+ assertEquals(tradeOrderItemDO01.getOriginalUnitPrice(), 50);
+ assertEquals(tradeOrderItemDO01.getDiscountPrice(), 20);
+ assertEquals(tradeOrderItemDO01.getPayPrice(), 130);
+ assertEquals(tradeOrderItemDO01.getOrderPartPrice(), 7);
+ assertEquals(tradeOrderItemDO01.getOrderDividePrice(), 35);
+ assertEquals(tradeOrderItemDO01.getAfterSaleStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
+ assertEquals(tradeOrderItemDO01.getRefundTotal(), 0);
+ // 断言 TradeOrderItemDO 订单(第 2 个)
+ TradeOrderItemDO tradeOrderItemDO02 = tradeOrderItemDOs.get(1);
+ assertNotNull(tradeOrderItemDO02.getId());
+ assertEquals(tradeOrderItemDO02.getUserId(), userId);
+ assertEquals(tradeOrderItemDO02.getOrderId(), tradeOrderId);
+ assertEquals(tradeOrderItemDO02.getSpuId(), 21L);
+ assertEquals(tradeOrderItemDO02.getSkuId(), 2L);
+ assertEquals(tradeOrderItemDO02.getProperties().size(), 1);
+ assertEquals(tradeOrderItemDO02.getProperties().get(0).getPropertyId(), 333L);
+ assertEquals(tradeOrderItemDO02.getProperties().get(0).getValueId(), 444L);
+ assertEquals(tradeOrderItemDO02.getName(), sku02.getName());
+ assertEquals(tradeOrderItemDO02.getPicUrl(), sku02.getPicUrl());
+ assertEquals(tradeOrderItemDO02.getCount(), 4);
+ assertEquals(tradeOrderItemDO02.getOriginalPrice(), 80);
+ assertEquals(tradeOrderItemDO02.getOriginalUnitPrice(), 20);
+ assertEquals(tradeOrderItemDO02.getDiscountPrice(), 40);
+ assertEquals(tradeOrderItemDO02.getPayPrice(), 40);
+ assertEquals(tradeOrderItemDO02.getOrderPartPrice(), 15);
+ assertEquals(tradeOrderItemDO02.getOrderDividePrice(), 25);
+ assertEquals(tradeOrderItemDO02.getAfterSaleStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
+ assertEquals(tradeOrderItemDO02.getRefundTotal(), 0);
+ // 校验调用
+ verify(productSkuApi).updateSkuStock(argThat(new ArgumentMatcher() {
+
+ @Override
+ public boolean matches(ProductSkuUpdateStockReqDTO updateStockReqDTO) {
+ assertEquals(updateStockReqDTO.getItems().size(), 2);
+ assertEquals(updateStockReqDTO.getItems().get(0).getId(), 1L);
+ assertEquals(updateStockReqDTO.getItems().get(0).getIncrCount(), 3);
+ assertEquals(updateStockReqDTO.getItems().get(1).getId(), 2L);
+ assertEquals(updateStockReqDTO.getItems().get(1).getIncrCount(), 4);
+ return true;
+ }
+
+ }));
+ verify(couponApi).useCoupon(argThat(reqDTO -> {
+ assertEquals(reqDTO.getId(), reqVO.getCouponId());
+ assertEquals(reqDTO.getUserId(), userId);
+ assertEquals(reqDTO.getOrderId(), tradeOrderId);
+ return true;
+ }));
+// //mock 支付订单信息
+// when(payOrderApi.createPayOrder(any())).thenReturn(1L);
+
+// //价格
+// assertEquals(calculateRespDTO.getOrder().getItems().get(0).getPresentPrice(), tradeOrderItemDO.getPresentPrice());
+ }
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/application-unit-test.yaml b/yudao-module-mall/yudao-module-trade-biz/src/test/resources/application-unit-test.yaml
similarity index 100%
rename from yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/application-unit-test.yaml
rename to yudao-module-mall/yudao-module-trade-biz/src/test/resources/application-unit-test.yaml
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/logback.xml b/yudao-module-mall/yudao-module-trade-biz/src/test/resources/logback.xml
similarity index 100%
rename from yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/logback.xml
rename to yudao-module-mall/yudao-module-trade-biz/src/test/resources/logback.xml
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/sql/clean.sql b/yudao-module-mall/yudao-module-trade-biz/src/test/resources/sql/clean.sql
similarity index 100%
rename from yudao-module-mall/yudao-module-trade-biz/src/main/test/resources/sql/clean.sql
rename to yudao-module-mall/yudao-module-trade-biz/src/test/resources/sql/clean.sql
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/test/resources/sql/create_tables.sql b/yudao-module-mall/yudao-module-trade-biz/src/test/resources/sql/create_tables.sql
new file mode 100644
index 0000000000..fda7251dcb
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-biz/src/test/resources/sql/create_tables.sql
@@ -0,0 +1,72 @@
+CREATE TABLE IF NOT EXISTS "trade_order" (
+ "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+ "no" varchar NOT NULL,
+ "type" int NOT NULL,
+ "terminal" int NOT NULL,
+ "user_id" bigint NOT NULL,
+ "user_ip" varchar NOT NULL,
+ "user_remark" varchar,
+ "status" int NOT NULL,
+ "product_count" int NOT NULL,
+ "cancel_type" int,
+ "remark" varchar,
+ "payed" bit NOT NULL,
+ "pay_time" datetime,
+ "finish_time" datetime,
+ "cancel_time" datetime,
+ "original_price" int NOT NULL,
+ "order_price" int NOT NULL,
+ "discount_price" int NOT NULL,
+ "delivery_price" int NOT NULL,
+ "adjust_price" int NOT NULL,
+ "pay_price" int NOT NULL,
+ "pay_order_id" int,
+ "pay_channel" int,
+ "delivery_template_id" int,
+ "express_no" int,
+ "delivery_status" bit NOT NULL,
+ "delivery_time" datetime,
+ "receive_time" datetime,
+ "receiver_name" varchar NOT NULL,
+ "receiver_mobile" varchar NOT NULL,
+ "receiver_area_id" int NOT NULL,
+ "receiver_post_code" int,
+ "receiver_detail_address" varchar NOT NULL,
+ "refund_status" int NOT NULL,
+ "refund_price" int NOT NULL,
+ "coupon_id" bigint NOT NULL,
+ "coupon_price" int NOT NULL,
+ "point_price" int NOT NULL,
+ "creator" varchar DEFAULT '',
+ "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "updater" varchar DEFAULT '',
+ "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ "deleted" bit NOT NULL DEFAULT FALSE,
+ PRIMARY KEY ("id")
+) COMMENT '交易订单表';
+
+CREATE TABLE IF NOT EXISTS "trade_order_item" (
+ "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+ "user_id" bigint NOT NULL,
+ "order_id" bigint NOT NULL,
+ "spu_id" bigint NOT NULL,
+ "sku_id" bigint NOT NULL,
+ "properties" varchar,
+ "name" varchar NOT NULL,
+ "pic_url" varchar,
+ "count" int NOT NULL,
+ "original_price" int NOT NULL,
+ "original_unit_price" int NOT NULL,
+ "discount_price" int NOT NULL,
+ "pay_price" int NOT NULL,
+ "order_part_price" int NOT NULL,
+ "order_divide_price" int NOT NULL,
+ "refund_status" int NOT NULL,
+ "refund_total" int NOT NULL,
+ "creator" varchar DEFAULT '',
+ "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "updater" varchar DEFAULT '',
+ "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ "deleted" bit NOT NULL DEFAULT FALSE,
+ PRIMARY KEY ("id")
+) COMMENT '交易订单明细表';
diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/address/AddressApi.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/address/AddressApi.java
new file mode 100644
index 0000000000..75ba025639
--- /dev/null
+++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/address/AddressApi.java
@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.member.api.address;
+
+import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
+
+/**
+ * 用户收件地址 API 接口
+ *
+ * @author 芋道源码
+ */
+public interface AddressApi {
+
+ /**
+ * 获得用户收件地址
+ *
+ * @param id 收件地址编号
+ * @param userId 用户编号
+ * @return 用户收件地址
+ */
+ AddressRespDTO getAddress(Long id, Long userId);
+
+}
diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/address/dto/AddressRespDTO.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/address/dto/AddressRespDTO.java
new file mode 100644
index 0000000000..cc8eb4701b
--- /dev/null
+++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/address/dto/AddressRespDTO.java
@@ -0,0 +1,48 @@
+package cn.iocoder.yudao.module.member.api.address.dto;
+
+import lombok.Data;
+
+/**
+ * 用户收件地址 Response DTO
+ *
+ * @author 芋道源码
+ */
+@Data
+public class AddressRespDTO {
+
+ /**
+ * 编号
+ */
+ private Long id;
+ /**
+ * 用户编号
+ */
+ private Long userId;
+ /**
+ * 收件人名称
+ */
+ private String name;
+ /**
+ * 手机号
+ */
+ private String mobile;
+ /**
+ * 地区编号
+ */
+ private Long areaId;
+ /**
+ * 邮编
+ */
+ private String postCode;
+ /**
+ * 收件详细地址
+ */
+ private String detailAddress;
+ /**
+ * 是否默认
+ *
+ * true - 默认收件地址
+ */
+ private Boolean defaulted;
+
+}
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/address/AddressApiImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/address/AddressApiImpl.java
new file mode 100644
index 0000000000..fd0f4843db
--- /dev/null
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/address/AddressApiImpl.java
@@ -0,0 +1,28 @@
+package cn.iocoder.yudao.module.member.api.address;
+
+import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
+import cn.iocoder.yudao.module.member.convert.address.AddressConvert;
+import cn.iocoder.yudao.module.member.service.address.AddressService;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+/**
+ * 用户收件地址 API 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class AddressApiImpl implements AddressApi {
+
+ @Resource
+ private AddressService addressService;
+
+ @Override
+ public AddressRespDTO getAddress(Long id, Long userId) {
+ return AddressConvert.INSTANCE.convert02(addressService.getAddress(userId, id));
+ }
+
+}
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java
index 1005b288cd..0ba231e9f3 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressRespVO.java
@@ -1,7 +1,7 @@
package cn.iocoder.yudao.module.member.controller.app.address.vo;
import lombok.*;
-import java.util.*;
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
@ApiModel("用户 APP - 用户收件地址 Response VO")
@@ -14,6 +14,6 @@ public class AppAddressRespVO extends AppAddressBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java
index a633730712..ebd1ea35cd 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java
@@ -7,7 +7,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("用户 APP - 登录 Response VO")
@Data
@@ -26,6 +26,6 @@ public class AppAuthLoginRespVO {
private String refreshToken;
@ApiModelProperty(value = "过期时间", required = true)
- private Date expiresTime;
+ private LocalDateTime expiresTime;
}
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/address/AddressConvert.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/address/AddressConvert.java
index fdc01e5a81..49a01805d8 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/address/AddressConvert.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/address/AddressConvert.java
@@ -1,13 +1,15 @@
package cn.iocoder.yudao.module.member.convert.address;
-import java.util.*;
-
import cn.iocoder.yudao.framework.common.pojo.PageResult;
-
+import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
+import cn.iocoder.yudao.module.member.controller.app.address.vo.AppAddressCreateReqVO;
+import cn.iocoder.yudao.module.member.controller.app.address.vo.AppAddressRespVO;
+import cn.iocoder.yudao.module.member.controller.app.address.vo.AppAddressUpdateReqVO;
+import cn.iocoder.yudao.module.member.dal.dataobject.address.AddressDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
-import cn.iocoder.yudao.module.member.controller.app.address.vo.*;
-import cn.iocoder.yudao.module.member.dal.dataobject.address.AddressDO;
+
+import java.util.List;
/**
* 用户收件地址 Convert
@@ -29,4 +31,6 @@ public interface AddressConvert {
PageResult convertPage(PageResult page);
+ AddressRespDTO convert02(AddressDO bean);
+
}
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java
index a0bf946fec..35e0db9431 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java
@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 会员用户 DO
@@ -67,7 +67,7 @@ public class MemberUserDO extends TenantBaseDO {
/**
* 最后登录时间
*/
- private Date loginDate;
+ private LocalDateTime loginDate;
// TODO 芋艿:name 真实名字;
// TODO 芋艿:email 邮箱;
diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
index 58c77fa682..2657e922e8 100644
--- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
+++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
@@ -22,6 +22,7 @@ import java.io.InputStream;
import java.util.Collection;
import java.util.Date;
import java.util.List;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
@@ -85,7 +86,7 @@ public class MemberUserServiceImpl implements MemberUserService {
@Override
public void updateUserLogin(Long id, String loginIp) {
memberUserMapper.updateById(new MemberUserDO().setId(id)
- .setLoginIp(loginIp).setLoginDate(new Date()));
+ .setLoginIp(loginIp).setLoginDate(LocalDateTime.now()));
}
@Override
diff --git a/yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java b/yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java
index 805d06aa6c..9fd67c9014 100644
--- a/yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java
+++ b/yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.member.service.auth;
+import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
@@ -39,6 +40,9 @@ public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest {
// TODO @芋艿:登录相关的单测,待补全
+ @Resource
+ private MemberAuthServiceImpl authService;
+
@MockBean
private MemberUserService userService;
@MockBean
@@ -50,11 +54,12 @@ public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest {
@MockBean
private SocialUserApi socialUserApi;
@MockBean
+ private WxMaService wxMaService;
+ @MockBean
private PasswordEncoder passwordEncoder;
+
@Resource
private MemberUserMapper memberUserMapper;
- @Resource
- private MemberAuthServiceImpl authService;
@Test
public void testUpdatePassword_success(){
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApi.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApi.java
index 36022b172b..f6cf7be304 100644
--- a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApi.java
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApi.java
@@ -1,5 +1,7 @@
package cn.iocoder.yudao.module.pay.api.order;
+import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
+
import javax.validation.Valid;
/**
@@ -16,6 +18,6 @@ public interface PayOrderApi {
* @param reqDTO 创建请求
* @return 支付单编号
*/
- Long createPayOrder(@Valid PayOrderInfoCreateReqDTO reqDTO);
+ Long createPayOrder(@Valid PayOrderCreateReqDTO reqDTO);
}
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderInfoCreateReqDTO.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/dto/PayOrderCreateReqDTO.java
similarity index 70%
rename from yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderInfoCreateReqDTO.java
rename to yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/dto/PayOrderCreateReqDTO.java
index fda4b3d8d6..88f0342aff 100644
--- a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderInfoCreateReqDTO.java
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/dto/PayOrderCreateReqDTO.java
@@ -1,22 +1,21 @@
-package cn.iocoder.yudao.module.pay.api.order;
+package cn.iocoder.yudao.module.pay.api.order.dto;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
-import javax.validation.constraints.DecimalMin;
+import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
-import java.util.Date;
+import java.time.LocalDateTime;
-// TODO @LeeYan9: 1) 新建一个 dto 包, 然后挪进去哈; 2) 在 order下; Info 可以去掉;
/**
* 支付单创建 Request DTO
*
* @author LeeYan9
*/
@Data
-public class PayOrderInfoCreateReqDTO implements Serializable {
+public class PayOrderCreateReqDTO implements Serializable {
/**
* 应用编号
@@ -45,7 +44,7 @@ public class PayOrderInfoCreateReqDTO implements Serializable {
/**
* 商品描述
*/
- @NotEmpty(message = "商品描述信息不能为空")
+// @NotEmpty(message = "商品描述信息不能为空") // 允许空
@Length(max = 128, message = "商品描述信息长度不能超过128")
private String body;
@@ -55,14 +54,13 @@ public class PayOrderInfoCreateReqDTO implements Serializable {
* 支付金额,单位:分
*/
@NotNull(message = "支付金额不能为空")
- // TODO @LeeYan9: 是不是 @Min 注解呀, 是 Integer 哈
- @DecimalMin(value = "0", inclusive = false, message = "支付金额必须大于零")
+ @Min(value = 1, message = "支付金额必须大于零")
private Integer amount;
/**
* 支付过期时间
*/
@NotNull(message = "支付过期时间不能为空")
- private Date expireTime;
+ private LocalDateTime expireTime;
-}
\ No newline at end of file
+}
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApi.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApi.java
new file mode 100644
index 0000000000..395ba1220a
--- /dev/null
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApi.java
@@ -0,0 +1,31 @@
+package cn.iocoder.yudao.module.pay.api.refund;
+
+import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO;
+import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundRespDTO;
+
+import javax.validation.Valid;
+
+/**
+ * 退款单 API 接口
+ *
+ * @author 芋道源码
+ */
+public interface PayRefundApi {
+
+ /**
+ * 创建退款单
+ *
+ * @param reqDTO 创建请求
+ * @return 退款单编号
+ */
+ Long createPayRefund(@Valid PayRefundCreateReqDTO reqDTO);
+
+ /**
+ * 获得退款单
+ *
+ * @param id 退款单编号
+ * @return 退款单
+ */
+ PayRefundRespDTO getPayRefund(Long id);
+
+}
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundCreateReqDTO.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundCreateReqDTO.java
new file mode 100644
index 0000000000..03c552640c
--- /dev/null
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundCreateReqDTO.java
@@ -0,0 +1,52 @@
+package cn.iocoder.yudao.module.pay.api.refund.dto;
+
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 退款单创建 Request DTO
+ *
+ * @author 芋道源码
+ */
+@Data
+public class PayRefundCreateReqDTO {
+
+ /**
+ * 应用编号
+ */
+ @NotNull(message = "应用编号不能为空")
+ private Long appId;
+ /**
+ * 用户 IP
+ */
+ @NotEmpty(message = "用户 IP 不能为空")
+ private String userIp;
+
+ // ========== 商户相关字段 ==========
+
+ /**
+ * 商户订单编号
+ */
+ @NotEmpty(message = "商户订单编号不能为空")
+ private String merchantOrderId;
+
+ /**
+ * 退款描述
+ */
+ @NotEmpty(message = "退款描述不能为空")
+ @Length(max = 128, message = "退款描述长度不能超过128")
+ private String reason;
+
+ // ========== 订单相关字段 ==========
+
+ /**
+ * 退款金额,单位:分
+ */
+ @NotNull(message = "退款金额不能为空")
+ @Min(value = 1, message = "退款金额必须大于零")
+ private Integer amount;
+}
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundRespDTO.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundRespDTO.java
new file mode 100644
index 0000000000..c3bd38b5e3
--- /dev/null
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundRespDTO.java
@@ -0,0 +1,37 @@
+package cn.iocoder.yudao.module.pay.api.refund.dto;
+
+import cn.iocoder.yudao.module.pay.enums.refund.PayRefundStatusEnum;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 退款单信息 Response DTO
+ *
+ * TODO 芋艿:还没定好字段
+ *
+ * @author 芋道源码
+ */
+@Data
+public class PayRefundRespDTO {
+
+ /**
+ * 退款单编号
+ */
+ private Long id;
+
+ // ========== 退款相关字段 ==========
+ /**
+ * 退款状态
+ *
+ * 枚举 {@link PayRefundStatusEnum}
+ */
+ private Integer status;
+
+ // ========== 渠道相关字段 ==========
+ /**
+ * 退款成功时间
+ */
+ private LocalDateTime successTime;
+
+}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java
similarity index 100%
rename from yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java
rename to yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/enums/refund/PayRefundStatusEnum.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/refund/PayRefundStatusEnum.java
similarity index 71%
rename from yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/enums/refund/PayRefundStatusEnum.java
rename to yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/refund/PayRefundStatusEnum.java
index 390804dd3a..3fb8213f53 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/enums/refund/PayRefundStatusEnum.java
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/refund/PayRefundStatusEnum.java
@@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.pay.enums.refund;
import lombok.AllArgsConstructor;
import lombok.Getter;
+import java.util.Objects;
+
@Getter
@AllArgsConstructor
public enum PayRefundStatusEnum {
@@ -14,4 +16,9 @@ public enum PayRefundStatusEnum {
private final Integer status;
private final String name;
+
+ public static boolean isSuccess(Integer status) {
+ return Objects.equals(status, SUCCESS.getStatus());
+ }
+
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/PayOrderApiImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/PayOrderApiImpl.java
deleted file mode 100644
index d5dd64146a..0000000000
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/PayOrderApiImpl.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.iocoder.yudao.module.pay.api;
-
-import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
-import cn.iocoder.yudao.module.pay.api.order.PayOrderInfoCreateReqDTO;
-import org.springframework.stereotype.Service;
-
-/**
- * TODO 注释
- */
-@Service
-public class PayOrderApiImpl implements PayOrderApi {
-
- @Override
- public Long createPayOrder(PayOrderInfoCreateReqDTO reqDTO) {
- return null;
- }
-
-}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApiImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApiImpl.java
index 6f2556d357..e5a3186e8d 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApiImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApiImpl.java
@@ -1,19 +1,17 @@
-//package cn.iocoder.yudao.module.pay.api.order;
-//
-//import org.springframework.stereotype.Service;
-//import org.springframework.transaction.annotation.Transactional;
-//
-///**
-// * @author LeeYan9
-// * @since 2022-09-06
-// */
-//@Service
-//public class PayOrderApiImpl implements PayOrderApi {
-//
-// @Override
-// @Transactional(rollbackFor = Exception.class)
-// public Long createPayOrder(PayOrderInfoCreateReqDTO reqDTO) {
-// return null;
-// }
-//
-//}
+package cn.iocoder.yudao.module.pay.api.order;
+
+import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
+import org.springframework.stereotype.Service;
+
+/**
+ * TODO 注释
+ */
+@Service
+public class PayOrderApiImpl implements PayOrderApi {
+
+ @Override
+ public Long createPayOrder(PayOrderCreateReqDTO reqDTO) {
+ return null;
+ }
+
+}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApiImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApiImpl.java
new file mode 100644
index 0000000000..454aa7b87e
--- /dev/null
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApiImpl.java
@@ -0,0 +1,29 @@
+package cn.iocoder.yudao.module.pay.api.refund;
+
+import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO;
+import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundRespDTO;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+/**
+ * 退款单 API 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class PayRefundApiImpl implements PayRefundApi {
+
+ @Override
+ public Long createPayRefund(PayRefundCreateReqDTO reqDTO) {
+ // TODO 芋艿:暂未实现
+ return null;
+ }
+
+ @Override
+ public PayRefundRespDTO getPayRefund(Long id) {
+ // TODO 芋艿:暂未实现
+ return null;
+ }
+
+}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExcelVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExcelVO.java
index 3fc274a03a..20556e5736 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExcelVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExcelVO.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 支付应用信息 Excel VO
@@ -35,6 +35,6 @@ public class PayAppExcelVO {
private Long merchantId;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExportReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExportReqVO.java
index a8bf74deee..3ea1f3e2ec 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExportReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExportReqVO.java
@@ -1,9 +1,9 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
import lombok.*;
-import java.util.*;
+
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -32,6 +32,6 @@ public class PayAppExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java
index e5ad0825f3..f0e06b0d0d 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Set;
@ApiModel(value = "管理后台 - 支付应用信息分页查询 Response VO", description = "相比于支付信息,还会多出应用渠道的开关信息")
@@ -19,7 +19,7 @@ public class PayAppPageItemRespVO extends PayAppBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
/**
* 所属商户
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageReqVO.java
index 3c0c263756..c743a88221 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageReqVO.java
@@ -1,7 +1,8 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
import lombok.*;
-import java.util.*;
+
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
@@ -34,6 +35,6 @@ public class PayAppPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java
index e0ac450a2d..17d4961a1d 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java
@@ -1,7 +1,8 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
import lombok.*;
-import java.util.*;
+
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
@ApiModel("管理后台 - 支付应用信息 Response VO")
@@ -14,6 +15,6 @@ public class PayAppRespVO extends PayAppBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExcelVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExcelVO.java
index 780abb18f0..a370889553 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExcelVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExcelVO.java
@@ -1,8 +1,8 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
import lombok.*;
-import java.util.*;
-import io.swagger.annotations.*;
+
+import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
@@ -44,6 +44,6 @@ public class PayChannelExcelVO {
/// private String config;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExportReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExportReqVO.java
index b5df9d0ca8..263d1b8e94 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExportReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExportReqVO.java
@@ -1,9 +1,9 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
import lombok.*;
-import java.util.*;
+
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -35,6 +35,6 @@ public class PayChannelExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelPageReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelPageReqVO.java
index 80f42f9568..4d8e7729c8 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelPageReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelPageReqVO.java
@@ -1,7 +1,8 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
import lombok.*;
-import java.util.*;
+
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
@@ -37,6 +38,6 @@ public class PayChannelPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java
index b2644f4d0e..e3e53d3f9c 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java
@@ -1,7 +1,8 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
import lombok.*;
-import java.util.*;
+
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
@ApiModel("管理后台 - 支付渠道 Response VO")
@@ -14,7 +15,7 @@ public class PayChannelRespVO extends PayChannelBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
@ApiModelProperty(value = "配置", required = true)
private String config;
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExcelVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExcelVO.java
index b399a111d7..821d55fe57 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExcelVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExcelVO.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 支付商户信息 Excel VO
@@ -35,6 +35,6 @@ public class PayMerchantExcelVO {
private String remark;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExportReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExportReqVO.java
index 03232948a8..6a41d3afcb 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExportReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExportReqVO.java
@@ -1,9 +1,9 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
import lombok.*;
-import java.util.*;
+
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -29,6 +29,6 @@ public class PayMerchantExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantPageReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantPageReqVO.java
index fb0bdbe806..756299f5f6 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantPageReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantPageReqVO.java
@@ -1,7 +1,8 @@
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
import lombok.*;
-import java.util.*;
+
+import java.time.LocalDateTime;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
@@ -31,6 +32,6 @@ public class PayMerchantPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java
index a27c591a14..f4003b7a4a 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 支付商户信息 Response VO")
@Data
@@ -18,7 +18,7 @@ public class PayMerchantRespVO extends PayMerchantBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
@ApiModelProperty(value = "商户号", required = true, example = "M233666999")
private String no;
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java
index 1064720fba..6928ca3c8a 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java
@@ -5,7 +5,7 @@ import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -73,15 +73,15 @@ public class PayOrderBaseVO {
@ApiModelProperty(value = "订单失效时间", required = true)
@NotNull(message = "订单失效时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date expireTime;
+ private LocalDateTime expireTime;
@ApiModelProperty(value = "订单支付成功时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date successTime;
+ private LocalDateTime successTime;
@ApiModelProperty(value = "订单支付通知时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date notifyTime;
+ private LocalDateTime notifyTime;
@ApiModelProperty(value = "支付成功的订单拓展单编号")
private Long successExtensionId;
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java
index 6bf7152b54..8c35a0f8fa 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 支付订单详细信息 Response VO")
@Data
@@ -27,7 +27,7 @@ public class PayOrderDetailsRespVO extends PayOrderBaseVO {
private String channelCodeName;
@ApiModelProperty(value = "创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
/**
* 支付订单扩展
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExcelVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExcelVO.java
index 992cac2d26..71b4879d75 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExcelVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExcelVO.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.pay.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 支付订单Excel VO
@@ -58,16 +58,16 @@ public class PayOrderExcelVO {
private String notifyUrl;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
@ExcelProperty("订单支付成功时间")
- private Date successTime;
+ private LocalDateTime successTime;
@ExcelProperty("订单失效时间")
- private Date expireTime;
+ private LocalDateTime expireTime;
@ExcelProperty("订单支付通知时间")
- private Date notifyTime;
+ private LocalDateTime notifyTime;
@ExcelProperty(value = "渠道编号名称")
private String channelCodeName;
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java
index e9a8198efd..955b5787e2 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -57,15 +57,15 @@ public class PayOrderExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "订单失效时间")
- private Date[] expireTime;
+ private LocalDateTime[] expireTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始订单支付成功时间")
- private Date[] successTime;
+ private LocalDateTime[] successTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始订单支付通知时间")
- private Date[] notifyTime;
+ private LocalDateTime[] notifyTime;
@ApiModelProperty(value = "支付成功的订单拓展单编号")
private Long successExtensionId;
@@ -87,6 +87,6 @@ public class PayOrderExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java
index 3c0b4e6351..ec1e405a73 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 支付订单分页 Request VO")
@Data
@@ -18,7 +18,7 @@ public class PayOrderPageItemRespVO extends PayOrderBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
@ApiModelProperty(value = "商户名称")
private String merchantName;
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java
index 1b527378fb..2ae90322a4 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -62,15 +62,15 @@ public class PayOrderPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "订单失效时间")
- private Date[] expireTime;
+ private LocalDateTime[] expireTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "订单支付成功时间")
- private Date[] successTime;
+ private LocalDateTime[] successTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "订单支付通知时间")
- private Date[] notifyTime;
+ private LocalDateTime[] notifyTime;
@ApiModelProperty(value = "支付成功的订单拓展单编号")
private Long successExtensionId;
@@ -92,6 +92,6 @@ public class PayOrderPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java
index 29d0cb611d..a22c1d7097 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 支付订单 Response VO")
@Data
@@ -18,6 +18,6 @@ public class PayOrderRespVO extends PayOrderBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java
index 594496c773..f797806838 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java
@@ -5,7 +5,7 @@ import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -97,14 +97,14 @@ public class PayRefundBaseVO {
@ApiModelProperty(value = "退款失效时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date expireTime;
+ private LocalDateTime expireTime;
@ApiModelProperty(value = "退款成功时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date successTime;
+ private LocalDateTime successTime;
@ApiModelProperty(value = "退款通知时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date notifyTime;
+ private LocalDateTime notifyTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java
index e8a70ecd85..dcabd031dc 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java
@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.constraints.NotNull;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 退款订单详情 Response VO")
@Data
@@ -31,9 +31,9 @@ public class PayRefundDetailsRespVO extends PayRefundBaseVO {
private String subject;
@ApiModelProperty(value = "创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
- private Date updateTime;
+ private LocalDateTime updateTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java
index c56fb76042..c4ec3e733f 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.pay.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 退款订单 Excel VO
@@ -74,15 +74,15 @@ public class PayRefundExcelVO {
private String channelRefundNo;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
@ExcelProperty("退款成功时间")
- private Date successTime;
+ private LocalDateTime successTime;
@ExcelProperty("退款通知时间")
- private Date notifyTime;
+ private LocalDateTime notifyTime;
@ExcelProperty("退款失效时间")
- private Date expireTime;
+ private LocalDateTime expireTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java
index 508353030c..b39f82dd35 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -78,18 +78,18 @@ public class PayRefundExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "退款失效时间")
- private Date[] expireTime;
+ private LocalDateTime[] expireTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "退款成功时间")
- private Date[] successTime;
+ private LocalDateTime[] successTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "退款通知时间")
- private Date[] notifyTime;
+ private LocalDateTime[] notifyTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java
index 03fe650eed..b57a34c068 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 退款订单分页查询 Response VO")
@Data
@@ -27,6 +27,6 @@ public class PayRefundPageItemRespVO extends PayRefundBaseVO {
private String channelCodeName;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java
index 11594ea1e2..141e2a77fb 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -83,18 +83,18 @@ public class PayRefundPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "退款失效时间")
- private Date[] expireTime;
+ private LocalDateTime[] expireTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "退款成功时间")
- private Date[] successTime;
+ private LocalDateTime[] successTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "退款通知时间")
- private Date[] notifyTime;
+ private LocalDateTime[] notifyTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java
index 97445d77fb..e5453fbd41 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 退款订单 Response VO")
@Data
@@ -18,6 +18,6 @@ public class PayRefundRespVO extends PayRefundBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java
index f0fb9c46b4..e4d8580892 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java
@@ -13,7 +13,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 商户支付、退款等的通知
@@ -80,11 +80,11 @@ public class PayNotifyTaskDO extends BaseDO {
/**
* 下一次通知时间
*/
- private Date nextNotifyTime;
+ private LocalDateTime nextNotifyTime;
/**
* 最后一次执行时间
*/
- private Date lastExecuteTime;
+ private LocalDateTime lastExecuteTime;
/**
* 当前通知次数
*/
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
index dfe9488790..ad6f9ea7e7 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
@@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 支付订单 DO
@@ -117,15 +117,15 @@ public class PayOrderDO extends BaseDO {
/**
* 订单失效时间
*/
- private Date expireTime;
+ private LocalDateTime expireTime;
/**
* 订单支付成功时间
*/
- private Date successTime;
+ private LocalDateTime successTime;
/**
* 订单支付通知时间,即支付渠道的通知时间
*/
- private Date notifyTime;
+ private LocalDateTime notifyTime;
/**
* 支付成功的订单拓展单编号
*
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java
index f219166f0d..06788440d8 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java
@@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 支付退款单 DO
@@ -183,17 +183,15 @@ public class PayRefundDO extends BaseDO {
* TODO
* 退款失效时间
*/
- private Date expireTime;
+ private LocalDateTime expireTime;
/**
* 退款成功时间
*/
- private Date successTime;
+ private LocalDateTime successTime;
/**
* 退款通知时间
*/
- private Date notifyTime;
-
-
+ private LocalDateTime notifyTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/merchant/PayChannelMapper.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/merchant/PayChannelMapper.java
index 4664369916..216cf689d2 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/merchant/PayChannelMapper.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/merchant/PayChannelMapper.java
@@ -10,8 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
@Mapper
@@ -22,7 +22,7 @@ public interface PayChannelMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM pay_channel WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
default PageResult selectPage(PayChannelPageReqVO reqVO) {
return selectPage(reqVO, new QueryWrapperX()
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskCoreMapper.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskCoreMapper.java
index 1107a19f46..ca876a3ab9 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskCoreMapper.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskCoreMapper.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.ibatis.annotations.Mapper;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
@Mapper
@@ -24,7 +24,7 @@ public interface PayNotifyTaskCoreMapper extends BaseMapperX {
return selectList(new QueryWrapper()
.in("status", PayNotifyStatusEnum.WAITING.getStatus(), PayNotifyStatusEnum.REQUEST_SUCCESS.getStatus(),
PayNotifyStatusEnum.REQUEST_FAILURE.getStatus())
- .le("next_notify_time", new Date()));
+ .le("next_notify_time", LocalDateTime.now()));
}
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/job/config/PayJobConfiguration.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/job/config/PayJobConfiguration.java
index 42bd32a8f0..cd6bd0bb73 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/job/config/PayJobConfiguration.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/job/config/PayJobConfiguration.java
@@ -6,7 +6,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ThreadPoolExecutor;
-@Configuration
+@Configuration(proxyBeanMethods = false)
public class PayJobConfiguration {
public static final String NOTIFY_THREAD_POOL_TASK_EXECUTOR = "NOTIFY_THREAD_POOL_TASK_EXECUTOR";
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/notify/PayNotifyJob.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/notify/PayNotifyJob.java
index 820bca4718..fab0c8143f 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/notify/PayNotifyJob.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/notify/PayNotifyJob.java
@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.pay.job.notify;
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
+import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
import cn.iocoder.yudao.module.pay.service.notify.PayNotifyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -15,6 +16,7 @@ import javax.annotation.Resource;
*/
@Component
@Slf4j
+@TenantJob
public class PayNotifyJob implements JobHandler {
@Resource
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceImpl.java
index 884871ff90..08bd0f43e3 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceImpl.java
@@ -28,8 +28,8 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.validation.Validator;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -55,7 +55,7 @@ public class PayChannelServiceImpl implements PayChannelService {
/**
* 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
- private volatile Date maxUpdateTime;
+ private volatile LocalDateTime maxUpdateTime;
@Resource
private PayClientFactory payClientFactory;
@@ -101,7 +101,7 @@ public class PayChannelServiceImpl implements PayChannelService {
* @param maxUpdateTime 当前支付渠道的最大更新时间
* @return 支付渠道列表
*/
- private List loadPayChannelIfUpdate(Date maxUpdateTime) {
+ private List loadPayChannelIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadPayChannelIfUpdate][首次加载全量支付渠道]");
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceImpl.java
index 9d2172fe30..bc941b06d3 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceImpl.java
@@ -29,8 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.validation.Valid;
-import java.util.Calendar;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CountDownLatch;
@@ -83,7 +82,7 @@ public class PayNotifyServiceImpl implements PayNotifyService {
public void createPayNotifyTask(PayNotifyTaskCreateReqDTO reqDTO) {
PayNotifyTaskDO task = new PayNotifyTaskDO();
task.setType(reqDTO.getType()).setDataId(reqDTO.getDataId());
- task.setStatus(PayNotifyStatusEnum.WAITING.getStatus()).setNextNotifyTime(new Date())
+ task.setStatus(PayNotifyStatusEnum.WAITING.getStatus()).setNextNotifyTime(LocalDateTime.now())
.setNotifyTimes(0).setMaxNotifyTimes(PayNotifyTaskDO.NOTIFY_FREQUENCY.length + 1);
// 补充 merchantId + appId + notifyUrl 字段
if (Objects.equals(task.getType(), PayNotifyTypeEnum.ORDER.getType())) {
@@ -232,7 +231,7 @@ public class PayNotifyServiceImpl implements PayNotifyService {
// 设置通用的更新 PayNotifyTaskDO 的字段
PayNotifyTaskDO updateTask = new PayNotifyTaskDO()
.setId(task.getId())
- .setLastExecuteTime(new Date())
+ .setLastExecuteTime(LocalDateTime.now())
.setNotifyTimes(task.getNotifyTimes() + 1);
// 情况一:调用成功
@@ -247,7 +246,7 @@ public class PayNotifyServiceImpl implements PayNotifyService {
return updateTask.getStatus();
}
// 2.2 未超过最大回调次数
- updateTask.setNextNotifyTime(DateUtils.addDate(Calendar.SECOND, PayNotifyTaskDO.NOTIFY_FREQUENCY[updateTask.getNotifyTimes()]));
+ updateTask.setNextNotifyTime(LocalDateTime.now().plusSeconds(PayNotifyTaskDO.NOTIFY_FREQUENCY[updateTask.getNotifyTimes()]));
updateTask.setStatus(invokeException != null ? PayNotifyStatusEnum.REQUEST_FAILURE.getStatus()
: PayNotifyStatusEnum.REQUEST_SUCCESS.getStatus());
return updateTask.getStatus();
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java
index 72bfac0234..67a3e7152f 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java
@@ -38,8 +38,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -204,7 +204,7 @@ public class PayOrderServiceImpl implements PayOrderService {
// 目前的算法
// 时间序列,年月日时分秒 14 位
// 纯随机,6 位 TODO 芋艿:此处估计是会有问题的,后续在调整
- return DateUtil.format(new Date(), "yyyyMMddHHmmss") + // 时间序列
+ return DateUtil.format(LocalDateTime.now(), "yyyyMMddHHmmss") + // 时间序列
RandomUtil.randomInt(100000, 999999) // 随机。为什么是这个范围,因为偷懒
;
}
@@ -259,7 +259,7 @@ public class PayOrderServiceImpl implements PayOrderService {
PayOrderDO.builder().status(PayOrderStatusEnum.SUCCESS.getStatus()).channelId(channelId).channelCode(channel.getCode())
.successTime(notifyRespDTO.getSuccessTime()).successExtensionId(orderExtension.getId())
.channelOrderNo(notifyRespDTO.getChannelOrderNo()).channelUserId(notifyRespDTO.getChannelUserId())
- .notifyTime(new Date()).build());
+ .notifyTime(LocalDateTime.now()).build());
if (updateCounts == 0) { // 校验状态,必须是待支付
throw ServiceExceptionUtil.exception(ErrorCodeConstants.PAY_ORDER_STATUS_IS_NOT_WAITING);
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/dto/PayOrderCreateReqDTO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/dto/PayOrderCreateReqDTO.java
index 62bf511de4..285158f0b1 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/dto/PayOrderCreateReqDTO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/dto/PayOrderCreateReqDTO.java
@@ -7,7 +7,7 @@ import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 支付单创建 Request DTO
@@ -59,6 +59,6 @@ public class PayOrderCreateReqDTO implements Serializable {
* 支付过期时间
*/
@NotNull(message = "支付过期时间不能为空")
- private Date expireTime;
+ private LocalDateTime expireTime;
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java
index 4e3a151fbe..d51d00c20e 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java
@@ -40,7 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
@@ -223,7 +223,7 @@ public class PayRefundServiceImpl implements PayRefundService {
.setSuccessTime(refundNotify.getRefundSuccessTime())
.setChannelRefundNo(refundNotify.getChannelOrderNo())
.setTradeNo(refundNotify.getTradeNo())
- .setNotifyTime(new Date())
+ .setNotifyTime(LocalDateTime.now())
.setStatus(PayRefundStatusEnum.SUCCESS.getStatus());
refundMapper.updateById(updateRefundDO);
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/util/PaySeqUtils.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/util/PaySeqUtils.java
index e6409e9603..416524ae25 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/util/PaySeqUtils.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/util/PaySeqUtils.java
@@ -2,9 +2,8 @@ package cn.iocoder.yudao.module.pay.util;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.RandomUtil;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.concurrent.atomic.AtomicLong;
/**
@@ -25,7 +24,7 @@ public class PaySeqUtils {
*/
public static String genMerchantRefundNo() {
return String.format("%s%s%04d", "MR",
- DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN),
+ DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_MS_PATTERN),
(int) MER_REFUND_NO_SEQ.getAndIncrement() % 10000);
}
@@ -35,7 +34,7 @@ public class PaySeqUtils {
*/
public static String genRefundReqNo() {
return String.format("%s%s%04d", "RR",
- DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN),
+ DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_MS_PATTERN),
(int) REFUND_REQ_NO_SEQ.getAndIncrement() % 10000);
}
@@ -45,7 +44,7 @@ public class PaySeqUtils {
*/
public static String genMerchantOrderNo() {
return String.format("%s%s%04d", "MO",
- DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN),
+ DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_MS_PATTERN),
(int) MER_ORDER_NO_SEQ.getAndIncrement() % 10000);
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java
index aae8183076..2a63c3aea7 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java
@@ -18,11 +18,11 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.Collections;
-import java.util.Date;
import java.util.List;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
@@ -123,7 +123,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
o.setPayNotifyUrl("https://www.hc.com");
o.setRefundNotifyUrl("https://www.xm.com");
o.setMerchantId(merchantId);
- o.setCreateTime(buildTime(2021,11,20));
+ o.setCreateTime(buildLocalDateTime(2021,11,20));
});
// mock 数据
@@ -134,7 +134,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
o.setShortName("灿灿子");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
o.setRemark("灿哥的杂货铺");
- o.setCreateTime(buildTime(2021,11,3));
+ o.setCreateTime(buildLocalDateTime(2021,11,3));
});
Mockito.when(payMerchantMapper.getMerchantListByName(dbMerchant.getName()))
@@ -154,7 +154,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
// 测试 merchantId 不匹配
appMapper.insert(cloneIgnoreId(dbApp, o -> o.setMerchantId(mismatchMerchantId)));
// 测试 createTime 不匹配
- appMapper.insert(cloneIgnoreId(dbApp, o -> o.setCreateTime(buildTime(2021,12,21))));
+ appMapper.insert(cloneIgnoreId(dbApp, o -> o.setCreateTime(buildLocalDateTime(2021,12,21))));
// 准备参数
PayAppPageReqVO reqVO = new PayAppPageReqVO();
reqVO.setName("灿灿姐的杂货铺");
@@ -163,7 +163,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
reqVO.setPayNotifyUrl("https://www.hc.com");
reqVO.setRefundNotifyUrl("https://www.xm.com");
reqVO.setMerchantName(dbMerchant.getName());
- reqVO.setCreateTime((new Date[]{buildTime(2021,11,19),buildTime(2021,11,21)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,19),buildLocalDateTime(2021,11,21)}));
// 调用
PageResult pageResult = appService.getAppPage(reqVO);
@@ -186,7 +186,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
o.setPayNotifyUrl("https://www.hc.com");
o.setRefundNotifyUrl("https://www.xm.com");
o.setMerchantId(merchantId);
- o.setCreateTime(buildTime(2021,11,20));
+ o.setCreateTime(buildLocalDateTime(2021,11,20));
});
// mock 数据
@@ -197,7 +197,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
o.setShortName("灿灿子");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
o.setRemark("灿哥的杂货铺");
- o.setCreateTime(buildTime(2021,11,3));
+ o.setCreateTime(buildLocalDateTime(2021,11,3));
});
Mockito.when(payMerchantMapper.getMerchantListByName(dbMerchant.getName()))
@@ -217,7 +217,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
// 测试 merchantId 不匹配
appMapper.insert(cloneIgnoreId(dbApp, o -> o.setMerchantId(mismatchMerchantId)));
// 测试 createTime 不匹配
- appMapper.insert(cloneIgnoreId(dbApp, o -> o.setCreateTime(buildTime(2021,12,21))));
+ appMapper.insert(cloneIgnoreId(dbApp, o -> o.setCreateTime(buildLocalDateTime(2021,12,21))));
// 准备参数
PayAppExportReqVO reqVO = new PayAppExportReqVO();
reqVO.setName("灿灿姐的杂货铺");
@@ -226,7 +226,7 @@ public class PayAppServiceTest extends BaseDbUnitTest {
reqVO.setPayNotifyUrl("https://www.hc.com");
reqVO.setRefundNotifyUrl("https://www.xm.com");
reqVO.setMerchantName(dbMerchant.getName());
- reqVO.setCreateTime((new Date[]{buildTime(2021,11,19),buildTime(2021,11,21)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,19),buildLocalDateTime(2021,11,21)}));
// 调用
List list = appService.getAppList(reqVO);
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java
index 550a788231..36e9ccfd23 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java
@@ -20,10 +20,10 @@ import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
import javax.validation.Validator;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
@@ -215,7 +215,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
o.setMerchantId(1L);
o.setAppId(1L);
o.setConfig(payClientConfig);
- o.setCreateTime(buildTime(2021,11,20));
+ o.setCreateTime(buildLocalDateTime(2021,11,20));
});
channelMapper.insert(dbChannel);
// 执行拷贝的时候会出现异常,所以在插入后要重置为null 后续在写入新的
@@ -253,7 +253,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
// 测试 createTime 不匹配
channelMapper.insert(cloneIgnoreId(dbChannel, o -> {
o.setConfig(payClientConfig);
- o.setCreateTime(buildTime(2021, 10, 20));
+ o.setCreateTime(buildLocalDateTime(2021, 10, 20));
}));
// 准备参数
PayChannelPageReqVO reqVO = new PayChannelPageReqVO();
@@ -264,7 +264,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
reqVO.setMerchantId(1L);
reqVO.setAppId(1L);
reqVO.setConfig(JSON.toJSONString(payClientConfig));
- reqVO.setCreateTime((new Date[]{buildTime(2021,11,19),buildTime(2021,11,21)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,19),buildLocalDateTime(2021,11,21)}));
// 调用
PageResult pageResult = channelService.getChannelPage(reqVO);
@@ -288,7 +288,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
o.setMerchantId(1L);
o.setAppId(1L);
o.setConfig(payClientConfig);
- o.setCreateTime(buildTime(2021,11,20));
+ o.setCreateTime(buildLocalDateTime(2021,11,20));
});
channelMapper.insert(dbChannel);
// 执行拷贝的时候会出现异常,所以在插入后要重置为null 后续在写入新的
@@ -326,7 +326,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
// 测试 createTime 不匹配
channelMapper.insert(cloneIgnoreId(dbChannel, o -> {
o.setConfig(payClientConfig);
- o.setCreateTime(buildTime(2021, 10, 20));
+ o.setCreateTime(buildLocalDateTime(2021, 10, 20));
}));
// 准备参数
PayChannelExportReqVO reqVO = new PayChannelExportReqVO();
@@ -337,7 +337,7 @@ public class PayChannelServiceTest extends BaseDbUnitTest {
reqVO.setMerchantId(1L);
reqVO.setAppId(1L);
reqVO.setConfig(JSON.toJSONString(payClientConfig));
- reqVO.setCreateTime((new Date[]{buildTime(2021,11,19),buildTime(2021,11,21)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,19),buildLocalDateTime(2021,11,21)}));
// 调用
List list = channelService.getChannelList(reqVO);
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java
index 385c922025..766ef36db7 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java
@@ -14,10 +14,10 @@ import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
@@ -116,7 +116,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest {
o.setShortName("灿灿子");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
o.setRemark("灿哥的杂货铺");
- o.setCreateTime(buildTime(2021,11,3));
+ o.setCreateTime(buildLocalDateTime(2021,11,3));
});
merchantMapper.insert(dbMerchant);
// 测试 no 不匹配
@@ -130,7 +130,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest {
// 测试 remark 不匹配
merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setRemark("斌哥的杂货铺")));
// 测试 createTime 不匹配
- merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setCreateTime(buildTime(2022,12,4))));
+ merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setCreateTime(buildLocalDateTime(2022,12,4))));
// 准备参数
PayMerchantPageReqVO reqVO = new PayMerchantPageReqVO();
reqVO.setNo("M1008611");
@@ -138,7 +138,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest {
reqVO.setShortName("灿灿子");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
reqVO.setRemark("灿哥的杂货铺");
- reqVO.setCreateTime((new Date[]{buildTime(2021,11,2),buildTime(2021,11,4)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,2),buildLocalDateTime(2021,11,4)}));
// 调用
PageResult pageResult = merchantService.getMerchantPage(reqVO);
@@ -157,7 +157,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest {
o.setShortName("灿灿子");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
o.setRemark("灿哥的杂货铺");
- o.setCreateTime(buildTime(2021,11,3));
+ o.setCreateTime(buildLocalDateTime(2021,11,3));
});
merchantMapper.insert(dbMerchant);
// 测试 no 不匹配
@@ -171,7 +171,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest {
// 测试 remark 不匹配
merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setRemark("斌哥的杂货铺")));
// 测试 createTime 不匹配
- merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setCreateTime(buildTime(2022,12,4))));
+ merchantMapper.insert(cloneIgnoreId(dbMerchant, o -> o.setCreateTime(buildLocalDateTime(2022,12,4))));
// 准备参数
PayMerchantExportReqVO reqVO = new PayMerchantExportReqVO();
reqVO.setNo("M1008611");
@@ -179,7 +179,7 @@ public class PayMerchantServiceTest extends BaseDbUnitTest {
reqVO.setShortName("灿灿子");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
reqVO.setRemark("灿哥的杂货铺");
- reqVO.setCreateTime((new Date[]{buildTime(2021,11,2),buildTime(2021,11,4)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021,11,2),buildLocalDateTime(2021,11,4)}));
// 调用
List list = merchantService.getMerchantList(reqVO);
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java
index 09cd6c3ecc..8cb3efa7a3 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java
@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.pay.service.order;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import cn.iocoder.yudao.framework.pay.config.PayProperties;
import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
@@ -23,10 +22,9 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
@@ -58,7 +56,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest {
private PayNotifyService notifyService;
public String generateNo() {
- return DateUtil.format(new Date(), "yyyyMMddHHmmss") + RandomUtil.randomInt(100000, 999999);
+ return DateUtil.format(LocalDateTime.now(), "yyyyMMddHHmmss") + RandomUtil.randomInt(100000, 999999);
}
@Test
@@ -83,17 +81,17 @@ public class PayOrderServiceTest extends BaseDbUnitTest {
o.setChannelFeeAmount(1L);
o.setStatus(PayOrderStatusEnum.SUCCESS.getStatus());
o.setUserIp("127.0.0.1");
- o.setCreateTime(DateUtils.buildTime(2018, 1, 1, 10, 1, 0));
- o.setExpireTime(DateUtils.buildTime(2018, 1, 1, 10, 30, 0));
- o.setSuccessTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 2));
- o.setNotifyTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 15));
+ o.setCreateTime(LocalDateTime.of(2018, 1, 1, 10, 1, 0));
+ o.setExpireTime(LocalDateTime.of(2018, 1, 1, 10, 30, 0));
+ o.setSuccessTime(LocalDateTime.of(2018, 1, 1, 10, 10, 2));
+ o.setNotifyTime(LocalDateTime.of(2018, 1, 1, 10, 10, 15));
o.setSuccessExtensionId(1L);
o.setRefundStatus(PayRefundTypeEnum.NO.getStatus());
o.setRefundTimes(0);
o.setRefundAmount(0L);
o.setChannelUserId("1008611");
o.setChannelOrderNo(channelOrderId);
- o.setUpdateTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 15));
+ o.setUpdateTime(LocalDateTime.of(2018, 1, 1, 10, 10, 15));
});
orderMapper.insert(dbOrder);
// 测试 merchantId 不匹配
@@ -113,7 +111,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest {
// 测试 refundStatus 不匹配
orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setRefundStatus(PayRefundTypeEnum.ALL.getStatus())));
// 测试 createTime 不匹配
- orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setCreateTime(DateUtils.buildTime(2019, 1, 1, 10, 10,
+ orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setCreateTime(LocalDateTime.of(2019, 1, 1, 10, 10,
1))));
// 准备参数
PayOrderPageReqVO reqVO = new PayOrderPageReqVO();
@@ -125,7 +123,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest {
reqVO.setNotifyStatus(PayOrderNotifyStatusEnum.SUCCESS.getStatus());
reqVO.setStatus(PayOrderStatusEnum.SUCCESS.getStatus());
reqVO.setRefundStatus(PayRefundTypeEnum.NO.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2018, 1, 1, 10, 1, 0),buildTime(2018, 1, 1, 10, 1, 0)}));
+ reqVO.setCreateTime((new LocalDateTime[]{LocalDateTime.of(2018, 1, 1, 10, 1, 0), LocalDateTime.of(2018, 1, 1, 10, 1, 0)}));
// 调用
PageResult pageResult = orderService.getOrderPage(reqVO);
// 断言
@@ -155,17 +153,17 @@ public class PayOrderServiceTest extends BaseDbUnitTest {
o.setChannelFeeAmount(1L);
o.setStatus(PayOrderStatusEnum.SUCCESS.getStatus());
o.setUserIp("127.0.0.1");
- o.setCreateTime(DateUtils.buildTime(2018, 1, 1, 10, 1, 0));
- o.setExpireTime(DateUtils.buildTime(2018, 1, 1, 10, 30, 0));
- o.setSuccessTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 2));
- o.setNotifyTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 15));
+ o.setCreateTime(LocalDateTime.of(2018, 1, 1, 10, 1, 0));
+ o.setExpireTime(LocalDateTime.of(2018, 1, 1, 10, 30, 0));
+ o.setSuccessTime(LocalDateTime.of(2018, 1, 1, 10, 10, 2));
+ o.setNotifyTime(LocalDateTime.of(2018, 1, 1, 10, 10, 15));
o.setSuccessExtensionId(1L);
o.setRefundStatus(PayRefundTypeEnum.NO.getStatus());
o.setRefundTimes(0);
o.setRefundAmount(0L);
o.setChannelUserId("1008611");
o.setChannelOrderNo(channelOrderId);
- o.setUpdateTime(DateUtils.buildTime(2018, 1, 1, 10, 10, 15));
+ o.setUpdateTime(LocalDateTime.of(2018, 1, 1, 10, 10, 15));
});
orderMapper.insert(dbOrder);
@@ -186,7 +184,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest {
// 测试 refundStatus 不匹配
orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setRefundStatus(PayRefundTypeEnum.ALL.getStatus())));
// 测试 createTime 不匹配
- orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setCreateTime(DateUtils.buildTime(2019, 1, 1, 10, 10,
+ orderMapper.insert(cloneIgnoreId(dbOrder, o -> o.setCreateTime(LocalDateTime.of(2019, 1, 1, 10, 10,
1))));
// 准备参数
PayOrderExportReqVO reqVO = new PayOrderExportReqVO();
@@ -198,7 +196,7 @@ public class PayOrderServiceTest extends BaseDbUnitTest {
reqVO.setNotifyStatus(PayOrderNotifyStatusEnum.SUCCESS.getStatus());
reqVO.setStatus(PayOrderStatusEnum.SUCCESS.getStatus());
reqVO.setRefundStatus(PayRefundTypeEnum.NO.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2018, 1, 1, 10, 1, 0),buildTime(2018, 1, 1, 10, 1, 0)}));
+ reqVO.setCreateTime((new LocalDateTime[]{LocalDateTime.of(2018, 1, 1, 10, 1, 0), LocalDateTime.of(2018, 1, 1, 10, 1, 0)}));
// 调用
List list = orderService.getOrderList(reqVO);
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java
index d35ad3cb8f..3815e16204 100755
--- a/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java
@@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.pay.service.refund;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
@@ -22,10 +21,9 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
@@ -78,11 +76,11 @@ public class PayRefundServiceTest extends BaseDbUnitTest {
o.setChannelErrorCode("");
o.setChannelErrorMsg("");
o.setChannelExtras("");
- o.setExpireTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 30));
- o.setSuccessTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 15));
- o.setNotifyTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 20));
- o.setCreateTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 10));
- o.setUpdateTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 35));
+ o.setExpireTime(LocalDateTime.of(2021, 1, 1, 10, 10, 30));
+ o.setSuccessTime(LocalDateTime.of(2021, 1, 1, 10, 10, 15));
+ o.setNotifyTime(LocalDateTime.of(2021, 1, 1, 10, 10, 20));
+ o.setCreateTime(LocalDateTime.of(2021, 1, 1, 10, 10, 10));
+ o.setUpdateTime(LocalDateTime.of(2021, 1, 1, 10, 10, 35));
});
refundMapper.insert(dbRefund);
// 测试 merchantId 不匹配
@@ -102,7 +100,7 @@ public class PayRefundServiceTest extends BaseDbUnitTest {
refundMapper.insert(cloneIgnoreId(dbRefund, o -> o.setType(PayRefundTypeEnum.ALL.getStatus())));
// 测试 createTime 不匹配
refundMapper.insert(cloneIgnoreId(dbRefund, o ->
- o.setCreateTime(DateUtils.buildTime(2022, 1, 1, 10, 10, 10))));
+ o.setCreateTime(LocalDateTime.of(2022, 1, 1, 10, 10, 10))));
// 准备参数
PayRefundPageReqVO reqVO = new PayRefundPageReqVO();
reqVO.setMerchantId(1L);
@@ -112,7 +110,7 @@ public class PayRefundServiceTest extends BaseDbUnitTest {
reqVO.setNotifyStatus(PayOrderNotifyStatusEnum.SUCCESS.getStatus());
reqVO.setStatus(PayRefundStatusEnum.SUCCESS.getStatus());
reqVO.setType(PayRefundTypeEnum.SOME.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 1, 10, 10, 10),buildTime(2021, 1, 1, 10, 10, 12)}));
+ reqVO.setCreateTime((new LocalDateTime[]{LocalDateTime.of(2021, 1, 1, 10, 10, 10), LocalDateTime.of(2021, 1, 1, 10, 10, 12)}));
// 调用
PageResult pageResult = refundService.getRefundPage(reqVO);
@@ -147,11 +145,11 @@ public class PayRefundServiceTest extends BaseDbUnitTest {
o.setChannelErrorCode("");
o.setChannelErrorMsg("");
o.setChannelExtras("");
- o.setExpireTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 30));
- o.setSuccessTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 15));
- o.setNotifyTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 20));
- o.setCreateTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 10));
- o.setUpdateTime(DateUtils.buildTime(2021, 1, 1, 10, 10, 35));
+ o.setExpireTime(LocalDateTime.of(2021, 1, 1, 10, 10, 30));
+ o.setSuccessTime(LocalDateTime.of(2021, 1, 1, 10, 10, 15));
+ o.setNotifyTime(LocalDateTime.of(2021, 1, 1, 10, 10, 20));
+ o.setCreateTime(LocalDateTime.of(2021, 1, 1, 10, 10, 10));
+ o.setUpdateTime(LocalDateTime.of(2021, 1, 1, 10, 10, 35));
});
refundMapper.insert(dbRefund);
// 测试 merchantId 不匹配
@@ -171,7 +169,7 @@ public class PayRefundServiceTest extends BaseDbUnitTest {
refundMapper.insert(cloneIgnoreId(dbRefund, o -> o.setType(PayRefundTypeEnum.ALL.getStatus())));
// 测试 createTime 不匹配
refundMapper.insert(cloneIgnoreId(dbRefund, o ->
- o.setCreateTime(DateUtils.buildTime(2022, 1, 1, 10, 10, 10))));
+ o.setCreateTime(LocalDateTime.of(2022, 1, 1, 10, 10, 10))));
// 准备参数
PayRefundExportReqVO reqVO = new PayRefundExportReqVO();
@@ -182,7 +180,7 @@ public class PayRefundServiceTest extends BaseDbUnitTest {
reqVO.setNotifyStatus(PayOrderNotifyStatusEnum.SUCCESS.getStatus());
reqVO.setStatus(PayRefundStatusEnum.SUCCESS.getStatus());
reqVO.setType(PayRefundTypeEnum.SOME.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 1, 10, 10, 10),buildTime(2021, 1, 1, 10, 10, 12)}));
+ reqVO.setCreateTime((new LocalDateTime[]{LocalDateTime.of(2021, 1, 1, 10, 10, 10), LocalDateTime.of(2021, 1, 1, 10, 10, 12)}));
// 调用
List list = refundService.getRefundList(reqVO);
diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApi.java
index 7e504490f2..b41728d402 100644
--- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApi.java
+++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApi.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReq
import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO;
import javax.validation.Valid;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -30,6 +30,6 @@ public interface ErrorCodeApi {
* @param minUpdateTime 最小更新时间
* @return 错误码数组
*/
- List getErrorCodeList(String applicationName, Date minUpdateTime);
+ List getErrorCodeList(String applicationName, LocalDateTime minUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeRespDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeRespDTO.java
index 1f5a27f8a2..99372300b9 100644
--- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeRespDTO.java
+++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeRespDTO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.api.errorcode.dto;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 错误码的 Response DTO
@@ -23,6 +23,6 @@ public class ErrorCodeRespDTO {
/**
* 更新时间
*/
- private Date updateTime;
+ private LocalDateTime updateTime;
}
diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java
index 80161f77fe..d09bc26cc5 100644
--- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java
+++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java
@@ -4,7 +4,7 @@ import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Map;
/**
@@ -96,7 +96,7 @@ public class OperateLogCreateReqDTO {
* 开始时间
*/
@NotNull(message = "开始时间不能为空")
- private Date startTime;
+ private LocalDateTime startTime;
/**
* 执行时长,单位:毫秒
diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java
index 04c0dbe04f..4c826325a7 100644
--- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java
+++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java
@@ -4,7 +4,7 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* OAuth2.0 访问令牌的信息 Response DTO
@@ -34,6 +34,6 @@ public class OAuth2AccessTokenRespDTO implements Serializable {
/**
* 过期时间
*/
- private Date expiresTime;
+ private LocalDateTime expiresTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApiImpl.java
index 895aaebcc6..b68c632157 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApiImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApiImpl.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.service.errorcode.ErrorCodeService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -26,7 +26,7 @@ public class ErrorCodeApiImpl implements ErrorCodeApi {
}
@Override
- public List getErrorCodeList(String applicationName, Date minUpdateTime) {
+ public List getErrorCodeList(String applicationName, LocalDateTime minUpdateTime) {
return errorCodeService.getErrorCodeList(applicationName, minUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java
index ec83a69962..6e1882887f 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java
@@ -7,7 +7,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 登录 Response VO")
@Data
@@ -26,6 +26,6 @@ public class AuthLoginRespVO {
private String refreshToken;
@ApiModelProperty(value = "过期时间", required = true)
- private Date expiresTime;
+ private LocalDateTime expiresTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.java
new file mode 100644
index 0000000000..8fbb7c0cad
--- /dev/null
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.java
@@ -0,0 +1,45 @@
+package cn.iocoder.yudao.module.system.controller.admin.captcha;
+
+import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
+import com.anji.captcha.model.common.ResponseModel;
+import com.anji.captcha.model.vo.CaptchaVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.security.PermitAll;
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 验证码
+ *
+ * 问题:为什么不直接使用 anji 提供的 CaptchaController,而要另外继承?
+ * 回答:管理使用 /admin-api/* 作为前缀,所以需要继承!
+ *
+ * @author 芋道源码
+ */
+@Api(tags = "管理后台 - 验证码")
+@RestController("adminCaptchaController")
+@RequestMapping("/system/captcha")
+public class CaptchaController extends com.anji.captcha.controller.CaptchaController {
+
+ @PostMapping({"/get"})
+ @ApiOperation("获得验证码")
+ @PermitAll
+ @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
+ public ResponseModel get(@RequestBody CaptchaVO data, HttpServletRequest request) {
+ return super.get(data, request);
+ }
+
+ @PostMapping("/check")
+ @ApiOperation("校验验证码")
+ @PermitAll
+ @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
+ public ResponseModel check(@RequestBody CaptchaVO data, HttpServletRequest request) {
+ return super.check(data, request);
+ }
+
+}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java
index 072df230a7..a3361cdd6d 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 部门信息 Response VO")
@Data
@@ -19,6 +19,6 @@ public class DeptRespVO extends DeptBaseVO {
private Integer status;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java
index 834e686179..d6aa60d17b 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 岗位信息 Response VO")
@Data
@@ -16,6 +16,6 @@ public class PostRespVO extends PostBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java
index 697097008e..3cf1177d17 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 字典数据信息 Response VO")
@Data
@@ -20,6 +20,6 @@ public class DictDataRespVO extends DictDataBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeExportReqVO.java
index e952b6b2fd..4a54fb3fc5 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -24,6 +24,6 @@ public class DictTypeExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java
index 5eab6bd809..f32886196e 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Size;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -29,6 +29,6 @@ public class DictTypePageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java
index 9cfafdfa40..c508df6af6 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 字典类型信息 Response VO")
@Data
@@ -23,6 +23,6 @@ public class DictTypeRespVO extends DictTypeBaseVO {
private String type;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExcelVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExcelVO.java
index a9c317bfba..8af519d25a 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExcelVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExcelVO.java
@@ -2,11 +2,10 @@ package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
-//import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 错误码 Excel VO
@@ -36,6 +35,6 @@ public class ErrorCodeExcelVO {
private String memo;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExportReqVO.java
index 8659602f76..e44858160c 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -27,6 +27,6 @@ public class ErrorCodeExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java
index cd01bdd43f..8c719006c3 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -32,6 +32,6 @@ public class ErrorCodePageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java
index 8b5cd3e725..47276517c2 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 错误码 Response VO")
@Data
@@ -21,6 +21,6 @@ public class ErrorCodeRespVO extends ErrorCodeBaseVO {
private Integer type;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExcelVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExcelVO.java
index 300cd088d8..897fe44978 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExcelVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExcelVO.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 登录日志 Excel 导出响应 VO
@@ -35,6 +35,6 @@ public class LoginLogExcelVO {
private String userAgent;
@ExcelProperty("登录时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExportReqVO.java
index 558c24cd1b..50f36edb36 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -24,6 +24,6 @@ public class LoginLogExportReqVO {
@ApiModelProperty(value = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java
index b792f6a9b4..51ed062e88 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -27,6 +27,6 @@ public class LoginLogPageReqVO extends PageParam {
@ApiModelProperty(value = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java
index fd31ff7040..4eb121c02a 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java
@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.constraints.NotNull;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 登录日志 Response VO")
@Data
@@ -26,6 +26,6 @@ public class LoginLogRespVO extends LoginLogBaseVO {
private Integer userType;
@ApiModelProperty(value = "登录时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java
index 33b3670392..abaf412475 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java
@@ -5,7 +5,7 @@ import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Map;
/**
@@ -66,7 +66,7 @@ public class OperateLogBaseVO {
@ApiModelProperty(value = "开始时间", required = true)
@NotNull(message = "开始时间不能为空")
- private Date startTime;
+ private LocalDateTime startTime;
@ApiModelProperty(value = "执行时长,单位:毫秒", required = true)
@NotNull(message = "执行时长不能为空")
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExcelVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExcelVO.java
index 7f38cfc797..8285a9bf5b 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExcelVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExcelVO.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 操作日志 Excel 导出响应 VO
@@ -34,7 +34,7 @@ public class OperateLogExcelVO {
private String successStr;
@ExcelProperty("操作日志")
- private Date startTime;
+ private LocalDateTime startTime;
@ExcelProperty("执行时长")
private Integer duration;
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExportReqVO.java
index 12eaa7d666..2546812509 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -27,6 +27,6 @@ public class OperateLogExportReqVO {
@ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date[] startTime;
+ private LocalDateTime[] startTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java
index f8c594323b..9fa6fed665 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java
@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -28,6 +28,6 @@ public class OperateLogPageReqVO extends PageParam {
@ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date[] startTime;
+ private LocalDateTime[] startTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java
index 1f18df030e..bfa986b04e 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 通知公告信息 Response VO")
@Data
@@ -16,6 +16,6 @@ public class NoticeRespVO extends NoticeBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java
index 37800c2dcb..f4bdf4cc72 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - OAuth2 客户端 Response VO")
@Data
@@ -18,6 +18,6 @@ public class OAuth2ClientRespVO extends OAuth2ClientBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java
index b1d5a48ad9..76a2bb7d55 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java
@@ -6,7 +6,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 访问令牌 Response VO")
@Data
@@ -33,9 +33,9 @@ public class OAuth2AccessTokenRespVO {
private String clientId;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
@ApiModelProperty(value = "过期时间", required = true)
- private Date expiresTime;
+ private LocalDateTime expiresTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java
index 34d70f4f53..c6482b296c 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 菜单信息 Response VO")
@Data
@@ -23,6 +23,6 @@ public class MenuRespVO extends MenuBaseVO {
private Integer status;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleExportReqVO.java
index d3ab4565f1..ca9bed7cdb 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -24,6 +24,6 @@ public class RoleExportReqVO {
@ApiModelProperty(value = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.java
index b1cb8f573b..040462a6f6 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.java
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -27,6 +27,6 @@ public class RolePageReqVO extends PageParam {
@ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java
index 31acbedcdc..6653820b0c 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Set;
@ApiModel("管理后台 - 角色信息 Response VO")
@@ -33,6 +33,6 @@ public class RoleRespVO extends RoleBaseVO {
private Integer type;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java
index 3cb13de98c..0057cacead 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -34,6 +34,6 @@ public class SensitiveWordExcelVO {
private String description;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java
index 85e2aa92e3..1addc4cfec 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -24,6 +24,6 @@ public class SensitiveWordExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java
index 411ff6e69e..0876701803 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -29,6 +29,6 @@ public class SensitiveWordPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java
index 35fb8c2c9c..c92a8d4e0e 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 敏感词 Response VO")
@Data
@@ -18,6 +18,6 @@ public class SensitiveWordRespVO extends SensitiveWordBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java
index b41ecc88c1..f35c5e8ac4 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -26,6 +26,6 @@ public class SmsChannelPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java
index b39e35edfd..d52b6d9e70 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 短信渠道 Response VO")
@Data
@@ -21,6 +21,6 @@ public class SmsChannelRespVO extends SmsChannelBaseVO {
private String code;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExcelVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExcelVO.java
index f638f58fc2..f84da74ac1 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExcelVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExcelVO.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Map;
/**
@@ -61,7 +61,7 @@ public class SmsLogExcelVO {
private Integer sendStatus;
@ExcelProperty("发送时间")
- private Date sendTime;
+ private LocalDateTime sendTime;
@ExcelProperty("发送结果的编码")
private Integer sendCode;
@@ -86,7 +86,7 @@ public class SmsLogExcelVO {
private Integer receiveStatus;
@ExcelProperty("接收时间")
- private Date receiveTime;
+ private LocalDateTime receiveTime;
@ExcelProperty("API 接收结果的编码")
private String apiReceiveCode;
@@ -95,6 +95,6 @@ public class SmsLogExcelVO {
private String apiReceiveMsg;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExportReqVO.java
index 0f493fa2b2..55a723a9c0 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -27,13 +27,13 @@ public class SmsLogExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始发送时间")
- private Date[] sendTime;
+ private LocalDateTime[] sendTime;
@ApiModelProperty(value = "接收状态", example = "0")
private Integer receiveStatus;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始接收时间")
- private Date[] receiveTime;
+ private LocalDateTime[] receiveTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java
index dc06961885..87e804796c 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -32,13 +32,13 @@ public class SmsLogPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "发送时间")
- private Date[] sendTime;
+ private LocalDateTime[] sendTime;
@ApiModelProperty(value = "接收状态", example = "0", notes = "参见 SmsReceiveStatusEnum 枚举类")
private Integer receiveStatus;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "接收时间")
- private Date[] receiveTime;
+ private LocalDateTime[] receiveTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java
index e179f4a5e6..aee9657c80 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java
@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Map;
@ApiModel("管理后台 - 短信日志 Response VO")
@@ -51,7 +51,7 @@ public class SmsLogRespVO {
private Integer sendStatus;
@ApiModelProperty(value = "发送时间")
- private Date sendTime;
+ private LocalDateTime sendTime;
@ApiModelProperty(value = "发送结果的编码", example = "0")
private Integer sendCode;
@@ -75,7 +75,7 @@ public class SmsLogRespVO {
private Integer receiveStatus;
@ApiModelProperty(value = "接收时间")
- private Date receiveTime;
+ private LocalDateTime receiveTime;
@ApiModelProperty(value = "API 接收结果的编码", example = "DELIVRD")
private String apiReceiveCode;
@@ -84,6 +84,6 @@ public class SmsLogRespVO {
private String apiReceiveMsg;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExcelVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExcelVO.java
index a640a93c1b..f4f34bd1d4 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExcelVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExcelVO.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 短信模板 Excel VO
@@ -50,6 +50,6 @@ public class SmsTemplateExcelVO {
private String channelCode;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExportReqVO.java
index b25e60548d..df5947adca 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -33,6 +33,6 @@ public class SmsTemplateExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java
index 5a6a3d47f4..129e0f7a86 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -38,6 +38,6 @@ public class SmsTemplatePageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java
index 6633c383b3..8a10503cb5 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
@ApiModel("管理后台 - 短信模板 Response VO")
@@ -25,6 +25,6 @@ public class SmsTemplateRespVO extends SmsTemplateBaseVO {
private List params;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java
index ff3a9b3ec9..7a2fd2493b 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -29,5 +29,5 @@ public class TenantPackagePageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java
index 4434d56a0f..b46772922c 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java
@@ -6,7 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import java.util.Date;
+import java.time.LocalDateTime;
@ApiModel("管理后台 - 租户套餐 Response VO")
@Data
@@ -18,6 +18,6 @@ public class TenantPackageRespVO extends TenantPackageBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java
index 4a703e911a..226c9b4499 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.*;
import org.hibernate.validator.constraints.URL;
import javax.validation.constraints.*;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 租户 Base VO,提供给添加、修改、详细的子 VO 使用
@@ -39,7 +39,7 @@ public class TenantBaseVO {
@ApiModelProperty(value = "过期时间", required = true)
@NotNull(message = "过期时间不能为空")
- private Date expireTime;
+ private LocalDateTime expireTime;
@ApiModelProperty(value = "账号数量", required = true, example = "1024")
@NotNull(message = "账号数量不能为空")
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExcelVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExcelVO.java
index 531060ace7..7ea57714de 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExcelVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant;
import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import lombok.*;
-import java.util.*;
+import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
@@ -34,6 +34,6 @@ public class TenantExcelVO {
private Integer status;
@ExcelProperty("创建时间")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExportReqVO.java
index dcf0bb1206..6498714aff 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantExportReqVO.java
@@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -27,6 +27,6 @@ public class TenantExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java
index 711ac3c845..499ecfd2f0 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java
@@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -32,6 +32,6 @@ public class TenantPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "创建时间")
- private Date[] createTime;
+ private LocalDateTime[] createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java
index 8957ccf541..b2345d1676 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java
@@ -1,9 +1,10 @@
package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant;
import lombok.*;
-import java.util.*;
import io.swagger.annotations.*;
+import java.time.LocalDateTime;
+
@ApiModel("管理后台 - 租户 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@@ -14,6 +15,6 @@ public class TenantRespVO extends TenantBaseVO {
private Long id;
@ApiModelProperty(value = "创建时间", required = true)
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java
index c14a2903dd..8767c05931 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java
@@ -8,7 +8,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
@@ -29,10 +29,10 @@ public class UserProfileRespVO extends UserBaseVO {
private String loginIp;
@ApiModelProperty(value = "最后登录时间", required = true, example = "时间戳格式")
- private Date loginDate;
+ private LocalDateTime loginDate;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
/**
* 所属角色
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExcelVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExcelVO.java
index a9163cb6cf..16899c2637 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExcelVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExcelVO.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 用户 Excel 导出 VO
@@ -41,7 +41,7 @@ public class UserExcelVO {
private String loginIp;
@ExcelProperty("最后登录时间")
- private Date loginDate;
+ private LocalDateTime loginDate;
@ExcelProperty("部门名称")
private String deptName;
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExportReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExportReqVO.java
index aa7e09641d..387ad784ad 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExportReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExportReqVO.java
@@ -7,7 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -28,7 +28,7 @@ public class UserExportReqVO {
@ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date[] createTime;
+ private LocalDateTime[] createTime;
@ApiModelProperty(value = "部门编号", example = "1024", notes = "同时筛选子部门")
private Long deptId;
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java
index cd2ddcd12d..cbac2d9a59 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
+import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -31,7 +31,7 @@ public class UserPageReqVO extends PageParam {
@ApiModelProperty(value = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private Date[] createTime;
+ private LocalDateTime[] createTime;
@ApiModelProperty(value = "部门编号", example = "1024", notes = "同时筛选子部门")
private Long deptId;
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java
index b4525a5553..972b3818b7 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java
@@ -4,7 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
-import java.util.Date;
+import java.time.LocalDateTime;
+
@ApiModel("管理后台 - 用户信息 Response VO")
@Data
@@ -23,9 +24,9 @@ public class UserRespVO extends UserBaseVO {
private String loginIp;
@ApiModelProperty(value = "最后登录时间", required = true, example = "时间戳格式")
- private Date loginDate;
+ private LocalDateTime loginDate;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
- private Date createTime;
+ private LocalDateTime createTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.java
index fd51003032..3426e5c8fd 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.convert.oauth2;
+import cn.hutool.core.date.LocalDateTimeUtil;
import cn.iocoder.yudao.framework.common.core.KeyValue;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
@@ -34,7 +35,7 @@ public interface OAuth2OpenConvert {
default OAuth2OpenCheckTokenRespVO convert2(OAuth2AccessTokenDO bean) {
OAuth2OpenCheckTokenRespVO respVO = convert3(bean);
- respVO.setExp(bean.getExpiresTime().getTime() / 1000L);
+ respVO.setExp(LocalDateTimeUtil.toEpochMilli(bean.getExpiresTime()) / 1000L);
respVO.setUserType(UserTypeEnum.ADMIN.getValue());
return respVO;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
index fbd65012ea..d4d4df4971 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
@@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Map;
/**
@@ -117,7 +117,7 @@ public class OperateLogDO extends BaseDO {
/**
* 开始时间
*/
- private Date startTime;
+ private LocalDateTime startTime;
/**
* 执行时长,单位:毫秒
*/
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java
index 5c2340e519..e09551dfc7 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java
@@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -64,6 +64,6 @@ public class OAuth2AccessTokenDO extends TenantBaseDO {
/**
* 过期时间
*/
- private Date expiresTime;
+ private LocalDateTime expiresTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java
index 501b799f08..e07b0a017b 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java
@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* OAuth2 批准 DO
@@ -58,6 +58,6 @@ public class OAuth2ApproveDO extends BaseDO {
/**
* 过期时间
*/
- private Date expiresTime;
+ private LocalDateTime expiresTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java
index 92fec8e75f..fad9c16e91 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -63,6 +63,6 @@ public class OAuth2CodeDO extends BaseDO {
/**
* 过期时间
*/
- private Date expiresTime;
+ private LocalDateTime expiresTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java
index deb7d18aaa..70ddea20ed 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java
@@ -10,7 +10,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -58,6 +58,6 @@ public class OAuth2RefreshTokenDO extends BaseDO {
/**
* 过期时间
*/
- private Date expiresTime;
+ private LocalDateTime expiresTime;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java
index e1b98f63c7..4e0aa25c39 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java
@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 手机验证码 DO
@@ -56,7 +56,7 @@ public class SmsCodeDO extends BaseDO {
/**
* 使用时间
*/
- private Date usedTime;
+ private LocalDateTime usedTime;
/**
* 使用 IP
*/
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java
index 674e0edea5..173c21c4d0 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java
@@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Map;
/**
@@ -114,7 +114,7 @@ public class SmsLogDO extends BaseDO {
/**
* 发送时间
*/
- private Date sendTime;
+ private LocalDateTime sendTime;
/**
* 发送结果的编码
*
@@ -162,7 +162,7 @@ public class SmsLogDO extends BaseDO {
/**
* 接收时间
*/
- private Date receiveTime;
+ private LocalDateTime receiveTime;
/**
* 短信 API 接收结果的编码
*/
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java
index 13cdd29129..17b42efa3a 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
-import java.util.Date;
+import java.time.LocalDateTime;
/**
* 租户 DO
@@ -73,7 +73,7 @@ public class TenantDO extends BaseDO {
/**
* 过期时间
*/
- private Date expireTime;
+ private LocalDateTime expireTime;
/**
* 账号数量
*/
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java
index 6a16ebf40b..287a388d96 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java
@@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Set;
/**
@@ -91,6 +91,6 @@ public class AdminUserDO extends TenantBaseDO {
/**
* 最后登录时间
*/
- private Date loginDate;
+ private LocalDateTime loginDate;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java
index 1d49d36437..c8e6cf1f87 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java
@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
@Mapper
@@ -31,6 +31,6 @@ public interface DeptMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_dept WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorcode/ErrorCodeMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorcode/ErrorCodeMapper.java
index 0fcfbf68bd..3cb6bc8afc 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorcode/ErrorCodeMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorcode/ErrorCodeMapper.java
@@ -8,8 +8,8 @@ import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodePag
import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO;
import org.apache.ibatis.annotations.Mapper;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
@Mapper
@@ -43,7 +43,7 @@ public interface ErrorCodeMapper extends BaseMapperX {
return selectOne(new LambdaQueryWrapperX().eq(ErrorCodeDO::getCode, code));
}
- default List selectListByApplicationNameAndUpdateTimeGt(String applicationName, Date minUpdateTime) {
+ default List selectListByApplicationNameAndUpdateTimeGt(String applicationName, LocalDateTime minUpdateTime) {
return selectList(new LambdaQueryWrapperX().eq(ErrorCodeDO::getApplicationName, applicationName)
.gtIfPresent(ErrorCodeDO::getUpdateTime, minUpdateTime));
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java
index fc250d56aa..8a1e2876de 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2Acc
import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
import org.apache.ibatis.annotations.Mapper;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
@Mapper
@@ -26,7 +26,7 @@ public interface OAuth2AccessTokenMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_oauth2_client WHERE update_time > #{maxUpdateTime}")
- int selectCountByUpdateTimeGt(Date maxUpdateTime);
+ int selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java
index bfe887c9aa..1334a6e15a 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java
@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
@Mapper
@@ -29,6 +29,6 @@ public interface MenuMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_menu WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java
index de0bb68d93..1882236a3e 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java
@@ -11,8 +11,8 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.lang.Nullable;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
@Mapper
@@ -48,6 +48,6 @@ public interface RoleMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_role WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java
index 6db5831c49..a07e87cc99 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java
@@ -8,8 +8,8 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
@Mapper
@@ -37,6 +37,6 @@ public interface RoleMenuMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_role_menu WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java
index 51323d749c..e3700da920 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java
@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
@Mapper
@@ -40,6 +40,6 @@ public interface UserRoleMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_user_role WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java
index 85d5dd3e9d..8e2788f09b 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWord
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -43,6 +43,6 @@ public interface SensitiveWordMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_sensitive_word WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java
index d331ee43e3..ec38e896e6 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
-import java.util.Date;
+import java.time.LocalDateTime;
@Mapper
public interface SmsChannelMapper extends BaseMapperX {
@@ -22,6 +22,6 @@ public interface SmsChannelMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_sms_channel WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.java
index 33f93a8a19..8ebd34fcfe 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.java
@@ -20,7 +20,7 @@ public interface SmsLogMapper extends BaseMapperX {
.likeIfPresent(SmsLogDO::getMobile, reqVO.getMobile())
.eqIfPresent(SmsLogDO::getSendStatus, reqVO.getSendStatus())
.betweenIfPresent(SmsLogDO::getSendTime, reqVO.getSendTime())
- .eqIfPresent(SmsLogDO::getSendStatus, reqVO.getReceiveStatus())
+ .eqIfPresent(SmsLogDO::getReceiveStatus, reqVO.getReceiveStatus())
.betweenIfPresent(SmsLogDO::getReceiveTime, reqVO.getReceiveTime())
.orderByDesc(SmsLogDO::getId));
}
@@ -32,7 +32,7 @@ public interface SmsLogMapper extends BaseMapperX {
.likeIfPresent(SmsLogDO::getMobile, reqVO.getMobile())
.eqIfPresent(SmsLogDO::getSendStatus, reqVO.getSendStatus())
.betweenIfPresent(SmsLogDO::getSendTime, reqVO.getSendTime())
- .eqIfPresent(SmsLogDO::getSendStatus, reqVO.getReceiveStatus())
+ .eqIfPresent(SmsLogDO::getReceiveStatus, reqVO.getReceiveStatus())
.betweenIfPresent(SmsLogDO::getReceiveTime, reqVO.getReceiveTime())
.orderByDesc(SmsLogDO::getId));
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java
index d41ee75b06..08029f51b7 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java
@@ -9,14 +9,14 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
@Mapper
public interface SmsTemplateMapper extends BaseMapperX {
@Select("SELECT COUNT(*) FROM system_sms_template WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
default SmsTemplateDO selectByCode(String code) {
return selectOne(SmsTemplateDO::getCode, code);
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java
index 33771eeb24..6fe0e649a7 100755
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -53,6 +53,6 @@ public interface TenantMapper extends BaseMapperX {
}
@Select("SELECT COUNT(*) FROM system_tenant WHERE update_time > #{maxUpdateTime}")
- Long selectCountByUpdateTimeGt(Date maxUpdateTime);
+ Long selectCountByUpdateTimeGt(LocalDateTime maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java
index a65215224f..517b0aa119 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.dal.redis.oauth2;
+import cn.hutool.core.date.LocalDateTimeUtil;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
@@ -7,6 +8,8 @@ import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -33,8 +36,8 @@ public class OAuth2AccessTokenRedisDAO {
String redisKey = formatKey(accessTokenDO.getAccessToken());
// 清理多余字段,避免缓存
accessTokenDO.setUpdater(null).setUpdateTime(null).setCreateTime(null).setCreator(null).setDeleted(null);
- stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(accessTokenDO),
- accessTokenDO.getExpiresTime().getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
+ long time = LocalDateTimeUtil.between(LocalDateTime.now(), accessTokenDO.getExpiresTime(), ChronoUnit.SECONDS);
+ stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(accessTokenDO), time, TimeUnit.SECONDS);
}
public void delete(String accessToken) {
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/SmsCodeConfiguration.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/SmsCodeConfiguration.java
index eb8620c61f..ddc70a39ee 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/SmsCodeConfiguration.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/SmsCodeConfiguration.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.framework.sms;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
-@Configuration
+@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(SmsCodeProperties.class)
public class SmsCodeConfiguration {
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java
index 2408ad5591..64a195c858 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java
@@ -24,6 +24,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -64,7 +65,7 @@ public class DeptServiceImpl implements DeptService {
/**
* 缓存部门的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
- private volatile Date maxUpdateTime;
+ private volatile LocalDateTime maxUpdateTime;
@Resource
private DeptMapper deptMapper;
@@ -112,7 +113,7 @@ public class DeptServiceImpl implements DeptService {
* @param maxUpdateTime 当前部门的最大更新时间
* @return 部门列表
*/
- protected List loadDeptIfUpdate(Date maxUpdateTime) {
+ protected List loadDeptIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadMenuIfUpdate][首次加载全量部门]");
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeService.java
index 8536a262de..e6a2756120 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeService.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeService.java
@@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodeUpd
import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO;
import javax.validation.Valid;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -36,7 +36,7 @@ public interface ErrorCodeService {
* @param minUpdateTime 最小更新时间
* @return 错误码数组
*/
- List getErrorCodeList(String applicationName, Date minUpdateTime);
+ List getErrorCodeList(String applicationName, LocalDateTime minUpdateTime);
/**
* 创建错误码
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceImpl.java
index 2997e32ec3..d28f2baed1 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceImpl.java
@@ -19,7 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@@ -164,7 +164,7 @@ public class ErrorCodeServiceImpl implements ErrorCodeService {
}
@Override
- public List getErrorCodeList(String applicationName, Date minUpdateTime) {
+ public List getErrorCodeList(String applicationName, LocalDateTime minUpdateTime) {
List errorCodeDOs = errorCodeMapper.selectListByApplicationNameAndUpdateTimeGt(
applicationName, minUpdateTime);
return ErrorCodeConvert.INSTANCE.convertList03(errorCodeDOs);
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java
index 9ceb0d3cac..29f0f11b0c 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java
@@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
@@ -44,7 +45,7 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService {
Assert.notNull(clientDO, "客户端不能为空"); // 防御性编程
if (CollUtil.containsAll(clientDO.getAutoApproveScopes(), requestedScopes)) {
// gh-877 - if all scopes are auto approved, approvals still need to be added to the approval store.
- Date expireTime = DateUtils.addDate(Calendar.SECOND, TIMEOUT);
+ LocalDateTime expireTime = LocalDateTime.now().plusSeconds(TIMEOUT);
for (String scope : requestedScopes) {
saveApprove(userId, userType, clientId, scope, true, expireTime);
}
@@ -68,8 +69,8 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService {
// 更新批准的信息
boolean success = false; // 需要至少有一个同意
- Date expireTime = DateUtils.addDate(Calendar.SECOND, TIMEOUT);
- for (Map.Entry entry :requestedScopes.entrySet()) {
+ LocalDateTime expireTime = LocalDateTime.now().plusSeconds(TIMEOUT);
+ for (Map.Entry entry : requestedScopes.entrySet()) {
if (entry.getValue()) {
success = true;
}
@@ -88,7 +89,7 @@ public class OAuth2ApproveServiceImpl implements OAuth2ApproveService {
@VisibleForTesting
void saveApprove(Long userId, Integer userType, String clientId,
- String scope, Boolean approved, Date expireTime) {
+ String scope, Boolean approved, LocalDateTime expireTime) {
// 先更新
OAuth2ApproveDO approveDO = new OAuth2ApproveDO().setUserId(userId).setUserType(userType)
.setClientId(clientId).setScope(scope).setApproved(approved).setExpiresTime(expireTime);
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java
index a01cafdbfd..f49683f3f4 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java
@@ -23,6 +23,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -59,7 +60,7 @@ public class OAuth2ClientServiceImpl implements OAuth2ClientService {
* 缓存角色的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
@Getter
- private volatile Date maxUpdateTime;
+ private volatile LocalDateTime maxUpdateTime;
@Resource
private OAuth2ClientMapper oauth2ClientMapper;
@@ -97,7 +98,7 @@ public class OAuth2ClientServiceImpl implements OAuth2ClientService {
* @param maxUpdateTime 当前客户端的最大更新时间
* @return 客户端列表
*/
- private List loadOAuth2ClientIfUpdate(Date maxUpdateTime) {
+ private List loadOAuth2ClientIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadOAuth2ClientIfUpdate][首次加载全量客户端]");
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.java
index c4f72ff327..df6d4c88f4 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.java
@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
-import java.util.Calendar;
+import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -38,7 +38,7 @@ public class OAuth2CodeServiceImpl implements OAuth2CodeService {
OAuth2CodeDO codeDO = new OAuth2CodeDO().setCode(generateCode())
.setUserId(userId).setUserType(userType)
.setClientId(clientId).setScopes(scopes)
- .setExpiresTime(DateUtils.addDate(Calendar.SECOND, TIMEOUT))
+ .setExpiresTime(LocalDateTime.now().plusSeconds(TIMEOUT))
.setRedirectUri(redirectUri).setState(state);
oauth2CodeMapper.insert(codeDO);
return codeDO;
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
index d68382b751..bde7d2fd38 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.List;
@@ -137,7 +138,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
.setUserId(refreshTokenDO.getUserId()).setUserType(refreshTokenDO.getUserType())
.setClientId(clientDO.getClientId()).setScopes(refreshTokenDO.getScopes())
.setRefreshToken(refreshTokenDO.getRefreshToken())
- .setExpiresTime(DateUtils.addDate(Calendar.SECOND, clientDO.getAccessTokenValiditySeconds()));
+ .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds()));
accessTokenDO.setTenantId(TenantContextHolder.getTenantId()); // 手动设置租户编号,避免缓存到 Redis 的时候,无对应的租户编号
oauth2AccessTokenMapper.insert(accessTokenDO);
// 记录到 Redis 中
@@ -149,7 +150,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO().setRefreshToken(generateRefreshToken())
.setUserId(userId).setUserType(userType)
.setClientId(clientDO.getClientId()).setScopes(scopes)
- .setExpiresTime(DateUtils.addDate(Calendar.SECOND, clientDO.getRefreshTokenValiditySeconds()));
+ .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds()));
oauth2RefreshTokenMapper.insert(refreshToken);
return refreshToken;
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java
index e9aaf704e6..3d135177c9 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java
@@ -28,6 +28,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -66,7 +67,7 @@ public class MenuServiceImpl implements MenuService {
/**
* 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
- private volatile Date maxUpdateTime;
+ private volatile LocalDateTime maxUpdateTime;
@Resource
private MenuMapper menuMapper;
@@ -118,7 +119,7 @@ public class MenuServiceImpl implements MenuService {
* @param maxUpdateTime 当前菜单的最大更新时间
* @return 菜单列表
*/
- private List loadMenuIfUpdate(Date maxUpdateTime) {
+ private List loadMenuIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadMenuIfUpdate][首次加载全量菜单]");
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java
index 775c89b58a..0270187fcc 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java
@@ -40,6 +40,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import java.util.function.Supplier;
@@ -86,7 +87,7 @@ public class PermissionServiceImpl implements PermissionService {
* 缓存 RoleMenu 的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
@Getter
- private volatile Date roleMenuMaxUpdateTime;
+ private volatile LocalDateTime roleMenuMaxUpdateTime;
/**
* 用户编号与角色编号的缓存映射
@@ -102,7 +103,7 @@ public class PermissionServiceImpl implements PermissionService {
* 缓存 UserRole 的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
@Getter
- private volatile Date userRoleMaxUpdateTime;
+ private volatile LocalDateTime userRoleMaxUpdateTime;
@Resource
private RoleMenuMapper roleMenuMapper;
@@ -192,7 +193,7 @@ public class PermissionServiceImpl implements PermissionService {
* @param maxUpdateTime 当前角色与菜单的关联的最大更新时间
* @return 角色与菜单的关联列表
*/
- protected List loadRoleMenuIfUpdate(Date maxUpdateTime) {
+ protected List loadRoleMenuIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadRoleMenuIfUpdate][首次加载全量角色与菜单的关联]");
@@ -213,7 +214,7 @@ public class PermissionServiceImpl implements PermissionService {
* @param maxUpdateTime 当前角色与菜单的关联的最大更新时间
* @return 角色与菜单的关联列表
*/
- protected List loadUserRoleIfUpdate(Date maxUpdateTime) {
+ protected List loadUserRoleIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadUserRoleIfUpdate][首次加载全量用户与角色的关联]");
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java
index 63903d542d..1045fe0b55 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java
@@ -32,6 +32,7 @@ import org.springframework.util.StringUtils;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -65,7 +66,7 @@ public class RoleServiceImpl implements RoleService {
* 缓存角色的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
@Getter
- private volatile Date maxUpdateTime;
+ private volatile LocalDateTime maxUpdateTime;
@Resource
private PermissionService permissionService;
@@ -111,7 +112,7 @@ public class RoleServiceImpl implements RoleService {
* @param maxUpdateTime 当前角色的最大更新时间
* @return 角色列表
*/
- private List loadRoleIfUpdate(Date maxUpdateTime) {
+ private List loadRoleIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadRoleIfUpdate][首次加载全量角色]");
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java
index 9d901abd17..3ec581a671 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java
@@ -23,6 +23,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -58,7 +59,7 @@ public class SensitiveWordServiceImpl implements SensitiveWordService {
* 缓存敏感词的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
@Getter
- private volatile Date maxUpdateTime;
+ private volatile LocalDateTime maxUpdateTime;
@Resource
private SensitiveWordMapper sensitiveWordMapper;
@@ -133,7 +134,7 @@ public class SensitiveWordServiceImpl implements SensitiveWordService {
* @param maxUpdateTime 当前敏感词的最大更新时间
* @return 敏感词列表
*/
- private List loadSensitiveWordIfUpdate(Date maxUpdateTime) {
+ private List loadSensitiveWordIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
// 如果更新时间为空,说明 DB 一定有新数据
if (maxUpdateTime == null) {
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java
index 3430a3f067..ed1a73122c 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java
@@ -18,8 +18,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -45,7 +45,7 @@ public class SmsChannelServiceImpl implements SmsChannelService {
/**
* 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
- private volatile Date maxUpdateTime;
+ private volatile LocalDateTime maxUpdateTime;
@Resource
private SmsClientFactory smsClientFactory;
@@ -89,7 +89,7 @@ public class SmsChannelServiceImpl implements SmsChannelService {
* @param maxUpdateTime 当前短信渠道的最大更新时间
* @return 短信渠道列表
*/
- private List loadSmsChannelIfUpdate(Date maxUpdateTime) {
+ private List loadSmsChannelIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadSmsChannelIfUpdate][首次加载全量短信渠道]");
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java
index 1424cef915..778445dd97 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.service.sms;
+import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil;
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
@@ -15,7 +16,9 @@ import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
-import java.util.Date;
+
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
import static cn.hutool.core.util.RandomUtil.randomInt;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
@@ -51,9 +54,9 @@ public class SmsCodeServiceImpl implements SmsCodeService {
private String createSmsCode(String mobile, Integer scene, String ip) {
// 校验是否可以发送验证码,不用筛选场景
- SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, null,null);
+ SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, null, null);
if (lastSmsCode != null) {
- if (System.currentTimeMillis() - lastSmsCode.getCreateTime().getTime()
+ if (LocalDateTimeUtil.between(lastSmsCode.getCreateTime(), LocalDateTime.now()).toMillis()
< smsCodeProperties.getSendFrequency().toMillis()) { // 发送过于频繁
throw ServiceExceptionUtil.exception(SMS_CODE_SEND_TOO_FAST);
}
@@ -80,7 +83,7 @@ public class SmsCodeServiceImpl implements SmsCodeService {
SmsCodeDO lastSmsCode = this.checkSmsCode0(reqDTO.getMobile(), reqDTO.getCode(), reqDTO.getScene());
// 使用验证码
smsCodeMapper.updateById(SmsCodeDO.builder().id(lastSmsCode.getId())
- .used(true).usedTime(new Date()).usedIp(reqDTO.getUsedIp()).build());
+ .used(true).usedTime(LocalDateTime.now()).usedIp(reqDTO.getUsedIp()).build());
}
@Override
@@ -90,13 +93,13 @@ public class SmsCodeServiceImpl implements SmsCodeService {
public SmsCodeDO checkSmsCode0(String mobile, String code, Integer scene) {
// 校验验证码
- SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile,code,scene);
+ SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, code, scene);
// 若验证码不存在,抛出异常
if (lastSmsCode == null) {
throw ServiceExceptionUtil.exception(SMS_CODE_NOT_FOUND);
}
// 超过时间
- if (System.currentTimeMillis() - lastSmsCode.getCreateTime().getTime()
+ if (LocalDateTimeUtil.between(lastSmsCode.getCreateTime(), LocalDateTime.now()).toMillis()
>= smsCodeProperties.getExpireTimes().toMillis()) { // 验证码已过期
throw ServiceExceptionUtil.exception(SMS_CODE_EXPIRED);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java
index 2932949ee8..e9c668ccd9 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@@ -56,7 +56,7 @@ public interface SmsLogService {
* @param apiReceiveCode API 接收结果的编码
* @param apiReceiveMsg API 接收结果的说明
*/
- void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime, String apiReceiveCode, String apiReceiveMsg);
+ void updateSmsReceiveResult(Long id, Boolean success, LocalDateTime receiveTime, String apiReceiveCode, String apiReceiveMsg);
/**
* 获得短信日志分页
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java
index a5abf4003a..40e7d1c0af 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java
@@ -13,7 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -61,13 +61,13 @@ public class SmsLogServiceImpl implements SmsLogService {
SmsSendStatusEnum sendStatus = CommonResult.isSuccess(sendCode) ?
SmsSendStatusEnum.SUCCESS : SmsSendStatusEnum.FAILURE;
smsLogMapper.updateById(SmsLogDO.builder().id(id).sendStatus(sendStatus.getStatus())
- .sendTime(new Date()).sendCode(sendCode).sendMsg(sendMsg)
+ .sendTime(LocalDateTime.now()).sendCode(sendCode).sendMsg(sendMsg)
.apiSendCode(apiSendCode).apiSendMsg(apiSendMsg)
.apiRequestId(apiRequestId).apiSerialNo(apiSerialNo).build());
}
@Override
- public void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime,
+ public void updateSmsReceiveResult(Long id, Boolean success, LocalDateTime receiveTime,
String apiReceiveCode, String apiReceiveMsg) {
SmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ?
SmsReceiveStatusEnum.SUCCESS : SmsReceiveStatusEnum.FAILURE;
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.java
index bd2f1d409f..6e425b9193 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.core.KeyValue;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
+import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
import cn.iocoder.yudao.framework.sms.core.client.SmsClient;
import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult;
@@ -55,6 +56,7 @@ public class SmsSendServiceImpl implements SmsSendService {
private SmsProducer smsProducer;
@Override
+ @DataPermission(enable = false) // 发送短信时,无需考虑数据权限
public Long sendSingleSmsToAdmin(String mobile, Long userId, String templateCode, Map templateParams) {
// 如果 mobile 为空,则加载用户编号对应的手机号
if (StrUtil.isEmpty(mobile)) {
@@ -180,7 +182,7 @@ public class SmsSendServiceImpl implements SmsSendService {
}
// 更新短信日志的接收结果. 因为量一般不大,所以先使用 for 循环更新
receiveResults.forEach(result -> smsLogService.updateSmsReceiveResult(result.getLogId(),
- result.getSuccess(), result.getReceiveTime(), result.getErrorCode(), result.getErrorCode()));
+ result.getSuccess(), result.getReceiveTime(), result.getErrorCode(), result.getErrorMsg()));
}
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java
index 94aa14d92e..9f3ad2dde4 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java
@@ -27,6 +27,7 @@ import org.springframework.util.Assert;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import java.util.regex.Pattern;
@@ -76,7 +77,7 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
/**
* 缓存短信模板的最大更新时间,用于后续的增量轮询,判断是否有更新
*/
- private volatile Date maxUpdateTime;
+ private volatile LocalDateTime maxUpdateTime;
@Override
@PostConstruct
@@ -100,7 +101,7 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
* @param maxUpdateTime 当前短信模板的最大更新时间
* @return 短信模板列表
*/
- private List loadSmsTemplateIfUpdate(Date maxUpdateTime) {
+ private List loadSmsTemplateIfUpdate(LocalDateTime maxUpdateTime) {
// 第一步,判断是否要更新。
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
log.info("[loadSmsTemplateIfUpdate][首次加载全量短信模板]");
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
index 5f4c9a2f2e..c579352671 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
@@ -32,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.InputStream;
+import java.time.LocalDateTime;
import java.util.*;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -129,7 +130,7 @@ public class AdminUserServiceImpl implements AdminUserService {
@Override
public void updateUserLogin(Long id, String loginIp) {
- userMapper.updateById(new AdminUserDO().setId(id).setLoginIp(loginIp).setLoginDate(new Date()));
+ userMapper.updateById(new AdminUserDO().setId(id).setLoginIp(loginIp).setLoginDate(LocalDateTime.now()));
}
@Override
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.java
index 815bb2c312..2a6a46ff32 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.java
@@ -1,10 +1,13 @@
package cn.iocoder.yudao.module.system.util.oauth2;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.*;
/**
@@ -46,7 +49,7 @@ public class OAuth2Utils {
* @param additionalInformation 附加信息
* @return 简化授权模式下的重定向 URI
*/
- public static String buildImplicitRedirectUri(String redirectUri, String accessToken, String state, Date expireTime,
+ public static String buildImplicitRedirectUri(String redirectUri, String accessToken, String state, LocalDateTime expireTime,
Collection scopes, Map additionalInformation) {
Map vars = new LinkedHashMap();
Map keys = new HashMap();
@@ -85,8 +88,8 @@ public class OAuth2Utils {
return HttpUtils.append(redirectUri, query, null, !responseType.contains("code"));
}
- public static long getExpiresIn(Date expireTime) {
- return (expireTime.getTime() - System.currentTimeMillis()) / 1000;
+ public static long getExpiresIn(LocalDateTime expireTime) {
+ return LocalDateTimeUtil.between(LocalDateTime.now(), expireTime, ChronoUnit.SECONDS);
}
public static String buildScopeStr(Collection scopes) {
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java
index 3e6cc282e2..cfadfc7470 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java
@@ -1,12 +1,14 @@
package cn.iocoder.yudao.module.system.controller.admin.oauth2;
import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.map.MapUtil;
import cn.iocoder.yudao.framework.common.core.KeyValue;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
+import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAccessTokenRespVO;
import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAuthorizeInfoRespVO;
@@ -25,14 +27,13 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import javax.servlet.http.HttpServletRequest;
-import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
-import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
@@ -77,7 +78,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest {
// mock 方法(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class)
- .setExpiresTime(addTime(Duration.ofMillis(30050L))); // 多给 10 毫秒,保证可执行完
+ .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 30000L, ChronoUnit.MILLIS));
when(oauth2GrantService.grantAuthorizationCodeForAccessToken(eq("test_client_id"),
eq(code), eq(redirectUri), eq(state))).thenReturn(accessTokenDO);
@@ -87,7 +88,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest {
// 断言
assertEquals(0, result.getCode());
assertPojoEquals(accessTokenDO, result.getData());
- assertEquals(30L, result.getData().getExpiresIn()); // 执行过程会过去几毫秒
+ assertTrue(ObjectUtils.equalsAny(result.getData().getExpiresIn(), 29L, 30L)); // 执行过程会过去几毫秒
}
@Test
@@ -105,7 +106,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest {
// mock 方法(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class)
- .setExpiresTime(addTime(Duration.ofMillis(30050L))); // 多给 10 毫秒,保证可执行完
+ .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 30000L, ChronoUnit.MILLIS));
when(oauth2GrantService.grantPassword(eq(username), eq(password), eq("test_client_id"),
eq(Lists.newArrayList("write", "read")))).thenReturn(accessTokenDO);
@@ -115,7 +116,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest {
// 断言
assertEquals(0, result.getCode());
assertPojoEquals(accessTokenDO, result.getData());
- assertEquals(30L, result.getData().getExpiresIn()); // 执行过程会过去几毫秒
+ assertTrue(ObjectUtils.equalsAny(result.getData().getExpiresIn(), 29L, 30L)); // 执行过程会过去几毫秒
}
@Test
@@ -132,7 +133,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest {
// mock 方法(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class)
- .setExpiresTime(addTime(Duration.ofMillis(30010L))); // 多给 10 毫秒,保证可执行完
+ .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 30000L, ChronoUnit.MILLIS));
when(oauth2GrantService.grantRefreshToken(eq(refreshToken), eq("test_client_id"))).thenReturn(accessTokenDO);
// 调用
@@ -141,7 +142,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest {
// 断言
assertEquals(0, result.getCode());
assertPojoEquals(accessTokenDO, result.getData());
- assertEquals(30L, result.getData().getExpiresIn()); // 执行过程会过去几毫秒
+ assertTrue(ObjectUtils.equalsAny(result.getData().getExpiresIn(), 29L, 30L)); // 执行过程会过去几毫秒
}
@Test
@@ -178,7 +179,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest {
HttpServletRequest request = mockRequest("demo_client_id", "demo_client_secret");
String token = randomString();
// mock 方法
- OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class).setUserType(UserTypeEnum.ADMIN.getValue()).setExpiresTime(new Date(1653485731195L));
+ OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class).setUserType(UserTypeEnum.ADMIN.getValue()).setExpiresTime(LocalDateTimeUtil.of(1653485731195L));
when(oauth2TokenService.checkAccessToken(eq(token))).thenReturn(accessTokenDO);
// 调用
@@ -279,7 +280,7 @@ public class OAuth2OpenControllerTest extends BaseMockitoUnitTest {
eq(clientId), eq(SetUtils.asSet("read", "write")))).thenReturn(true);
// mock 方法(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class)
- .setAccessToken("test_access_token").setExpiresTime(addTime(Duration.ofMillis(30010L)));
+ .setAccessToken("test_access_token").setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 30010L, ChronoUnit.MILLIS));
when(oauth2GrantService.grantImplicit(isNull(), eq(UserTypeEnum.ADMIN.getValue()),
eq(clientId), eq(ListUtil.toList("read")))).thenReturn(accessTokenDO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java
index 1fd06cbfa3..6a140fc6cf 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java
@@ -17,7 +17,7 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
@@ -69,7 +69,7 @@ public class DeptServiceTest extends BaseDbUnitTest {
assertPojoEquals(deptDO1, parentDeptCache.get(deptDO1.getParentId()));
assertPojoEquals(deptDO2, parentDeptCache.get(deptDO2.getParentId()));
// 断言 maxUpdateTime 缓存
- Date maxUpdateTime = (Date) getFieldValue(deptService, "maxUpdateTime");
+ LocalDateTime maxUpdateTime = (LocalDateTime) getFieldValue(deptService, "maxUpdateTime");
assertEquals(ObjectUtils.max(deptDO1.getUpdateTime(), deptDO2.getUpdateTime()), maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java
index 0925427c9e..307c6dca68 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java
@@ -16,7 +16,7 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.function.Consumer;
@@ -24,7 +24,7 @@ import static cn.hutool.core.util.RandomUtil.randomEle;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.eq;
@@ -48,7 +48,7 @@ public class DictTypeServiceTest extends BaseDbUnitTest {
o.setName("yunai");
o.setType("芋艿");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(buildTime(2021, 1, 15));
+ o.setCreateTime(buildLocalDateTime(2021, 1, 15));
});
dictTypeMapper.insert(dbDictType);
// 测试 name 不匹配
@@ -58,13 +58,13 @@ public class DictTypeServiceTest extends BaseDbUnitTest {
// 测试 status 不匹配
dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
// 测试 createTime 不匹配
- dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildTime(2021, 1, 1))));
+ dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildLocalDateTime(2021, 1, 1))));
// 准备参数
DictTypePageReqVO reqVO = new DictTypePageReqVO();
reqVO.setName("nai");
reqVO.setType("艿");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 10),buildTime(2021, 1, 20)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 10),buildLocalDateTime(2021, 1, 20)}));
// 调用
PageResult pageResult = dictTypeService.getDictTypePage(reqVO);
@@ -81,7 +81,7 @@ public class DictTypeServiceTest extends BaseDbUnitTest {
o.setName("yunai");
o.setType("芋艿");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(buildTime(2021, 1, 15));
+ o.setCreateTime(buildLocalDateTime(2021, 1, 15));
});
dictTypeMapper.insert(dbDictType);
// 测试 name 不匹配
@@ -91,13 +91,13 @@ public class DictTypeServiceTest extends BaseDbUnitTest {
// 测试 status 不匹配
dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
// 测试 createTime 不匹配
- dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildTime(2021, 1, 1))));
+ dictTypeMapper.insert(ObjectUtils.cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildLocalDateTime(2021, 1, 1))));
// 准备参数
DictTypeExportReqVO reqVO = new DictTypeExportReqVO();
reqVO.setName("nai");
reqVO.setType("艿");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2021, 1, 10),buildTime(2021, 1, 20)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 1, 10),buildLocalDateTime(2021, 1, 20)}));
// 调用
List list = dictTypeService.getDictTypeList(reqVO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java
index 6998521eed..ff46ad34a8 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java
@@ -17,12 +17,12 @@ import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.function.Consumer;
import static cn.hutool.core.util.RandomUtil.randomEle;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
@@ -96,7 +96,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest {
reqVO.setApplicationName("tu");
reqVO.setCode(1);
reqVO.setMessage("ma");
- reqVO.setCreateTime((new Date[]{buildTime(2020, 11, 1),buildTime(2020, 11, 30)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 11, 1),buildLocalDateTime(2020, 11, 30)}));
// 调用
PageResult pageResult = errorCodeService.getErrorCodePage(reqVO);
@@ -115,7 +115,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest {
o.setApplicationName("tudou");
o.setCode(1);
o.setMessage("yuanma");
- o.setCreateTime(buildTime(2020, 11, 11));
+ o.setCreateTime(buildLocalDateTime(2020, 11, 11));
});
errorCodeMapper.insert(dbErrorCode);
// 测试 type 不匹配
@@ -127,7 +127,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest {
// 测试 message 不匹配
errorCodeMapper.insert(ObjectUtils.cloneIgnoreId(dbErrorCode, o -> o.setMessage("nai")));
// 测试 createTime 不匹配
- errorCodeMapper.insert(ObjectUtils.cloneIgnoreId(dbErrorCode, o -> o.setCreateTime(buildTime(2020, 12, 12))));
+ errorCodeMapper.insert(ObjectUtils.cloneIgnoreId(dbErrorCode, o -> o.setCreateTime(buildLocalDateTime(2020, 12, 12))));
return dbErrorCode;
}
@@ -141,7 +141,7 @@ public class ErrorCodeServiceTest extends BaseDbUnitTest {
reqVO.setApplicationName("tu");
reqVO.setCode(1);
reqVO.setMessage("ma");
- reqVO.setCreateTime((new Date[]{buildTime(2020, 11, 1),buildTime(2020, 11, 30)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 11, 1),buildLocalDateTime(2020, 11, 30)}));
// 调用
List list = errorCodeService.getErrorCodeList(reqVO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java
index 363f497dca..d867d4c125 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java
@@ -1,29 +1,29 @@
package cn.iocoder.yudao.module.system.service.logger;
import cn.hutool.core.util.RandomUtil;
-import cn.iocoder.yudao.module.system.dal.dataobject.logger.LoginLogDO;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
+import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
+import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
+import cn.iocoder.yudao.framework.test.core.util.RandomUtils;
+import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO;
import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.logger.LoginLogDO;
import cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper;
-import cn.iocoder.yudao.framework.test.core.util.RandomUtils;
-import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
-import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
-import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
-import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import static cn.hutool.core.util.RandomUtil.randomEle;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
@Import(LoginLogServiceImpl.class)
@@ -46,20 +46,20 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
logDO.setUserIp("192.168.199.16");
logDO.setUsername("wangkai");
- logDO.setCreateTime(buildTime(2021, 3, 6));
- logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.SUCCESS.getResult());
+ logDO.setCreateTime(buildLocalDateTime(2021, 3, 6));
+ logDO.setResult(SUCCESS.getResult());
});
loginLogMapper.insert(loginLogDO);
// 下面几个都是不匹配的数据
// 登录失败的
- loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.CAPTCHA_CODE_ERROR.getResult())));
+ loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(CAPTCHA_CODE_ERROR.getResult())));
// 不同ip段的
loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUserIp("192.168.128.18")));
// 不同username
loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUsername("yunai")));
// 构造一个早期时间 2021-02-06 00:00:00
- loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildTime(2021, 2, 6))));
+ loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildLocalDateTime(2021, 2, 6))));
// 构造调用参数
@@ -67,7 +67,8 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
reqVO.setUsername("wangkai");
reqVO.setUserIp("192.168.199");
reqVO.setStatus(true);
- reqVO.setCreateTime((new Date[]{buildTime(2021, 3, 5),buildTime(2021, 3, 5)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 5),
+ buildLocalDateTime(2021, 3, 7)}));
// 调用service方法
PageResult pageResult = loginLogService.getLoginLogPage(reqVO);
@@ -90,27 +91,28 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
logDO.setUserIp("192.168.111.16");
logDO.setUsername("wangxiaokai");
- logDO.setCreateTime(buildTime(2021, 3, 6));
- logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.SUCCESS.getResult());
+ logDO.setCreateTime(buildLocalDateTime(2021, 3, 6));
+ logDO.setResult(SUCCESS.getResult());
});
loginLogMapper.insert(loginLogDO);
// 下面几个都是不匹配的数据
// 登录失败的
- loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.CAPTCHA_CODE_ERROR.getResult())));
+ loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(CAPTCHA_CODE_ERROR.getResult())));
// 不同ip段的
loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUserIp("192.168.128.18")));
// 不同username
loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUsername("yunai")));
// 构造一个早期时间 2021-02-06 00:00:00
- loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildTime(2021, 2, 6))));
+ loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setCreateTime(buildLocalDateTime(2021, 2, 6))));
// 构造调用参数
LoginLogExportReqVO reqVO = new LoginLogExportReqVO();
reqVO.setUsername("wangxiaokai");
reqVO.setUserIp("192.168.111");
reqVO.setStatus(true);
- reqVO.setCreateTime((new Date[]{buildTime(2021, 3, 5),buildTime(2021, 3, 5)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 5),
+ buildLocalDateTime(2021, 3, 7)}));
// 调用service方法
List loginLogList = loginLogService.getLoginLogList(reqVO);
@@ -126,7 +128,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
// 指定随机的范围,避免超出范围入库失败
vo.setUserType(randomEle(UserTypeEnum.values()).getValue());
vo.setLogType(randomEle(LoginLogTypeEnum.values()).getType());
- vo.setResult(randomEle(LoginResultEnum.values()).getResult());
+ vo.setResult(randomEle(values()).getResult());
vo.setTraceId(TracerUtils.getTraceId());
});
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java
index 1f1c0809ee..5dfa31d36f 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java
@@ -23,13 +23,13 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.Collections;
-import java.util.Date;
import java.util.List;
import static cn.hutool.core.util.RandomUtil.randomEle;
import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -81,7 +81,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
o.setUserType(randomEle(UserTypeEnum.values()).getValue());
o.setModule("order");
o.setType(OperateTypeEnum.CREATE.getType());
- o.setStartTime(buildTime(2021, 3, 6));
+ o.setStartTime(buildLocalDateTime(2021, 3, 6));
o.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode());
o.setExts(MapUtil.builder("orderId", randomLongId()).build());
});
@@ -95,7 +95,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
// type 不同
operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setType(OperateTypeEnum.IMPORT.getType())));
// createTime 不同
- operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setStartTime(buildTime(2021, 2, 6))));
+ operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setStartTime(buildLocalDateTime(2021, 2, 6))));
// resultCode 不同
operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setResultCode(BAD_REQUEST.getCode())));
@@ -104,7 +104,8 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
reqVO.setUserNickname("wangkai");
reqVO.setModule("order");
reqVO.setType(OperateTypeEnum.CREATE.getType());
- reqVO.setStartTime((new Date[]{buildTime(2021, 3, 5),buildTime(2021, 3, 7)}));
+ reqVO.setStartTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 5),
+ buildLocalDateTime(2021, 3, 7)}));
reqVO.setSuccess(true);
// 调用service方法
@@ -132,7 +133,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
o.setUserType(randomEle(UserTypeEnum.values()).getValue());
o.setModule("order");
o.setType(OperateTypeEnum.CREATE.getType());
- o.setStartTime(buildTime(2021, 3, 6));
+ o.setStartTime(buildLocalDateTime(2021, 3, 6));
o.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode());
o.setExts(MapUtil.builder("orderId", randomLongId()).build());
});
@@ -146,7 +147,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
// type 不同
operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setType(OperateTypeEnum.IMPORT.getType())));
// createTime 不同
- operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setStartTime(buildTime(2021, 2, 6))));
+ operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setStartTime(buildLocalDateTime(2021, 2, 6))));
// resultCode 不同
operateLogMapper.insert(ObjectUtils.cloneIgnoreId(sysOperateLogDO, logDO -> logDO.setResultCode(BAD_REQUEST.getCode())));
@@ -155,7 +156,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
reqVO.setUserNickname("wangkai");
reqVO.setModule("order");
reqVO.setType(OperateTypeEnum.CREATE.getType());
- reqVO.setStartTime((new Date[]{buildTime(2021, 3, 5),buildTime(2021, 3, 7)}));
+ reqVO.setStartTime((new LocalDateTime[]{buildLocalDateTime(2021, 3, 5),buildLocalDateTime(2021, 3, 7)}));
reqVO.setSuccess(true);
// 调用 service 方法
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java
index a9ea70ff4f..1ca22a9999 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.service.oauth2;
+import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
@@ -13,11 +14,12 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
import java.util.*;
import static cn.hutool.core.util.RandomUtil.*;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
@@ -81,7 +83,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest {
// mock 数据
OAuth2ApproveDO approve = randomPojo(OAuth2ApproveDO.class).setUserId(userId)
.setUserType(userType).setClientId(clientId).setScope("read")
- .setExpiresTime(addTime(Duration.ofDays(1))).setApproved(true); // 同意
+ .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 1L, ChronoUnit.DAYS)).setApproved(true); // 同意
oauth2ApproveMapper.insert(approve);
// 调用
@@ -104,7 +106,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest {
// mock 数据
OAuth2ApproveDO approve = randomPojo(OAuth2ApproveDO.class).setUserId(userId)
.setUserType(userType).setClientId(clientId).setScope("read")
- .setExpiresTime(addTime(Duration.ofDays(1))).setApproved(false); // 拒绝
+ .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 1L, ChronoUnit.DAYS)).setApproved(false); // 拒绝
oauth2ApproveMapper.insert(approve);
// 调用
@@ -198,10 +200,10 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest {
String clientId = randomString();
// mock 数据
OAuth2ApproveDO approve = randomPojo(OAuth2ApproveDO.class).setUserId(userId)
- .setUserType(userType).setClientId(clientId).setExpiresTime(addTime(Duration.ofDays(1L)));
+ .setUserType(userType).setClientId(clientId).setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), 1L, ChronoUnit.DAYS));
oauth2ApproveMapper.insert(approve); // 未过期
oauth2ApproveMapper.insert(ObjectUtil.clone(approve).setId(null)
- .setExpiresTime(addTime(Duration.ofDays(-1L)))); // 已过期
+ .setExpiresTime(LocalDateTimeUtil.offset(LocalDateTime.now(), -1L, ChronoUnit.DAYS))); // 已过期
// 调用
List result = oauth2ApproveService.getApproveList(userId, userType, clientId);
@@ -218,7 +220,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest {
String clientId = randomString();
String scope = randomString();
Boolean approved = randomBoolean();
- Date expireTime = randomDay(1, 30);
+ LocalDateTime expireTime = LocalDateTime.ofInstant(randomDay(1, 30).toInstant(), ZoneId.systemDefault());
// mock 方法
// 调用
@@ -246,7 +248,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest {
String clientId = approve.getClientId();
String scope = approve.getScope();
Boolean approved = randomBoolean();
- Date expireTime = randomDay(1, 30);
+ LocalDateTime expireTime = LocalDateTime.ofInstant(randomDay(1, 30).toInstant(), ZoneId.systemDefault());
// mock 方法
// 调用
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java
index 667490251c..2ed9c978f1 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImplTest.java
@@ -11,10 +11,9 @@ import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.time.Duration;
+import java.time.LocalDateTime;
import java.util.List;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
@@ -74,7 +73,7 @@ class OAuth2CodeServiceImplTest extends BaseDbUnitTest {
String code = "test_code";
// mock 数据
OAuth2CodeDO codeDO = randomPojo(OAuth2CodeDO.class).setCode(code)
- .setExpiresTime(addTime(Duration.ofDays(-1)));
+ .setExpiresTime(LocalDateTime.now().minusDays(1));
oauth2CodeMapper.insert(codeDO);
// 调用,并断言
@@ -88,7 +87,7 @@ class OAuth2CodeServiceImplTest extends BaseDbUnitTest {
String code = "test_code";
// mock 数据
OAuth2CodeDO codeDO = randomPojo(OAuth2CodeDO.class).setCode(code)
- .setExpiresTime(addTime(Duration.ofDays(1)));
+ .setExpiresTime(LocalDateTime.now().plusDays(1));
oauth2CodeMapper.insert(codeDO);
// 调用
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java
index 7cf5aa2729..e4cc7a0ad8 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.service.oauth2;
+import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.RandomUtil;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
@@ -20,11 +21,9 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.time.Duration;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
@@ -128,7 +127,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
// mock 数据(访问令牌)
OAuth2RefreshTokenDO refreshTokenDO = randomPojo(OAuth2RefreshTokenDO.class)
.setRefreshToken(refreshToken).setClientId(clientId)
- .setExpiresTime(addTime(Duration.ofDays(-1)));
+ .setExpiresTime(LocalDateTime.now().minusDays(1));
oauth2RefreshTokenMapper.insert(refreshTokenDO);
// 调用,并断言
@@ -150,7 +149,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
// mock 数据(访问令牌)
OAuth2RefreshTokenDO refreshTokenDO = randomPojo(OAuth2RefreshTokenDO.class)
.setRefreshToken(refreshToken).setClientId(clientId)
- .setExpiresTime(addTime(Duration.ofDays(1)));
+ .setExpiresTime(LocalDateTime.now().plusDays(1));
oauth2RefreshTokenMapper.insert(refreshTokenDO);
// mock 数据(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class).setRefreshToken(refreshToken);
@@ -177,7 +176,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
public void testGetAccessToken() {
// mock 数据(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class)
- .setExpiresTime(addTime(Duration.ofDays(1)));
+ .setExpiresTime(LocalDateTime.now().plusDays(1));
oauth2AccessTokenMapper.insert(accessTokenDO);
// 准备参数
String accessToken = accessTokenDO.getAccessToken();
@@ -202,7 +201,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
public void testCheckAccessToken_expired() {
// mock 数据(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class)
- .setExpiresTime(addTime(Duration.ofDays(-1)));
+ .setExpiresTime(LocalDateTime.now().minusDays(1));
oauth2AccessTokenMapper.insert(accessTokenDO);
// 准备参数
String accessToken = accessTokenDO.getAccessToken();
@@ -216,7 +215,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
public void testCheckAccessToken_success() {
// mock 数据(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class)
- .setExpiresTime(addTime(Duration.ofDays(1)));
+ .setExpiresTime(LocalDateTime.now().plusDays(1));
oauth2AccessTokenMapper.insert(accessTokenDO);
// 准备参数
String accessToken = accessTokenDO.getAccessToken();
@@ -238,7 +237,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
public void testRemoveAccessToken_success() {
// mock 数据(访问令牌)
OAuth2AccessTokenDO accessTokenDO = randomPojo(OAuth2AccessTokenDO.class)
- .setExpiresTime(addTime(Duration.ofDays(1)));
+ .setExpiresTime(LocalDateTime.now().plusDays(1));
oauth2AccessTokenMapper.insert(accessTokenDO);
// mock 数据(刷新令牌)
OAuth2RefreshTokenDO refreshTokenDO = randomPojo(OAuth2RefreshTokenDO.class)
@@ -262,7 +261,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
o.setUserId(10L);
o.setUserType(1);
o.setClientId("test_client");
- o.setExpiresTime(DateUtils.addTime(Duration.ofDays(1)));
+ o.setExpiresTime(LocalDateTime.now().plusDays(1));
});
oauth2AccessTokenMapper.insert(dbAccessToken);
// 测试 userId 不匹配
@@ -272,7 +271,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
// 测试 userType 不匹配
oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setClientId("it_client")));
// 测试 expireTime 不匹配
- oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setExpiresTime(new Date())));
+ oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setExpiresTime(LocalDateTimeUtil.now())));
// 准备参数
OAuth2AccessTokenPageReqVO reqVO = new OAuth2AccessTokenPageReqVO();
reqVO.setUserId(10L);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java
index 5d206409ba..b5d21f0310 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java
@@ -5,6 +5,7 @@ import cn.hutool.core.lang.Assert;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import cn.iocoder.yudao.framework.common.util.spring.SpringAopUtils;
+import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuCreateReqVO;
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO;
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuUpdateReqVO;
@@ -13,13 +14,13 @@ import cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper;
import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum;
import cn.iocoder.yudao.module.system.mq.producer.permission.MenuProducer;
import cn.iocoder.yudao.module.system.service.tenant.TenantService;
-import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import com.google.common.collect.Multimap;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
@@ -74,7 +75,7 @@ public class MenuServiceTest extends BaseDbUnitTest {
assertPojoEquals(menuDO1, permissionMenuCache.get(menuDO1.getPermission()));
assertPojoEquals(menuDO2, permissionMenuCache.get(menuDO2.getPermission()));
- Date maxUpdateTime = (Date) BeanUtil.getFieldValue(target, "maxUpdateTime");
+ LocalDateTime maxUpdateTime = (LocalDateTime) BeanUtil.getFieldValue(target, "maxUpdateTime");
assertEquals(ObjectUtils.max(menuDO1.getUpdateTime(), menuDO2.getUpdateTime()), maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java
index 324a415be6..610828b6f0 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java
@@ -27,6 +27,7 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
@@ -87,7 +88,7 @@ public class PermissionServiceTest extends BaseDbUnitTest {
assertEquals(singletonList(1L), permissionService.getMenuRoleCache().get(10L));
assertEquals(singletonList(1L), permissionService.getMenuRoleCache().get(20L));
// 断言 maxUpdateTime 缓存
- Date maxUpdateTime = permissionService.getRoleMenuMaxUpdateTime();
+ LocalDateTime maxUpdateTime = permissionService.getRoleMenuMaxUpdateTime();
assertEquals(ObjectUtils.max(roleMenuDO01.getUpdateTime(), roleMenuDO02.getUpdateTime()), maxUpdateTime);
}
@@ -105,7 +106,7 @@ public class PermissionServiceTest extends BaseDbUnitTest {
assertEquals(1, permissionService.getUserRoleCache().size());
assertEquals(asSet(10L, 20L), permissionService.getUserRoleCache().get(1L));
// 断言 maxUpdateTime 缓存
- Date maxUpdateTime = permissionService.getUserRoleMaxUpdateTime();
+ LocalDateTime maxUpdateTime = permissionService.getUserRoleMaxUpdateTime();
assertEquals(ObjectUtils.max(userRoleDO01.getUpdateTime(), roleMenuDO02.getUpdateTime()), maxUpdateTime);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java
index b471a4cd5e..7c19b2eb32 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java
@@ -19,10 +19,11 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
@@ -165,7 +166,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
o.setName("土豆");
o.setCode("tudou");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(DateUtils.buildTime(2022, 2, 8));
+ o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 8));
});
roleMapper.insert(dbRole);
// 测试 name 不匹配
@@ -173,13 +174,13 @@ public class RoleServiceTest extends BaseDbUnitTest {
// 测试 code 不匹配
roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCode("hong")));
// 测试 createTime 不匹配
- roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16))));
+ roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 16))));
// 准备参数
RoleExportReqVO reqVO = new RoleExportReqVO();
reqVO.setName("土豆");
reqVO.setCode("tu");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2022, 2, 1),buildTime(2022, 2, 12)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 2, 1),buildLocalDateTime(2022, 2, 12)}));
// 调用
List list = roleService.getRoleList(reqVO);
@@ -195,7 +196,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
o.setName("土豆");
o.setCode("tudou");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(DateUtils.buildTime(2022, 2, 8));
+ o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 8));
});
roleMapper.insert(dbRole);
// 测试 name 不匹配
@@ -203,13 +204,13 @@ public class RoleServiceTest extends BaseDbUnitTest {
// 测试 code 不匹配
roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCode("hong")));
// 测试 createTime 不匹配
- roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16))));
+ roleMapper.insert(cloneIgnoreId(dbRole, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 16))));
// 准备参数
RolePageReqVO reqVO = new RolePageReqVO();
reqVO.setName("土豆");
reqVO.setCode("tu");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2022, 2, 1),buildTime(2022, 2, 12)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 2, 1),buildLocalDateTime(2022, 2, 12)}));
// 调用
PageResult pageResult = roleService.getRolePage(reqVO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java
index 8c347b97d7..f018975ba4 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java
@@ -17,11 +17,11 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
+import java.time.LocalDateTime;
import java.util.Arrays;
-import java.util.Date;
import java.util.List;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
@@ -145,7 +145,7 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest {
o.setName("笨蛋");
o.setTags(Arrays.asList("论坛", "蔬菜"));
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(DateUtils.buildTime(2022, 2, 8));
+ o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 8));
});
sensitiveWordMapper.insert(dbSensitiveWord);
// 测试 name 不匹配
@@ -153,13 +153,13 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest {
// 测试 tags 不匹配
sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setTags(Arrays.asList("短信", "日用品"))));
// 测试 createTime 不匹配
- sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16))));
+ sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 16))));
// 准备参数
SensitiveWordPageReqVO reqVO = new SensitiveWordPageReqVO();
reqVO.setName("笨");
reqVO.setTag("论坛");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2022, 2, 1),buildTime(2022, 2, 12)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 2, 1),buildLocalDateTime(2022, 2, 12)}));
// 调用
PageResult pageResult = sensitiveWordService.getSensitiveWordPage(reqVO);
@@ -176,7 +176,7 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest {
o.setName("笨蛋");
o.setTags(Arrays.asList("论坛", "蔬菜"));
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(DateUtils.buildTime(2022, 2, 8));
+ o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 8));
});
sensitiveWordMapper.insert(dbSensitiveWord);
// 测试 name 不匹配
@@ -184,13 +184,13 @@ public class SensitiveWordServiceImplTest extends BaseDbUnitTest {
// 测试 tags 不匹配
sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setTags(Arrays.asList("短信", "日用品"))));
// 测试 createTime 不匹配
- sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16))));
+ sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildLocalDateTime(2022, 2, 16))));
// 准备参数
SensitiveWordExportReqVO reqVO = new SensitiveWordExportReqVO();
reqVO.setName("笨");
reqVO.setTag("论坛");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2022, 2, 1),buildTime(2022, 2, 12)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 2, 1),buildLocalDateTime(2022, 2, 12)}));
// 调用
List list = sensitiveWordService.getSensitiveWordList(reqVO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java
index 64554e3fe7..0feb7d5921 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java
@@ -18,13 +18,13 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.function.Consumer;
import static cn.hutool.core.util.RandomUtil.randomEle;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_NOT_EXISTS;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
@@ -59,7 +59,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
// 调用
smsChannelService.initSmsClients();
// 校验 maxUpdateTime 属性
- Date maxUpdateTime = (Date) BeanUtil.getFieldValue(smsChannelService, "maxUpdateTime");
+ LocalDateTime maxUpdateTime = (LocalDateTime) BeanUtil.getFieldValue(smsChannelService, "maxUpdateTime");
assertEquals(max(smsChannelDO01.getUpdateTime(), smsChannelDO02.getUpdateTime()), maxUpdateTime);
// 校验调用
verify(smsClientFactory, times(1)).createOrUpdateSmsClient(
@@ -159,7 +159,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class, o -> { // 等会查询到
o.setSignature("芋道源码");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(buildTime(2020, 12, 12));
+ o.setCreateTime(buildLocalDateTime(2020, 12, 12));
});
smsChannelMapper.insert(dbSmsChannel);
// 测试 signature 不匹配
@@ -167,12 +167,12 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
// 测试 status 不匹配
smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
// 测试 createTime 不匹配
- smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildTime(2020, 11, 11))));
+ smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildLocalDateTime(2020, 11, 11))));
// 准备参数
SmsChannelPageReqVO reqVO = new SmsChannelPageReqVO();
reqVO.setSignature("芋道");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)}));
// 调用
PageResult pageResult = smsChannelService.getSmsChannelPage(reqVO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java
index 2d8f9c2bf0..8be82e9a82 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java
@@ -19,14 +19,14 @@ import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import static cn.hutool.core.util.RandomUtil.randomBoolean;
import static cn.hutool.core.util.RandomUtil.randomEle;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -49,9 +49,9 @@ public class SmsLogServiceTest extends BaseDbUnitTest {
o.setTemplateId(10L);
o.setMobile("15601691300");
o.setSendStatus(SmsSendStatusEnum.INIT.getStatus());
- o.setSendTime(buildTime(2020, 11, 11));
+ o.setSendTime(buildLocalDateTime(2020, 11, 11));
o.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus());
- o.setReceiveTime(buildTime(2021, 11, 11));
+ o.setReceiveTime(buildLocalDateTime(2021, 11, 11));
});
smsLogMapper.insert(dbSmsLog);
// 测试 channelId 不匹配
@@ -63,20 +63,22 @@ public class SmsLogServiceTest extends BaseDbUnitTest {
// 测试 sendStatus 不匹配
smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SmsSendStatusEnum.IGNORE.getStatus())));
// 测试 sendTime 不匹配
- smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildTime(2020, 12, 12))));
+ smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildLocalDateTime(2020, 12, 12))));
// 测试 receiveStatus 不匹配
smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SmsReceiveStatusEnum.SUCCESS.getStatus())));
// 测试 receiveTime 不匹配
- smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildTime(2021, 12, 12))));
+ smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildLocalDateTime(2021, 12, 12))));
// 准备参数
SmsLogPageReqVO reqVO = new SmsLogPageReqVO();
reqVO.setChannelId(1L);
reqVO.setTemplateId(10L);
reqVO.setMobile("156");
reqVO.setSendStatus(SmsSendStatusEnum.INIT.getStatus());
- reqVO.setSendTime((new Date[]{buildTime(2020, 11, 1),buildTime(2020, 11, 30)}));
+ reqVO.setSendTime((new LocalDateTime[]{buildLocalDateTime(2020, 11, 1),
+ buildLocalDateTime(2020, 11, 30)}));
reqVO.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus());
- reqVO.setReceiveTime((new Date[]{buildTime(2021, 11, 1),buildTime(2021, 11, 30)}));
+ reqVO.setReceiveTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 1),
+ buildLocalDateTime(2021, 11, 30)}));
// 调用
PageResult pageResult = smsLogService.getSmsLogPage(reqVO);
@@ -94,9 +96,9 @@ public class SmsLogServiceTest extends BaseDbUnitTest {
o.setTemplateId(10L);
o.setMobile("15601691300");
o.setSendStatus(SmsSendStatusEnum.INIT.getStatus());
- o.setSendTime(buildTime(2020, 11, 11));
+ o.setSendTime(buildLocalDateTime(2020, 11, 11));
o.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus());
- o.setReceiveTime(buildTime(2021, 11, 11));
+ o.setReceiveTime(buildLocalDateTime(2021, 11, 11));
});
smsLogMapper.insert(dbSmsLog);
// 测试 channelId 不匹配
@@ -108,20 +110,22 @@ public class SmsLogServiceTest extends BaseDbUnitTest {
// 测试 sendStatus 不匹配
smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendStatus(SmsSendStatusEnum.IGNORE.getStatus())));
// 测试 sendTime 不匹配
- smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildTime(2020, 12, 12))));
+ smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setSendTime(buildLocalDateTime(2020, 12, 12))));
// 测试 receiveStatus 不匹配
smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveStatus(SmsReceiveStatusEnum.SUCCESS.getStatus())));
// 测试 receiveTime 不匹配
- smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildTime(2021, 12, 12))));
+ smsLogMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsLog, o -> o.setReceiveTime(buildLocalDateTime(2021, 12, 12))));
// 准备参数
SmsLogExportReqVO reqVO = new SmsLogExportReqVO();
reqVO.setChannelId(1L);
reqVO.setTemplateId(10L);
reqVO.setMobile("156");
reqVO.setSendStatus(SmsSendStatusEnum.INIT.getStatus());
- reqVO.setSendTime((new Date[]{buildTime(2020, 11, 1),buildTime(2020, 11, 30)}));
+ reqVO.setSendTime((new LocalDateTime[]{buildLocalDateTime(2020, 11, 1),
+ buildLocalDateTime(2020, 11, 30)}));
reqVO.setReceiveStatus(SmsReceiveStatusEnum.INIT.getStatus());
- reqVO.setReceiveTime((new Date[]{buildTime(2021, 11, 1),buildTime(2021, 11, 30)}));
+ reqVO.setReceiveTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 1),
+ buildLocalDateTime(2021, 11, 30)}));
// 调用
List list = smsLogService.getSmsLogList(reqVO);
@@ -202,7 +206,7 @@ public class SmsLogServiceTest extends BaseDbUnitTest {
// 准备参数
Long id = dbSmsLog.getId();
Boolean success = randomBoolean();
- Date receiveTime = randomDate();
+ LocalDateTime receiveTime = randomLocalDateTime();
String apiReceiveCode = randomString();
String apiReceiveMsg = randomString();
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceTest.java
index 7f9309499c..890924e14e 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceTest.java
@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.system.service.sms;
import cn.hutool.core.map.MapUtil;
+import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO;
import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO;
import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
@@ -35,12 +36,15 @@ public class SmsSendServiceTest extends BaseMockitoUnitTest {
@InjectMocks
private SmsSendServiceImpl smsService;
+ @Mock
+ private SmsChannelService smsChannelService;
@Mock
private SmsTemplateService smsTemplateService;
@Mock
private SmsLogService smsLogService;
@Mock
private SmsProducer smsProducer;
+
@Mock
private SmsClientFactory smsClientFactory;
@@ -66,6 +70,9 @@ public class SmsSendServiceTest extends BaseMockitoUnitTest {
String content = randomString();
when(smsTemplateService.formatSmsTemplateContent(eq(template.getContent()), eq(templateParams)))
.thenReturn(content);
+ // mock SmsChannelService 的方法
+ SmsChannelDO smsChannel = randomPojo(SmsChannelDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()));
+ when(smsChannelService.getSmsChannel(eq(template.getChannelId()))).thenReturn(smsChannel);
// mock SmsLogService 的方法
Long smsLogId = randomLongId();
when(smsLogService.createSmsLog(eq(mobile), eq(userId), eq(userType), eq(Boolean.TRUE), eq(template),
@@ -103,6 +110,9 @@ public class SmsSendServiceTest extends BaseMockitoUnitTest {
String content = randomString();
when(smsTemplateService.formatSmsTemplateContent(eq(template.getContent()), eq(templateParams)))
.thenReturn(content);
+ // mock SmsChannelService 的方法
+ SmsChannelDO smsChannel = randomPojo(SmsChannelDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()));
+ when(smsChannelService.getSmsChannel(eq(template.getChannelId()))).thenReturn(smsChannel);
// mock SmsLogService 的方法
Long smsLogId = randomLongId();
when(smsLogService.createSmsLog(eq(mobile), eq(userId), eq(userType), eq(Boolean.FALSE), eq(template),
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java
index bf7a1ca816..de0bf677ca 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java
@@ -25,7 +25,7 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
@@ -34,7 +34,7 @@ import static cn.hutool.core.bean.BeanUtil.getFieldValue;
import static cn.hutool.core.util.RandomUtil.randomEle;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
@@ -77,7 +77,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
assertPojoEquals(smsTemplate01, smsTemplateCache.get(smsTemplate01.getCode()));
assertPojoEquals(smsTemplate02, smsTemplateCache.get(smsTemplate02.getCode()));
// 断言 maxUpdateTime 缓存
- Date maxUpdateTime = (Date) getFieldValue(smsTemplateService, "maxUpdateTime");
+ LocalDateTime maxUpdateTime = (LocalDateTime) getFieldValue(smsTemplateService, "maxUpdateTime");
assertEquals(max(smsTemplate01.getUpdateTime(), smsTemplate02.getUpdateTime()), maxUpdateTime);
}
@@ -205,7 +205,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
o.setContent("芋道源码");
o.setApiTemplateId("yunai");
o.setChannelId(1L);
- o.setCreateTime(buildTime(2021, 11, 11));
+ o.setCreateTime(buildLocalDateTime(2021, 11, 11));
});
smsTemplateMapper.insert(dbSmsTemplate);
// 测试 type 不匹配
@@ -221,7 +221,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
// 测试 channelId 不匹配
smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setChannelId(2L)));
// 测试 createTime 不匹配
- smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildTime(2021, 12, 12))));
+ smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildLocalDateTime(2021, 12, 12))));
// 准备参数
SmsTemplatePageReqVO reqVO = new SmsTemplatePageReqVO();
reqVO.setType(SmsTemplateTypeEnum.PROMOTION.getType());
@@ -230,7 +230,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
reqVO.setContent("芋道");
reqVO.setApiTemplateId("yu");
reqVO.setChannelId(1L);
- reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 1),buildTime(2021, 12, 1)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 1),buildLocalDateTime(2021, 12, 1)}));
// 调用
PageResult pageResult = smsTemplateService.getSmsTemplatePage(reqVO);
@@ -250,7 +250,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
o.setContent("芋道源码");
o.setApiTemplateId("yunai");
o.setChannelId(1L);
- o.setCreateTime(buildTime(2021, 11, 11));
+ o.setCreateTime(buildLocalDateTime(2021, 11, 11));
});
smsTemplateMapper.insert(dbSmsTemplate);
// 测试 type 不匹配
@@ -266,7 +266,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
// 测试 channelId 不匹配
smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setChannelId(2L)));
// 测试 createTime 不匹配
- smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildTime(2021, 12, 12))));
+ smsTemplateMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsTemplate, o -> o.setCreateTime(buildLocalDateTime(2021, 12, 12))));
// 准备参数
SmsTemplateExportReqVO reqVO = new SmsTemplateExportReqVO();
reqVO.setType(SmsTemplateTypeEnum.PROMOTION.getType());
@@ -275,7 +275,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
reqVO.setContent("芋道");
reqVO.setApiTemplateId("yu");
reqVO.setChannelId(1L);
- reqVO.setCreateTime((new Date[]{buildTime(2021, 11, 1),buildTime(2021, 12, 1)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2021, 11, 1),buildLocalDateTime(2021, 12, 1)}));
// 调用
List list = smsTemplateService.getSmsTemplateList(reqVO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java
index 36d6b3b974..6a3e76bdff 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java
@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.system.service.social;
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
+import cn.iocoder.yudao.framework.social.core.YudaoAuthRequestFactory;
import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest;
import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserBindDO;
@@ -8,7 +9,6 @@ import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO;
import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserBindMapper;
import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserMapper;
import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
-import com.xkcoding.justauth.AuthRequestFactory;
import me.zhyd.oauth.enums.AuthResponseStatus;
import me.zhyd.oauth.model.AuthCallback;
import me.zhyd.oauth.model.AuthResponse;
@@ -46,7 +46,7 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest {
private SocialUserBindMapper socialUserBindMapper;
@MockBean
- private AuthRequestFactory authRequestFactory;
+ private YudaoAuthRequestFactory authRequestFactory;
@Test
public void testGetAuthorizeUrl() {
@@ -64,7 +64,7 @@ public class SocialUserServiceTest extends BaseDbAndRedisUnitTest {
// 调用
String url = socialUserService.getAuthorizeUrl(type, redirectUri);
// 断言
- assertEquals("https://www.iocoder.cn/?redirect_uri=sss", url);
+ assertEquals("https://www.iocoder.cn?redirect_uri=sss", url);
}
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java
index 66d25f1bb4..35a1bc6e67 100755
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java
@@ -15,9 +15,9 @@ import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.util.Date;
+import java.time.LocalDateTime;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
@@ -142,7 +142,7 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest {
o.setName("芋道源码");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
o.setRemark("源码解析");
- o.setCreateTime(buildTime(2022, 10, 10));
+ o.setCreateTime(buildLocalDateTime(2022, 10, 10));
});
tenantPackageMapper.insert(dbTenantPackage);
// 测试 name 不匹配
@@ -152,13 +152,13 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest {
// 测试 remark 不匹配
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setRemark("解析")));
// 测试 createTime 不匹配
- tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setCreateTime(buildTime(2022, 11, 11))));
+ tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setCreateTime(buildLocalDateTime(2022, 11, 11))));
// 准备参数
TenantPackagePageReqVO reqVO = new TenantPackagePageReqVO();
reqVO.setName("芋道");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
reqVO.setRemark("源码");
- reqVO.setCreateTime((new Date[]{buildTime(2022, 10, 9),buildTime(2022, 10, 11)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 10, 9),buildLocalDateTime(2022, 10, 11)}));
// 调用
PageResult pageResult = tenantPackageService.getTenantPackagePage(reqVO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java
index 56445506f6..e63567ceda 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java
@@ -28,15 +28,13 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import javax.annotation.Resource;
-import java.time.Duration;
+import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Date;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
@@ -112,7 +110,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest {
public void testValidTenant_expired() {
// mock 数据
TenantDO tenant = randomPojo(TenantDO.class, o -> o.setId(1L).setStatus(CommonStatusEnum.ENABLE.getStatus())
- .setExpireTime(buildTime(2020, 2, 2)));
+ .setExpireTime(buildLocalDateTime(2020, 2, 2)));
tenantMapper.insert(tenant);
// 调用,并断言业务异常
@@ -123,7 +121,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest {
public void testValidTenant_success() {
// mock 数据
TenantDO tenant = randomPojo(TenantDO.class, o -> o.setId(1L).setStatus(CommonStatusEnum.ENABLE.getStatus())
- .setExpireTime(addTime(Duration.ofDays(1))));
+ .setExpireTime(LocalDateTime.now().plusDays(1)));
tenantMapper.insert(tenant);
// 调用,并断言业务异常
@@ -293,7 +291,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest {
o.setContactName("芋艿");
o.setContactMobile("15601691300");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(buildTime(2020, 12, 12));
+ o.setCreateTime(buildLocalDateTime(2020, 12, 12));
});
tenantMapper.insert(dbTenant);
// 测试 name 不匹配
@@ -305,14 +303,14 @@ public class TenantServiceImplTest extends BaseDbUnitTest {
// 测试 status 不匹配
tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
// 测试 createTime 不匹配
- tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildTime(2021, 12, 12))));
+ tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildLocalDateTime(2021, 12, 12))));
// 准备参数
TenantPageReqVO reqVO = new TenantPageReqVO();
reqVO.setName("芋道");
reqVO.setContactName("艿");
reqVO.setContactMobile("1560");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime(new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)});
+ reqVO.setCreateTime(new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)});
// 调用
PageResult pageResult = tenantService.getTenantPage(reqVO);
@@ -330,7 +328,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest {
o.setContactName("芋艿");
o.setContactMobile("15601691300");
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
- o.setCreateTime(buildTime(2020, 12, 12));
+ o.setCreateTime(buildLocalDateTime(2020, 12, 12));
});
tenantMapper.insert(dbTenant);
// 测试 name 不匹配
@@ -342,14 +340,14 @@ public class TenantServiceImplTest extends BaseDbUnitTest {
// 测试 status 不匹配
tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
// 测试 createTime 不匹配
- tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildTime(2021, 12, 12))));
+ tenantMapper.insert(cloneIgnoreId(dbTenant, o -> o.setCreateTime(buildLocalDateTime(2021, 12, 12))));
// 准备参数
TenantExportReqVO reqVO = new TenantExportReqVO();
reqVO.setName("芋道");
reqVO.setContactName("艿");
reqVO.setContactMobile("1560");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime(new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)});
+ reqVO.setCreateTime(new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)});
// 调用
List list = tenantService.getTenantList(reqVO);
diff --git a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java
index 0884f81873..d44493139f 100644
--- a/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java
+++ b/yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java
@@ -32,15 +32,15 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import javax.annotation.Resource;
import java.io.ByteArrayInputStream;
+import java.time.LocalDateTime;
import java.util.Collection;
-import java.util.Date;
import java.util.List;
import java.util.function.Consumer;
import static cn.hutool.core.util.RandomUtil.randomBytes;
import static cn.hutool.core.util.RandomUtil.randomEle;
import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
@@ -295,7 +295,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
reqVO.setUsername("tu");
reqVO.setMobile("1560");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)}));
reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门
// mock 方法
List deptList = newArrayList(randomPojo(DeptDO.class, o -> o.setId(2L)));
@@ -318,7 +318,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
reqVO.setUsername("tu");
reqVO.setMobile("1560");
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
- reqVO.setCreateTime((new Date[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)}));
+ reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2020, 12, 1),buildLocalDateTime(2020, 12, 24)}));
reqVO.setDeptId(1L); // 其中,1L 是 2L 的父部门
// mock 方法
List