From 9e01ddb449dba96e681af4bdb6257e3c7c0cfe51 Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期二, 11 七月 2023 15:42:54 +0800
Subject: [PATCH] 积分商城的列表查询

---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java |  272 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 202 insertions(+), 70 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index de01b85..474ce21 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -9,11 +9,17 @@
 import com.dsh.account.entity.VipPayment;
 import com.dsh.account.enums.RechargeRecordEnum;
 import com.dsh.account.feignclient.activity.MerChandiseClient;
+import com.dsh.account.feignclient.activity.UserConponClient;
+import com.dsh.account.feignclient.activity.model.CommodityRequest;
+import com.dsh.account.feignclient.activity.model.PointsMerchandise;
+import com.dsh.account.feignclient.course.CoursePackageClient;
 import com.dsh.account.feignclient.course.CoursePaymentClient;
 import com.dsh.account.feignclient.course.model.CourseOfStoreVo;
+import com.dsh.account.feignclient.course.model.CoursePackage;
 import com.dsh.account.feignclient.course.model.QueryStoreList;
 import com.dsh.account.feignclient.course.model.StuCourseResp;
 import com.dsh.account.feignclient.other.ImgConfigClient;
+import com.dsh.account.feignclient.other.RechargeConfigClient;
 import com.dsh.account.feignclient.other.StoreClient;
 import com.dsh.account.feignclient.other.model.Store;
 import com.dsh.account.feignclient.other.model.TImgConfig;
@@ -25,26 +31,24 @@
 import com.dsh.account.model.JoinPlayPaiVo;
 import com.dsh.account.model.LoginSMSCodeVo;
 import com.dsh.account.model.LoginWeChatVo;
+import com.dsh.account.model.dto.Coupon;
 import com.dsh.account.model.vo.classDetails.CourseVenue;
 import com.dsh.account.model.vo.classDetails.ExerciseVideo;
 import com.dsh.account.model.vo.classDetails.RegisteredCourse;
 import com.dsh.account.model.vo.classDetails.WeekedCourse;
 import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo;
-import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo;
-import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo;
+import com.dsh.account.model.vo.userBenefitDetail.*;
 import com.dsh.account.service.TAppUserService;
 import com.dsh.account.util.*;
 import com.dsh.account.util.akeylogin.Md5Util;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -94,6 +98,15 @@
 
     @Resource
     private RechargeRecordsMapper rrMapper;
+
+    @Resource
+    private RechargeConfigClient reconMapper;
+
+    @Resource
+    private UserConponClient ucponClient;
+
+    @Resource
+    private CoursePackageClient cpageClient;
 
     @Override
     public ClassInfoVo queryUserOfStus(Integer id,String latitude,String longitude) {
@@ -469,82 +482,55 @@
     }
 
     @Override
