Browse Source

线下收益

release
张彭杰 1 year ago
parent
commit
0440851e9b
14 changed files with 170 additions and 12 deletions
  1. 16
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/RevenueRewardUserQueryController.java
  2. 23
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/request/UserListMatchmakerRevenueRewardStatisticsQueryParams.java
  3. 22
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/revenuereward/user/response/UserListMatchmakerRevenueRewardStatisticsVo.java
  4. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/org/OrganizationDao.java
  5. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/RevenueRewardViewDao.java
  6. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/operationcenter/OperationCenterQueryService.java
  7. 7
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/operationcenter/impl/OperationCenterQueryServiceImpl.java
  8. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/org/OrganizationQueryService.java
  9. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/org/impl/OrganizationQueryServiceImpl.java
  10. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/RevenueRewardQueryService.java
  11. 41
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/revenuereward/impl/RevenueRewardQueryServiceImpl.java
  12. 6
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/store/StoreQueryService.java
  13. 14
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/store/impl/StoreQueryServiceImpl.java
  14. 16
      dating-agency-mall-server/src/main/resources/mapper/revenuereward/RevenueRewardViewMapper.xml

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

@ -2,12 +2,10 @@ 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.UserListMatchmakerRevenueRewardStatisticsQueryParams;
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.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.UserPageRevenueRewardRecordByOperatorVo;
import com.qniao.dam.api.query.revenuereward.user.response.*;
import com.qniao.dam.query.revenuereward.RevenueRewardQueryService;
import com.qniao.dau.infrastructure.constant.RequestHeaderFields;
import com.qniao.domain.QnPage;
@ -17,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
@RestController
@ -83,4 +82,13 @@ public class RevenueRewardUserQueryController {
public UserGetRevenueRewardRecordByOperatorVo userGetRevenueRewardRecordByOperator(@RequestParam("revenueRewardRecordId") Long revenueRewardRecordId) {
return revenueRewardQueryService.getRevenueRewardRecordByOperator(revenueRewardRecordId);
}
@GetMapping("list/matchmaker-revenue-reward-statistics")
@ApiOperation("获取红娘收益数据记录")
public List<UserListMatchmakerRevenueRewardStatisticsVo> userListMatchmakerRevenueRewardStatistics(UserListMatchmakerRevenueRewardStatisticsQueryParams queryParams,
@RequestParam("userId") Long userId,
@RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID, required = false) Long orgId) {
queryParams.setQueryOrgId(orgId);
return revenueRewardQueryService.listMatchmakerRevenueRewardStatistics(queryParams);
}
}

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

@ -0,0 +1,23 @@
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 UserListMatchmakerRevenueRewardStatisticsQueryParams {
@ApiModelProperty("查询组织标识")
private Long queryOrgId;
@ApiModelProperty("收益开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime revenueTimeFrom;
@ApiModelProperty("收益结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime revenueTimeTo;
}

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

@ -0,0 +1,22 @@
package com.qniao.dam.api.query.revenuereward.user.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class UserListMatchmakerRevenueRewardStatisticsVo {
@ApiModelProperty("红娘标识")
private Long matchmakerId;
@ApiModelProperty("红娘名称")
private String matchmakerName;
@ApiModelProperty("营收额元")
private BigDecimal revenue;
@ApiModelProperty("邀请红娘数量")
private Integer inviteMatchmakerNum;
}

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

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

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

@ -3,6 +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.UserListMatchmakerRevenueRewardStatisticsQueryParams;
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.*;
@ -24,4 +25,7 @@ public interface RevenueRewardViewDao {
List<RevenueRewardAssociateOrderRecordVo> listAssociateOrderRecord(@Param("revenueRewardRecordIdList") List<Long> revenueRewardRecordIdList);
UserGetRevenueRewardAbstractByOperatorVo getRevenueRewardAbstractByOperator(@Param("queryParams") UserPageRevenueRewardRecordByOperatorQueryParams queryParams);
List<UserListMatchmakerRevenueRewardStatisticsVo> listMatchmakerRevenueRewardStatistics(@Param("queryParams") UserListMatchmakerRevenueRewardStatisticsQueryParams queryParams,
@Param("storeIdList") List<Long> storeIdList);
}

4
dating-agency-mall-server/src/main/java/com/qniao/dam/query/operationcenter/OperationCenterQueryService.java

@ -1,5 +1,9 @@
package com.qniao.dam.query.operationcenter;
import com.qniao.dau.domain.aggregate.operationcenter.entity.OperationCenter;
public interface OperationCenterQueryService {
boolean hasByUserId(Long userId);
OperationCenter queryByOrg(Long orgId);
}

7
dating-agency-mall-server/src/main/java/com/qniao/dam/query/operationcenter/impl/OperationCenterQueryServiceImpl.java

@ -19,4 +19,11 @@ public class OperationCenterQueryServiceImpl implements OperationCenterQueryServ
return operationCenterDao.selectCount(new LambdaQueryWrapper<OperationCenter>()
.eq(OperationCenter::getAdministratorId, userId)) > 0;
}
@Override
public OperationCenter queryByOrg(Long orgId) {
return operationCenterDao.selectOne(new LambdaQueryWrapper<OperationCenter>()
.eq(OperationCenter::getOrgId, orgId)
.last("limit 1"));
}
}

