From b64d67ef01e81a857046f19dd556b4e4f0695e1c Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期三, 02 八月 2023 16:41:51 +0800
Subject: [PATCH] 后台代码  门店管理

---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java |   74 +++++++++++++++++++++++++++++-------
 1 files changed, 59 insertions(+), 15 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
index 0280cee..68321ea 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -1,14 +1,19 @@
 package com.dsh.account.service.impl;
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.account.entity.TAppUser;
 import com.dsh.account.entity.UserIntegralChanges;
+import com.dsh.account.feignclient.activity.MerChandiseClient;
 import com.dsh.account.mapper.TAppUserMapper;
 import com.dsh.account.mapper.UserIntegralChangesMapper;
-import com.dsh.account.model.vo.userBenefitDetail.IntegralDetailsResponse;
+import com.dsh.account.model.SaveUserIntegralChangesVo;
+import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse;
+import com.dsh.account.model.vo.userBenefitDetail.IntegralsData;
+import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo;
 import com.dsh.account.service.UserIntegralChangesService;
 import com.dsh.account.util.DateTimeHelper;
+import com.dsh.account.util.ToolUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
@@ -33,11 +38,13 @@
 
     @Resource
     private TAppUserMapper tauMapper;
-    
+
+    @Resource
+    private MerChandiseClient mcClient;
+
     @Override
-    public IntegralDetailsResponse queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) {
-        IntegralDetailsResponse vo = new IntegralDetailsResponse();
-        List<IntegralDetailsResponse.IntegralsData> details = new ArrayList<>();
+    public List<IntegralsData> queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) {
+        List<IntegralsData> details = new ArrayList<>();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm");
 
         Date monthStart = null;
@@ -49,13 +56,13 @@
             monthStart = DateTimeHelper.getCurrentMouthStart();
             monthEnd = DateTimeHelper.getCurrentMouthEnd();
         }
-        List<UserIntegralChanges> userIntegralChanges = this.baseMapper.selectList(new EntityWrapper<UserIntegralChanges>()
+        List<UserIntegralChanges> userIntegralChanges = this.baseMapper.selectList(new QueryWrapper<UserIntegralChanges>()
                 .eq("appUserId",userIdFormRedis )
                 .between("insertTime",monthStart,monthEnd)
-                .orderBy("insertTime",false));
+                .orderByDesc("insertTime"));
         if (userIntegralChanges.size() > 0 ){
             for (UserIntegralChanges userIntegralChange : userIntegralChanges) {
-                IntegralDetailsResponse.IntegralsData detail= new IntegralDetailsResponse.IntegralsData();
+                IntegralsData detail= new IntegralsData();
                 switch (userIntegralChange.getType()){
                     case 1:
                         detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
@@ -86,14 +93,51 @@
             }
             if (null != recordId){
                 details = details.stream()
-                        .filter(obj -> obj instanceof IntegralDetailsResponse.IntegralsData)
+                        .filter(obj -> obj instanceof IntegralsData)
                         .filter(obj -> Objects.equals(obj.getDetailsType(), recordId))
                         .collect(Collectors.toList());
             }
-            TAppUser tAppUser = tauMapper.selectById(userIdFormRedis);
-            vo.setWpGold(tAppUser.getIntegral());
-            vo.setDetailList(details);
         }
-        return vo;
+        return details;
+    }
+
+
+    /**
+     * 保存用户积分变动
+     * @param vo
+     * @throws Exception
+     */
+    @Override
+    public void saveUserIntegralChanges(SaveUserIntegralChangesVo vo) throws Exception {
+        TAppUser appUser = tauMapper.selectById(vo.getAppUserId());
+        UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
+        userIntegralChanges.setAppUserId(vo.getAppUserId());
+        userIntegralChanges.setOldIntegral(appUser.getIntegral());
+        userIntegralChanges.setType(vo.getType());
+        appUser.setIntegral(appUser.getIntegral() + vo.getIntegral());
+        userIntegralChanges.setNewIntegral(appUser.getIntegral());
+        userIntegralChanges.setInsertTime(new Date());
+        this.save(userIntegralChanges);
+    }
+
+    @Override
+    public List<ExchangeDetailsResponse> queryExchangeGoodsdetails(Integer userIdFormRedis, Integer useType, Integer goodType) {
+        List<ExchangeDetailsResponse> integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
+        if (ToolUtil.isNotEmpty(useType)){
+            integralExchangeDetails = integralExchangeDetails.stream()
+                    .filter(response -> Objects.equals(response.getUseStatus(), useType))
+                    .collect(Collectors.toList());
+        }
+        if (ToolUtil.isNotEmpty(goodType)){
+            integralExchangeDetails = integralExchangeDetails.stream()
+                    .filter(response -> Objects.equals(response.getGoodType(), goodType))
+                    .collect(Collectors.toList());
+        }
+        return integralExchangeDetails;
+    }
+
+    @Override
+    public PointDetailsVo queryRedemptionDetails(Integer detailsId) {
+        return mcClient.getSpecificsOfGoods(detailsId);
     }
 }

--
Gitblit v1.7.1