新增bd 两个more页面
This commit is contained in:
parent
d1bca6f78f
commit
41e53e8efc
@ -280,6 +280,21 @@ public class TeamBdRestController extends BaseController {
|
||||
return teamBdHistoryService.queryBdHistory(cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询BD历史记录详情(More页面)
|
||||
*
|
||||
* @param cmd 查询命令
|
||||
* @return BD历史记录详情
|
||||
* @eo.name 查询BD历史记录详情
|
||||
* @eo.url /history/more
|
||||
* @eo.method get
|
||||
* @eo.request-type formdata
|
||||
*/
|
||||
@GetMapping("/history/more")
|
||||
public BdHistoryMoreCO queryBdHistoryMore(@Validated BdHistoryMoreQryCmd cmd) {
|
||||
return teamBdHistoryService.queryBdHistoryMore(cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询BD Leader历史记录
|
||||
*
|
||||
@ -295,5 +310,20 @@ public class TeamBdRestController extends BaseController {
|
||||
return teamBdHistoryService.queryBdLeaderHistory(cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询BD Leader历史记录详情(More页面)
|
||||
*
|
||||
* @param cmd 查询命令
|
||||
* @return BD Leader历史记录详情
|
||||
* @eo.name 查询BD Leader历史记录详情
|
||||
* @eo.url /leader/history/more
|
||||
* @eo.method get
|
||||
* @eo.request-type formdata
|
||||
*/
|
||||
@GetMapping("/leader/history/more")
|
||||
public BdLeaderHistoryMoreCO queryBdLeaderHistoryMore(@Validated BdLeaderHistoryMoreQryCmd cmd) {
|
||||
return teamBdHistoryService.queryBdLeaderHistoryMore(cmd);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,10 +1,14 @@
|
||||
package com.red.circle.other.app.service.team;
|
||||
|
||||
import com.red.circle.other.app.dto.clientobject.team.*;
|
||||
import com.red.circle.other.app.dto.cmd.team.BdHistoryMoreQryCmd;
|
||||
import com.red.circle.other.app.dto.cmd.team.BdHistoryQryCmd;
|
||||
import com.red.circle.other.app.dto.cmd.team.BdLeaderHistoryMoreQryCmd;
|
||||
import com.red.circle.other.app.dto.cmd.team.BdLeaderHistoryQryCmd;
|
||||
import com.red.circle.other.infra.database.mongo.entity.bd.BdLeaderSalarySettlementRecord;
|
||||
import com.red.circle.other.infra.database.mongo.entity.bd.BdSalarySettlementRecord;
|
||||
import com.red.circle.other.infra.database.mongo.entity.bd.detail.BdLeaderTeamMemberDetail;
|
||||
import com.red.circle.other.infra.database.mongo.entity.bd.detail.BdTeamMemberDetail;
|
||||
import com.red.circle.other.infra.enums.BdSettlementStatus;
|
||||
import com.red.circle.tool.core.collection.CollectionUtils;
|
||||
import com.red.circle.tool.core.text.StringUtils;
|
||||
@ -149,6 +153,122 @@ public class TeamBdHistoryServiceImpl implements TeamBdHistoryService {
|
||||
return summary;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BdHistoryMoreCO queryBdHistoryMore(BdHistoryMoreQryCmd cmd) {
|
||||
Long userId = cmd.getReqUserId();
|
||||
String sysOrigin = cmd.getReqSysOrigin().getOrigin();
|
||||
Integer billBelong = cmd.getBillBelong();
|
||||
|
||||
// 构建查询条件
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("bdUserId").is(userId));
|
||||
query.addCriteria(Criteria.where("sysOrigin").is(sysOrigin));
|
||||
query.addCriteria(Criteria.where("billBelong").is(billBelong));
|
||||
|
||||
// 查询结算记录
|
||||
BdSalarySettlementRecord record = mongoTemplate.findOne(
|
||||
query, BdSalarySettlementRecord.class);
|
||||
|
||||
// 构建返回结果
|
||||
BdHistoryMoreCO result = new BdHistoryMoreCO();
|
||||
result.setPeriod(formatPeriod(billBelong));
|
||||
|
||||
if (record == null) {
|
||||
result.setTeamTotalRecharge(BigDecimal.ZERO);
|
||||
result.setTeamTotalSalary(BigDecimal.ZERO);
|
||||
result.setMemberDetails(new ArrayList<>());
|
||||
return result;
|
||||
}
|
||||
|
||||
// 设置汇总数据
|
||||
result.setTeamTotalRecharge(record.getTeamRechargeAmount() != null ?
|
||||
record.getTeamRechargeAmount() : BigDecimal.ZERO);
|
||||
result.setTeamTotalSalary(record.getTeamSalaryAmount() != null ?
|
||||
record.getTeamSalaryAmount() : BigDecimal.ZERO);
|
||||
|
||||
// 转换成员明细
|
||||
List<BdTeamMemberDetailCO> memberDetails = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(record.getMemberDetails())) {
|
||||
memberDetails = record.getMemberDetails().stream()
|
||||
.map(this::convertToBdTeamMemberDetailCO)
|
||||
.toList();
|
||||
}
|
||||
result.setMemberDetails(memberDetails);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BdLeaderHistoryMoreCO queryBdLeaderHistoryMore(BdLeaderHistoryMoreQryCmd cmd) {
|
||||
Long userId = cmd.getReqUserId();
|
||||
String sysOrigin = cmd.getReqSysOrigin().getOrigin();
|
||||
Integer billBelong = cmd.getBillBelong();
|
||||
|
||||
// 构建查询条件
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("bdLeaderUserId").is(userId));
|
||||
query.addCriteria(Criteria.where("sysOrigin").is(sysOrigin));
|
||||
query.addCriteria(Criteria.where("billBelong").is(billBelong));
|
||||
|
||||
// 查询结算记录
|
||||
BdLeaderSalarySettlementRecord record = mongoTemplate.findOne(
|
||||
query, BdLeaderSalarySettlementRecord.class);
|
||||
|
||||
// 构建返回结果
|
||||
BdLeaderHistoryMoreCO result = new BdLeaderHistoryMoreCO();
|
||||
result.setPeriod(formatPeriod(billBelong));
|
||||
|
||||
if (record == null) {
|
||||
result.setTeamSalary(BigDecimal.ZERO);
|
||||
result.setBdNumber(0);
|
||||
result.setMemberDetails(new ArrayList<>());
|
||||
return result;
|
||||
}
|
||||
|
||||
// 设置汇总数据
|
||||
result.setTeamSalary(record.getTeamSalaryAmount() != null ?
|
||||
record.getTeamSalaryAmount() : BigDecimal.ZERO);
|
||||
result.setBdNumber(record.getBdNumber() != null ? record.getBdNumber() : 0);
|
||||
|
||||
// 转换成员明细
|
||||
List<BdLeaderTeamMemberDetailCO> memberDetails = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(record.getMemberDetails())) {
|
||||
memberDetails = record.getMemberDetails().stream()
|
||||
.map(this::convertToBdLeaderTeamMemberDetailCO)
|
||||
.toList();
|
||||
}
|
||||
result.setMemberDetails(memberDetails);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换BD团队成员明细
|
||||
*/
|
||||
private BdTeamMemberDetailCO convertToBdTeamMemberDetailCO(BdTeamMemberDetail detail) {
|
||||
BdTeamMemberDetailCO co = new BdTeamMemberDetailCO();
|
||||
co.setUserId(detail.getUserId());
|
||||
co.setUserName(detail.getUserName());
|
||||
co.setUserAvatar(detail.getUserAvatar());
|
||||
co.setSalary(detail.getSalary() != null ? detail.getSalary() : BigDecimal.ZERO);
|
||||
co.setRecharge(detail.getRecharge() != null ? detail.getRecharge() : BigDecimal.ZERO);
|
||||
co.setHostCount(detail.getHostCount() != null ? detail.getHostCount() : 0);
|
||||
return co;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换BD Leader团队成员明细
|
||||
*/
|
||||
private BdLeaderTeamMemberDetailCO convertToBdLeaderTeamMemberDetailCO(BdLeaderTeamMemberDetail detail) {
|
||||
BdLeaderTeamMemberDetailCO co = new BdLeaderTeamMemberDetailCO();
|
||||
co.setBdUserId(detail.getBdUserId());
|
||||
co.setBdUserName(detail.getBdUserName());
|
||||
co.setBdUserAvatar(detail.getBdUserAvatar());
|
||||
co.setSalary(detail.getSalary() != null ? detail.getSalary() : BigDecimal.ZERO);
|
||||
co.setAgencyCount(detail.getAgencyCount() != null ? detail.getAgencyCount() : 0);
|
||||
return co;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换BD结算记录为DTO
|
||||
*/
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
package com.red.circle.other.app.dto.clientobject.team;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* BD历史记录详情
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class BdHistoryMoreCO {
|
||||
|
||||
/**
|
||||
* 结算周期(格式:2025.10.01-2025.10.15)
|
||||
*/
|
||||
private String period;
|
||||
|
||||
/**
|
||||
* 团队总充值(美元)
|
||||
*/
|
||||
private BigDecimal teamTotalRecharge;
|
||||
|
||||
/**
|
||||
* 团队总工资(美元)
|
||||
*/
|
||||
private BigDecimal teamTotalSalary;
|
||||
|
||||
/**
|
||||
* 团队成员明细列表
|
||||
*/
|
||||
private List<BdTeamMemberDetailCO> memberDetails;
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.red.circle.other.app.dto.clientobject.team;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* BD Leader历史记录详情
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class BdLeaderHistoryMoreCO {
|
||||
|
||||
/**
|
||||
* 结算周期(格式:2025.10.01-2025.10.15)
|
||||
*/
|
||||
private String period;
|
||||
|
||||
/**
|
||||
* 团队工资总和(美元)
|
||||
*/
|
||||
private BigDecimal teamSalary;
|
||||
|
||||
/**
|
||||
* BD 数量
|
||||
*/
|
||||
private Integer bdNumber;
|
||||
|
||||
/**
|
||||
* BD 成员明细列表
|
||||
*/
|
||||
private List<BdLeaderTeamMemberDetailCO> memberDetails;
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package com.red.circle.other.app.dto.clientobject.team;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* BD Leader团队成员明细
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class BdLeaderTeamMemberDetailCO {
|
||||
|
||||
/**
|
||||
* BD 用户 ID
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long bdUserId;
|
||||
|
||||
/**
|
||||
* BD 用户名称
|
||||
*/
|
||||
private String bdUserName;
|
||||
|
||||
/**
|
||||
* BD 用户头像
|
||||
*/
|
||||
private String bdUserAvatar;
|
||||
|
||||
/**
|
||||
* 工资金额(美元)
|
||||
*/
|
||||
private BigDecimal salary;
|
||||
|
||||
/**
|
||||
* Agency 数量
|
||||
*/
|
||||
private Integer agencyCount;
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package com.red.circle.other.app.dto.clientobject.team;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* BD团队成员明细
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class BdTeamMemberDetailCO {
|
||||
|
||||
/**
|
||||
* 用户 ID
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 用户头像
|
||||
*/
|
||||
private String userAvatar;
|
||||
|
||||
/**
|
||||
* 工资金额(美元)
|
||||
*/
|
||||
private BigDecimal salary;
|
||||
|
||||
/**
|
||||
* 充值金额(美元)
|
||||
*/
|
||||
private BigDecimal recharge;
|
||||
|
||||
/**
|
||||
* Host 数量
|
||||
*/
|
||||
private Integer hostCount;
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.red.circle.other.app.dto.cmd.team;
|
||||
|
||||
import com.red.circle.common.business.dto.cmd.AppExtCommand;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* BD历史记录详情查询命令
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class BdHistoryMoreQryCmd extends AppExtCommand {
|
||||
|
||||
/**
|
||||
* 结算周期(格式:202501 表示2025年1月上半月,202502 表示2025年1月下半月)
|
||||
*/
|
||||
@NotNull(message = "结算周期不能为空")
|
||||
private Integer billBelong;
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.red.circle.other.app.dto.cmd.team;
|
||||
|
||||
import com.red.circle.common.business.dto.cmd.AppExtCommand;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* BD Leader历史记录详情查询命令
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class BdLeaderHistoryMoreQryCmd extends AppExtCommand {
|
||||
|
||||
/**
|
||||
* 结算周期(格式:202501 表示2025年1月上半月,202502 表示2025年1月下半月)
|
||||
*/
|
||||
@NotNull(message = "结算周期不能为空")
|
||||
private Integer billBelong;
|
||||
}
|
||||
@ -1,8 +1,12 @@
|
||||
package com.red.circle.other.app.service.team;
|
||||
|
||||
import com.red.circle.other.app.dto.clientobject.team.BdHistoryMoreCO;
|
||||
import com.red.circle.other.app.dto.clientobject.team.BdHistorySummaryCO;
|
||||
import com.red.circle.other.app.dto.clientobject.team.BdLeaderHistoryMoreCO;
|
||||
import com.red.circle.other.app.dto.clientobject.team.BdLeaderHistorySummaryCO;
|
||||
import com.red.circle.other.app.dto.cmd.team.BdHistoryMoreQryCmd;
|
||||
import com.red.circle.other.app.dto.cmd.team.BdHistoryQryCmd;
|
||||
import com.red.circle.other.app.dto.cmd.team.BdLeaderHistoryMoreQryCmd;
|
||||
import com.red.circle.other.app.dto.cmd.team.BdLeaderHistoryQryCmd;
|
||||
|
||||
/**
|
||||
@ -19,4 +23,14 @@ public interface TeamBdHistoryService {
|
||||
* 查询BD Leader历史记录
|
||||
*/
|
||||
BdLeaderHistorySummaryCO queryBdLeaderHistory(BdLeaderHistoryQryCmd cmd);
|
||||
|
||||
/**
|
||||
* 查询BD历史记录详情(More页面)
|
||||
*/
|
||||
BdHistoryMoreCO queryBdHistoryMore(BdHistoryMoreQryCmd cmd);
|
||||
|
||||
/**
|
||||
* 查询BD Leader历史记录详情(More页面)
|
||||
*/
|
||||
BdLeaderHistoryMoreCO queryBdLeaderHistoryMore(BdLeaderHistoryMoreQryCmd cmd);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user