-    public BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId) {
+    public BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId, Integer appUserId) {
         BillingDetailsVo vo = new BillingDetailsVo();
         List<BillingDetailsVo.ConsumeDetail> details = new ArrayList<>();
 
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm");
-        if (null != yearMonth){
-
-            Date monthStart = DateTimeHelper.getCurrentIdetMouthStart(yearMonth);
-            Date monthEnd = DateTimeHelper.getCurrentIdeaMouthEnd(yearMonth);
+        Date monthStart = null;
+        Date monthEnd = null;
+        if (StringUtils.hasText(yearMonth)) {
+            monthStart = DateTimeHelper.getCurrentIdetMouthStart(yearMonth);
+            monthEnd = DateTimeHelper.getCurrentIdeaMouthEnd(yearMonth);
+        } else {
+            monthStart = DateTimeHelper.getCurrentMouthStart();
+            monthEnd = DateTimeHelper.getCurrentMouthEnd();
+        }
 //            1.赛事报名
 //            2.课包购买
 
 //            3.场地预约
 //            4.智慧球场
 //            5.年度会员
-            List<VipPayment> vipPayments = vipPaymentMapper.selectList(new QueryWrapper<VipPayment>()
-                    .eq("payStatus",2 )
-                    .between("insertTime",monthStart, monthEnd));
-            if (vipPayments.size() > 0){
-                for (VipPayment vipPayment : vipPayments) {
-                    BillingDetailsVo.ConsumeDetail consumeDetail = new BillingDetailsVo.ConsumeDetail();
-                    consumeDetail.setConsumeName(RechargeRecordEnum.ANNUAL_MEMBERSHIP.name());
-                    consumeDetail.setConsumeTime(simpleDateFormat.format(vipPayment.getInsertTime()));
-                    consumeDetail.setConsumeAmount("+"+vipPayment.getAmount());
-                    details.add(consumeDetail);
-                }
-            }
-//            6.续课
-//            7.充值
-            List<RechargeRecords> rechargeRecords = rrMapper.selectList(new QueryWrapper<RechargeRecords>()
-                    .eq("payStatus", 2)
-                    .between("insertTime",monthStart, monthEnd));
-            if (rechargeRecords.size() > 0){
-                for (RechargeRecords rechargeRecord : rechargeRecords) {
-                    BillingDetailsVo.ConsumeDetail consumeDetail = new BillingDetailsVo.ConsumeDetail();
-                    consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.name()+":"+rechargeRecord.getPlayPaiCoins());
-                    consumeDetail.setConsumeTime(simpleDateFormat.format(rechargeRecord.getInsertTime()));
-                    consumeDetail.setConsumeAmount("+"+rechargeRecord.getAmount());
-                    details.add(consumeDetail);
-                }
-            }
-        }else {
-            Date currentMouthStart = DateTimeHelper.getCurrentMouthStart();
-            Date currentMouthEnd = DateTimeHelper.getCurrentMouthEnd();
-//            1.赛事报名
-//            2.课包购买
-//            3.场地预约
-//            4.智慧球场
-//            5.年度会员
-            List<VipPayment> vipPayments = vipPaymentMapper.selectList(new QueryWrapper<VipPayment>()
-                    .eq("payStatus",2 )
-                    .between("insertTime",currentMouthStart, currentMouthEnd));
-            if (vipPayments.size() > 0){
-                for (VipPayment vipPayment : vipPayments) {
-                    BillingDetailsVo.ConsumeDetail consumeDetail = new BillingDetailsVo.ConsumeDetail();
-                    consumeDetail.setConsumeName(RechargeRecordEnum.ANNUAL_MEMBERSHIP.name());
-                    consumeDetail.setConsumeTime(simpleDateFormat.format(vipPayment.getInsertTime()));
-                    consumeDetail.setConsumeAmount("+"+vipPayment.getAmount());
-                    details.add(consumeDetail);
-                }
-            }
-//            6.续课
-//            7.充值
-            List<RechargeRecords> rechargeRecords = rrMapper.selectList(new QueryWrapper<RechargeRecords>()
-                    .eq("payStatus", 2)
-                    .between("insertTime",currentMouthStart, currentMouthEnd));
-            if (rechargeRecords.size() > 0){
-                for (RechargeRecords rechargeRecord : rechargeRecords) {
-                    BillingDetailsVo.ConsumeDetail consumeDetail = new BillingDetailsVo.ConsumeDetail();
-                    consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.name()+":"+rechargeRecord.getPlayPaiCoins());
-                    consumeDetail.setConsumeTime(simpleDateFormat.format(rechargeRecord.getInsertTime()));
-                    consumeDetail.setConsumeAmount("+"+rechargeRecord.getAmount());
-                    details.add(consumeDetail);
-                }
+        List<VipPayment> vipPayments = vipPaymentMapper.selectList(new QueryWrapper<VipPayment>()
+                .eq("payStatus", 2)
+                .eq("appUserId", appUserId)
+                .between("insertTime", monthStart, monthEnd));
+        if (vipPayments.size() > 0) {
+            for (VipPayment vipPayment : vipPayments) {
+                BillingDetailsVo.ConsumeDetail consumeDetail = new BillingDetailsVo.ConsumeDetail();
+                consumeDetail.setConsumeName(RechargeRecordEnum.ANNUAL_MEMBERSHIP.getMsg());
+                consumeDetail.setConsumeTime(simpleDateFormat.format(vipPayment.getInsertTime()));
+                consumeDetail.setConsumeAmount("+" + vipPayment.getAmount());
+                details.add(consumeDetail);
             }
         }
+//            6.续课
+//            7.充值
+        List<RechargeRecords> rechargeRecords = rrMapper.selectList(new QueryWrapper<RechargeRecords>()
+                .eq("payStatus", 2)
+                .eq("appUserId", appUserId)
+                .between("insertTime", monthStart, monthEnd));
+        if (rechargeRecords.size() > 0) {
+            for (RechargeRecords rechargeRecord : rechargeRecords) {
+                BillingDetailsVo.ConsumeDetail consumeDetail = new BillingDetailsVo.ConsumeDetail();
+                consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.getMsg() + ":" + rechargeRecord.getPlayPaiCoins());
+                consumeDetail.setConsumeTime(simpleDateFormat.format(rechargeRecord.getInsertTime()));
+                consumeDetail.setConsumeAmount("+" + rechargeRecord.getAmount());
+                details.add(consumeDetail);
+            }
+        }
+
         vo.setDetails(details);
         return vo;
     }
