ソースを参照

订单,积分,分类,退货的功能优化

wang 5 日 前
コミット
f0c3ddceb4

+ 2 - 2
yami-shop-api/src/main/java/com/yami/shop/api/listener/SubmitOrderListener.java

@@ -413,7 +413,7 @@ public class SubmitOrderListener {
                 //钱已经抵扣完,但是当条积分还有剩余,所以不要重新把剩余的放入队列。钱少积分多
                 //剩余的积分
                 pointsRecord.setVariablePoints(variablePoints.add(BigDecimal.valueOf(actualTotal)));
-                pr.setVariablePoints(variablePoints.add(BigDecimal.valueOf(actualTotal)));
+                pr.setVariablePoints(BigDecimal.valueOf(actualTotal));
                 expiryQueue.addFirst(pointsRecord);
                 pointsRecord.setPointsAudit(2);//部分使用
                 pr.setPointsAudit(2);//部分使用
@@ -433,13 +433,13 @@ public class SubmitOrderListener {
                 pr.setVariablePoints(BigDecimal.valueOf(actualTotal));
                 actualTotal = 0.0;
             }
-            pointsRecord.setCurrentlyAvailablePoints(BigDecimal.valueOf(point).subtract(pointsRecord.getVariablePoints()));
             int update = pointsRecordMapper.updateById(pointsRecord);
             if (update > 0) {
                 pr.setId(null);
                 pr.setPointsType(2);
                 pr.setOrderNumber(orderNumber);
                 pr.setCurrentlyAvailablePoints(BigDecimal.valueOf(point).subtract(pr.getVariablePoints()));
+                pr.setCreationDate(new Date());
                 pointsRecordMapper.insert(pr);
             }
             //  插入数据库

+ 0 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/CategoryDto.java

@@ -42,7 +42,6 @@ public class CategoryDto {
 	private String icon;
 
 	@ApiModelProperty(value = "标签",required=true)
-	@JsonSerialize(using = ImgJsonSerializer.class)
 	private String label;
 
 	@ApiModelProperty(value = "子类分类列表",required=true)

+ 12 - 1
yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java

@@ -26,6 +26,8 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -52,7 +54,16 @@ public class MyOrderServiceImpl extends ServiceImpl<OrderMapper, Order> implemen
             int score = orderItemDtos.stream().mapToInt(MyOrderItemDto::getUseScore).sum();
             myOrderDto.setUserScore(score);
             if (null != myOrderDto.getPayTime()) {
-                String format = sdf.format(myOrderDto.getPayTime());
+                // 转换为 LocalDateTime 并增加 1 小时
+                LocalDateTime delayedTime = myOrderDto.getPayTime().toInstant()
+                        .atZone(ZoneId.systemDefault())
+                        .toLocalDateTime()
+                        .plusHours(1);
+                // 转换回 Date 类型
+                Date delayedDate = Date.from(delayedTime.atZone(ZoneId.systemDefault()).toInstant());
+
+                // 格式化延迟后的时间
+                String format = sdf.format(delayedDate);
                 String[] split = format.split("\\$");
                 myOrderDto.setEstimatedTimeStr(split[0]);
                 myOrderDto.setEstimatedTime(split[1]);

+ 14 - 7
yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopCategoryServiceImpl.java

@@ -8,14 +8,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yami.shop.bean.dto.ShopCategoryExcelDTO;
-import com.yami.shop.bean.model.Category;
-import com.yami.shop.bean.model.FrontCategory;
+import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.model.ShopCategory;
-import com.yami.shop.bean.model.ShopCategory;
-import com.yami.shop.bean.model.ShopDetail;
 import com.yami.shop.bean.vo.FrontCategoryVO;
 import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.dao.FrontCategoryMapper;
+import com.yami.shop.dao.LabelMapper;
 import com.yami.shop.dao.ShopCategoryMapper;
 import com.yami.shop.dao.ShopDetailMapper;
 import com.yami.shop.service.IShopCategoryService;
@@ -50,6 +48,7 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
     private final FrontCategoryMapper frontCategoryMapper;
 
     private final ShopDetailMapper shopDetailMapper;
+    private final LabelMapper labelMapper;
 
 
     @Override
@@ -130,7 +129,7 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
                             new LambdaQueryWrapper<ShopCategory>()
                                     .eq(ShopCategory::getName, category.getName())
                                     .eq(ShopCategory::getShopId, shopId)
-                    .eq(ShopCategory::getIsDelete, 0).eq(ShopCategory::getPid, 0L));
+                                    .eq(ShopCategory::getIsDelete, 0).eq(ShopCategory::getPid, 0L));
                     if (ObjectUtils.isEmpty(shopCategory)) {
                         category.setShopId(shopId);
                         category.setPid(0L);
@@ -173,7 +172,15 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
             category.setPic(sc.getPic());
             category.setSeq(sc.getNum());
             category.setGrade(sc.getLevel());
-            category.setLabel(sc.getLabel());
+            if(null!=sc.getLabel()){
+                Label label = labelMapper.selectOne(new LambdaQueryWrapper<Label>()
+                        .eq(Label::getId, Long.valueOf(sc.getLabel()))
+                        .eq(Label::getIsDelete, 0)
+                        .eq(Label::getType, 0));
+                if (null != label && null != label.getName()) {
+                    category.setLabel(label.getName());
+                }
+            }
             return category;
         }).collect(Collectors.toList());
         res.setRecords(categories);
