Преглед изворни кода

Merge branch 'dev/2024/0626/update-business-local-Y' of feifan/mall-backend-business into master

修改查询订单,多加一个状态
Yangzw пре 9 месеци
родитељ
комит
1810ecb4d9

+ 1 - 1
feifan-module-mall/feifan-module-trade-api/src/main/java/cn/newfeifan/mall/module/trade/enums/order/TradeOrderStatusEnum.java

@@ -22,7 +22,7 @@ public enum TradeOrderStatusEnum implements IntArrayValuable {
     DELIVERED(20, "已发货"),
     COMPLETED(30, "已完成"),
     CANCELED(40, "已取消"),
-    AFTER_SALE(-2, "售后");
+    AFTER_SALE(-2, "退款成功");
 
     public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TradeOrderStatusEnum::getStatus).toArray();
 

+ 7 - 1
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java

@@ -18,6 +18,7 @@ import cn.newfeifan.mall.module.trade.convert.order.TradeOrderConvert;
 import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderDO;
 import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderItemDO;
 import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderLogDO;
+import cn.newfeifan.mall.module.trade.enums.order.TradeOrderRefundStatusEnum;
 import cn.newfeifan.mall.module.trade.enums.order.TradeOrderStateEnum;
 import cn.newfeifan.mall.module.trade.enums.order.TradeOrderStatusEnum;
 import cn.newfeifan.mall.module.trade.service.aftersale.AfterSaleService;
@@ -146,6 +147,11 @@ public class TradeOrderController {
         List<TradeOrderLogDO> orderLogs = tradeOrderLogService.getOrderLogListByOrderId(id);
         TradeOrderDetailRespVO convert = TradeOrderConvert.INSTANCE.convert(order, orderItems, orderLogs, user, brokerageUser);
         convert.setSpuType(tradeOrderQueryService.getSpuType(orderItems));
+
+        if(convert.getRefundStatus().equals(TradeOrderRefundStatusEnum.ALL.getStatus())){
+            convert.setStatus(TradeOrderStatusEnum.AFTER_SALE.getStatus());
+        }
+
         return success(convert);
     }
 
@@ -274,7 +280,7 @@ public class TradeOrderController {
         Map<Integer, Long> orderCount = Maps.newLinkedHashMapWithExpectedSize(6);
 
         orderCount.put(-1, tradeOrderQueryService.getOrderCount(null, reqVO));
-        orderCount.put(TradeOrderStatusEnum.AFTER_SALE.getStatus(), afterSaleService.getApplyingAfterSaleCount(null, reqVO));
+        orderCount.put(TradeOrderStatusEnum.AFTER_SALE.getStatus(), tradeOrderQueryService.getOrderCountByRefundStatus(TradeOrderRefundStatusEnum.ALL.getStatus(), reqVO));
         orderCount.put(TradeOrderStatusEnum.UNPAID.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.UNPAID.getStatus(), reqVO));
         orderCount.put(TradeOrderStatusEnum.UNDELIVERED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.UNDELIVERED.getStatus(), reqVO));
         orderCount.put(TradeOrderStatusEnum.DELIVERED.getStatus(), tradeOrderQueryService.getOrderCount(TradeOrderStatusEnum.DELIVERED.getStatus(), reqVO));

+ 3 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java

@@ -153,4 +153,7 @@ public class TradeOrderBaseVO {
 
     @Schema(description = "商品类型,只有购买的商品是虚拟商品的时候才会有返回")
     private Integer spuType;
+
+    @Schema(description = "售后状态", example = "0")
+    private Integer refundStatus;
 }

+ 26 - 4
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -7,6 +7,8 @@ import cn.newfeifan.mall.framework.mybatis.core.query.MPJLambdaWrapperX;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
 import cn.newfeifan.mall.module.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
 import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderDO;
