From 7eaeb9ae60186ea41af3b8fecd1e652ff6e7d620 Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 5 Mar 2025 17:07:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8B=E6=94=B6=E7=9B=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RevenueRewardUserCommandController.java | 33 +++++++++ .../request/UserCreateRevenueRewardDto.java | 70 +++++++++++++++++++ .../request/UserEditRevenueRewardDto.java | 67 ++++++++++++++++++ ...serGetRevenueRewardRecordByOperatorVo.java | 70 +++++++++++++++++++ .../RevenueRewardUserQueryController.java | 25 ++++--- ...nueRewardRecordByOperatorQueryParams.java} | 5 +- ...GetRevenueRewardAbstractByOperatorVo.java} | 2 +- ...rPageRevenueRewardRecordByOperatorVo.java} | 6 +- .../RevenueRewardApplicationService.java | 37 ++++++++++ .../dao/view/RevenueRewardViewDao.java | 8 +-- .../RevenueRewardQueryService.java | 15 ++-- .../impl/RevenueRewardQueryServiceImpl.java | 42 ++++++++--- .../revenuereward/RevenueRewardViewMapper.xml | 11 ++- 13 files changed, 355 insertions(+), 36 deletions(-) create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/RevenueRewardUserCommandController.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserCreateRevenueRewardDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserEditRevenueRewardDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/response/UserGetRevenueRewardRecordByOperatorVo.java rename dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/{UsePageRevenueRewardRecordByOperatorQueryParams.java => UserPageRevenueRewardRecordByOperatorQueryParams.java} (85%) rename dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/{UseGetRevenueRewardAbstractByOperatorVo.java => UserGetRevenueRewardAbstractByOperatorVo.java} (85%) rename dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/{UsePageRevenueRewardRecordByOperatorVo.java => UserPageRevenueRewardRecordByOperatorVo.java} (90%) create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/revenuereward/RevenueRewardApplicationService.java diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/RevenueRewardUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/RevenueRewardUserCommandController.java new file mode 100644 index 0000000..44e4d2f --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/RevenueRewardUserCommandController.java @@ -0,0 +1,33 @@ +package com.qniao.dam.api.command.revenuereward.user; + +import com.qniao.dam.api.command.revenuereward.user.request.UserCreateRevenueRewardDto; +import com.qniao.dam.api.command.revenuereward.user.request.UserEditRevenueRewardDto; +import com.qniao.dam.application.service.revenuereward.RevenueRewardApplicationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +@RestController +@RequestMapping("user") +@Api(tags = "收益") +public class RevenueRewardUserCommandController { + + @Resource + private RevenueRewardApplicationService revenueRewardApplicationService; + + @ApiOperation("用户创建积分升级配置") + @PostMapping("create/revenue-reward-record") + public void userCreateRevenueRewardRecord(@RequestBody @Valid UserCreateRevenueRewardDto dto) { + revenueRewardApplicationService.create(dto.trans2Domain()); + } + + @ApiOperation("用户编辑积分升级配置") + @PostMapping("edit/point-upgrade-config") + public void userEditRevenueRewardRecord(@RequestBody @Valid UserEditRevenueRewardDto dto) { + revenueRewardApplicationService.edit(dto.trans2Domain()); + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserCreateRevenueRewardDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserCreateRevenueRewardDto.java new file mode 100644 index 0000000..21331b4 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserCreateRevenueRewardDto.java @@ -0,0 +1,70 @@ +package com.qniao.dam.api.command.revenuereward.user.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; +import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; +import com.qniao.domain.Trans2DomainAssembler; +import com.qniao.framework.utils.TypeConvertUtils; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Collections; + +@Data +public class UserCreateRevenueRewardDto implements Trans2DomainAssembler { + + @ApiModelProperty("红娘用户ID唯一标识") + @NotNull(message = "收益用户不能为空") + private Long matchmakerUserId; + + @ApiModelProperty("交易类型") + @NotNull(message = "交易类型不能为空") + private TradeTypeEnum tradeType; + + @ApiModelProperty("交易场景") + @NotNull(message = "交易场景不能为空") + private TradeSceneEnum tradeScene; + + @ApiModelProperty("订单金额") + @NotNull(message = "订单金额不能为空") + private BigDecimal totalAssociateOrderAmount; + + @ApiModelProperty("营收额") + @NotNull(message = "营收额不能为空") + private BigDecimal revenue; + + @ApiModelProperty("营收额百分比") + @NotNull(message = "营收额百分比不能为空") + private BigDecimal revenuePct; + + @ApiModelProperty("服务费百分比") + @NotNull(message = "服务费百分比不能为空") + private BigDecimal servicePct; + + @ApiModelProperty("实收金额") + @NotNull(message = "实收金额不能为空") + private BigDecimal earnings; + + @ApiModelProperty("内容") + private String content; + + @ApiModelProperty("凭证Url") + private String proofUrl; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Override + public RevenueReward trans2Domain() { + RevenueReward revenueReward = RevenueReward.initUser(matchmakerUserId); + RevenueRewardRecord revenueRewardRecord = TypeConvertUtils.convert(this, RevenueRewardRecord.class); + revenueReward.setRecordList(Collections.singletonList(revenueRewardRecord)); + return revenueReward; + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserEditRevenueRewardDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserEditRevenueRewardDto.java new file mode 100644 index 0000000..6a9ab04 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserEditRevenueRewardDto.java @@ -0,0 +1,67 @@ +package com.qniao.dam.api.command.revenuereward.user.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; +import com.qniao.domain.Trans2DomainAssembler; +import com.qniao.framework.utils.TypeConvertUtils; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class UserEditRevenueRewardDto implements Trans2DomainAssembler { + + @ApiModelProperty("收益记录标识") + @NotNull(message = "收益记录标识不能为空") + private Long revenueRewardRecordId; + + @ApiModelProperty("交易类型") + @NotNull(message = "交易类型不能为空") + private TradeTypeEnum tradeType; + + @ApiModelProperty("交易场景") + @NotNull(message = "交易场景不能为空") + private TradeSceneEnum tradeScene; + + @ApiModelProperty("订单金额") + @NotNull(message = "订单金额不能为空") + private BigDecimal totalAssociateOrderAmount; + + @ApiModelProperty("营收额") + @NotNull(message = "营收额不能为空") + private BigDecimal revenue; + + @ApiModelProperty("营收额百分比") + @NotNull(message = "营收额百分比不能为空") + private BigDecimal revenuePct; + + @ApiModelProperty("服务费百分比") + @NotNull(message = "服务费百分比不能为空") + private BigDecimal servicePct; + + @ApiModelProperty("实收金额") + @NotNull(message = "实收金额不能为空") + private BigDecimal earnings; + + @ApiModelProperty("内容") + private String content; + + @ApiModelProperty("凭证Url") + private String proofUrl; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Override + public RevenueRewardRecord trans2Domain() { + RevenueRewardRecord revenueRewardRecord = TypeConvertUtils.convert(this, RevenueRewardRecord.class); + revenueRewardRecord.setRevenueRewardId(revenueRewardRecordId); + return revenueRewardRecord; + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/response/UserGetRevenueRewardRecordByOperatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/response/UserGetRevenueRewardRecordByOperatorVo.java new file mode 100644 index 0000000..d65c361 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/response/UserGetRevenueRewardRecordByOperatorVo.java @@ -0,0 +1,70 @@ +package com.qniao.dam.api.command.revenuereward.user.response; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; +import com.qniao.dau.domian.aggregate.matchmaker.constant.MatchmakerLevelEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class UserGetRevenueRewardRecordByOperatorVo { + + @ApiModelProperty("收益记录标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long revenueRewardRecordId; + + @ApiModelProperty("收益者名称") + private String revenueOwnerName; + + @ApiModelProperty("收益者手机") + private String revenueOwnerPhone; + + @ApiModelProperty("红娘用户ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long matchmakerUserId; + + @ApiModelProperty("红娘身份类型") + private ProductSubCategoryEnum matchmakerType; + + @ApiModelProperty("红娘等级") + private MatchmakerLevelEnum matchmakerLevel; + + @ApiModelProperty("交易类型") + private TradeTypeEnum tradeType; + + @ApiModelProperty("交易场景") + private TradeSceneEnum tradeScene; + + @ApiModelProperty("营收额") + private BigDecimal revenue; + + @ApiModelProperty("营收额百分比") + private BigDecimal revenuePct; + + @ApiModelProperty("服务费百分比") + private BigDecimal servicePct; + + @ApiModelProperty("收益额 营收额除去平台服务费") + private BigDecimal earnings; + + @ApiModelProperty("订单金额") + private BigDecimal totalAssociateOrderAmount; + + @ApiModelProperty("内容") + private String content; + + @ApiModelProperty("凭证Url") + private String proofUrl; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java index 3bad193..126f3b0 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java @@ -1,20 +1,19 @@ package com.qniao.dam.api.query.revenuereward.user; +import com.qniao.dam.api.command.revenuereward.user.response.UserGetRevenueRewardRecordByOperatorVo; import com.qniao.dam.api.query.revenuereward.user.request.UseGetRevenueRewardAbstractQueryParams; -import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordByOperatorQueryParams; +import com.qniao.dam.api.query.revenuereward.user.request.UserPageRevenueRewardRecordByOperatorQueryParams; import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordQueryParams; -import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractByOperatorVo; +import com.qniao.dam.api.query.revenuereward.user.response.UserGetRevenueRewardAbstractByOperatorVo; import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractVo; import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardRecordVo; -import com.qniao.dam.api.query.revenuereward.user.response.UsePageRevenueRewardRecordByOperatorVo; +import com.qniao.dam.api.query.revenuereward.user.response.UserPageRevenueRewardRecordByOperatorVo; import com.qniao.dam.query.revenuereward.RevenueRewardQueryService; import com.qniao.dau.infrastructure.constant.RequestHeaderFields; import com.qniao.domain.QnPage; -import com.qniao.framework.constants.HeaderFields; import com.qniao.framework.utils.PageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -61,21 +60,27 @@ public class RevenueRewardUserQueryController { @GetMapping("page/revenue-reward-record/by/operator") @ApiOperation("运营端获取用户收益记录分页") - public QnPage usePageRevenueRewardRecordByOperator(PageUtil pageUtil, - UsePageRevenueRewardRecordByOperatorQueryParams queryParams) { - return PageUtil.convert(revenueRewardQueryService.pageRevenueRewardRecordByOperator(pageUtil, queryParams), UsePageRevenueRewardRecordByOperatorVo.class); + public QnPage usePageRevenueRewardRecordByOperator(PageUtil pageUtil, + UserPageRevenueRewardRecordByOperatorQueryParams queryParams) { + return PageUtil.convert(revenueRewardQueryService.pageRevenueRewardRecordByOperator(pageUtil, queryParams), UserPageRevenueRewardRecordByOperatorVo.class); } @GetMapping("get/revenue-reward-abstract/by/operator") @ApiOperation("运营端获取用户收益记录摘要") - public UseGetRevenueRewardAbstractByOperatorVo useGetRevenueRewardAbstractByOperator(UsePageRevenueRewardRecordByOperatorQueryParams queryParams) { + public UserGetRevenueRewardAbstractByOperatorVo useGetRevenueRewardAbstractByOperator(UserPageRevenueRewardRecordByOperatorQueryParams queryParams) { return revenueRewardQueryService.getRevenueRewardAbstractByOperator(queryParams); } @ApiOperation("运营端导出用户收益记录分页") @GetMapping("/export/revenue-reward-record/by/operator") - public String userExportRevenueRewardRecordByOperator(UsePageRevenueRewardRecordByOperatorQueryParams queryParams) { + public String userExportRevenueRewardRecordByOperator(UserPageRevenueRewardRecordByOperatorQueryParams queryParams) { return revenueRewardQueryService.exportData(queryParams); } + + @GetMapping("get/revenue-reward-record/by/operator") + @ApiOperation("运营端获取用户收益记录详情") + public UserGetRevenueRewardRecordByOperatorVo userGetRevenueRewardRecordByOperator(@RequestParam("revenueRewardRecordId") Long revenueRewardRecordId) { + return revenueRewardQueryService.getRevenueRewardRecordByOperator(revenueRewardRecordId); + } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UsePageRevenueRewardRecordByOperatorQueryParams.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UserPageRevenueRewardRecordByOperatorQueryParams.java similarity index 85% rename from dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UsePageRevenueRewardRecordByOperatorQueryParams.java rename to dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UserPageRevenueRewardRecordByOperatorQueryParams.java index 7f74206..0cdc4d5 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UsePageRevenueRewardRecordByOperatorQueryParams.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UserPageRevenueRewardRecordByOperatorQueryParams.java @@ -7,7 +7,10 @@ import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @Data -public class UsePageRevenueRewardRecordByOperatorQueryParams { +public class UserPageRevenueRewardRecordByOperatorQueryParams { + + @ApiModelProperty("交易场景") + private Integer tradeScene; @ApiModelProperty("收益者名称") private String revenueOwnerName; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractByOperatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserGetRevenueRewardAbstractByOperatorVo.java similarity index 85% rename from dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractByOperatorVo.java rename to dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserGetRevenueRewardAbstractByOperatorVo.java index 835c952..92eb42d 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractByOperatorVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserGetRevenueRewardAbstractByOperatorVo.java @@ -6,7 +6,7 @@ import lombok.Data; import java.math.BigDecimal; @Data -public class UseGetRevenueRewardAbstractByOperatorVo { +public class UserGetRevenueRewardAbstractByOperatorVo { @ApiModelProperty("总营收金额") private BigDecimal totalRevenue; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UsePageRevenueRewardRecordByOperatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserPageRevenueRewardRecordByOperatorVo.java similarity index 90% rename from dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UsePageRevenueRewardRecordByOperatorVo.java rename to dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserPageRevenueRewardRecordByOperatorVo.java index 2e6150c..463fafd 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UsePageRevenueRewardRecordByOperatorVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserPageRevenueRewardRecordByOperatorVo.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; +import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum; import com.qniao.dau.domian.aggregate.matchmaker.constant.MatchmakerLevelEnum; import io.swagger.annotations.ApiModelProperty; @@ -14,7 +15,7 @@ import java.time.LocalDateTime; import java.util.List; @Data -public class UsePageRevenueRewardRecordByOperatorVo { +public class UserPageRevenueRewardRecordByOperatorVo { @ApiModelProperty("收益记录标识") @JsonSerialize(using = ToStringSerializer.class) @@ -48,6 +49,9 @@ public class UsePageRevenueRewardRecordByOperatorVo { @ApiModelProperty("交易类型") private TradeTypeEnum tradeType; + @ApiModelProperty("交易场景") + private TradeSceneEnum tradeScene; + @ApiModelProperty("订单金额") private BigDecimal totalAssociateOrderAmount; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/revenuereward/RevenueRewardApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/revenuereward/RevenueRewardApplicationService.java new file mode 100644 index 0000000..428d1c2 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/revenuereward/RevenueRewardApplicationService.java @@ -0,0 +1,37 @@ +package com.qniao.dam.application.service.revenuereward; + +import cn.hutool.core.collection.CollUtil; +import com.qniao.dam.domain.aggregate.revenuereward.RevenueRewardAggregate; +import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; +import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; +import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardRecordDao; +import com.qniao.dam.query.revenuereward.RevenueRewardQueryService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Objects; + +@Service +public class RevenueRewardApplicationService { + + @Resource + private RevenueRewardQueryService revenueRewardQueryService; + @Resource + private RevenueRewardAggregate revenueRewardAggregate; + @Resource + private RevenueRewardRecordDao revenueRewardRecordDao; + + public void create(RevenueReward revenueReward) { + RevenueReward existRevenueReward = revenueRewardQueryService.queryByUserId(revenueReward.getUserId()); + if (Objects.nonNull(existRevenueReward)) { + revenueReward.setId(existRevenueReward.getId()); + } + revenueRewardAggregate.save(revenueReward); + } + + public void edit(RevenueRewardRecord revenueRewardRecord) { + revenueRewardRecordDao.updateById(revenueRewardRecord); + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java index 7543f92..bf81fef 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java @@ -3,7 +3,7 @@ package com.qniao.dam.infrastructure.persistent.dao.view; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.qniao.dam.api.query.revenuereward.user.request.UseGetRevenueRewardAbstractQueryParams; -import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordByOperatorQueryParams; +import com.qniao.dam.api.query.revenuereward.user.request.UserPageRevenueRewardRecordByOperatorQueryParams; import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordQueryParams; import com.qniao.dam.api.query.revenuereward.user.response.*; import org.apache.ibatis.annotations.Mapper; @@ -18,10 +18,10 @@ public interface RevenueRewardViewDao { IPage pageRevenueRewardRecord(Page pageWithoutOrders, @Param("queryParams") UsePageRevenueRewardRecordQueryParams queryParams); - IPage pageRevenueRewardRecordByOperator(Page pageWithoutOrders, - @Param("queryParams") UsePageRevenueRewardRecordByOperatorQueryParams queryParams); + IPage pageRevenueRewardRecordByOperator(Page pageWithoutOrders, + @Param("queryParams") UserPageRevenueRewardRecordByOperatorQueryParams queryParams); List listAssociateOrderRecord(@Param("revenueRewardRecordIdList") List revenueRewardRecordIdList); - UseGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(@Param("queryParams") UsePageRevenueRewardRecordByOperatorQueryParams queryParams); + UserGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(@Param("queryParams") UserPageRevenueRewardRecordByOperatorQueryParams queryParams); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java index 5e032ed..7ab56d5 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java @@ -1,13 +1,14 @@ package com.qniao.dam.query.revenuereward; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.qniao.dam.api.command.revenuereward.user.response.UserGetRevenueRewardRecordByOperatorVo; import com.qniao.dam.api.query.revenuereward.user.request.UseGetRevenueRewardAbstractQueryParams; -import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordByOperatorQueryParams; +import com.qniao.dam.api.query.revenuereward.user.request.UserPageRevenueRewardRecordByOperatorQueryParams; import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordQueryParams; -import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractByOperatorVo; +import com.qniao.dam.api.query.revenuereward.user.response.UserGetRevenueRewardAbstractByOperatorVo; import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractVo; import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardRecordVo; -import com.qniao.dam.api.query.revenuereward.user.response.UsePageRevenueRewardRecordByOperatorVo; +import com.qniao.dam.api.query.revenuereward.user.response.UserPageRevenueRewardRecordByOperatorVo; import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.framework.utils.PageUtil; @@ -23,9 +24,11 @@ public interface RevenueRewardQueryService { RevenueReward queryByType(Long identityId, IdentityTypeEnum identityType); - IPage pageRevenueRewardRecordByOperator(PageUtil pageUtil, UsePageRevenueRewardRecordByOperatorQueryParams queryParams); + IPage pageRevenueRewardRecordByOperator(PageUtil pageUtil, UserPageRevenueRewardRecordByOperatorQueryParams queryParams); - UseGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(UsePageRevenueRewardRecordByOperatorQueryParams queryParams); + UserGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(UserPageRevenueRewardRecordByOperatorQueryParams queryParams); - String exportData(UsePageRevenueRewardRecordByOperatorQueryParams queryParams); + String exportData(UserPageRevenueRewardRecordByOperatorQueryParams queryParams); + + UserGetRevenueRewardRecordByOperatorVo getRevenueRewardRecordByOperator(Long revenueRewardRecordId); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java index 6ae7cd6..04f18ef 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java @@ -3,18 +3,21 @@ package com.qniao.dam.query.revenuereward.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.command.revenuereward.user.response.UserGetRevenueRewardRecordByOperatorVo; import com.qniao.dam.api.query.revenuereward.user.request.UseGetRevenueRewardAbstractQueryParams; -import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordByOperatorQueryParams; +import com.qniao.dam.api.query.revenuereward.user.request.UserPageRevenueRewardRecordByOperatorQueryParams; import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordQueryParams; import com.qniao.dam.api.query.revenuereward.user.response.*; import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; +import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.infrastructure.easyexcel.EasyExcelUtil; import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardDao; +import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardRecordDao; import com.qniao.dam.infrastructure.persistent.dao.view.RevenueRewardViewDao; import com.qniao.dam.query.matchmaker.MatchmakerQueryService; import com.qniao.dam.query.revenuereward.RevenueRewardQueryService; -import com.qniao.domain.QnPage; +import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker; import com.qniao.framework.utils.PageUtil; import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; @@ -38,6 +41,8 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService private MatchmakerQueryService matchmakerQueryService; @Resource private EasyExcelUtil easyExcelUtil; + @Resource + private RevenueRewardRecordDao revenueRewardRecordDao; @Override public RevenueReward queryByUserId(Long userId) { @@ -80,11 +85,11 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService } @Override - public IPage pageRevenueRewardRecordByOperator(PageUtil pageUtil, - UsePageRevenueRewardRecordByOperatorQueryParams queryParams) { - IPage page = revenueRewardViewDao.pageRevenueRewardRecordByOperator(pageUtil.toPageWithoutOrders(), queryParams); + public IPage pageRevenueRewardRecordByOperator(PageUtil pageUtil, + UserPageRevenueRewardRecordByOperatorQueryParams queryParams) { + IPage page = revenueRewardViewDao.pageRevenueRewardRecordByOperator(pageUtil.toPageWithoutOrders(), queryParams); if (page.getRecords().size() > 0) { - List revenueRewardRecordIdList = page.getRecords().stream().map(UsePageRevenueRewardRecordByOperatorVo::getRevenueRewardRecordId).collect(Collectors.toList()); + List revenueRewardRecordIdList = page.getRecords().stream().map(UserPageRevenueRewardRecordByOperatorVo::getRevenueRewardRecordId).collect(Collectors.toList()); List allAssociateOrderRecordList = revenueRewardViewDao.listAssociateOrderRecord(revenueRewardRecordIdList); Map> allAssociateOrderRecordMap = allAssociateOrderRecordList.stream().collect(Collectors.groupingBy(RevenueRewardAssociateOrderRecordVo::getRevenueRewardRecordId)); page.getRecords().forEach(record -> { @@ -96,17 +101,17 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService } @Override - public UseGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(UsePageRevenueRewardRecordByOperatorQueryParams queryParams) { + public UserGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(UserPageRevenueRewardRecordByOperatorQueryParams queryParams) { return revenueRewardViewDao.getRevenueRewardAbstractByOperator(queryParams); } @Override - public String exportData(UsePageRevenueRewardRecordByOperatorQueryParams queryParams) { + public String exportData(UserPageRevenueRewardRecordByOperatorQueryParams queryParams) { PageUtil pageUtil = new PageUtil(); pageUtil.setOrders(null); pageUtil.setPageNum(1); pageUtil.setPageSize(-1); - IPage page = pageRevenueRewardRecordByOperator(pageUtil, queryParams); + IPage page = pageRevenueRewardRecordByOperator(pageUtil, queryParams); List list = transformExport(page.getRecords()); return easyExcelUtil.writeToFilePath( easyExcelUtil.getTemplateFileAsStream("revenueRewardRecordExport"), @@ -114,9 +119,24 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService ); } - private List transformExport(List recordList) { + @Override + public UserGetRevenueRewardRecordByOperatorVo getRevenueRewardRecordByOperator(Long revenueRewardRecordId) { + RevenueRewardRecord revenueRewardRecord = revenueRewardRecordDao.selectById(revenueRewardRecordId); + RevenueReward revenueReward = revenueRewardDao.selectById(revenueRewardRecord.getRevenueRewardId()); + UserGetRevenueRewardRecordByOperatorVo vo = TypeConvertUtils.convert(revenueRewardRecord, UserGetRevenueRewardRecordByOperatorVo.class); + vo.setRevenueRewardRecordId(revenueRewardRecord.getId()); + Matchmaker matchmaker = matchmakerQueryService.queryByUserId(revenueReward.getUserId()); + vo.setRevenueOwnerName(matchmaker.getName()); + vo.setRevenueOwnerPhone(matchmaker.getPhone()); + vo.setMatchmakerUserId(matchmaker.getUserId()); + vo.setMatchmakerType(matchmaker.getType()); + vo.setMatchmakerLevel(matchmakerQueryService.queryLevelByUserId(revenueReward.getUserId())); + return vo; + } + + private List transformExport(List recordList) { List list = new ArrayList<>(); - for (UsePageRevenueRewardRecordByOperatorVo record : recordList) { + for (UserPageRevenueRewardRecordByOperatorVo record : recordList) { RevenueRewardRecordExportVo exportVo = TypeConvertUtils.convert(record, RevenueRewardRecordExportVo.class, (rVo, eVo) -> { if (Objects.nonNull(rVo.getMatchmakerLevel())) { eVo.setMatchmakerLevelVal(rVo.getMatchmakerLevel().getDesc()); diff --git a/dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml b/dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml index 3fa7f53..a7643c8 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml @@ -56,7 +56,7 @@