修复了小程序用户查看项目结算记录的接口
This commit is contained in:
parent
694911d797
commit
2fe2397bd8
|
@ -5,14 +5,12 @@ import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
|
||||||
import com.greenorange.promotion.annotation.RequiresPermission;
|
import com.greenorange.promotion.annotation.RequiresPermission;
|
||||||
import com.greenorange.promotion.annotation.SysLog;
|
import com.greenorange.promotion.annotation.SysLog;
|
||||||
import com.greenorange.promotion.common.BaseResponse;
|
import com.greenorange.promotion.common.BaseResponse;
|
||||||
import com.greenorange.promotion.common.ErrorCode;
|
|
||||||
import com.greenorange.promotion.common.ResultUtils;
|
import com.greenorange.promotion.common.ResultUtils;
|
||||||
import com.greenorange.promotion.constant.UserConstant;
|
import com.greenorange.promotion.constant.UserConstant;
|
||||||
import com.greenorange.promotion.exception.ThrowUtils;
|
|
||||||
import com.greenorange.promotion.model.dto.CommonRequest;
|
import com.greenorange.promotion.model.dto.CommonRequest;
|
||||||
import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementAddRequest;
|
import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementAddRequest;
|
||||||
import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementUpdateRequest;
|
|
||||||
import com.greenorange.promotion.model.entity.*;
|
import com.greenorange.promotion.model.entity.*;
|
||||||
|
import com.greenorange.promotion.model.vo.projectSettlement.MiniProjectSettlementVO;
|
||||||
import com.greenorange.promotion.model.vo.projectSettlement.ProjectSettlementVO;
|
import com.greenorange.promotion.model.vo.projectSettlement.ProjectSettlementVO;
|
||||||
import com.greenorange.promotion.service.common.CommonService;
|
import com.greenorange.promotion.service.common.CommonService;
|
||||||
import com.greenorange.promotion.service.project.ProjectDetailService;
|
import com.greenorange.promotion.service.project.ProjectDetailService;
|
||||||
|
@ -86,12 +84,23 @@ public class ProjectSettlementController {
|
||||||
@Operation(summary = "小程序端用户根据推广码申请记录id查询结算记录", description = "参数:项目结算记录添加请求体,权限:管理员,方法名:queryProjectSettlementRecordByPid")
|
@Operation(summary = "小程序端用户根据推广码申请记录id查询结算记录", description = "参数:项目结算记录添加请求体,权限:管理员,方法名:queryProjectSettlementRecordByPid")
|
||||||
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
||||||
// @SysLog(title = "项目结算记录管理", content = "小程序端用户根据推广码申请记录id查询结算记录")
|
// @SysLog(title = "项目结算记录管理", content = "小程序端用户根据推广码申请记录id查询结算记录")
|
||||||
public BaseResponse<List<ProjectSettlementVO>> queryProjectSettlementRecordByPid(@Valid @RequestBody CommonRequest commonRequest) {
|
public BaseResponse<List<MiniProjectSettlementVO>> queryProjectSettlementRecordByPid(@Valid @RequestBody CommonRequest commonRequest) {
|
||||||
Long id = commonRequest.getId();
|
Long id = commonRequest.getId();
|
||||||
Map<SFunction<ProjectSettlement, ?>, Object> fieldConditions = Map.of(ProjectSettlement::getPromoCodeApplyId, id, ProjectSettlement::getRevenueSource, 0);
|
Map<SFunction<ProjectSettlement, ?>, Object> fieldConditions = Map.of(ProjectSettlement::getPromoCodeApplyId, id);
|
||||||
List<ProjectSettlement> projectSettlementList = commonService.findByFieldEqTargetFields(fieldConditions, projectSettlementService);
|
List<ProjectSettlement> projectSettlementList = commonService.findByFieldEqTargetFields(fieldConditions, projectSettlementService);
|
||||||
List<ProjectSettlementVO> projectSettlementVOS = commonService.convertList(projectSettlementList, ProjectSettlementVO.class);
|
List<PromoCodeApply> promoCodeApplyList = commonService.findByFieldInTargetField(projectSettlementList, promoCodeApplyService, ProjectSettlement::getPromoCodeApplyId, PromoCodeApply::getId);
|
||||||
return ResultUtils.success(projectSettlementVOS);
|
// 封装Map集合(键:推广码申请记录id, 值:业务员姓名)
|
||||||
|
Map<Long, String> salespersonNameMap = new HashMap<>();
|
||||||
|
for (PromoCodeApply promoCodeApply : promoCodeApplyList) {
|
||||||
|
salespersonNameMap.put(promoCodeApply.getId(), promoCodeApply.getSalespersonName());
|
||||||
|
}
|
||||||
|
List<MiniProjectSettlementVO> miniProjectSettlementVOList = commonService.convertList(projectSettlementList, MiniProjectSettlementVO.class);
|
||||||
|
for (MiniProjectSettlementVO miniProjectSettlementVO : miniProjectSettlementVOList) {
|
||||||
|
Long applyId = miniProjectSettlementVO.getPromoCodeApplyId();
|
||||||
|
String salespersonName = salespersonNameMap.get(applyId);
|
||||||
|
miniProjectSettlementVO.setSalespersonName(salespersonName);
|
||||||
|
}
|
||||||
|
return ResultUtils.success(miniProjectSettlementVOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -103,11 +112,24 @@ public class ProjectSettlementController {
|
||||||
@Operation(summary = "小程序端用户查询当前推广项目的所有结算明细", description = "参数:项目结算记录添加请求体,权限:管理员,方法名:queryProjectSettlementRecordByProjectId")
|
@Operation(summary = "小程序端用户查询当前推广项目的所有结算明细", description = "参数:项目结算记录添加请求体,权限:管理员,方法名:queryProjectSettlementRecordByProjectId")
|
||||||
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
||||||
// @SysLog(title = "项目结算记录管理", content = "小程序端用户查询当前推广项目的所有结算明细")
|
// @SysLog(title = "项目结算记录管理", content = "小程序端用户查询当前推广项目的所有结算明细")
|
||||||
public BaseResponse<List<ProjectSettlementVO>> queryProjectSettlementRecordByProjectId(@Valid @RequestBody CommonRequest commonRequest) {
|
public BaseResponse<List<MiniProjectSettlementVO>> queryProjectSettlementRecordByProjectId(@Valid @RequestBody CommonRequest commonRequest, HttpServletRequest request) {
|
||||||
Long id = commonRequest.getId();
|
Long projectId = commonRequest.getId();
|
||||||
List<ProjectSettlement> projectSettlementList = commonService.findByFieldEqTargetField(ProjectSettlement::getProjectId, id, projectSettlementService);
|
Long userId = (Long) request.getAttribute("userId");
|
||||||
List<ProjectSettlementVO> projectSettlementVOS = commonService.convertList(projectSettlementList, ProjectSettlementVO.class);
|
Map<SFunction<ProjectSettlement, ?>, Object> fieldConditions = Map.of(ProjectSettlement::getUserId, userId, ProjectSettlement::getProjectId, projectId);
|
||||||
return ResultUtils.success(projectSettlementVOS);
|
List<ProjectSettlement> projectSettlementList = commonService.findByFieldEqTargetFields(fieldConditions, projectSettlementService);
|
||||||
|
List<PromoCodeApply> promoCodeApplyList = commonService.findByFieldInTargetField(projectSettlementList, promoCodeApplyService, ProjectSettlement::getPromoCodeApplyId, PromoCodeApply::getId);
|
||||||
|
// 封装Map集合(键:推广码申请记录id, 值:业务员姓名)
|
||||||
|
Map<Long, String> salespersonNameMap = new HashMap<>();
|
||||||
|
for (PromoCodeApply promoCodeApply : promoCodeApplyList) {
|
||||||
|
salespersonNameMap.put(promoCodeApply.getId(), promoCodeApply.getSalespersonName());
|
||||||
|
}
|
||||||
|
List<MiniProjectSettlementVO> miniProjectSettlementVOList = commonService.convertList(projectSettlementList, MiniProjectSettlementVO.class);
|
||||||
|
for (MiniProjectSettlementVO miniProjectSettlementVO : miniProjectSettlementVOList) {
|
||||||
|
Long applyId = miniProjectSettlementVO.getPromoCodeApplyId();
|
||||||
|
String salespersonName = salespersonNameMap.get(applyId);
|
||||||
|
miniProjectSettlementVO.setSalespersonName(salespersonName);
|
||||||
|
}
|
||||||
|
return ResultUtils.success(miniProjectSettlementVOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.Min;
|
import jakarta.validation.constraints.Min;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -51,14 +52,14 @@ public class ProjectSettlementAddRequest implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 作业时间
|
* 作业时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "作业时间", example = "2025-05-10 10:00:00")
|
@Schema(description = "作业时间", example = "2025-05-10")
|
||||||
private Date workTime;
|
private String workTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结算时间
|
* 结算时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "结算时间", example = "2025-05-12 10:00:00")
|
@Schema(description = "结算时间", example = "2025-05-12")
|
||||||
private Date settlementTime;
|
private String settlementTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推广码申请记录id
|
* 推广码申请记录id
|
||||||
|
|
|
@ -48,14 +48,14 @@ public class ProjectSettlementQueryRequest extends PageRequest implements Serial
|
||||||
/**
|
/**
|
||||||
* 作业时间
|
* 作业时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "作业时间", example = "2025-05-10 10:00:00")
|
@Schema(description = "作业时间", example = "2025-05-10")
|
||||||
private Date workTime;
|
private String workTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结算时间
|
* 结算时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "结算时间", example = "2025-05-12 10:00:00")
|
@Schema(description = "结算时间", example = "2025-05-12")
|
||||||
private Date settlementTime;
|
private String settlementTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推广码申请记录id
|
* 推广码申请记录id
|
||||||
|
|
|
@ -57,14 +57,14 @@ public class ProjectSettlementUpdateRequest implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 作业时间
|
* 作业时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "作业时间", example = "2025-05-10 10:00:00")
|
@Schema(description = "作业时间", example = "2025-05-10")
|
||||||
private Date workTime;
|
private String workTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结算时间
|
* 结算时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "结算时间", example = "2025-05-12 10:00:00")
|
@Schema(description = "结算时间", example = "2025-05-12")
|
||||||
private Date settlementTime;
|
private String settlementTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推广码申请记录id
|
* 推广码申请记录id
|
||||||
|
|
|
@ -47,12 +47,12 @@ public class ProjectSettlement implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 作业时间
|
* 作业时间
|
||||||
*/
|
*/
|
||||||
private Date workTime;
|
private String workTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结算时间
|
* 结算时间
|
||||||
*/
|
*/
|
||||||
private Date settlementTime;
|
private String settlementTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推广码申请记录id
|
* 推广码申请记录id
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
package com.greenorange.promotion.model.vo.projectSettlement;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.Min;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "项目结算记录 视图对象")
|
||||||
|
public class MiniProjectSettlementVO implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推广码申请ID
|
||||||
|
*/
|
||||||
|
@Schema(description = "推广码申请ID", example = "1")
|
||||||
|
private Long promoCodeApplyId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务员姓名
|
||||||
|
*/
|
||||||
|
@Schema(description = "业务员姓名", example = "chenxinzhi")
|
||||||
|
private String salespersonName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目明细名称
|
||||||
|
*/
|
||||||
|
@Schema(description = "项目明细名称", example = "2.9元购买30元券包")
|
||||||
|
private String projectDetailName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结算数量
|
||||||
|
*/
|
||||||
|
@Schema(description = "结算数量", example = "2")
|
||||||
|
private Integer settlementQuantity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结算收益
|
||||||
|
*/
|
||||||
|
@Schema(description = "结算收益", example = "2.34")
|
||||||
|
private BigDecimal settlementRevenue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作业时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "作业时间", example = "2025-05-10")
|
||||||
|
private String workTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结算时间
|
||||||
|
*/
|
||||||
|
@Schema(description = "结算时间", example = "2025-05-12")
|
||||||
|
private String settlementTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收益来源(true:抽成,false:推广码)
|
||||||
|
*/
|
||||||
|
@Schema(description = "收益来源(true:抽成,false:推广码)", example = "false")
|
||||||
|
private Boolean revenueSource;
|
||||||
|
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
}
|
|
@ -44,14 +44,14 @@ public class ProjectSettlementVO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 作业时间
|
* 作业时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "作业时间", example = "2025-05-10 10:00:00")
|
@Schema(description = "作业时间", example = "2025-05-10")
|
||||||
private Date workTime;
|
private String workTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结算时间
|
* 结算时间
|
||||||
*/
|
*/
|
||||||
@Schema(description = "结算时间", example = "2025-05-12 10:00:00")
|
@Schema(description = "结算时间", example = "2025-05-12")
|
||||||
private Date settlementTime;
|
private String settlementTime;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user