Browse Source

红娘订单

master
张彭杰 1 year ago
parent
commit
8c01261a09
12 changed files with 248 additions and 18 deletions
  1. 17
      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/UsePageRevenueRewardRecordByOperatorQueryParams.java
  3. 42
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/RevenueRewardAssociateOrderRecordVo.java
  4. 55
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UsePageRevenueRewardRecordByOperatorVo.java
  5. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java
  6. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MatchmakerAuditDao.java
  7. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java
  8. 3
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/matchmaker/MatchmakerQueryService.java
  9. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/matchmaker/impl/MatchmakerQueryServiceImpl.java
  10. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java
  11. 23
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java
  12. 60
      dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml

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

@ -1,9 +1,11 @@
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.UsePageRevenueRewardRecordByOperatorQueryParams;
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.api.query.revenuereward.user.response.UsePageRevenueRewardRecordByOperatorVo;
import com.qniao.dam.query.revenuereward.RevenueRewardQueryService;
import com.qniao.dau.infrastructure.constant.RequestHeaderFields;
import com.qniao.domain.QnPage;
@ -56,18 +58,9 @@ public class RevenueRewardUserQueryController {
@GetMapping("page/revenue-reward-record/by/operator")
@ApiOperation("运营端获取用户收益记录分页")
public QnPage<UseGetRevenueRewardRecordVo> usePageRevenueRewardRecordByOperator(PageUtil pageUtil,
UsePageRevenueRewardRecordQueryParams queryParams,
@RequestParam("userId") Long userId,
@RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID, required = false) Long orgId) {
if (Objects.isNull(queryParams.getQueryOrgId()) && Objects.isNull(queryParams.getQueryUserId())) {
if (Objects.nonNull(orgId)) {
queryParams.setQueryOrgId(orgId);
} else {
queryParams.setQueryUserId(userId);
}
}
return PageUtil.convert(revenueRewardQueryService.pageRevenueRewardRecord(pageUtil, queryParams), UseGetRevenueRewardRecordVo.class);
public QnPage<UsePageRevenueRewardRecordByOperatorVo> usePageRevenueRewardRecordByOperator(PageUtil pageUtil,
UsePageRevenueRewardRecordByOperatorQueryParams queryParams) {
return PageUtil.convert(revenueRewardQueryService.pageRevenueRewardRecordByOperator(pageUtil, queryParams), UsePageRevenueRewardRecordByOperatorVo.class);
}
}

