From 543e0a9c357e9354cd47eba36e8a2e6b9582ecd0 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 18 十二月 2024 14:58:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java           |   71 -----------------
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml                            |   62 +++++---------
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java              |   23 +++--
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java            |    5 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java                 |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java |    1 
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml                  |   44 +++++++++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java                      |    4 
 8 files changed, 92 insertions(+), 120 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
index 35ee127..19d0672 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
@@ -4,12 +4,17 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.model.BalanceChangeRecord;
+import com.ruoyi.account.api.model.UserPoint;
 import com.ruoyi.account.dto.BalanceQuery;
 import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface BalanceChangeRecordMapper extends BaseMapper<BalanceChangeRecord> {
     IPage<BalanceChangeRecord> pageList(@Param("page") Page<BalanceChangeRecord> page,@Param("agentQuery") BalanceQuery agentQuery);
 
     IPage<BalanceChangeRecord> queryCommissionStatistics(@Param("page") Page<BalanceChangeRecord> page,
                                                          @Param("changeRecord") BalanceChangeRecord changeRecord);
+
+    List<UserPoint> findLatestChangeByType(BalanceChangeRecord balanceChangeRecord);
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java
index 1bfbcff..14618dc 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java
@@ -1,6 +1,7 @@
 package com.ruoyi.account.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ruoyi.account.api.model.UserPoint;
 
 import java.util.List;
@@ -17,6 +18,5 @@
 
     List<UserPoint> findLatestUserPointByTypeForUser(Long userId);
 
-    List<UserPoint> findLatestChangeByType(UserPoint userPoint);
-
+    IPage<UserPoint> queryUserPointPage(IPage<UserPoint> page, UserPoint userPoint);
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
index 0cffbae..850405b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
@@ -38,6 +38,7 @@
 
     @Override
     public CommissionStatistics commissionStatistics(Page<BalanceChangeRecord> page, BalanceChangeRecord balanceChangeRecord) {
+
         IPage<BalanceChangeRecord> balanceChangeRecordIPage = this.baseMapper.queryCommissionStatistics(page, balanceChangeRecord);
 //        return new CommissionStatistics(totalCommission, changeRecordPage);
         return null;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
index 61c0ede..9b7ded5 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
@@ -163,79 +163,12 @@
 
     @Override
     public UserPointStatistics getStatistics(UserPoint userPoint) {
-        try {
-            if (StringUtils.isNotEmpty(userPoint.getUserName()) && StringUtils.isNotEmpty(userPoint.getPhone())) {
-                List<Long> userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>()
-                                .select(AppUser::getId)
-                                .like(AppUser::getName, userPoint.getUserName())
-                                .like(AppUser::getPhone, userPoint.getPhone()))
-                        .stream()
-                        .map(appUserId -> (Long) appUserId)
-                        .collect(Collectors.toList());
-                userPoint.setUserIds(userIds);
-            }
-
-            List<UserPoint> userPointList = userPointMapper.findLatestChangeByType(userPoint);
-
-            Map<Integer, Integer> userBalanceMap = userPointList.stream()
-                    .collect(Collectors.groupingBy(
-                            UserPoint::getType,
-                            Collectors.summingInt(UserPoint::getBalance)
-                    ));
-
-            int consumePoint = userBalanceMap.getOrDefault(PointChangeType.CONSUME.getCode(), 0);
-            int sharePoint = userBalanceMap.getOrDefault(PointChangeType.COMMISSION_RETURN.getCode(), 0);
-            int pullNewPoint = userBalanceMap.getOrDefault(PointChangeType.NEW_USER_REFERRAL.getCode(), 0);
-            int registerPoint = userBalanceMap.getOrDefault(PointChangeType.REGISTRATION.getCode(), 0);
-            int workPoint = userBalanceMap.getOrDefault(PointChangeType.WORK_PERFORMANCE.getCode(), 0);
-            int shopAchievementPoint = userBalanceMap.getOrDefault(PointChangeType.TECHNICIAN_PERFORMANCE.getCode(), 0);
-            int exchangeGoodsPoint = userBalanceMap.getOrDefault(PointChangeType.EXCHANGE_GOODS.getCode(), 0);
-            int storeAchievementPoint = userBalanceMap.getOrDefault(PointChangeType.STORE_PERFORMANCE.getCode(), 0);
-            int storeCommissionPoint = userBalanceMap.getOrDefault(PointChangeType.STORE_COMMISSION_RETURN.getCode(), 0);
-            int transferPoint = userBalanceMap.getOrDefault(PointChangeType.TRANSFER_POINTS.getCode(), 0);
-            int totalPoint = consumePoint + sharePoint + pullNewPoint + registerPoint + workPoint + shopAchievementPoint + exchangeGoodsPoint + storeAchievementPoint + storeCommissionPoint + transferPoint;
-
-            UserPointStatistics userPointStatistics = new UserPointStatistics();
-            userPointStatistics.setTotalPoint(totalPoint);
-            userPointStatistics.setConsumePoint(consumePoint);
-            userPointStatistics.setSharePoint(sharePoint);
-            userPointStatistics.setPullNewPoint(pullNewPoint);
-            userPointStatistics.setRegisterPoint(registerPoint);
-            userPointStatistics.setWorkPoint(workPoint);
-            userPointStatistics.setShopAchievementPoint(shopAchievementPoint);
-
-            return userPointStatistics;
-        } catch (Exception e) {
-            // 记录异常日志
-            log.error("获取用户点统计信息时出错", e);
-            throw new RuntimeException("获取用户点统计信息时出错", e);
-        }
+        return null;
     }
 
 
     @Override
     public IPage<UserPoint> getUserPointPage(Page<UserPoint> page, UserPoint userPoint) {
-        List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
-                .eq(AppUser::getPhone, userPoint.getPhone())
-                .like(AppUser::getName, userPoint.getUserName()));
-        if (appUserList.isEmpty()){
-            return page;
-        }
-
-        List<Long> userIds = appUserList.stream().map(AppUser::getId).collect(Collectors.toList());
-
-        Page<UserPoint> userPointPage = page(page, new LambdaQueryWrapper<UserPoint>()
-                .in(UserPoint::getAppUserId, userIds)
-                .eq(userPoint.getType() != null, UserPoint::getType, userPoint.getType())
-                .between( userPoint.getStartTime()!= null && userPoint.getEndTime() !=null,UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime())
-                .orderByDesc(UserPoint::getCreateTime));
-
-        userPointPage.getRecords().forEach(userPoint1 -> appUserList.stream()
-                .filter(appUser -> appUser.getId().equals(userPoint1.getAppUserId()))
-                .findFirst().ifPresent(appUser -> {
-                    userPoint1.setUserName(appUser.getName());
-                    userPoint1.setPhone(appUser.getPhone());
-                }));
-        return userPointPage;
+        return this.baseMapper.queryUserPointPage(page, userPoint);
     }
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
index 71ed297..a947cb1 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
@@ -44,4 +44,48 @@
             </if>
         </where>
     </select>
