Explorar o código

Merge remote-tracking branch 'origin/point_dev' into point_dev

jinshihui hai 3 días
pai
achega
11ef69feba

+ 20 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/ProductOrderInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ylx.massage.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
@@ -37,6 +38,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
+import java.util.List;
 
 /**
  * 商品订单信息Service实现类
@@ -598,6 +600,22 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
         }
 
         // 5. 修改售后单
+        // 先查询是否存在符合条件的售后单
+        LambdaQueryWrapper<AfterSaleOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AfterSaleOrder::getOrderId, productOrderInfo.getId())
+                .eq(AfterSaleOrder::getOpenId, loginUser.getCOpenid())
+                .ne(AfterSaleOrder::getAfterSaleStatus, AfterSaleStatusEnum.CANCELLED.getCode());
+        
+        List<AfterSaleOrder> afterSaleOrders = this.afterSaleOrderService.list(queryWrapper);
+        log.info("订单{}的售后单列表:{}", productOrderInfo.getId(), afterSaleOrders);
+        
+        if (CollectionUtil.isEmpty(afterSaleOrders)) {
+            log.warn("订单{}没有符合条件的售后单,跳过售后单状态更新", productOrderInfo.getId());
+            // 没有售后单的情况,不抛出异常,直接返回
+            return;
+        }
+        
+        // 更新售后单状态
         LambdaUpdateWrapper<AfterSaleOrder> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(AfterSaleOrder::getOrderId, productOrderInfo.getId())
                 .eq(AfterSaleOrder::getOpenId, loginUser.getCOpenid())
@@ -607,8 +625,10 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
 
         boolean afterSaleUpdateResult = this.afterSaleOrderService.update(updateWrapper);
         if (!afterSaleUpdateResult) {
+            log.error("售后单状态变更失败,订单ID:{},售后单列表:{}", productOrderInfo.getId(), afterSaleOrders);
             throw new ServiceException("售后单状态变更失败");
         }
+        log.info("售后单状态更新成功,订单ID:{}", productOrderInfo.getId());
 
     }
 

+ 6 - 4
nightFragrance-massage/src/main/java/com/ylx/point/service/impl/PointActivityServiceImpl.java

@@ -301,21 +301,21 @@ public class PointActivityServiceImpl extends ServiceImpl<PointActivityMapper, P
             taskList.sort((t1, t2) -> {
                 PointUserActivityTaskCompletion comp1 = completionMap.get(t1.getId());
                 PointUserActivityTaskCompletion comp2 = completionMap.get(t2.getId());
-                
+
                 // 判断是否已完成
                 boolean isCompleted1 = comp1 != null;
                 boolean isCompleted2 = comp2 != null;
-                
+
                 // 未完成优先
                 if (isCompleted1 != isCompleted2) {
                     return isCompleted1 ? 1 : -1;
                 }
-                
+
                 // 同一状态按创建时间正序排列
                 if (t1.getCreateTime() != null && t2.getCreateTime() != null) {
                     return t1.getCreateTime().compareTo(t2.getCreateTime());
                 }
-                
+
                 return 0;
             });
 
@@ -396,6 +396,8 @@ public class PointActivityServiceImpl extends ServiceImpl<PointActivityMapper, P
                 vo.setStatus(2); // 2: 今天未签到
             } else if (actuallySigned) {
                 vo.setStatus(1); // 1: 已签
+            } else if (date.isAfter(today)) {
+                vo.setStatus(0); // 0: 未来日期 = 没到时间没签
             } else {
                 // 没签到的情况 (且不是今天)
                 // 计算该日期距离今天的天数