Browse Source

Merge branch 'dev/2024/0625/update-admin-Y' of feifan/mall-backend-admin into master

修改查询订单,多加一个状态
Yangzw 8 months ago
parent
commit
07b6cc5e02

+ 4 - 2
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/partitioncrash/PartitionCrashServiceImpl.java

@@ -544,8 +544,10 @@ public class PartitionCrashServiceImpl implements PartitionCrashService {
         String yesterdayString = "CRASH:" + userId + ":" + localDateTime.toString();
 
         PartitionCrashDO partitionCrashDO = partitionCrashMapper.selectOne(new LambdaQueryWrapperX<PartitionCrashDO>().eqIfPresent(PartitionCrashDO::getPartNo, yesterdayString));
-        List<PartitionCrashDO> partitionCrashDOS = partitionCrashMapper.selectList((new LambdaQueryWrapperX<PartitionCrashDO>().eq(PartitionCrashDO::getUserId, userId)));
-
+        List<PartitionCrashDO> partitionCrashDOS = partitionCrashMapper.selectList((new LambdaQueryWrapperX<PartitionCrashDO>()
+                .eq(PartitionCrashDO::getUserId, userId))
+                .apply("date(create_time) < date(now())")
+        );
         //判断这个用户不是第一次碰撞并且没有查询到昨天的碰撞记录,有可能是昨天或者更早定时任务没有启动导致的,所以再往前查几天
         if(!partitionCrashDOS.isEmpty() && partitionCrashDO == null){
             return crashYesterdayNo(userId,++yesterday);

+ 9 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/sharepath/SharePathServiceImpl.java

@@ -11,6 +11,7 @@ import cn.newfeifan.mall.module.distri.enums.SocialStatusEnum;
 import cn.newfeifan.mall.module.distri.service.duser.DuserService;
 import cn.newfeifan.mall.module.distri.service.integral.IntegralService;
 import cn.newfeifan.mall.module.distri.service.ordercalc.OrderCalcService;
+import cn.newfeifan.mall.module.distri.service.orderpercentage.OrderPercentageService;
 import cn.newfeifan.mall.module.distri.service.socialstatus.SocialStatusService;
 import cn.newfeifan.mall.module.distri.service.socialstatuschangelog.SocialStatusChangeLogService;
 import cn.newfeifan.mall.module.member.controller.admin.user.vo.MemberUserRespVO;
@@ -26,6 +27,7 @@ import javax.annotation.Resource;
 
 import org.springframework.validation.annotation.Validated;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -75,6 +77,8 @@ public class SharePathServiceImpl implements SharePathService {
 
     @Resource
     private SocialStatusService socialStatusService;
+    @Resource
+    private OrderPercentageService orderPercentageService;
 
     @Override
     public Long createSharePath(SharePathSaveReqVO createReqVO) {
@@ -249,7 +253,11 @@ public class SharePathServiceImpl implements SharePathService {
         if (duser == null) return memberUserRespVO;
 
         IntegralDO integral = integralService.getIntegralByUserId(userId);
-        if (integral != null) memberUserRespVO.setCurrentQuota(integral.getCurrentQuota());
+        if (integral != null){
+            memberUserRespVO.setCurrentQuota(integral.getCurrentQuota());
+            OrderPercentageDO orderPercentageDO = orderPercentageService.queryStatus();
+            memberUserRespVO.setHighQuotaTotal(integral.getHighQuotaTotal() + new BigDecimal(orderPercentageDO.getBaseMaxQuota()).longValue());
+        }
 
         SocialStatusDO socialStatus = socialStatusService.getSocialStatus(duser.getSocialStatusId());
         if (socialStatus == null) return memberUserRespVO;

+ 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

@@ -21,6 +21,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.mq.producer.order.DistriOrderProducer;
@@ -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;
 }

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

@@ -8,6 +8,8 @@ import cn.newfeifan.mall.module.distri.mq.message.order.DistriOrderMessage;
 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;
@@ -30,23 +32,29 @@ 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())
                 .eqIfPresent(TradeOrderDO::getMerchantId, reqVO.getMerchantId())
-                .eqIfPresent(TradeOrderDO::getShopId,reqVO.getShopId())
+                .eqIfPresent(TradeOrderDO::getShopId, reqVO.getShopId())
                 .inIfPresent(TradeOrderDO::getShopId, reqVO.getShopIds())
                 .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 查询出这么个玩意~~
@@ -106,6 +114,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
                 .inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds())
                 .likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode())
                 .betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())
+                .ne(TradeOrderDO::getRefundStatus, TradeOrderRefundStatusEnum.ALL.getStatus())
         );
     }
     default Long selectCountByStatus(Integer status, Long userId) {
@@ -173,4 +182,19 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
     List<DistriOrderMessage> queryDailyOrder();
 
     List<DistriOrderMessage> queryAllOrderByOrderIds(@Param("orderIds") List<Long> orderIds);
+
+    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())
+                .inIfPresent(TradeOrderDO::getShopId, reqVO.getShopIds())
+                .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

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

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

@@ -133,7 +133,13 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
             return PageResult.empty();
         }
         // 分页查询
-        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) {
@@ -334,6 +340,11 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
         }).collect(Collectors.toList());
     }
 
+    @Override
+    public Long getOrderCountByRefundStatus(Integer refundStatus, TradeOrderPageReqVO reqVO) {
+        return tradeOrderMapper.selectCountByRefundStatus(refundStatus, reqVO);
+    }
+
     public static ShopBO getShopBO(StringRedisTemplate stringRedisTemplate, AdminUserMapper userMapper, Logger log) {
         Long loginUserId = getLoginUserId();
         String s = stringRedisTemplate.opsForValue().get("shop:" + loginUserId);

+ 3 - 0
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/user/vo/MemberUserRespVO.java

@@ -97,4 +97,7 @@ public class MemberUserRespVO extends MemberUserBaseVO {
 
     @Schema(description = "当前可用积分")
     private Long currentQuota;
+
+    @Schema(description = "峰值累计")
+    private Long highQuotaTotal;
 }