+import cn.newfeifan.mall.module.trade.enums.order.TradeOrderRefundStatusEnum;
+import cn.newfeifan.mall.module.trade.enums.order.TradeOrderStatusEnum;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -33,13 +35,12 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
     }
 
     default PageResult<TradeOrderDO> selectPage(TradeOrderPageReqVO reqVO, Set<Long> userIds) {
-        return selectPage(reqVO, new LambdaQueryWrapperX<TradeOrderDO>()
+        LambdaQueryWrapperX<TradeOrderDO> queryWrapper = new LambdaQueryWrapperX<TradeOrderDO>()
                 .likeIfPresent(TradeOrderDO::getNo, reqVO.getNo())
                 .eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId())
                 .eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType())
                 .inIfPresent(TradeOrderDO::getUserId, userIds)
                 .eqIfPresent(TradeOrderDO::getType, reqVO.getType())
-                .eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus())
                 .eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
                 .eqIfPresent(TradeOrderDO::getTerminal, reqVO.getTerminal())
                 .eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId())
@@ -49,7 +50,14 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
                 .inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds())
                 .likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode())
                 .betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(TradeOrderDO::getId));
+                .orderByDesc(TradeOrderDO::getId);
+        if(reqVO.getStatus() != null && reqVO.getStatus().equals(TradeOrderStatusEnum.AFTER_SALE.getStatus())){
+            queryWrapper.eq(TradeOrderDO::getRefundStatus, TradeOrderRefundStatusEnum.ALL.getStatus());
+        }else if(reqVO.getStatus() != null){
+            queryWrapper.eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus());
+            queryWrapper.ne(TradeOrderDO::getRefundStatus, TradeOrderRefundStatusEnum.ALL.getStatus());
+        }
+        return selectPage(reqVO, queryWrapper);
     }
 
     // TODO @疯狂:如果用 map 返回,要不这里直接用 TradeOrderSummaryRespVO 返回?也算合理,就当  sql 查询出这么个玩意~~
@@ -170,11 +178,25 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
         );
     }
 
-    default Long selectCountByStatus(Integer status, Long shopId, Long merId){
+    default Long selectCountByStatus(Integer status, Long shopId, Long merId) {
         return selectCount(new LambdaQueryWrapperX<TradeOrderDO>()
                 .eq(TradeOrderDO::getStatus, status)
                 .eq(TradeOrderDO::getShopId, shopId)
                 .eq(TradeOrderDO::getMerchantId, merId)
         );
     }
+
+    default Long selectCountByRefundStatus(Integer refundStatus, TradeOrderPageReqVO reqVO){
+        return selectCount(new LambdaQueryWrapperX<TradeOrderDO>()
+                .eqIfPresent(TradeOrderDO::getRefundStatus, refundStatus)
+                .likeIfPresent(TradeOrderDO::getNo, reqVO.getNo())
+                .eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType())
+                .eqIfPresent(TradeOrderDO::getType, reqVO.getType())
+                .eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
+                .eqIfPresent(TradeOrderDO::getTerminal, reqVO.getTerminal())
+                .eqIfPresent(TradeOrderDO::getMerchantId, reqVO.getMerchantId())
+                .eqIfPresent(TradeOrderDO::getShopId,reqVO.getShopId())
+                .betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())
+        );
+    }
 }

+ 8 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderQueryService.java

@@ -216,4 +216,12 @@ public interface TradeOrderQueryService {
     Integer getSpuType(List<TradeOrderItemDO> orderItems);
 
     Integer getSpuTypeByList(List<TradeOrderPageItemRespVO.Item> items);
+
+    /**
+     * 获取状态为退款的订单
+     * @param refundStatus 订单状态
+     * @param reqVO 条件
+     * @return 数量
+     */
+    Long getOrderCountByRefundStatus(Integer refundStatus, TradeOrderPageReqVO reqVO);
 }

+ 17 - 6
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderQueryServiceImpl.java

@@ -126,7 +126,13 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
         reqVO.setShopId(userShopDetails.getShopId());
 
         // 分页查询