4
dating-agency-mall-server/src/main/java/com/qniao/dam/query/org/OrganizationQueryService.java

@ -0,0 +1,4 @@
package com.qniao.dam.query.org;
public interface OrganizationQueryService {
}

8
dating-agency-mall-server/src/main/java/com/qniao/dam/query/org/impl/OrganizationQueryServiceImpl.java

@ -0,0 +1,8 @@
package com.qniao.dam.query.org.impl;
import com.qniao.dam.query.org.OrganizationQueryService;
import org.springframework.stereotype.Service;
@Service
public class OrganizationQueryServiceImpl implements OrganizationQueryService {
}

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

@ -3,16 +3,16 @@ 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.UserListMatchmakerRevenueRewardStatisticsQueryParams;
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.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.UserPageRevenueRewardRecordByOperatorVo;
import com.qniao.dam.api.query.revenuereward.user.response.*;
import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.framework.utils.PageUtil;
import java.util.List;
public interface RevenueRewardQueryService {
RevenueReward queryByUserId(Long userId);
@ -31,4 +31,6 @@ public interface RevenueRewardQueryService {
String exportData(UserPageRevenueRewardRecordByOperatorQueryParams queryParams);
UserGetRevenueRewardRecordByOperatorVo getRevenueRewardRecordByOperator(Long revenueRewardRecordId);
List<UserListMatchmakerRevenueRewardStatisticsVo> listMatchmakerRevenueRewardStatistics(UserListMatchmakerRevenueRewardStatisticsQueryParams queryParams);
}

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

@ -5,6 +5,7 @@ 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.UserListMatchmakerRevenueRewardStatisticsQueryParams;
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.*;
@ -14,20 +15,25 @@ 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.org.OrganizationDao;
import com.qniao.dam.infrastructure.persistent.dao.view.RevenueRewardViewDao;
import com.qniao.dam.query.matchmaker.MatchmakerQueryService;
import com.qniao.dam.query.operationcenter.OperationCenterQueryService;
import com.qniao.dam.query.org.OrganizationQueryService;
import com.qniao.dam.query.revenuereward.RevenueRewardQueryService;
import com.qniao.dam.query.store.StoreQueryService;
import com.qniao.dau.domain.aggregate.matchmaker.entity.Matchmaker;
import com.qniao.dau.domain.aggregate.operationcenter.entity.OperationCenter;
import com.qniao.dau.domain.aggregate.organization.entity.Organization;
import com.qniao.dau.domain.aggregate.store.entity.Store;
import com.qniao.dau.domian.aggregate.organization.constant.OrganizationTypeEnum;
import com.qniao.framework.utils.PageUtil;
import com.qniao.framework.utils.TypeConvertUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
@Service
@ -43,6 +49,10 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService
private EasyExcelUtil easyExcelUtil;
@Resource
private RevenueRewardRecordDao revenueRewardRecordDao;
@Resource
private OrganizationDao organizationDao;
@Resource
private StoreQueryService storeQueryService;
@Override
public RevenueReward queryByUserId(Long userId) {
@ -134,6 +144,29 @@ public class RevenueRewardQueryServiceImpl implements RevenueRewardQueryService
return vo;
}
@Override
public List<UserListMatchmakerRevenueRewardStatisticsVo> listMatchmakerRevenueRewardStatistics(UserListMatchmakerRevenueRewardStatisticsQueryParams queryParams) {
List<UserListMatchmakerRevenueRewardStatisticsVo> list = new ArrayList<>();
Organization organization = organizationDao.selectById(queryParams.getQueryOrgId());
if (Objects.nonNull(organization)) {
List<Long> storeIdList = new ArrayList<>();
if (OrganizationTypeEnum.OPERATION_CENTER.equals(organization.getType())) {
storeIdList = storeQueryService.listByOperationCenterOrgId(queryParams.getQueryOrgId())
.stream().map(Store::getId).collect(Collectors.toList());
} else if (OrganizationTypeEnum.STORE.equals(organization.getType())) {
Store store = storeQueryService.queryByOrg(queryParams.getQueryOrgId());
if (Objects.nonNull(store)) {
storeIdList = Collections.singletonList(store.getId());
}
}
if (CollUtil.isNotEmpty(storeIdList)) {
//查询
list = revenueRewardViewDao.listMatchmakerRevenueRewardStatistics(queryParams, storeIdList);
}
}
return list;
}
private List<RevenueRewardRecordExportVo> transformExport(List<UserPageRevenueRewardRecordByOperatorVo> recordList) {
List<RevenueRewardRecordExportVo> list = new ArrayList<>();
for (UserPageRevenueRewardRecordByOperatorVo record : recordList) {

6
dating-agency-mall-server/src/main/java/com/qniao/dam/query/store/StoreQueryService.java

@ -2,8 +2,14 @@ package com.qniao.dam.query.store;
import com.qniao.dau.domain.aggregate.store.entity.Store;
import java.util.List;
public interface StoreQueryService {
Store queryById(Long id);
boolean hasByUserId(Long userId);
Store queryByOrg(Long orgId);
List<Store> listByOperationCenterOrgId(Long operationCenterOrgId);
}

14
dating-agency-mall-server/src/main/java/com/qniao/dam/query/store/impl/StoreQueryServiceImpl.java

@ -7,6 +7,7 @@ import com.qniao.dau.domain.aggregate.store.entity.Store;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class StoreQueryServiceImpl implements StoreQueryService {
@ -24,4 +25,17 @@ public class StoreQueryServiceImpl implements StoreQueryService {
return storeDao.selectCount(new LambdaQueryWrapper<Store>()
.eq(Store::getAdministratorId, userId)) > 0;
}
@Override
public Store queryByOrg(Long orgId) {
return storeDao.selectOne(new LambdaQueryWrapper<Store>()
.eq(Store::getOrgId, orgId)
.last("limit 1"));
}
@Override
public List<Store> listByOperationCenterOrgId(Long operationCenterOrgId) {
return storeDao.selectList(new LambdaQueryWrapper<Store>()
.eq(Store::getOperationCenterOrgId, operationCenterOrgId));
}
}

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

@ -159,4 +159,20 @@
and darrr.create_time BETWEEN #{queryParams.createTimeFrom} and #{queryParams.createTimeTo}
</if>
</select>
<select id="listMatchmakerRevenueRewardStatistics"
resultType="com.qniao.dam.api.query.revenuereward.user.response.UserListMatchmakerRevenueRewardStatisticsVo">
SELECT
dam.id as matchmakerId,
dam.`name`,
SUM(darrr.revenue) as revenue,
SUM(JSON_EXTRACT(ext_info,'$.matchmakerOrderType')='1') as inviteMatchmakerNum
from da_revenue_reward_record as darrr
INNER JOIN da_revenue_reward as darr on darr.is_delete=0 and darr.id=darrr.revenue_reward_id
INNER JOIN da_revenue_reward_associate_order_record as darrasor on darrasor.revenue_reward_record_id=darrr.id
INNER JOIN da_order as dao on dao.is_delete=0 and dao.id=darrasor.associate_order_id
INNER JOIN da_matchmaker as dam on dam.is_delete=0 and dam.user_id=darr.user_id
where 1=1
GROUP BY dam.id;
</select>
</mapper>
Loading…
Cancel
Save