diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java index 16dd9fe98..38bd5395e 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java @@ -191,6 +191,7 @@ public class MemberController extends BaseController { String memberId = getMemberIdByAuthorization(request); dto.setMemberId(memberId); PageResponse pageResponse = memberService.getMemberBalanceChanges(dto); + // PageResponse pageResponse = memberService.getMemberWalletLog(dto); response = new RestApiResponse<>(pageResponse); } catch (Exception e) { logger.error("查询用户账户余额变动信息 error:", e); diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index 424881a74..6c31ba1be 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -22,6 +22,7 @@ import com.jsowell.common.enums.ykc.ScenarioEnum; import com.jsowell.common.enums.ykc.StartModeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.AdapayUtil; +import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.JWTUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.id.IdUtils; @@ -48,10 +49,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.text.ParseException; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Service @@ -292,6 +290,54 @@ 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(); + 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 list = memberBasicInfoService.getMemberWalletDetail(dto); + PageInfo 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 diff --git a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java index 7b3f57f75..f439e94ca 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -333,7 +333,7 @@ public class PileService { } List adminList = relationList.stream() - .filter(x -> x.getType().equals("1")) + .filter(x -> x.getType().equals(Constants.ONE)) // 1-管理员用户 .map(PileMemberRelation::getMemberId) .collect(Collectors.toList()); if (CollectionUtils.isEmpty(adminList)) { @@ -341,13 +341,13 @@ public class PileService { } // 校验身份 - if (!adminList.contains(dto.getMemberId())) { - // 如果为空,说明此用户身份有误,不是管理员,抛出异常 + if (adminList.contains(dto.getMemberId())) { + // 如果不为空,说明被分享的用户是管理员,抛出异常 throw new BusinessException(ReturnCodeEnum.CODE_AUTHENTICATION_ERROR); } List userList = relationList.stream() - .filter(x -> !x.getType().equals("1")) + .filter(x -> !x.getType().equals(Constants.TWO)) // 2-普通用户 .map(PileMemberRelation::getMemberId) .collect(Collectors.toList()); diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java index 793803123..818648ba4 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java @@ -1,6 +1,7 @@ package com.jsowell.common.util; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -20,11 +21,7 @@ import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; /** * 时间工具类 @@ -938,4 +935,42 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { return true; } } + + + /** + * 根据年月获取月初第一天日期 + * @param year + * @param month + * @return + */ + public static String getFirstDay(int year,int month,String format) { + Calendar cale = Calendar.getInstance(); + + cale.set(Calendar.YEAR, year); //赋值年份 + cale.set(Calendar.MONTH, month - 1);//赋值月份 + int lastDay = cale.getActualMinimum(Calendar.DAY_OF_MONTH);//获取月最大天数 + cale.set(Calendar.DAY_OF_MONTH, lastDay);//设置日历中月份的最大天数 + SimpleDateFormat sdf = new SimpleDateFormat(format);//格式化日期yyyy-MM-dd + String lastDayOfMonth = sdf.format(cale.getTime()); + return lastDayOfMonth; + } + + + /** + * 根据年月获取月末最后一天日期 + * @param year + * @param month + * @return + */ + public static String getLastDay(int year,int month,String format) { + Calendar cale = Calendar.getInstance(); + + cale.set(Calendar.YEAR, year);//赋值年份 + cale.set(Calendar.MONTH, month - 1);//赋值月份 + int lastDay = cale.getActualMaximum(Calendar.DAY_OF_MONTH);//获取月最大天数 + cale.set(Calendar.DAY_OF_MONTH, lastDay);//设置日历中月份的最大天数 + SimpleDateFormat sdf = new SimpleDateFormat(format); //格式化日期yyyy-MM-dd + String lastDayOfMonth = sdf.format(cale.getTime()); + return lastDayOfMonth; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/UniAppQueryMemberBalanceDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/UniAppQueryMemberBalanceDTO.java index c58b0a66a..d84926714 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/UniAppQueryMemberBalanceDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/UniAppQueryMemberBalanceDTO.java @@ -22,6 +22,16 @@ public class UniAppQueryMemberBalanceDTO extends BaseMemberDTO{ */ private String type; + /** + * 交易时间(如:2023-07),只到月份,查询当月数据 + */ + private String tradeDate; + + /** + * 结束时间 + */ + private String endDate; + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.JSON_STYLE) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletLogMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletLogMapper.java index c085f190d..2b1f184e6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletLogMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletLogMapper.java @@ -2,6 +2,7 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.MemberWalletLog; +import com.jsowell.pile.dto.UniAppQueryMemberBalanceDTO; import com.jsowell.pile.vo.uniapp.MemberWalletLogVO; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -30,4 +31,11 @@ public interface MemberWalletLogMapper { * @param type 1-进账;2-出账 不传查全部 */ List getMemberBalanceChanges(@Param("memberId") String memberId, @Param("type") String type); + + /** + * 小程序查询会员余额明细 + * @param dto + * @return + */ + List getMemberWalletDetail(@Param("dto") UniAppQueryMemberBalanceDTO dto); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberBasicInfoService.java index 486388b8b..84c6de8f0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberBasicInfoService.java @@ -2,6 +2,7 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.MemberBasicInfo; import com.jsowell.pile.dto.PlatformTesterDTO; +import com.jsowell.pile.dto.UniAppQueryMemberBalanceDTO; import com.jsowell.pile.vo.uniapp.MemberVO; import com.jsowell.pile.vo.uniapp.MemberWalletLogVO; import com.jsowell.pile.vo.uniapp.PersonalPileInfoVO; @@ -121,4 +122,10 @@ public interface IMemberBasicInfoService { void updatePlatformTester(PlatformTesterDTO dto); PlatformTesterVO selectPlatformTesterStatus(String memberId); + + /** + * 小程序查询会员钱包明细 + * @return + */ + List getMemberWalletDetail(UniAppQueryMemberBalanceDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java index f90163839..057307ab4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.jsowell.pile.domain.MemberPlateNumberRelation; import com.jsowell.pile.domain.MemberWalletInfo; import com.jsowell.pile.domain.MemberWalletLog; import com.jsowell.pile.dto.PlatformTesterDTO; +import com.jsowell.pile.dto.UniAppQueryMemberBalanceDTO; import com.jsowell.pile.mapper.MemberBasicInfoMapper; import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper; import com.jsowell.pile.mapper.MemberWalletInfoMapper; @@ -320,5 +321,15 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService { return vo; } + /** + * 小程序查询会员钱包明细 + * @param dto + * @return + */ + @Override + public List getMemberWalletDetail(UniAppQueryMemberBalanceDTO dto) { + return memberWalletLogMapper.getMemberWalletDetail(dto); + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index 15e57e4d9..e571c05bc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -613,8 +613,8 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { } log.info("后管首页基本信息查询 authorizedMap:{}, dto:{}", JSONObject.toJSONString(authorizedMap), JSONObject.toJSONString(dto)); dto.setStationIdList(stationIdList); - // IndexGeneralSituationVO generalSituation = pileBasicInfoMapper.getGeneralSituation(dto); - IndexGeneralSituationVO generalInfo = pileBasicInfoMapper.getGeneralSituationInfo(dto); + IndexGeneralSituationVO generalInfo = pileBasicInfoMapper.getGeneralSituation(dto); + // IndexGeneralSituationVO generalInfo = pileBasicInfoMapper.getGeneralSituationInfo(dto); List pileInfoVOS = queryPileDetailList(stationIdList); // 对集合根据pileSn进行去重 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/MemberWalletLogVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/MemberWalletLogVO.java index 0c6c60709..8b3e4da54 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/MemberWalletLogVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/MemberWalletLogVO.java @@ -44,4 +44,24 @@ public class MemberWalletLogVO { * 余额类型(1-本金,2-赠送) */ private String category; + + /** + * 关联订单 + */ + private String relatedOrderCode; + + /** + * 支付金额 + */ + private BigDecimal payAmount; + + /** + * 订单金额 + */ + private BigDecimal orderAmount; + + /** + * 退款金额 + */ + private BigDecimal refundAmount; } diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml index 598c3df0a..3f83f9514 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml @@ -47,4 +47,26 @@ order by t1.create_time DESC + + \ No newline at end of file