Browse Source

基础配置

master
张彭杰 1 year ago
parent
commit
15749d9c7b
10 changed files with 257 additions and 2 deletions
  1. 49
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java
  2. 25
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UseGetRevenueRewardAbstractQueryParams.java
  3. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UsePageRevenueRewardRecordQueryParams.java
  4. 23
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractVo.java
  5. 33
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardRecordVo.java
  6. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java
  7. 18
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java
  8. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java
  9. 21
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java
  10. 51
      dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml

49
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java

@ -0,0 +1,49 @@
package com.qniao.dam.api.query.revenuereward.user;
import com.qniao.dam.api.query.revenuereward.user.request.UseGetRevenueRewardAbstractQueryParams;
import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordQueryParams;
import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractVo;
import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardRecordVo;
import com.qniao.dam.query.revenuereward.RevenueRewardQueryService;
import com.qniao.domain.QnPage;
import com.qniao.framework.utils.PageUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Objects;
@RestController
@RequestMapping("user")
@Api(tags = "收益")
public class RevenueRewardUserQueryController {
@Resource
private RevenueRewardQueryService revenueRewardQueryService;
@GetMapping("get/revenue-reward-abstract")
@ApiOperation("获取用户收益摘要")
public UseGetRevenueRewardAbstractVo useGetRevenueRewardAbstract(UseGetRevenueRewardAbstractQueryParams queryParams,
@RequestParam("userId") Long userId) {
if (Objects.isNull(queryParams.getQueryUserId())) {
queryParams.setQueryUserId(userId);
}
return revenueRewardQueryService.getRevenueRewardAbstract(queryParams);
}
@GetMapping("page/revenue-reward-record")
@ApiOperation("获取用户收益记录")
public QnPage<UseGetRevenueRewardRecordVo> usePageRevenueRewardRecord(PageUtil pageUtil,
UsePageRevenueRewardRecordQueryParams queryParams,
@RequestParam("userId") Long userId) {
if (Objects.isNull(queryParams.getQueryUserId())) {
queryParams.setQueryUserId(userId);
}
return PageUtil.convert(revenueRewardQueryService.pageRevenueRewardRecord(pageUtil, queryParams),UseGetRevenueRewardRecordVo.class);
}
}

25
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UseGetRevenueRewardAbstractQueryParams.java

