diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java index e3444ba..7e29301 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java @@ -20,7 +20,9 @@ public enum TradeTypeEnum { MARRIAGE_BOUNTY_MEETING_FEE(105, "悬赏招亲见面费用"), - PLATFORM_SERVICE_FEE(201, "平台服务费"); + PLATFORM_SERVICE_FEE(201, "平台服务费"), + + WITHDRAW(202, "提现"); @EnumValue @JsonValue diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java index 3c6e662..8fb2ce0 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/marriagebounty/user/MarriageBountyOrderUserQueryController.java @@ -33,6 +33,4 @@ public class MarriageBountyOrderUserQueryController { @RequestParam("userId") Long userId) { return marriageBountyOrderQueryService.getMarriageBountyOrderPreRefundInfo(queryParam.getMarriageBountyOrderId()); } - - } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractVo.java index 0c5a367..042834c 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractVo.java @@ -15,9 +15,9 @@ public class UseGetRevenueRewardAbstractVo { private Long id; @ApiModelProperty("营收额") - private BigDecimal totalRevenue; + private BigDecimal totalRevenue = BigDecimal.ZERO; @ApiModelProperty("收益额") - private BigDecimal totalEarnings; + private BigDecimal totalEarnings = BigDecimal.ZERO; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java index ba6bae7..f3ec079 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/WalletAccountUserQueryController.java @@ -26,12 +26,7 @@ public class WalletAccountUserQueryController { @GetMapping("get/wallet-account") @ApiOperation("用户获取钱包账号") public UserGetWalletAccountVo userGetWalletAccount(@RequestParam("userId") Long userId) { - UserGetWalletAccountVo vo = new UserGetWalletAccountVo(); - WalletAccount walletAccount = walletAccountQueryService.queryByUserId(userId); - if (Objects.nonNull(walletAccount)) { - vo = TypeConvertUtils.convert(walletAccount, UserGetWalletAccountVo.class); - } - return vo; + return walletAccountQueryService.getWalletAccountView(userId); } @GetMapping("page/wallet-account-record") diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/request/UserPageWalletAccountRecordQueryParam.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/request/UserPageWalletAccountRecordQueryParam.java index 99ed40c..1327aee 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/request/UserPageWalletAccountRecordQueryParam.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/request/UserPageWalletAccountRecordQueryParam.java @@ -2,11 +2,21 @@ package com.qniao.dam.api.query.walletaccount.user.request; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; @Data public class UserPageWalletAccountRecordQueryParam { - @ApiModelProperty("交易收益类型:101认证 102发布 103匹配 104推荐 201平台服务费") + @ApiModelProperty("交易收益类型:101认证 102发布 103匹配 104推荐 202提现") private Integer tradeType; + @ApiModelProperty("记录开始时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime recordTimeFrom; + + @ApiModelProperty("记录结束时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime recordTimeTo; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetWalletAccountRecordVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetWalletAccountRecordVo.java index 6c789f9..903433a 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetWalletAccountRecordVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetWalletAccountRecordVo.java @@ -9,7 +9,6 @@ import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.List; @Data public class UserGetWalletAccountRecordVo { @@ -35,12 +34,4 @@ public class UserGetWalletAccountRecordVo { @ApiModelProperty("是否收入") private Boolean isIncome; - @ApiModelProperty("内容") - private String content; - - @ApiModelProperty("备注") - private String remark; - - @ApiModelProperty("关联订单") - private List associateOrderRecordList; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetWalletAccountVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetWalletAccountVo.java index c23c1a7..3865e94 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetWalletAccountVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/UserGetWalletAccountVo.java @@ -23,4 +23,7 @@ public class UserGetWalletAccountVo { @ApiModelProperty("冻结余额") private BigDecimal frozenBalance = BigDecimal.ZERO; + @ApiModelProperty("总提现金额") + private BigDecimal totalWithdraw = BigDecimal.ZERO; + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/WalletAccountAssociateOrderRecordVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/WalletAccountAssociateOrderRecordVo.java deleted file mode 100644 index abb1943..0000000 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/walletaccount/user/response/WalletAccountAssociateOrderRecordVo.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.qniao.dam.api.query.walletaccount.user.response; - -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.math.BigDecimal; - -@Data -public class WalletAccountAssociateOrderRecordVo { - - @ApiModelProperty("钱包记录标识") - @JsonSerialize(using = ToStringSerializer.class) - private Long walletAccountRecordId; - - @ApiModelProperty("有关联的订单") - @JsonSerialize(using = ToStringSerializer.class) - private Long associateOrderId; - - @ApiModelProperty("有关联的金额") - private BigDecimal associateOrderAmount; -} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java index 11564f7..5389ee5 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/WalletAccountViewDao.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.qniao.dam.api.query.walletaccount.user.request.UserPageWalletAccountRecordQueryParam; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountRecordVo; -import com.qniao.dam.api.query.walletaccount.user.response.WalletAccountAssociateOrderRecordVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -16,5 +15,4 @@ public interface WalletAccountViewDao { @Param("queryParam") UserPageWalletAccountRecordQueryParam queryParam, @Param("userId") Long userId); - List listAssociateOrderRecordBy(@Param("recordIdList") List recordIdList); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java index 27cb854..bbb8745 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/WalletAccountQueryService.java @@ -3,6 +3,7 @@ package com.qniao.dam.query.walletaccount; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qniao.dam.api.query.walletaccount.user.request.UserPageWalletAccountRecordQueryParam; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountRecordVo; +import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo; import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount; import com.qniao.framework.utils.PageUtil; @@ -11,4 +12,6 @@ public interface WalletAccountQueryService { WalletAccount queryByUserId(Long userId); IPage pageWalletAccountRecord(Long userId, UserPageWalletAccountRecordQueryParam queryParam, PageUtil pageUtil); + + UserGetWalletAccountVo getWalletAccountView(Long userId); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java index 92ac8ae..c115eca 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/walletaccount/impl/WalletAccountQueryServiceImpl.java @@ -1,23 +1,24 @@ package com.qniao.dam.query.walletaccount.impl; -import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qniao.dam.api.query.walletaccount.user.request.UserPageWalletAccountRecordQueryParam; import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountRecordVo; -import com.qniao.dam.api.query.walletaccount.user.response.WalletAccountAssociateOrderRecordVo; +import com.qniao.dam.api.query.walletaccount.user.response.UserGetWalletAccountVo; +import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; +import com.qniao.dam.infrastructure.persistent.dao.domain.WalletAccountRecordDao; import com.qniao.dam.infrastructure.persistent.dao.view.WalletAccountViewDao; import com.qniao.dam.query.walletaccount.WalletAccountQueryService; import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount; import com.qniao.dam.infrastructure.persistent.dao.domain.WalletAccountDao; import com.qniao.framework.utils.PageUtil; +import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; +import java.math.BigDecimal; +import java.util.Objects; @Service public class WalletAccountQueryServiceImpl implements WalletAccountQueryService { @@ -26,6 +27,8 @@ public class WalletAccountQueryServiceImpl implements WalletAccountQueryService private WalletAccountDao walletAccountDao; @Resource private WalletAccountViewDao walletAccountViewDao; + @Resource + private WalletAccountRecordDao walletAccountRecordDao; @Override public WalletAccount queryByUserId(Long userId) { @@ -36,27 +39,20 @@ public class WalletAccountQueryServiceImpl implements WalletAccountQueryService @Override public IPage pageWalletAccountRecord(Long userId, UserPageWalletAccountRecordQueryParam queryParam, PageUtil pageUtil) { - IPage page = walletAccountViewDao.pageWalletAccountRecord(pageUtil.toPageWithoutOrders(), queryParam, userId); - if (page.getRecords().size() > 0) { - List recordIdList = page.getRecords().stream().map(UserGetWalletAccountRecordVo::getWalletAccountId).collect(Collectors.toList()); - Map> associateOrderRecordMap = mapAssociateOrderRecordBy(recordIdList); - page.getRecords().forEach(record -> { - record.setAssociateOrderRecordList(associateOrderRecordMap.get(record.getId())); - }); - } - return page; + return walletAccountViewDao.pageWalletAccountRecord(pageUtil.toPageWithoutOrders(), queryParam, userId); } - private Map> mapAssociateOrderRecordBy(List recordIdList) { - List list = listAssociateOrderRecordBy(recordIdList); - return list.stream().collect(Collectors.groupingBy(WalletAccountAssociateOrderRecordVo::getAssociateOrderId)); - } - - private List listAssociateOrderRecordBy(List recordIdList) { - List list = new ArrayList<>(); - if (CollUtil.isNotEmpty(recordIdList)) { - list = walletAccountViewDao.listAssociateOrderRecordBy(recordIdList); + @Override + public UserGetWalletAccountVo getWalletAccountView(Long userId) { + UserGetWalletAccountVo walletAccountVo = new UserGetWalletAccountVo(); + WalletAccount walletAccount = queryByUserId(userId); + if (Objects.nonNull(walletAccount)) { + walletAccountVo = TypeConvertUtils.convert(walletAccount, UserGetWalletAccountVo.class); + walletAccountVo.setTotalWithdraw(walletAccountRecordDao.selectList(new LambdaQueryWrapper() + .eq(WalletAccountRecord::getWalletAccountId, walletAccount.getId()) + .eq(WalletAccountRecord::getTradeType, TradeTypeEnum.WITHDRAW)) + .stream().map(WalletAccountRecord::getTradeAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); } - return list; + return walletAccountVo; } } diff --git a/dating-agency-mall-server/src/main/resources/mapper/walletaccount/WalletAccountViewMapper.xml b/dating-agency-mall-server/src/main/resources/mapper/walletaccount/WalletAccountViewMapper.xml index a3057cf..a45d4c4 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/walletaccount/WalletAccountViewMapper.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/walletaccount/WalletAccountViewMapper.xml @@ -11,28 +11,16 @@ dwar.wallet_account_id, dwar.trade_type, dwar.trade_amount, - dwar.is_income, - dwar.content, - dwar.remark + dwar.is_income FROM da_wallet_account_record as dwar INNER JOIN da_wallet_account as dwa on dwa.id=dwar.wallet_account_id where dwa.is_delete=0 and dwa.user_id=#{userId} and dwar.trade_type = #{queryParam.tradeType} + + and dwar.create_time BETWEEN #{queryParam.recordTimeFrom} and #{queryParam.recordTimeTo} + order by dwar.create_time desc - - \ No newline at end of file