From be8fdcb9d380f555981d17b851cd55f630d41aba Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期一, 16 十月 2023 18:00:21 +0800
Subject: [PATCH] 10.16
---
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 88 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..a5faf58 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,23 @@
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.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.account.entity.TAppUser;
+import com.dsh.account.entity.UserIntegral;
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.IntegralListQuery;
+import com.dsh.account.model.SaveUserIntegralChangesVo;
+import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse;
+import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsVo;
+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 +42,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 +60,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 +97,76 @@
}
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());
+ userIntegralChanges.setCategory(1);
+ this.save(userIntegralChanges);
+ }
+
+ @Override
+ public List<ExchangeDetailsResponse> queryExchangeGoodsdetails(Integer userIdFormRedis, Integer useType, Integer goodType) {
+ List<ExchangeDetailsResponse> detailsResponses = new ArrayList<>();
+ ExchangeDetailsVo integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
+ if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())){
+ detailsResponses = integralExchangeDetails.getDetailsResponses();
+ if (ToolUtil.isNotEmpty(useType)){
+ detailsResponses = integralExchangeDetails.getDetailsResponses().stream()
+ .filter(response -> Objects.equals(response.getUseStatus(), useType))
+ .collect(Collectors.toList());
+ }
+ if (ToolUtil.isNotEmpty(goodType)){
+ detailsResponses = integralExchangeDetails.getDetailsResponses().stream()
+ .filter(response -> Objects.equals(response.getGoodType(), goodType))
+ .collect(Collectors.toList());
+ }
+ }
+ return detailsResponses;
+ }
+
+ @Override
+ public PointDetailsVo queryRedemptionDetails(Long detailsId) {
+ PointDetailsVo specificsOfGoods = mcClient.getSpecificsOfGoods(detailsId);
+ return specificsOfGoods;
+ }
+
+ @Override
+ public Page<UserIntegral> listAll(Page<UserIntegral> userIntegralPage, IntegralListQuery integralListQuery) {
+ String sTime =null;
+ String eTime =null;
+ if(ToolUtil.isNotEmpty(integralListQuery.getTime())){
+ sTime = integralListQuery.getTime().split(" - ")[0]+" 00:00:00";
+ eTime = integralListQuery.getTime().split(" - ")[1]+" 23:59:59";
+ }
+ Page<UserIntegral> userIntegrals = this.baseMapper.listAll(userIntegralPage, integralListQuery, sTime, eTime);
+ for (UserIntegral userIntegral : userIntegrals.getRecords()) {
+ if(userIntegral.getCategory()==1){
+ userIntegral.setIntegral(userIntegral.getNewIntegral()-userIntegral.getOldIntegral());
+ }else {
+ userIntegral.setIntegral(userIntegral.getOldIntegral()-userIntegral.getNewIntegral());
+ }
+ }
+ return userIntegrals;
}
}
--
Gitblit v1.7.1