+    <select id="findLatestChangeByType" resultType="com.ruoyi.account.api.model.UserPoint">
+        SELECT
+            id,
+            app_user_id,
+            order_id,
+            change_type,
+            before_amount,
+            change_amount,
+            after_amount,
+            del_flag,
+            create_time
+        FROM
+            (
+                SELECT
+                    id,
+                    app_user_id,
+                    order_id,
+                    change_type,
+                    before_amount,
+                    change_amount,
+                    after_amount,
+                    del_flag,
+                    create_time,
+                    ROW_NUMBER() OVER ( PARTITION BY change_type, app_user_id ORDER BY create_time DESC ) rn
+                FROM
+                    t_balance_change_record
+        <where>
+            <if test="changeRecord.userName != null and changeRecord.userName != ''">
+                and tau.name like concat('%',#{changeRecord.userName},'%')
+            </if>
+            <if test="changeRecord.userPhone != null and changeRecord.userPhone != ''">
+                and tau.phone like concat('%',#{changeRecord.userPhone},'%')
+            </if>
+            <if test="changeRecord.changeType != null">
+                and tcr.change_type = #{changeRecord.changeType}
+            </if>
+            <if test="changeRecord.startTime != null and changeRecord.endTime != null">
+                and DATE(tcr.create_time) between  #{changeRecord.startTime} and #{changeRecord.endTime}
+            </if>
+        </where>
+            ) AS subquery
+        WHERE
+            rn = 1
+    </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
index a0314df..5c211c5 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
@@ -27,46 +27,30 @@
         WHERE
             t1.app_user_id = #{userId}
     </select>
-    <select id="findLatestChangeByType" resultType="com.ruoyi.account.api.model.UserPoint">
+    <select id="queryUserPointPage" resultType="com.ruoyi.account.api.model.UserPoint">
         SELECT
-            id,
-            type,
-            historical_point,
-            variable_point,
-            balance,
-            create_time,
-            app_user_id,
-            object_id
-        FROM (
-                 SELECT
-                     id,
-                     type,
-                     historical_point,
-                     variable_point,
-                     balance,
-                     create_time,
-                     app_user_id,
-                     object_id,
-                     ROW_NUMBER() OVER (PARTITION BY `type`,app_user_id ORDER BY create_time DESC) AS rn
-                 FROM
-                     t_user_point
-                 <where>
-                         <if test="startTime != null and endTime != null">
-                             create_time BETWEEN #{startTime} AND #{endTime}
-                         </if>
-                         <if test="type != null">
-                             AND `type` = #{type}
-                         </if>
-                         <if test="userIds != null and userIds.size !=0">
-                             AND app_user_id IN
-                             <foreach item="item" collection="userIds" separator="," open="(" close=")" index="">
-                                 #{item}
-                             </foreach>
-                         </if>
-                 </where>
-        ) AS subquery
-        WHERE
-            rn = 1
+            tau.`name` userName,
+            tau.phone,
+            tup.type,
+            tup.create_time,
+            tup.variable_point
+        FROM
+            t_user_point tup
+                LEFT JOIN t_app_user tau ON tup.app_user_id = tau.id
+        <where>
+            <if test="userName != null and userName != ''">
+                AND tau.`name` LIKE concat('%',#{userName},'%')
+            </if>
+            <if test="phone != null and phone != ''">
+                AND tau.phone LIKE concat('%',#{phone},'%')
+            </if>
+            <if test="type != null and type != ''">
+                AND tup.type = #{type}
+            </if>
+            <if test="startTime != null and endTime != null">
+                AND tup.create_time BETWEEN #{startTime} AND #{endTime}
+            </if>
+        </where>
     </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
index 26e2585..296a8dd 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
@@ -127,6 +127,7 @@
         couponInfo.setShelfStatus(0);
         List<String> goodsNameList = couponInfo.getGoodsNameList();
         couponInfo.setGoodsNameJson(JSON.toJSONString(goodsNameList));
+        couponInfo.setShelfStatus(1);
         couponInfoService.save(couponInfo);
         return R.ok();
     }
@@ -187,6 +188,7 @@
 
     @GetMapping("/getReceiveRecord")
     public R<IPage<UserCoupon>> getReceiveRecord(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("大小") Integer pageSize,UserCoupon userCoupon) {
+        // TODO 待完善
         return null;
     }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java
index 1d9c8ad..b1374df 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java
@@ -3,6 +3,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.AppUser;
 import com.ruoyi.common.core.domain.R;
@@ -101,18 +102,20 @@
      */
     @GetMapping("/list")
     @ApiOperation(value = "评论列表", tags = {"管理后台-商品管理-评价管理"})
-    public R<List<GoodsEvaluate>> list(GoodsEvaluate goodsEvaluate){
-        List<GoodsEvaluate> list = goodsEvaluateService.lambdaQuery()
-                .like(StringUtils.isNotEmpty(goodsEvaluate.getGoodsName()),GoodsEvaluate::getGoodsName, goodsEvaluate.getComment())
-                .like(StringUtils.isNotEmpty(goodsEvaluate.getUserName()),GoodsEvaluate::getUserName, goodsEvaluate.getUserName())
-                .like(StringUtils.isNotEmpty(goodsEvaluate.getPhone()),GoodsEvaluate::getPhone, goodsEvaluate.getPhone())
-                .eq(goodsEvaluate.getStatus()!=null,GoodsEvaluate::getStatus, goodsEvaluate.getStatus())
-                .orderByDesc(GoodsEvaluate::getCreateTime)
-                .list();
+    public R<Page<GoodsEvaluate>> list(@ApiParam("页码") @RequestParam Integer pageNum,
+                                       @ApiParam("每一页数据大小") Integer pageSize,
+                                       GoodsEvaluate goodsEvaluate){
+        Page<GoodsEvaluate> page = goodsEvaluateService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<GoodsEvaluate>()
+                .like(StringUtils.isNotEmpty(goodsEvaluate.getGoodsName()), GoodsEvaluate::getGoodsName, goodsEvaluate.getComment())
+                .like(StringUtils.isNotEmpty(goodsEvaluate.getUserName()), GoodsEvaluate::getUserName, goodsEvaluate.getUserName())
+                .like(StringUtils.isNotEmpty(goodsEvaluate.getPhone()), GoodsEvaluate::getPhone, goodsEvaluate.getPhone())
+                .eq(goodsEvaluate.getStatus() != null, GoodsEvaluate::getStatus, goodsEvaluate.getStatus())
+                .orderByDesc(GoodsEvaluate::getCreateTime));
 
-        list.forEach(this::buildDetail);
 
-        return R.ok(list);
+        page.getRecords().forEach(this::buildDetail);
+
+        return R.ok(page);
     }
 
     private void buildDetail(GoodsEvaluate item) {

--
Gitblit v1.7.1