From f7e51fc7c91e474e5c0bcc79c47f074c0a59b5c3 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 11 十月 2023 20:03:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java |  160 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 127 insertions(+), 33 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
index b5dbc63..01d206d 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
@@ -4,32 +4,40 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.account.entity.RechargeRecords;
 import com.dsh.account.entity.TAppUser;
+import com.dsh.account.entity.VipPayment;
 import com.dsh.account.enums.RechargeRecordEnum;
 import com.dsh.account.feignclient.competition.DeductionCompetitionsClient;
 import com.dsh.account.feignclient.competition.model.PaymentCompetition;
 import com.dsh.account.feignclient.course.CoursePaymentClient;
+import com.dsh.account.feignclient.course.model.CouponPaymentVo;
 import com.dsh.account.feignclient.course.model.TCoursePackagePayment;
 import com.dsh.account.feignclient.other.RechargeConfigClient;
+import com.dsh.account.feignclient.other.SiteClient;
+import com.dsh.account.feignclient.other.model.SiteBooking;
 import com.dsh.account.mapper.RechargeRecordsMapper;
 import com.dsh.account.mapper.TAppUserMapper;
+import com.dsh.account.model.IncomeQuery;
+import com.dsh.account.model.query.RechargeRecordsQuery;
+import com.dsh.account.model.vo.RechargeRecordsVO;
 import com.dsh.account.model.vo.userBenefitDetail.RechargeDetailsVo;
 import com.dsh.account.model.vo.userBenefitDetail.RechargePayRequest;
+import com.dsh.account.model.vo.userBenefitDetail.RechargesDetail;
 import com.dsh.account.service.RechargeRecordsService;
