Browse Source

线下收益

master
张彭杰 1 year ago
parent
commit
7eaeb9ae60
13 changed files with 355 additions and 36 deletions
  1. 33
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/RevenueRewardUserCommandController.java
  2. 70
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserCreateRevenueRewardDto.java
  3. 67
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/request/UserEditRevenueRewardDto.java
  4. 70
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/revenuereward/user/response/UserGetRevenueRewardRecordByOperatorVo.java
  5. 25
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java
  6. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UserPageRevenueRewardRecordByOperatorQueryParams.java
  7. 2
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserGetRevenueRewardAbstractByOperatorVo.java
  8. 6
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserPageRevenueRewardRecordByOperatorVo.java
  9. 37
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/revenuereward/RevenueRewardApplicationService.java
  10. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java
  11. 15
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java
  12. 42
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java
  13. 11
      dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml

33
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());
}
}

70
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<RevenueReward> {
@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;
}
}

67
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<RevenueRewardRecord> {
@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;
}
}

70
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;
}

25
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<UsePageRevenueRewardRecordByOperatorVo> usePageRevenueRewardRecordByOperator(PageUtil pageUtil,
UsePageRevenueRewardRecordByOperatorQueryParams queryParams) {
return PageUtil.convert(revenueRewardQueryService.pageRevenueRewardRecordByOperator(pageUtil, queryParams), UsePageRevenueRewardRecordByOperatorVo.class);
public QnPage<UserPageRevenueRewardRecordByOperatorVo> 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);
}
}

dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UsePageRevenueRewardRecordByOperatorQueryParams.java → 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;

dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractByOperatorVo.java → 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;

dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UsePageRevenueRewardRecordByOperatorVo.java → 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;

37
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);
}
}

8
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<UseGetRevenueRewardRecordVo> pageRevenueRewardRecord(Page<Object> pageWithoutOrders,
@Param("queryParams") UsePageRevenueRewardRecordQueryParams queryParams);
IPage<UsePageRevenueRewardRecordByOperatorVo> pageRevenueRewardRecordByOperator(Page<Object> pageWithoutOrders,
@Param("queryParams") UsePageRevenueRewardRecordByOperatorQueryParams queryParams);
IPage<UserPageRevenueRewardRecordByOperatorVo> pageRevenueRewardRecordByOperator(Page<Object> pageWithoutOrders,
@Param("queryParams") UserPageRevenueRewardRecordByOperatorQueryParams queryParams);
List<RevenueRewardAssociateOrderRecordVo> listAssociateOrderRecord(@Param("revenueRewardRecordIdList") List<Long> revenueRewardRecordIdList);
UseGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(@Param("queryParams") UsePageRevenueRewardRecordByOperatorQueryParams queryParams);
UserGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(@Param("queryParams") UserPageRevenueRewardRecordByOperatorQueryParams queryParams);
}

15
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<UsePageRevenueRewardRecordByOperatorVo> pageRevenueRewardRecordByOperator(PageUtil pageUtil, UsePageRevenueRewardRecordByOperatorQueryParams queryParams);
IPage<UserPageRevenueRewardRecordByOperatorVo> 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);
}