-        return tradeOrderMapper.selectPage(reqVO, userIds);
+        PageResult<TradeOrderDO> tradeOrderDOPageResult = tradeOrderMapper.selectPage(reqVO, userIds);
+        if (reqVO.getStatus() != null && reqVO.getStatus().equals(TradeOrderStatusEnum.AFTER_SALE.getStatus())) {
+            for (TradeOrderDO tradeOrderDO : tradeOrderDOPageResult.getList()) {
+                tradeOrderDO.setStatus(TradeOrderStatusEnum.AFTER_SALE.getStatus());
+            }
+        }
+        return tradeOrderDOPageResult;
     }
 
     private Set<Long> buildQueryConditionUserIds(TradeOrderPageReqVO reqVO) {
@@ -234,9 +240,9 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
         Long backlogShipmentsCount = tradeOrderMapper.selectCountByStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus(), userShopDetails.getShopId(), userShopDetails.getMerId());
         Long backlogAfterSaleCount = afterSaleService.selectCountByStatus(userShopDetails.getShopId(), userShopDetails.getMerId());
 
-        Map<String,Long> backMap = new HashMap<>();
-        backMap.put(BacklogConstants.BACKLOG_SHIPMENTS,backlogShipmentsCount);
-        backMap.put(BacklogConstants.BACKLOG_AFTER_SALE,backlogAfterSaleCount);
+        Map<String, Long> backMap = new HashMap<>();
+        backMap.put(BacklogConstants.BACKLOG_SHIPMENTS, backlogShipmentsCount);
+        backMap.put(BacklogConstants.BACKLOG_AFTER_SALE, backlogAfterSaleCount);
         return backMap;
     }
 
@@ -244,7 +250,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
     public Integer getSpuType(List<TradeOrderItemDO> orderItems) {
         for (TradeOrderItemDO orderItem : orderItems) {
             ProductSpuDO spu = productSpuService.getSpu(orderItem.getSpuId());
-            if(spu.getSpuType() == 0){
+            if (spu.getSpuType() == 0) {
                 return 0;
             }
         }
@@ -255,13 +261,18 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
     public Integer getSpuTypeByList(List<TradeOrderPageItemRespVO.Item> items) {
         for (TradeOrderPageItemRespVO.Item orderItem : items) {
             ProductSpuDO spu = productSpuService.getSpu(orderItem.getSpuId());
-            if(spu.getSpuType() == 0){
+            if (spu.getSpuType() == 0) {
                 return 0;
             }
         }
         return null;
     }
 
+    @Override
+    public Long getOrderCountByRefundStatus(Integer refundStatus, TradeOrderPageReqVO reqVO) {
+        return tradeOrderMapper.selectCountByRefundStatus(refundStatus, reqVO);
+    }
+
     @Override
     public List<ExpressTrackRespDTO> getExpressTrackList(Long id, Long userId) {
         // 查询订单

+ 2 - 0
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/service/config/SystemConfigServiceImpl.java

@@ -9,6 +9,7 @@ import cn.newfeifan.mall.module.system.controller.admin.config.vo.ConfigSaveReqV
 import cn.newfeifan.mall.module.system.dal.dataobject.config.SystemConfigDO;
 import cn.newfeifan.mall.module.system.dal.mysql.config.SystemConfigMapper;
 import com.alibaba.fastjson.JSONObject;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -34,6 +35,7 @@ public class SystemConfigServiceImpl implements SystemConfigService {
     @Resource
     private StringRedisTemplate stringRedisTemplate;
     @Resource
+    @Lazy
     private StartConfig startConfig;
 
     @Override

+ 2 - 0
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/service/wechatmsgtemplate/WechatMsgTemplateServiceImpl.java

@@ -3,6 +3,7 @@ package cn.newfeifan.mall.module.system.service.wechatmsgtemplate;
 import cn.newfeifan.mall.module.system.config.StartConfig;
 import cn.newfeifan.mall.module.system.controller.admin.wechatmsgtemplate.bo.WechatMsgTemplateBO;
 import com.alibaba.fastjson.JSONObject;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
@@ -35,6 +36,7 @@ public class WechatMsgTemplateServiceImpl implements WechatMsgTemplateService {
     @Resource
     private StringRedisTemplate stringRedisTemplate;
     @Resource
+    @Lazy
     private StartConfig startConfig;
 
     @Override