update 查询会员余额明细添加字段

This commit is contained in:
Lemon
2023-07-24 15:32:19 +08:00
parent 992f945274
commit 649239e4bd
7 changed files with 166 additions and 31 deletions

View File

@@ -1,5 +1,6 @@
package com.jsowell.service;
import cn.hutool.core.util.PageUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
@@ -32,10 +33,8 @@ import com.jsowell.pile.dto.*;
import com.jsowell.pile.service.*;
import com.jsowell.pile.transaction.dto.MemberTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.vo.uniapp.InvoiceTitleVO;
import com.jsowell.pile.vo.uniapp.MemberVO;
import com.jsowell.pile.vo.uniapp.MemberWalletLogVO;
import com.jsowell.pile.vo.uniapp.OrderVO;
import com.jsowell.pile.vo.base.StationInfoVO;
import com.jsowell.pile.vo.uniapp.*;
import com.jsowell.wxpay.service.WxAppletRemoteService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
@@ -80,6 +79,9 @@ public class MemberService {
@Autowired
private IMemberInvoiceTitleService memberInvoiceTitleService;
@Autowired
private IMemberWalletInfoService memberWalletInfoService;
@Autowired
private PileRemoteService pileRemoteService;
@@ -290,14 +292,12 @@ public class MemberService {
return pageResponse;
}
/**
* 获取会员钱包明细
* @return
*/
public PageResponse getMemberWalletLog (UniAppQueryMemberBalanceDTO dto) throws ParseException {
// 获取分页信息以及memberId
int pageNum = dto.getPageNum() == 0 ? 1 : dto.getPageNum();
int pageSize = dto.getPageSize() == 0 ? 10 : dto.getPageSize();
public MemberWalletInfoVO getMemberWalletInfo(UniAppQueryMemberBalanceDTO dto) throws ParseException {
MemberWalletInfoVO vo = new MemberWalletInfoVO();
vo.setMemberId(dto.getMemberId());
// 获取分页信息
long pageNum = dto.getPageNum() == 0 ? 1L : dto.getPageNum();
long pageSize = dto.getPageSize() == 0 ? 10L : dto.getPageSize();
String tradeDate = dto.getTradeDate();
// 获取年、月
String[] split = StringUtils.split(tradeDate, "-");
@@ -311,13 +311,27 @@ public class MemberService {
lastDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date);
dto.setTradeDate(tradeDate);
dto.setEndDate(lastDay);
// 查询会员钱包信息表,获取 本金余额
MemberWalletInfo memberWalletInfo = memberWalletInfoService.selectByMemberId(dto.getMemberId());
if (memberWalletInfo == null) {
// 用户未注册小程序
throw new BusinessException(ReturnCodeEnum.CODE_AUTHENTICATION_ERROR);
}
// 当前余额
vo.setCurrentBalance(memberWalletInfo.getPrincipalBalance().add(memberWalletInfo.getGiftBalance()));
// 根据日期查询会员钱包变动明细
// 分页
PageHelper.startPage(pageNum, pageSize);
// PageHelper.startPage(pageNum, pageSize);
List<MemberWalletLogVO> list = memberBasicInfoService.getMemberWalletDetail(dto);
PageInfo<MemberWalletLogVO> pageInfo = new PageInfo<>(list);
// 总支出
BigDecimal totalConsumption = list.stream().map(MemberWalletLogVO::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
vo.setTotalConsumption(totalConsumption);
// PageInfo<MemberWalletLogVO> pageInfo = new PageInfo<>(list);
// 获取 type 和 subType 的对应信息
for (MemberWalletLogVO walletLogVO : pageInfo.getList()) {
for (MemberWalletLogVO walletLogVO : list) {
// 将负数转为正数
walletLogVO.setAmount(BigDecimal.valueOf(Math.abs(walletLogVO.getAmount().doubleValue())).setScale(2, BigDecimal.ROUND_HALF_UP));
String subType = walletLogVO.getSubType();
@@ -328,16 +342,75 @@ public class MemberService {
// walletLogVO.setTotalAccountAmount(walletLogVO.getPrincipalBalance().add(walletLogVO.getGiftBalance()));
}
List<MemberWalletLogVO> collect = list.stream()
.skip((pageNum - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());
int total = list.size();
int pages = PageUtil.totalPage(total, dto.getPageSize());
// 返回结果集
PageResponse pageResponse = PageResponse.builder()
.pageSize(pageSize)
.pageNum(pageNum)
.list(pageInfo.getList())
.pages(pageInfo.getPages())
.total(pageInfo.getTotal())
.pageNum(Integer.parseInt(String.valueOf(pageNum)))
.pageSize(Integer.parseInt(String.valueOf(pageSize)))
.list(collect)
.pages(pages)
.total(total)
.build();
return pageResponse;
vo.setPageResponse(pageResponse);
return vo;
}
/**
* 获取会员钱包明细
* @return
*/
// public PageResponse getMemberWalletLog (UniAppQueryMemberBalanceDTO dto) throws ParseException {
// // 获取分页信息以及memberId
// int pageNum = dto.getPageNum() == 0 ? 1 : dto.getPageNum();
// int pageSize = dto.getPageSize() == 0 ? 10 : dto.getPageSize();
// String tradeDate = dto.getTradeDate();
// // 获取年、月
// String[] split = StringUtils.split(tradeDate, "-");
// int year = Integer.parseInt(split[0]);
// int month = Integer.parseInt(split[1]);
// // 根据年月获取当月第一天和最后一天
// tradeDate = DateUtils.getFirstDay(year, month, DateUtils.YYYY_MM_DD);
// String lastDay = DateUtils.getLastDay(year, month, DateUtils.YYYY_MM_DD);
// // sql语句查询日期需要多加一天
// Date date = DateUtils.addDays(DateUtils.parseDate(lastDay, DateUtils.YYYY_MM_DD), 1);
// lastDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date);
// dto.setTradeDate(tradeDate);
// dto.setEndDate(lastDay);
// // 根据日期查询会员钱包变动明细
// // 分页
// PageHelper.startPage(pageNum, pageSize);
// List<MemberWalletLogVO> list = memberBasicInfoService.getMemberWalletDetail(dto);
// PageInfo<MemberWalletLogVO> pageInfo = new PageInfo<>(list);
// // 获取 type 和 subType 的对应信息
// for (MemberWalletLogVO walletLogVO : pageInfo.getList()) {
// // 将负数转为正数
// walletLogVO.setAmount(BigDecimal.valueOf(Math.abs(walletLogVO.getAmount().doubleValue())).setScale(2, BigDecimal.ROUND_HALF_UP));
// String subType = walletLogVO.getSubType();
// String subTypeValue = BalanceChangesEnum.getValueByCode(subType);
// if (StringUtils.isNotBlank(subTypeValue)) {
// walletLogVO.setSubType(subTypeValue);
// }
// // walletLogVO.setTotalAccountAmount(walletLogVO.getPrincipalBalance().add(walletLogVO.getGiftBalance()));
// }
//
// PageResponse pageResponse = PageResponse.builder()
// .pageSize(pageSize)
// .pageNum(pageNum)
// .list(pageInfo.getList())
// .pages(pageInfo.getPages())
// .total(pageInfo.getTotal())
// .build();
// return pageResponse;
// }
/**
* 用户绑定车牌号
* @param dto