-import com.dsh.account.util.DateTimeHelper;
-import com.dsh.account.util.PayMoneyUtil;
-import com.dsh.account.util.ResultUtil;
-import com.dsh.account.util.UUIDUtil;
+import com.dsh.account.util.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.ParseException;
 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;
 
 /**
  * <p>
@@ -58,15 +66,19 @@
     @Autowired
     private PayMoneyUtil payMoneyUtil;
 
+    @Resource
+    private SiteClient stClient;
+
 
     @Resource
     private RechargeConfigClient reconMapper;
+    @Autowired
+    private RechargeRecordsMapper rechargeRecordsMapper;
 
 
     @Override
-    public RechargeDetailsVo getAppUserRechargeRecord(String yearMonth, Integer recordId, Integer appUserId) {
-        RechargeDetailsVo vo = new RechargeDetailsVo();
-        List<RechargeDetailsVo.RechargesDetail> details = new ArrayList<>();
+    public List<RechargesDetail> getAppUserRechargeRecord(String yearMonth, Integer recordId, Integer appUserId,Integer pageNum,Integer pageSize) {
+        List<RechargesDetail> details = new ArrayList<>();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm");
 
         Date monthStart = null;
@@ -79,35 +91,42 @@
             monthEnd = DateTimeHelper.getCurrentMouthEnd();
         }
 
-        TAppUser tAppUser = tappMapper.selectById(appUserId);
-        if (null != tAppUser){
-            vo.setWpGold(tAppUser.getPlayPaiCoins());
-        }else {
-            vo.setWpGold(0);
-        }
 //            1.赛事报名
         List<PaymentCompetition> playPaiFGoldPayRecord = deducClient.getPlayPaiFGoldPayRecord(appUserId);
         if (playPaiFGoldPayRecord.size() > 0 ){
             for (PaymentCompetition competition : playPaiFGoldPayRecord) {
-                RechargeDetailsVo.RechargesDetail consumeDetail = new RechargeDetailsVo.RechargesDetail();
+                RechargesDetail consumeDetail = new RechargesDetail();
                 consumeDetail.setConsumeName(RechargeRecordEnum.EVENT_REGISTRATION.getMsg() );
                 consumeDetail.setConsumeTime(simpleDateFormat.format(competition.getInsertTime()));
                 consumeDetail.setConsumeAmount("-" + competition.getAmount());
+                consumeDetail.setRecordId(2);
                 details.add(consumeDetail);
             }
         }
 //            2.课包购买
-        List<TCoursePackagePayment> appuserCourseList = cpClient.getAppuserCourseList(appUserId);
+        List<CouponPaymentVo> appuserCourseList = cpClient.getAppuserCourseList(appUserId);
         if (appuserCourseList.size() > 0){
-            for (TCoursePackagePayment tCoursePackagePayment : appuserCourseList) {
-                RechargeDetailsVo.RechargesDetail consumeDetail = new RechargeDetailsVo.RechargesDetail();
+            for (CouponPaymentVo tCoursePackagePayment : appuserCourseList) {
+                RechargesDetail consumeDetail = new RechargesDetail();
                 consumeDetail.setConsumeName(RechargeRecordEnum.COURSE_PACKAGE_PURCHASE.getMsg() );
-                consumeDetail.setConsumeTime(simpleDateFormat.format(tCoursePackagePayment.getInsertTime()));
-                consumeDetail.setConsumeAmount("-" + tCoursePackagePayment.getPlayPaiCoin());
+                consumeDetail.setConsumeTime(tCoursePackagePayment.getTime());
+                consumeDetail.setConsumeAmount("-" + tCoursePackagePayment.getAmount());
+                consumeDetail.setRecordId(2);
                 details.add(consumeDetail);
             }
         }
 //            3.场地预约
+        List<SiteBooking> siteBookings = stClient.wanpaiGoldSiteBookingList(appUserId);
+        if (siteBookings.size() > 0 ){
+            for (SiteBooking booking : siteBookings) {
+                RechargesDetail consumeDetail = new RechargesDetail();
+                consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.name());
+                consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime()));
+                consumeDetail.setConsumeAmount("-" + booking.getPayMoney());
+                consumeDetail.setRecordId(2);
+                details.add(consumeDetail);
+            }
+        }
 //            4.智慧球场
 
 //            5.充值
@@ -117,15 +136,44 @@
                 .between("insertTime", monthStart, monthEnd));
         if (rechargeRecords.size() > 0) {
             for (RechargeRecords rechargeRecord : rechargeRecords) {
-                RechargeDetailsVo.RechargesDetail consumeDetail = new RechargeDetailsVo.RechargesDetail();
+                RechargesDetail consumeDetail = new RechargesDetail();
                 consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.name() + ":" + rechargeRecord.getPlayPaiCoins());
                 consumeDetail.setConsumeTime(simpleDateFormat.format(rechargeRecord.getInsertTime()));
                 consumeDetail.setConsumeAmount("+" + rechargeRecord.getAmount());
+                consumeDetail.setRecordId(1);
                 details.add(consumeDetail);
             }
         }
-        vo.setDetailList(details);
-        return vo;
+        if (ToolUtil.isNotEmpty(recordId)){
+            details = details.stream()
+                    .filter(record -> record.getRecordId().equals(recordId))
+                    .collect(Collectors.toList());
+        }
+        if (details.size() > 0 ){
+            Collections.sort(details, new Comparator<RechargesDetail>() {
+                @Override
+                public int compare(RechargesDetail o1, RechargesDetail o2) {
+                    try {
+                        Date date1 = simpleDateFormat.parse(o1.getConsumeTime());
+                        Date date2 = simpleDateFormat.parse(o2.getConsumeTime());
+                        return date2.compareTo(date1); // 降序排序
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                    return 0;
+                }
+            });
+        }
+        //当前第几页
+        int pageNo = pageNum;
+        //一页五条
+        int size = pageSize;
+
+        //分页
+        details = details.stream().skip((pageNo - 1) * size).limit(size).
+                collect(Collectors.toList());
+
+        return details;
     }
 
     @Override
@@ -136,15 +184,18 @@
         RechargeRecords rechargeRecords = new RechargeRecords();
         rechargeRecords.setCode(code);
         rechargeRecords.setAppUserId(userIdFormRedis);
-        rechargeRecords.setAmount(request.getPayAmount());
+
         List<Map<String, Object>> rechargeConfig = reconMapper.getRechargeConfig();
+        BigDecimal amount = BigDecimal.ZERO;
         if (rechargeConfig.size() > 0){
             for (Map<String, Object> stringObjectMap : rechargeConfig) {
-                Object o = stringObjectMap.get("money");
-                if (o.equals(request.getPayAmount())){
-                    if (tAppUser.getIsVip() == 1){
+                double o = (double) stringObjectMap.get("money");
+                if (BigDecimal.valueOf(o).compareTo(request.getAmount()) == 0) {
+                    amount = BigDecimal.valueOf(o);
+                    rechargeRecords.setAmount(BigDecimal.valueOf(o));
+                    if (tAppUser.getIsVip() == 1) {
                         rechargeRecords.setPlayPaiCoins((Integer) stringObjectMap.get("MemberCoins"));
-                    }else {
+                    } else {
                         rechargeRecords.setPlayPaiCoins((Integer) stringObjectMap.get("usersCoins"));
                     }
                 }
@@ -157,9 +208,9 @@
         try {
             switch (request.getPayType()){
                 case 1:
-                    return WeChatPayment(code,request.getPayAmount());
+                    return WeChatPayment(code,amount);
                 case 2:
-                    return AlipayPayment(code,request.getPayAmount());
+                    return AlipayPayment(code,amount);
                 default:
                     break;
             }
@@ -304,4 +355,47 @@
         return null;
     }
 
+    @Override
+    public List<RechargeRecordsVO> rechargeList(RechargeRecordsQuery query) {
+        String STime = null;
+        String ETime = null;
+        if (StringUtils.hasLength(query.getTime())) {
+            STime = query.getTime().split(" - ")[0] + " 00:00:00";
+            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
+        }
+
+        return  rechargeRecordsMapper.rechargeList(query,STime,ETime);
+
+    }
+
+    @Override
+    public List<VipPayment> listAll(IncomeQuery query) {
+        String STime = null;
+        String ETime = null;
+        if (StringUtils.hasLength(query.getTime())) {
+            STime = query.getTime().split(" - ")[0] + " 00:00:00";
+            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
+        }
+        return rechargeRecordsMapper.listAll(query,STime,ETime,query.getAmount(),query.getInsertType());
+    }
+    public static <T> List<T> pageList(List<T> list, int pageNum, int pageSize) {
+        //计算总页数
+        int page = list.size() % pageSize == 0 ? list.size() / pageSize : list.size() / pageSize + 1;
+        //兼容性分页参数错误
+        pageNum = pageNum <= 0 ? 1 : pageNum;
+        pageNum = pageNum >= page ? page : pageNum;
+        // 开始索引
+        int begin = 0;
+        // 结束索引
+        int end = 0;
+        if (pageNum != page) {
+            begin = (pageNum - 1) * pageSize;
+            end = begin + pageSize;
+        } else {
+            begin = (pageNum - 1) * pageSize;
+            end = list.size();
+        }
+        return list.subList(begin, end);
+    }
+
 }

--
Gitblit v1.7.1