25
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UsePageRevenueRewardRecordByOperatorQueryParams.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 UsePageRevenueRewardRecordByOperatorQueryParams {
@ApiModelProperty("收益者名称")
private String revenueOwnerName;
@ApiModelProperty("收益者手机")
private String revenueOwnerPhone;
@ApiModelProperty("创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeFrom;
@ApiModelProperty("创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeTo;
}

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

@ -0,0 +1,42 @@
package com.qniao.dam.api.query.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 io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class RevenueRewardAssociateOrderRecordVo {
@ApiModelProperty("收益记录标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long revenueRewardRecordId;
@ApiModelProperty("有关联的订单")
@JsonSerialize(using = ToStringSerializer.class)
private Long associateOrderId;
@ApiModelProperty("订单号")
private String orderCode;
@ApiModelProperty("有关联的金额")
private BigDecimal associateOrderAmount;
@ApiModelProperty("订单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime orderTime;
@ApiModelProperty("微信支付单号")
private String wechatOrderNo;
@ApiModelProperty("服务用户名称")
private String serviceUserName;
@ApiModelProperty("服务用户手机")
private String serviceUserPhone;
}

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

@ -0,0 +1,55 @@
package com.qniao.dam.api.query.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.TradeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class UsePageRevenueRewardRecordByOperatorVo {
@ApiModelProperty("收益记录标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long revenueRewardRecordId;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@ApiModelProperty("收益者名称")
private String revenueOwnerName;
@ApiModelProperty("收益者手机")
private String revenueOwnerPhone;
@ApiModelProperty("红娘身份类型")
private ProductSubCategoryEnum matchmakerType;
@ApiModelProperty("交易类型")
private TradeTypeEnum tradeType;
@ApiModelProperty("订单金额")
private BigDecimal totalAssociateOrderAmount;
@ApiModelProperty("营收额百分比 收入占比")
private BigDecimal revenuePct;
@ApiModelProperty("营收额 营收金额")
private BigDecimal revenue;
@ApiModelProperty("服务费百分比 抽佣占比")
private BigDecimal servicePct;
@ApiModelProperty("收益额 实收金额")
private BigDecimal earnings;
@ApiModelProperty("关联订单")
private List<RevenueRewardAssociateOrderRecordVo> associateOrderRecordList;
}

8
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

@ -52,6 +52,7 @@ import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation;
import com.qniao.das.domian.aggregate.matchmakermarriage.MatchmakerMarriageInformation;
import com.qniao.das.domian.aggregate.vip.VIPEnum;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
import com.qniao.dau.domain.aggregate.matchmakeraudit.entity.MatchmakerAudit;
import com.qniao.domain.BaseApplicationService;
import com.qniao.domain.BaseDomainEvent;
import com.qniao.framework.exception.BizException;
@ -200,6 +201,11 @@ public class OrderApplicationService extends BaseApplicationService {
Matchmaker matchmaker = matchmakerQueryService.queryByUserId(order.getUserId());
if (Objects.nonNull(matchmaker)) {
order.setOrderBelongName(matchmaker.getName());
} else {
MatchmakerAudit matchmakerAudit = matchmakerQueryService.queryAuditByUserId(order.getUserId());
if (Objects.nonNull(matchmakerAudit)) {
order.setOrderBelongName(matchmakerAudit.getName());
}
}
}
}
@ -486,7 +492,7 @@ public class OrderApplicationService extends BaseApplicationService {
private void cancelHisOrder(Order order) {
List<Order> orderList = orderQueryService.listHis(order.getUserId(), order.getOrderBelonging(), OrderStatusEnum.UNPAID);
if (CollUtil.isNotEmpty(orderList)) {
orderList.forEach(hsiOrder->{
orderList.forEach(hsiOrder -> {
hsiOrder.setStatus(OrderStatusEnum.CANCELED);
orderAggregate.save(hsiOrder);
});

7
dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/MatchmakerAuditDao.java

@ -0,0 +1,7 @@
package com.qniao.dam.infrastructure.persistent.dao.domain;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qniao.dau.domain.aggregate.matchmakeraudit.entity.MatchmakerAudit;
public interface MatchmakerAuditDao extends BaseMapper<MatchmakerAudit> {
}

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

@ -3,16 +3,26 @@ 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.UsePageRevenueRewardRecordQueryParams;
import com.qniao.dam.api.query.revenuereward.user.response.RevenueRewardAssociateOrderRecordVo;
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 org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface RevenueRewardViewDao {
UseGetRevenueRewardAbstractVo getRevenueRewardAbstract(@Param("queryParams") UseGetRevenueRewardAbstractQueryParams queryParams);
IPage<UseGetRevenueRewardRecordVo> pageRevenueRewardRecord(Page<Object> pageWithoutOrders,
@Param("queryParams") UsePageRevenueRewardRecordQueryParams queryParams);
IPage<UsePageRevenueRewardRecordByOperatorVo> pageRevenueRewardRecordByOperator(Page<Object> pageWithoutOrders,
@Param("queryParams") UsePageRevenueRewardRecordByOperatorQueryParams queryParams);
List<RevenueRewardAssociateOrderRecordVo> listAssociateOrderRecord(@Param("revenueRewardRecordIdList") List<Long> revenueRewardRecordIdList);
}

3
dating-agency-mall-server/src/main/java/com/qniao/dam/query/matchmaker/MatchmakerQueryService.java

@ -1,7 +1,10 @@
package com.qniao.dam.query.matchmaker;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
import com.qniao.dau.domain.aggregate.matchmakeraudit.entity.MatchmakerAudit;
public interface MatchmakerQueryService {
Matchmaker queryByUserId(Long userId);
MatchmakerAudit queryAuditByUserId(Long userId);
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/query/matchmaker/impl/MatchmakerQueryServiceImpl.java

@ -1,9 +1,11 @@
package com.qniao.dam.query.matchmaker.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qniao.dam.infrastructure.persistent.dao.domain.MatchmakerAuditDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.MatchmakerDao;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
import com.qniao.dau.domain.aggregate.matchmakeraudit.entity.MatchmakerAudit;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -13,6 +15,8 @@ public class MatchmakerQueryServiceImpl implements MatchmakerQueryService {
@Resource
private MatchmakerDao matchmakerDao;
@Resource
private MatchmakerAuditDao matchmakerAuditDao;
@Override
public Matchmaker queryByUserId(Long userId) {
@ -20,5 +24,13 @@ public class MatchmakerQueryServiceImpl implements MatchmakerQueryService {
.eq(Matchmaker::getUserId, userId)
.last("limit 1"));
}
@Override
public MatchmakerAudit queryAuditByUserId(Long userId) {
return matchmakerAuditDao.selectOne(new LambdaQueryWrapper<MatchmakerAudit>()
.eq(MatchmakerAudit::getUserId, userId)
.orderByDesc(MatchmakerAudit::getCreateTime)
.last("limit 1"));
}
}

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

@ -2,9 +2,11 @@ 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.UsePageRevenueRewardRecordByOperatorQueryParams;
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.api.query.revenuereward.user.response.UsePageRevenueRewardRecordByOperatorVo;
import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.framework.utils.PageUtil;
@ -19,4 +21,6 @@ public interface RevenueRewardQueryService {
RevenueReward queryByOrgId(Long orgId);
RevenueReward queryByType(Long identityId, IdentityTypeEnum identityType);
IPage<UsePageRevenueRewardRecordByOperatorVo> pageRevenueRewardRecordByOperator(PageUtil pageUtil, UsePageRevenueRewardRecordByOperatorQueryParams queryParams);
}

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

@ -3,9 +3,12 @@ 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.UsePageRevenueRewardRecordByOperatorQueryParams;
import com.qniao.dam.api.query.revenuereward.user.request.UsePageRevenueRewardRecordQueryParams;
import com.qniao.dam.api.query.revenuereward.user.response.RevenueRewardAssociateOrderRecordVo;
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.domain.aggregate.revenuereward.entity.RevenueReward;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.RevenueRewardDao;
@ -16,7 +19,10 @@ import com.qniao.framework.utils.PageUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService {
@ -49,7 +55,7 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService
IdentityTypeEnum identityType) {
RevenueReward revenueReward = null;
if (IdentityTypeEnum.INDIVIDUAL.equals(identityType)) {
revenueReward = revenueRewardDao.selectOne(new LambdaQueryWrapper<RevenueReward>()
revenueReward = revenueRewardDao.selectOne(new LambdaQueryWrapper<RevenueReward>()
.eq(RevenueReward::getUserId, identityId)
.last("limit 1"));
if (Objects.isNull(revenueReward)) {
@ -66,6 +72,21 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService
return revenueReward;
}
@Override
public IPage<UsePageRevenueRewardRecordByOperatorVo> pageRevenueRewardRecordByOperator(PageUtil pageUtil,
UsePageRevenueRewardRecordByOperatorQueryParams queryParams) {
IPage<UsePageRevenueRewardRecordByOperatorVo> page = revenueRewardViewDao.pageRevenueRewardRecordByOperator(pageUtil.toPageWithoutOrders(), queryParams);
if (page.getRecords().size() > 0) {
List<Long> revenueRewardRecordIdList = page.getRecords().stream().map(UsePageRevenueRewardRecordByOperatorVo::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 -> {
record.setAssociateOrderRecordList(allAssociateOrderRecordMap.get(record.getRevenueRewardRecordId()));
});
}
return page;
}
@Override
public UseGetRevenueRewardAbstractVo getRevenueRewardAbstract(UseGetRevenueRewardAbstractQueryParams queryParams) {
return revenueRewardViewDao.getRevenueRewardAbstract(queryParams);

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

@ -6,11 +6,11 @@
<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
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
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}
@ -54,4 +54,56 @@
</if>
ORDER BY drrr.create_time desc
</select>
<select id="pageRevenueRewardRecordByOperator"
resultType="com.qniao.dam.api.query.revenuereward.user.response.UsePageRevenueRewardRecordByOperatorVo">
select
darrr.id as revenueRewardRecordId,
darrr.create_time,
dam.`name` as revenueOwnerName,
dam.phone as revenueOwnerPhone,
darrr.trade_type,
darrr.total_associate_order_amount,
darrr.revenue_pct,
darrr.revenue,
darrr.service_pct,
darrr.earnings
from da_revenue_reward as darr
LEFT JOIN da_revenue_reward_record as darrr on darrr.revenue_reward_id=darr.id
LEFT JOIN da_matchmaker as dam on dam.is_delete=0 and dam.user_id=darr.user_id
where darr.is_delete=0 and darr.identity_type=1
<if test="queryParams.revenueOwnerName != null and queryParams.revenueOwnerName != '' ">
AND dam.`name` LIKE CONCAT('%', TRIM(#{queryParams.revenueOwnerName}), '%')
</if>
<if test="queryParams.revenueOwnerPhone != null and queryParams.revenueOwnerPhone != '' ">
AND dam.phone LIKE CONCAT('%', TRIM(#{queryParams.revenueOwnerPhone}), '%')
</if>
<if test="queryParams.createTimeFrom != null and queryParams.createTimeTo != null">
and darrr.create_time BETWEEN #{queryParams.createTimeFrom} and #{queryParams.createTimeTo}
</if>
order by darrr.create_time desc
</select>
<select id="listAssociateOrderRecord"
resultType="com.qniao.dam.api.query.revenuereward.user.response.RevenueRewardAssociateOrderRecordVo">
select
darraor.revenue_reward_record_id,
darraor.associate_order_id,
dao.order_code,
darraor.associate_order_amount,
dao.paid_time as orderTime,
dapco.ext_order_no as wechatOrderNo,
dao.order_belong_name as serviceUserName,
daa.tid as serviceUserPhone
from da_revenue_reward_associate_order_record as darraor
LEFT JOIN da_order as dao on darraor.associate_order_id=dao.id
LEFT JOIN da_marriage_information as dami on dami.id=dao.id
LEFT JOIN da_payment_order as dapo on dapo.is_delete=0 and dapo.`status`=3 and dapo.order_id=dao.id
LEFT JOIN da_payment_channel_order as dapco on dapco.is_delete=0 and dapco.txn_order_id=dapo.id and dapco.`status`=2
LEFT JOIN da_account as daa on daa.is_delete=0 and daa.user_id=dao.user_id and daa.type=2
where darraor.revenue_reward_record_id in
<foreach collection="revenueRewardRecordIdList" item="revenueRewardRecordId" open="(" close=")" separator=",">
#{revenueRewardRecordId}
</foreach>
</select>
</mapper>
Loading…
Cancel
Save