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 | 130 ++++++++++++++++++++++++++++++++---------- 1 files changed, 98 insertions(+), 32 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 daf66de..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,24 +4,31 @@ 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; @@ -30,6 +37,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -64,12 +72,13 @@ @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; @@ -82,31 +91,27 @@ 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); } } @@ -114,10 +119,11 @@ List<SiteBooking> siteBookings = stClient.wanpaiGoldSiteBookingList(appUserId); if (siteBookings.size() > 0 ){ for (SiteBooking booking : siteBookings) { - RechargeDetailsVo.RechargesDetail consumeDetail = new RechargeDetailsVo.RechargesDetail(); + 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); } } @@ -130,17 +136,23 @@ .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); } } + 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<RechargeDetailsVo.RechargesDetail>() { + Collections.sort(details, new Comparator<RechargesDetail>() { @Override - public int compare(RechargeDetailsVo.RechargesDetail o1, RechargeDetailsVo.RechargesDetail o2) { + public int compare(RechargesDetail o1, RechargesDetail o2) { try { Date date1 = simpleDateFormat.parse(o1.getConsumeTime()); Date date2 = simpleDateFormat.parse(o2.getConsumeTime()); @@ -152,8 +164,16 @@ } }); } - vo.setDetailList(details); - return vo; + //当前第几页 + int pageNo = pageNum; + //一页五条 + int size = pageSize; + + //分页 + details = details.stream().skip((pageNo - 1) * size).limit(size). + collect(Collectors.toList()); + + return details; } @Override @@ -164,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")); } } @@ -185,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; } @@ -332,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