lisy
2023-07-20 8b031a2a2965726ab1d3e1e2f448302530e1a531
cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
@@ -5,9 +5,13 @@
import com.dsh.account.entity.RechargeRecords;
import com.dsh.account.entity.TAppUser;
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.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.vo.userBenefitDetail.RechargeDetailsVo;
@@ -23,11 +27,9 @@
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.*;
/**
 * <p>
@@ -51,7 +53,13 @@
    private CoursePaymentClient cpClient;
    @Autowired
    private DeductionCompetitionsClient deducClient;
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Resource
    private SiteClient stClient;
    @Resource
@@ -81,7 +89,16 @@
            vo.setWpGold(0);
        }
//            1.赛事报名
        List<PaymentCompetition> playPaiFGoldPayRecord = deducClient.getPlayPaiFGoldPayRecord(appUserId);
        if (playPaiFGoldPayRecord.size() > 0 ){
            for (PaymentCompetition competition : playPaiFGoldPayRecord) {
                RechargeDetailsVo.RechargesDetail consumeDetail = new RechargeDetailsVo.RechargesDetail();
                consumeDetail.setConsumeName(RechargeRecordEnum.EVENT_REGISTRATION.getMsg() );
                consumeDetail.setConsumeTime(simpleDateFormat.format(competition.getInsertTime()));
                consumeDetail.setConsumeAmount("-" + competition.getAmount());
                details.add(consumeDetail);
            }
        }
//            2.课包购买
        List<TCoursePackagePayment> appuserCourseList = cpClient.getAppuserCourseList(appUserId);
        if (appuserCourseList.size() > 0){
@@ -94,6 +111,16 @@
            }
        }
//            3.场地预约
        List<SiteBooking> siteBookings = stClient.wanpaiGoldSiteBookingList(appUserId);
        if (siteBookings.size() > 0 ){
            for (SiteBooking booking : siteBookings) {
                RechargeDetailsVo.RechargesDetail consumeDetail = new RechargeDetailsVo.RechargesDetail();
                consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.name());
                consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime()));
                consumeDetail.setConsumeAmount("-" + booking.getPayMoney());
                details.add(consumeDetail);
            }
        }
//            4.智慧球场
//            5.充值
@@ -109,6 +136,21 @@
                consumeDetail.setConsumeAmount("+" + rechargeRecord.getAmount());
                details.add(consumeDetail);
            }
        }
        if (details.size() > 0 ){
            Collections.sort(details, new Comparator<RechargeDetailsVo.RechargesDetail>() {
                @Override
                public int compare(RechargeDetailsVo.RechargesDetail o1, RechargeDetailsVo.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;
                }
            });
        }
        vo.setDetailList(details);
        return vo;
@@ -158,7 +200,7 @@
    private ResultUtil AlipayPayment(String code,BigDecimal amount) {
        ResultUtil alipay = payMoneyUtil.alipay("玩湃币充值", "", "", code, amount.toString(),
        ResultUtil alipay = payMoneyUtil.alipay("玩湃币充值", "玩湃币充值", "", code, amount.toString(),
                "/base/recharge/alipayRechargeCallback");
        if(alipay.getCode() == 200){
            new Thread(new Runnable() {