瀏覽代碼

Merge branch 'refs/heads/sit-credit-score' into sit

lyx 21 小時之前
父節點
當前提交
a497bd7471

+ 2 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserVo.java

@@ -27,6 +27,8 @@ public class LifeUserVo extends LifeUser {
 
     private double consumePrice;
 
+    private Integer userPoints;
+
     @ApiModelProperty(value = "前端查询集合Label")
     private String Label;
 

+ 3 - 1
alien-entity/src/main/resources/mapper/PlatformLifeUserMapper.xml

@@ -35,12 +35,14 @@
             AS likesNumber,
         COUNT(lf.id) AS fans_count,
         lue.id as expert_id,
-        lue.expert_code as expert_code
+        lue.expert_code as expert_code,
+        suc.user_points AS user_points
         FROM life_user user
         LEFT JOIN orders ON orders.user_id = user.id
         LEFT JOIN comment ON comment.user_id = user.id
         LEFT JOIN life_fans lf ON lf.followed_id = CONCAT('user_', user.user_phone) and lf.delete_flag = 0
         LEFT JOIN life_user_expert lue ON lue.user_id = user.id and lue.delete_flag = 0
+        LEFT JOIN second_user_credit suc ON suc.user_id = user.id and suc.delete_flag = 0
         <!-- 动态 SQL 片段,用于拼接查询条件 -->
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}

+ 5 - 3
alien-second/src/main/java/shop/alien/second/controller/SecondUserCreditRecordController.java

@@ -45,13 +45,15 @@ public class SecondUserCreditRecordController {
     @ApiOperationSupport(order = 5)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "userId", value = "用户ID", dataType = "Integer", paramType = "query", required = true),
-            @ApiImplicitParam(name = "timeRange", value = "时间范围:1-近一周,2-近一个月,3-近一年", dataType = "Integer", paramType = "query")
+            @ApiImplicitParam(name = "timeRange", value = "时间范围:1-近一周,2-近一个月,3-近一年", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "pointsType", value = "积分类型:0-全部,1-正分,2-负分", dataType = "Integer", paramType = "query")
     })
     @GetMapping("/getByUserId")
     public R<SecondUserCreditRecordListVo> getByUserId(
             @RequestParam Integer userId,
-            @RequestParam(required = false) Integer timeRange) {
-        return secondUserPointsRecordService.getByUserId(userId, timeRange);
+            @RequestParam(required = false) Integer timeRange,
+            @RequestParam(required = false) Integer pointsType) {
+        return secondUserPointsRecordService.getByUserId(userId, timeRange, pointsType);
     }
     
     @ApiOperation("创建积分记录")

+ 1 - 1
alien-second/src/main/java/shop/alien/second/service/SecondUserCreditRecordService.java

@@ -27,7 +27,7 @@ public interface SecondUserCreditRecordService extends IService<SecondUserCredit
      */
     boolean createRecord(SecondUserCreditRecord record);
 
-    R<SecondUserCreditRecordListVo> getByUserId(Integer userId, Integer timeRange);
+    R<SecondUserCreditRecordListVo> getByUserId(Integer userId, Integer timeRange, Integer pointsType);
 
     /**
      * 用户观看完学习视频后增加积分

+ 17 - 8
alien-second/src/main/java/shop/alien/second/service/impl/SecondUserCreditRecordServiceImpl.java

@@ -73,25 +73,34 @@ public class SecondUserCreditRecordServiceImpl extends ServiceImpl<SecondUserCre
     }
 
     @Override
-    public R<SecondUserCreditRecordListVo> getByUserId(Integer userId, Integer timeRange) {
-        log.info("SecondUserCreditRecordServiceImpl.getByUserId, userId={}, timeRange={}", userId, timeRange);
+    public R<SecondUserCreditRecordListVo> getByUserId(Integer userId, Integer timeRange, Integer pointsType) {
+        log.info("SecondUserCreditRecordServiceImpl.getByUserId, userId={}, timeRange={}, pointsType={}", userId, timeRange, pointsType);
         LambdaQueryWrapper<SecondUserCreditRecord> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(SecondUserCreditRecord::getUserId, userId);
 
         // 根据时间范围过滤
         Date startTime = null;
-
-
-        queryWrapper.orderByDesc(SecondUserCreditRecord::getCreatedTime);
-        // 下面全部 忽略时间范围 需求变动再去添加
-        List<SecondUserCreditRecord> recordsChange = this.list(queryWrapper);
-
         if (timeRange != null) {
             startTime = calculateStartTime(timeRange);
             if (startTime != null) {
                 queryWrapper.ge(SecondUserCreditRecord::getCreatedTime, startTime);
             }
         }
+
+        // 根据积分类型过滤:0-全部,1-正分,2-负分
+        if (pointsType != null) {
+            if (pointsType == 1) {
+                // 正分:points > 0
+                queryWrapper.gt(SecondUserCreditRecord::getPoints, 0);
+            } else if (pointsType == 2) {
+                // 负分:points < 0
+                queryWrapper.lt(SecondUserCreditRecord::getPoints, 0);
+            }
+            // pointsType == 0 或 null 表示全部,不需要过滤
+        }
+
+        queryWrapper.orderByDesc(SecondUserCreditRecord::getCreatedTime);
+        List<SecondUserCreditRecord> recordsChange = this.list(queryWrapper);
         
         // 查询日期积分记录,按照相同的时间范围筛选
         LambdaQueryWrapper<SecondUserCreditDateRecord> dateRecordQueryWrapper = new LambdaQueryWrapper<>();