diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberBasicInfoController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberBasicInfoController.java index cda6319f9..b96106dbb 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberBasicInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberBasicInfoController.java @@ -1,6 +1,7 @@ package com.jsowell.web.controller.pile; import com.alibaba.fastjson2.JSON; +import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A; import com.github.pagehelper.PageHelper; import com.google.common.collect.Lists; import com.jsowell.common.annotation.Log; @@ -20,10 +21,9 @@ import com.jsowell.pile.domain.MemberBasicInfo; import com.jsowell.pile.domain.MemberPlateNumberRelation; import com.jsowell.pile.domain.PileMerchantInfo; import com.jsowell.pile.dto.*; -import com.jsowell.pile.service.MemberBasicInfoService; -import com.jsowell.pile.service.MemberPlateNumberRelationService; -import com.jsowell.pile.service.MemberTransactionRecordService; +import com.jsowell.pile.service.*; import com.jsowell.pile.util.UserUtils; +import com.jsowell.pile.vo.MemberWalletLogVO2; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.uniapp.customer.MemberVO; import com.jsowell.pile.vo.uniapp.customer.MemberWalletLogVO; @@ -56,6 +56,9 @@ public class MemberBasicInfoController extends BaseController { @Autowired private MemberPlateNumberRelationService memberPlateNumberRelationService; + @Autowired + private MemberWalletLogService memberWalletLogService; + /** * 查询会员基础信息列表 */ @@ -318,6 +321,7 @@ public class MemberBasicInfoController extends BaseController { } return result; } + /** * 查询会员明细 * @param dto @@ -339,4 +343,22 @@ public class MemberBasicInfoController extends BaseController { return AjaxResult.error("查询会员明细发生未知异常,请稍后重试"); } } + + + /** + * 导出会员钱包流水 + * @param response + * @param dto + */ + @PostMapping("/exportMemberWalletLog") + public void exportMemberWalletLog(HttpServletResponse response, UniAppQueryMemberBalanceDTO dto){ + AuthorizedDeptVO authorizedMap = UserUtils.getAuthorizedMap(); + if (authorizedMap == null) { + // 为空表示没有权限,返回空数组 + return; + } + List memberWalletLogVO2 = memberWalletLogService.getByMemberId(dto.getMemberId()); + ExcelUtil util = new ExcelUtil(MemberWalletLogVO2.class); + util.exportExcel(response, memberWalletLogVO2, "会员钱包流水"); + } } 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 1bae23a41..706381f44 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.MemberWalletLogVO2; import com.jsowell.pile.vo.uniapp.customer.MemberBalanceVO; import com.jsowell.pile.vo.uniapp.customer.MemberWalletLogVO; import org.apache.ibatis.annotations.Param; @@ -102,4 +103,6 @@ public interface MemberWalletLogMapper { List getMemberRefundAmount(List memberIds); List getOrderRecord(@Param("orderCode") String orderCode, @Param("type") String type); -} \ No newline at end of file + + List getByMemberId(String memberId); +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberWalletLogService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberWalletLogService.java index e01c73c4b..414937637 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberWalletLogService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberWalletLogService.java @@ -1,6 +1,7 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.MemberWalletLog; +import com.jsowell.pile.vo.MemberWalletLogVO2; import java.util.List; @@ -30,5 +31,7 @@ public interface MemberWalletLogService { int batchInsert(List list); List getOrderRecord(String orderCode, String type); + + List getByMemberId(String memberId); } 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 6edb212ad..17391761e 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 @@ -36,10 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -612,9 +609,16 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService { */ @Override public List getMemberWalletDetail(UniAppQueryMemberBalanceDTO dto) { - return memberWalletLogMapper.getMemberWalletDetail(dto); + List memberWalletDetail = memberWalletLogMapper.getMemberWalletDetail(dto); + for (MemberWalletLogVO log : memberWalletDetail) { + if ("2".equals(log.getType()) && "21".equals(log.getSubType())) { + log.setAmount(null); + } + } + return memberWalletDetail; } + @Override public List getMemberWalletDetailV2(UniAppQueryMemberBalanceDTO dto) { return memberWalletLogMapper.getMemberWalletDetailV2(dto); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletLogServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletLogServiceImpl.java index ec3569255..f75f706de 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletLogServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletLogServiceImpl.java @@ -1,12 +1,21 @@ package com.jsowell.pile.service.impl; +import com.jsowell.common.exception.BusinessException; import com.jsowell.pile.domain.MemberWalletLog; +import com.jsowell.pile.dto.QueryMemberInfoDTO; import com.jsowell.pile.mapper.MemberWalletLogMapper; import com.jsowell.pile.service.MemberWalletLogService; +import com.jsowell.pile.vo.MemberWalletLogVO2; +import com.jsowell.pile.vo.uniapp.customer.MemberVO; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class MemberWalletLogServiceImpl implements MemberWalletLogService { @@ -73,5 +82,11 @@ public class MemberWalletLogServiceImpl implements MemberWalletLogService { public int batchInsert(List list) { return memberWalletLogMapper.batchInsert(list); } + + + @Override + public List getByMemberId(String memberId) { + return memberWalletLogMapper.getByMemberId(memberId); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/MemberWalletLogVO2.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/MemberWalletLogVO2.java new file mode 100644 index 000000000..52c0f54f7 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/MemberWalletLogVO2.java @@ -0,0 +1,93 @@ +package com.jsowell.pile.vo; +import com.jsowell.common.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import java.math.BigDecimal; +/** + * 会员钱包余额明细相关 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class MemberWalletLogVO2 { + /** + * 会员id + */ + @Excel(name = "会员id") + private String memberId; + + /** + * 交易类型 1-进账;2-出账 + */ + @Excel(name = "交易类型", readConverterExp = "1=进账,2=出账") + private String type; + + /** + * 钱包编号 + */ + @Excel(name = "钱包编号") + private String walletCode; + + /** + * 子类型 10-充值, 11-赠送, 12-订单结算退款,20-后管扣款, 21-订单付款, 22-用户退款 + */ + @Excel(name = "操作类型(10-充值, 11-赠送, 12-订单结算退款,20-后管扣款, 21-订单付款, 22-用户退款)", + readConverterExp = "10=充值,11=赠送,12=订单结算退款,20=后管扣款,21=订单付款,22=用户退款") + private String subType; + + /** + * 充值/消费人员 + */ + @Excel(name = "充值/消费人员") + private String createBy; + + /** + * 出账/入账金额 + */ + @Excel(name = "出账/入账金额") + private BigDecimal amount; + + /** + * 交易时间 + */ + @Excel(name = "交易时间") + private String transactionTime; + + /** + * 余额类型(1-本金,2-赠送) + */ + private String category; + + /** + * 关联订单 + */ + private String relatedOrderCode; + + /** + * 支付金额 + */ + private BigDecimal payAmount; + + /** + * 订单金额 + */ + private BigDecimal orderAmount; + + /** + * 退款金额 + */ + private BigDecimal refundAmount; + + /** + * 变动前金额 + */ + private BigDecimal beforeAmount; + + /** + * 变动后金额 + */ + private BigDecimal afterAmount; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberWalletLogVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberWalletLogVO.java index ef05e7f48..5556fb009 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberWalletLogVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberWalletLogVO.java @@ -31,6 +31,8 @@ public class MemberWalletLogVO { /** * 子类型 10-充值, 11-赠送, 12-订单结算退款,20-后管扣款, 21-订单付款, 22-用户退款 */ + @Excel(name = "操作类型(10-充值, 11-赠送, 12-订单结算退款,20-后管扣款, 21-订单付款, 22-用户退款)", + readConverterExp = "10=充值,11=赠送,12=订单结算退款,20=后管扣款,21=订单付款,22=用户退款") private String subType; /** @@ -42,6 +44,7 @@ public class MemberWalletLogVO { /** * 出账/入账金额 */ + @Excel(name = "金额") private BigDecimal amount; /** @@ -53,6 +56,7 @@ public class MemberWalletLogVO { /** * 余额类型(1-本金,2-赠送) */ + @Excel(name = "余额类型(1-本金,2-赠送)", readConverterExp = "1=本金,2=赠送") private String category; /** @@ -94,6 +98,7 @@ public class MemberWalletLogVO { /** * 操作人员 */ + @Excel(name = "操作人员") private String createBy; public String getSubTypeName() { diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml index 61d6b9369..c25c5e44d 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml @@ -20,12 +20,12 @@ - id, member_id, wallet_code, `type`, sub_type, amount, category, related_order_code, + id, member_id, wallet_code, `type`, sub_type, amount, category, related_order_code, before_amount, after_amount, remark, create_by, create_time - \ No newline at end of file + + + + diff --git a/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java b/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java index 6ade0862d..915c9bf7a 100644 --- a/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java +++ b/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java @@ -257,10 +257,14 @@ public class JsowellTask { .collect(Collectors.toList()); for (String stationId : stationIdList) { - NotificationDTO dto = new NotificationDTO(); - dto.setStationId(stationId); - dto.setPlatformType(thirdPartyType); - notificationService.notificationStationPowerInfo(dto); + try { + NotificationDTO dto = new NotificationDTO(); + dto.setStationId(stationId); + dto.setPlatformType(thirdPartyType); + notificationService.notificationStationPowerInfo(dto); + } catch (Exception e) { + log.error("平台类型:{},站点ID:{},推送充电站实时功率失败", thirdPartyType, stationId, e); + } } } @@ -339,10 +343,14 @@ public class JsowellTask { .collect(Collectors.toList()); for (String stationId : stationIdList) { - NotificationDTO dto = new NotificationDTO(); - dto.setStationId(stationId); - dto.setPlatformType(thirdPartyType); - notificationService.notificationOperationStatsInfo(dto); + try { + NotificationDTO dto = new NotificationDTO(); + dto.setStationId(stationId); + dto.setPlatformType(thirdPartyType); + notificationService.notificationOperationStatsInfo(dto); + } catch (Exception e) { + log.error("平台类型:{},站点ID:{},推送统计信息失败", thirdPartyType, stationId, e); + } } }