@@ -558,4 +544,150 @@
         }
     }
 
+    @Override
+    public List<RechargeCentVo> getSysRechargeConfig(Integer appUserId) {
+        List<RechargeCentVo> centVos = new ArrayList<>();
+        TAppUser tAppUser = this.baseMapper.selectById(appUserId);
+        List<Map<String, Object>> rechargeConfig = reconMapper.getRechargeConfig();
+        if (rechargeConfig.size() > 0 ){
+            for (Map<String, Object> stringObjectMap : rechargeConfig) {
+                RechargeCentVo vo = new RechargeCentVo();
+                vo.setAmount("¥ "+stringObjectMap.get("money"));
+                if (tAppUser.getIsVip() == 1){
+                    vo.setWpGold(stringObjectMap.get("MemberCoins")+"币");
+                }else {
+                    vo.setWpGold(stringObjectMap.get("usersCoins")+"币");
+                }
+                centVos.add(vo);
+            }
+        }
+        return centVos;
+    }
+
+    @Override
+    public PointMallDetailsResponse queryAppUserIntegral(MallRequest request, Integer userIdFormRedis) {
+        PointMallDetailsResponse detailsResponse = new PointMallDetailsResponse();
+        List<PointMallDetailsResponse.Goods> goods = new ArrayList<>();
+
+        TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis);
+        detailsResponse.setName(tAppUser.getName());
+        detailsResponse.setIntegral(tAppUser.getIntegral());
+        detailsResponse.setHeadImg(tAppUser.getHeadImg());
+
+        CommodityRequest commodityRequest = new CommodityRequest();
+        commodityRequest.setLon(request.getLon());
+        commodityRequest.setLat(request.getLat());
+        List<PointsMerchandise> vicinityGoods = mcClient.getVicinityGoods(commodityRequest);
+        if (vicinityGoods.size() > 0) {
+            for (PointsMerchandise vicinityGood : vicinityGoods) {
+                PointMallDetailsResponse.Goods commodity = new PointMallDetailsResponse.Goods();
+                switch (vicinityGood.getType()) {
+                    case 1:
+                        commodity.setGoodId(vicinityGood.getId());
+                        commodity.setGoodName(vicinityGood.getName());
+                        commodity.setGoodImg(vicinityGood.getCover());
+                        commodity.setCondition(vicinityGood.getRedemptionMethod());
+                        if (vicinityGood.getRedemptionMethod() == 1) {
+                            commodity.setIntegral(vicinityGood.getIntegral().intValue());
+                        } else {
+                            commodity.setIntegral(vicinityGood.getIntegral().intValue());
+                            commodity.setAmount(vicinityGood.getCash());
+                        }
+                        commodity.setBelongsType(vicinityGood.getUserPopulation());
+                        commodity.setGoodsType(1);
+                        commodity.setNums(mcClient.getRedeemedQuantity(vicinityGood.getId()));
+                        break;
+                    case 2:
+                        commodity.setGoodId(vicinityGood.getCoursePackageId());
+                        CoursePackage coursePackage = cpageClient.queryCoursePackageById(vicinityGood.getCoursePackageId());
+                        commodity.setGoodImg(coursePackage.getCoverDrawing());
+                        commodity.setGoodName(coursePackage.getName());
+                        commodity.setCondition(vicinityGood.getRedemptionMethod());
+                        if (vicinityGood.getRedemptionMethod() == 1) {
+                            commodity.setIntegral(vicinityGood.getIntegral().intValue());
+                        } else {
+                            commodity.setIntegral(vicinityGood.getIntegral().intValue());
+                            commodity.setAmount(vicinityGood.getCash());
+                        }
+                        commodity.setBelongsType(vicinityGood.getUserPopulation());
+                        commodity.setGoodsType(2);
+                        commodity.setNums(mcClient.getRedeemedQuantity(vicinityGood.getId()));
+                        break;
+                    case 3:
+                        commodity.setGoodId(vicinityGood.getId());
+                        commodity.setGoodName(vicinityGood.getName());
+                        commodity.setGoodImg(vicinityGood.getCover());
+                        commodity.setCondition(vicinityGood.getRedemptionMethod());
+                        if (vicinityGood.getRedemptionMethod() == 1) {
+                            commodity.setIntegral(vicinityGood.getIntegral().intValue());
+                        } else {
+                            commodity.setIntegral(vicinityGood.getIntegral().intValue());
+                            commodity.setAmount(vicinityGood.getCash());
+                        }
+                        commodity.setBelongsType(vicinityGood.getUserPopulation());
+                        commodity.setGoodsType(3);
+                        commodity.setNums(mcClient.getRedeemedQuantity(vicinityGood.getId()));
+                        break;
+                    default:
+                        break;
+                }
+                goods.add(commodity);
+            }
+        }
+        List<Coupon> allCoupons = ucponClient.getAllCoupons(commodityRequest);
+        if (allCoupons.size() > 0) {
+            for (Coupon allCoupon : allCoupons) {
+                PointMallDetailsResponse.Goods commodity = new PointMallDetailsResponse.Goods();
+                commodity.setGoodId(allCoupon.getId());
+                commodity.setGoodName(allCoupon.getName());
+                commodity.setCondition(allCoupon.getRedemptionMethod());
+                commodity.setGoodImg(allCoupon.getCover());
+                if (allCoupon.getRedemptionMethod() == 1) {
+                    commodity.setIntegral(allCoupon.getIntegral().intValue());
+                } else {
+                    commodity.setIntegral(allCoupon.getIntegral().intValue());
+                    commodity.setAmount(allCoupon.getCash());
+                }
+                commodity.setBelongsType(allCoupon.getUserPopulation());
+                commodity.setGoodsType(4);
+                commodity.setNums(ucponClient.getRedeemedQuantity(allCoupon.getId()));
+                goods.add(commodity);
+            }
+        }
+        if (StringUtils.hasText(request.getSearch())){
+            goods = goods.stream()
+                    .filter(merchandise -> merchandise.getGoodName().contains(request.getSearch()))
+                    .collect(Collectors.toList());
+        }
+        if (null != request.getRank()){
+            switch (request.getRank()){
+                case 1:
+                    goods = goods.stream()
+                            .sorted(Comparator.comparing(PointMallDetailsResponse.Goods::getIntegral).reversed())
+                            .collect(Collectors.toList());
+                    break;
+                case 2:
+                    goods = goods.stream()
+                            .sorted(Comparator.comparing(PointMallDetailsResponse.Goods::getIntegral))
+                            .collect(Collectors.toList());
+                    break;
+                case 3:
+                    goods = goods.stream()
+                            .sorted(Comparator.comparing(PointMallDetailsResponse.Goods::getNums).reversed())
+                            .collect(Collectors.toList());
+                    break;
+                default:
+                    break;
+            }
+
+        }
+        if (null != request.getGoodsType()){
+            goods = goods.stream()
+                    .filter(merchandise -> merchandise.getGoodsType().equals(request.getGoodsType()))
+                    .collect(Collectors.toList());
+        }
+        detailsResponse.setGoods(goods);
+        return detailsResponse;
+    }
+
 }

--
Gitblit v1.7.1