@ -0,0 +1,25 @@
package com.qniao.dam.api.query.revenuereward.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Data
public class UseGetRevenueRewardAbstractQueryParams {
@ApiModelProperty("查询用户标识")
private Long queryUserId;
@ApiModelProperty("收益开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime revenueTimeFrom;
@ApiModelProperty("收益结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime revenueTimeTo;
@ApiModelProperty("交易类型 101认证、102发布、103匹配、104推荐")
private Integer tradeType;
}

24
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UsePageRevenueRewardRecordQueryParams.java

@ -0,0 +1,24 @@
package com.qniao.dam.api.query.revenuereward.user.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Data
public class UsePageRevenueRewardRecordQueryParams {
@ApiModelProperty("查询用户标识")
private Long queryUserId;
@ApiModelProperty("收益开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime revenueTimeFrom;
@ApiModelProperty("收益结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime revenueTimeTo;
@ApiModelProperty("交易类型 101认证、102发布、103匹配、104推荐")
private Integer tradeType;
}

23
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardAbstractVo.java

@ -0,0 +1,23 @@
package com.qniao.dam.api.query.revenuereward.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 UseGetRevenueRewardAbstractVo {
@ApiModelProperty("收益唯一标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
@ApiModelProperty("营收额")
private BigDecimal totalRevenue;
@ApiModelProperty("收益额")
private BigDecimal totalEarnings;
}

33
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UseGetRevenueRewardRecordVo.java

@ -0,0 +1,33 @@
package com.qniao.dam.api.query.revenuereward.user.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class UseGetRevenueRewardRecordVo {
@ApiModelProperty("交易类型")
private TradeTypeEnum tradeType;
@ApiModelProperty("营收额")
private BigDecimal revenue;
@ApiModelProperty("收益额 营收额除去平台服务费")
private BigDecimal earnings;
@ApiModelProperty("订单金额")
private BigDecimal totalAssociateOrderAmount;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("收益时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime revenueTime;
}

5
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/reward/RewardApplicationService.java

@ -98,6 +98,7 @@ public class RewardApplicationService {
RewardConfig serviceFeeRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.PLATFORM_SERVICE_FEE);
if (Objects.nonNull(serviceFeeRewardConfig)) {
MarriageInformation meetingMi = marriageInformationDao.selectById(dto.getAssociatedMiId());
TradeTypeEnum tradeType = transform(dto.getRewardType());
//收益信息
RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(dto.getReceiver());
if (Objects.isNull(revenueReward)) {
@ -108,7 +109,7 @@ public class RewardApplicationService {
//服务费用
BigDecimal serviceFee = serviceFeeRewardConfig.calculate(revenue);
BigDecimal earnings = revenue.subtract(serviceFee);
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.MARRIAGE_BOUNTY_MEETING_FEE,
RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(tradeType,
revenue, earnings, dto.getTotalAssociateOrderAmount());
revenueRewardRecord.handleContent(Collections.singletonList(meetingMi.getNickName()));
if (CollUtil.isNotEmpty(dto.getOrderIdRelList())) {
@ -129,7 +130,7 @@ public class RewardApplicationService {
}
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(earnings));
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance()));
WalletAccountRecord walletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.MARRIAGE_BOUNTY_MEETING_FEE, earnings, true);
WalletAccountRecord walletAccountRecord = WalletAccountRecord.build(tradeType, earnings, true);
walletAccount.setRecordList(Collections.singletonList(walletAccountRecord));
acquireRevenueRewardDomainService.handle(revenueReward, walletAccount);
}

18
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java

@ -0,0 +1,18 @@
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.UsePageRevenueRewardRecordQueryParams;
import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractVo;
import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardRecordVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface RevenueRewardViewDao {
UseGetRevenueRewardAbstractVo getRevenueRewardAbstract(@Param("queryParams") UseGetRevenueRewardAbstractQueryParams queryParams);
IPage<UseGetRevenueRewardRecordVo> pageRevenueRewardRecord(Page<Object> pageWithoutOrders,
@Param("queryParams") UsePageRevenueRewardRecordQueryParams queryParams);
}

10
dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java

@ -1,7 +1,17 @@
package com.qniao.dam.query.revenuereward;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.revenuereward.user.request.UseGetRevenueRewardAbstractQueryParams;
import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordQueryParams;
import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractVo;
import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardRecordVo;
import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward;
import com.qniao.framework.utils.PageUtil;
public interface RevenueRewardQueryService {
RevenueReward queryByUserId(Long userId);
UseGetRevenueRewardAbstractVo getRevenueRewardAbstract(UseGetRevenueRewardAbstractQueryParams queryParams);
IPage<UseGetRevenueRewardRecordVo> pageRevenueRewardRecord(PageUtil pageUtil, UsePageRevenueRewardRecordQueryParams queryParams);
}

21
dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java

@ -1,9 +1,17 @@
package com.qniao.dam.query.revenuereward.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.revenuereward.user.request.UseGetRevenueRewardAbstractQueryParams;
import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordQueryParams;
import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractVo;
import com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardRecordVo;
import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward;
import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardDao;
import com.qniao.dam.infrastructure.persistent.dao.view.RevenueRewardViewDao;
import com.qniao.dam.query.revenuereward.RevenueRewardQueryService;
import com.qniao.domain.QnPage;
import com.qniao.framework.utils.PageUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -13,6 +21,8 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService
@Resource
private RevenueRewardDao revenueRewardDao;
@Resource
private RevenueRewardViewDao revenueRewardViewDao;
@Override
public RevenueReward queryByUserId(Long userId) {
@ -20,4 +30,15 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService
.eq(RevenueReward::getUserId, userId)
.last("limit 1"));
}
@Override
public UseGetRevenueRewardAbstractVo getRevenueRewardAbstract(UseGetRevenueRewardAbstractQueryParams queryParams) {
return revenueRewardViewDao.getRevenueRewardAbstract(queryParams);
}
@Override
public IPage<UseGetRevenueRewardRecordVo> pageRevenueRewardRecord(PageUtil pageUtil,
UsePageRevenueRewardRecordQueryParams queryParams) {
return revenueRewardViewDao.pageRevenueRewardRecord(pageUtil.toPageWithoutOrders(), queryParams);
}
}

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

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.view.RevenueRewardViewDao">
<select id="getRevenueRewardAbstract"
resultType="com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardAbstractVo">
select
drr.id,
SUM(drrr.revenue) as totalRevenue,
SUM(drrr.earnings) as totalEarnings
from da_revenue_reward_record as drrr
LEFT JOIN da_revenue_reward as drr on drr.id=drrr.revenue_reward_id
WHERE drr.is_delete=0
<if test="queryParams.queryUserId != null">
and drr.user_id = #{queryParams.queryUserId}
</if>
<if test="queryParams.tradeType != null">
and drrr.trade_type = #{queryParams.tradeType}
</if>
<if test="queryParams.revenueTimeFrom != null and queryParams.revenueTimeTo != null">
and drrr.create_time BETWEEN #{queryParams.revenueTimeFrom} and #{queryParams.revenueTimeTo}
</if>
GROUP BY drr.id
limit 1
</select>
<select id="pageRevenueRewardRecord"
resultType="com.qniao.dam.api.query.revenuereward.user.response.UseGetRevenueRewardRecordVo">
select
drrr.trade_type,
drrr.revenue,
drrr.earnings,
drrr.total_associate_order_amount,
drrr.content,
drrr.create_time as revenueTime
from da_revenue_reward_record as drrr
LEFT JOIN da_revenue_reward as drr on drr.id=drrr.revenue_reward_id
WHERE drr.is_delete=0
<if test="queryParams.queryUserId != null">
and drr.user_id = #{queryParams.queryUserId}
</if>
<if test="queryParams.tradeType != null">
and drrr.trade_type = #{queryParams.tradeType}
</if>
<if test="queryParams.revenueTimeFrom != null and queryParams.revenueTimeTo != null">
and drrr.create_time BETWEEN #{queryParams.revenueTimeFrom} and #{queryParams.revenueTimeTo}
</if>
ORDER BY drrr.create_time desc
</select>
</mapper>
Loading…
Cancel
Save