@@ -203,7 +210,7 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
 
         shopCategory.setHbShopId(hbShopId);
         shopCategory.setShopId(shopId);
-log.info("添加门店前台类目:{}", shopCategory);
+        log.info("添加门店前台类目:{}", shopCategory);
         this.save(shopCategory);
         List<FrontCategory> frontCategoryList = frontCategoryMapper.selectList(new LambdaQueryWrapper<FrontCategory>()
                 .eq(FrontCategory::getParentCode, frontCategory.getCode()));

+ 43 - 13
yami-shop-service/src/main/resources/mapper/PointsRecordMapper.xml

@@ -18,26 +18,56 @@
     </select>
 
       <select id="statisticsAllScorePoint" resultType="com.yami.shop.bean.dto.ScoreDataDto">
+
           SELECT
-          SUM( CASE WHEN points_audit = 1 THEN points WHEN points_audit = 2 THEN points - variable_points END ) AS total_available_points,
-          SUM( points ) AS total_recharged_points,
-          SUM(CASE WHEN points_audit IN ( 1, 2 ) AND expiry_date &lt;= NOW() THEN CASE
-          points_audit
-          WHEN 1 THEN
-          points
-          WHEN 2 THEN
-          points - variable_points
-          END ELSE 0
+          (
+          SUM(CASE WHEN points_type = 1 THEN points ELSE 0 END)
+          - SUM(
+          CASE WHEN points_audit IN (1, 2) AND expiry_date &lt;= NOW() THEN
+          CASE
+          WHEN points_audit = 1 THEN
+          CASE points_type
+          WHEN 1 THEN points
+          WHEN 3 THEN variable_points
+          ELSE 0
+          END
+          WHEN points_audit = 2 THEN
+          CASE points_type
+          WHEN 1 THEN points - variable_points
+          WHEN 3 THEN variable_points - variable_points
+          END
+          END
+          ELSE 0 END
+          )
+          - SUM(CASE WHEN points_type = 2 THEN variable_points ELSE 0 END)
+          + SUM(CASE WHEN points_type = 3 THEN variable_points ELSE 0 END)
+          ) AS total_available_points,
+          SUM(CASE WHEN points_type = 1 THEN points ELSE 0 END) AS total_recharged_points,
+          SUM(
+          CASE WHEN points_audit IN (1, 2) AND expiry_date &lt;= NOW() THEN
+          CASE
+          WHEN points_audit = 1 THEN
+          CASE points_type
+          WHEN 1 THEN points
+          WHEN 3 THEN variable_points
+          ELSE 0
           END
+          WHEN points_audit = 2 THEN
+          CASE points_type
+          WHEN 1 THEN points - variable_points
+          WHEN 3 THEN variable_points - variable_points
+          END
+          END
+          ELSE 0 END
           ) AS expired_points,
-          SUM( CASE WHEN points_audit = 3 THEN points WHEN points_audit = 2 THEN variable_points ELSE 0 END ) AS
-          consumed_points
+          SUM(CASE WHEN points_type = 2 THEN variable_points ELSE 0 END) AS consumed_points,
+          SUM(CASE WHEN points_type = 3 THEN variable_points ELSE 0 END) AS refund_points
           FROM
           tz_points_record
           WHERE
           user_id = #{userId}
-          AND channel_id =#{platform}
-          AND points_type IN (1, 3)
+          AND channel_id = #{platform}
+          AND points_type IN (1, 2, 3)
       </select>
 
 </mapper>

+ 1 - 1
yami-shop-user/yami-shop-user-comment/src/main/java/com/yami/shop/user/comment/service/impl/UserScoreDetailServiceImpl.java

@@ -167,7 +167,7 @@ public class UserScoreDetailServiceImpl extends ServiceImpl<UserScoreDetailMappe
                     case 1:
                         pointsRecord.setPointsTypeStr("充值");
                         mark = "+";
-                        pointsRecord.setVariablePointsStr(mark + (null!=pointsRecord.getVariablePoints()?pointsRecord.getVariablePoints():pointsRecord.getPoints()));
+                        pointsRecord.setVariablePointsStr(mark + pointsRecord.getPoints());
                         break;
                     case 2:
                         pointsRecord.setPointsTypeStr("购物");