42
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<UsePageRevenueRewardRecordByOperatorVo> pageRevenueRewardRecordByOperator(PageUtil pageUtil,
UsePageRevenueRewardRecordByOperatorQueryParams queryParams) {
IPage<UsePageRevenueRewardRecordByOperatorVo> page = revenueRewardViewDao.pageRevenueRewardRecordByOperator(pageUtil.toPageWithoutOrders(), queryParams);
public IPage<UserPageRevenueRewardRecordByOperatorVo> pageRevenueRewardRecordByOperator(PageUtil pageUtil,
UserPageRevenueRewardRecordByOperatorQueryParams queryParams) {
IPage<UserPageRevenueRewardRecordByOperatorVo> page = revenueRewardViewDao.pageRevenueRewardRecordByOperator(pageUtil.toPageWithoutOrders(), queryParams);
if (page.getRecords().size() > 0) {
List<Long> revenueRewardRecordIdList = page.getRecords().stream().map(UsePageRevenueRewardRecordByOperatorVo::getRevenueRewardRecordId).collect(Collectors.toList());
List<Long> revenueRewardRecordIdList = page.getRecords().stream().map(UserPageRevenueRewardRecordByOperatorVo::getRevenueRewardRecordId).collect(Collectors.toList());
List<RevenueRewardAssociateOrderRecordVo> allAssociateOrderRecordList = revenueRewardViewDao.listAssociateOrderRecord(revenueRewardRecordIdList);
Map<Long, List<RevenueRewardAssociateOrderRecordVo>> 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<UsePageRevenueRewardRecordByOperatorVo> page = pageRevenueRewardRecordByOperator(pageUtil, queryParams);
IPage<UserPageRevenueRewardRecordByOperatorVo> page = pageRevenueRewardRecordByOperator(pageUtil, queryParams);
List<RevenueRewardRecordExportVo> list = transformExport(page.getRecords());
return easyExcelUtil.writeToFilePath(
easyExcelUtil.getTemplateFileAsStream("revenueRewardRecordExport"),
@ -114,9 +119,24 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService
);
}
private List<RevenueRewardRecordExportVo> transformExport(List<UsePageRevenueRewardRecordByOperatorVo> 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<RevenueRewardRecordExportVo> transformExport(List<UserPageRevenueRewardRecordByOperatorVo> recordList) {
List<RevenueRewardRecordExportVo> 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());

11
dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml

@ -56,7 +56,7 @@
</select>
<select id="pageRevenueRewardRecordByOperator"
resultType="com.qniao.dam.api.query.revenuereward.user.response.UsePageRevenueRewardRecordByOperatorVo">
resultType="com.qniao.dam.api.query.revenuereward.user.response.UserPageRevenueRewardRecordByOperatorVo">
select
darrr.id as revenueRewardRecordId,
darrr.create_time,
@ -65,6 +65,7 @@
dam.`name` as revenueOwnerName,
dam.phone as revenueOwnerPhone,
darrr.trade_type,
darrr.trade_scene,
darrr.total_associate_order_amount,
darrr.revenue_pct,
darrr.revenue,
@ -79,6 +80,9 @@
LEFT JOIN da_organization dao1 on dao1.id= das.org_id
LEFT JOIN da_organization dao2 on dao2.id= das.operation_center_org_id
where darr.is_delete=0 and darr.identity_type=1
<if test="queryParams.tradeScene != null">
and darrr.trade_scene = #{queryParams.tradeScene}
</if>
<if test="queryParams.revenueOwnerName != null and queryParams.revenueOwnerName != '' ">
AND dam.`name` LIKE CONCAT('%', TRIM(#{queryParams.revenueOwnerName}), '%')
</if>
@ -121,7 +125,7 @@
</select>
<select id="getRevenueRewardAbstractByOperator"
resultType="com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractByOperatorVo">
resultType="com.qniao.dam.api.query.revenuereward.user.response.UserGetRevenueRewardAbstractByOperatorVo">
select
SUM(IFNULL(darrr.revenue,0)) as totalRevenue,
SUM(IFNULL(darrr.earnings,0)) as totalEarnings
@ -132,6 +136,9 @@
LEFT JOIN da_organization dao1 on dao1.id= das.org_id
LEFT JOIN da_organization dao2 on dao2.id= das.operation_center_org_id
where darr.is_delete=0 and darr.identity_type=1
<if test="queryParams.tradeScene != null">
and darrr.trade_scene = #{queryParams.tradeScene}
</if>
<if test="queryParams.revenueOwnerName != null and queryParams.revenueOwnerName != '' ">
AND dam.`name` LIKE CONCAT('%', TRIM(#{queryParams.revenueOwnerName}), '%')
</if>

Loading…
Cancel
Save