修复了用户注册接口(设置了项目明细的最小结算价格)
This commit is contained in:
parent
e4f8f6a26e
commit
ead88a0b6c
|
@ -14,13 +14,11 @@ import com.greenorange.promotion.exception.ThrowUtils;
|
|||
import com.greenorange.promotion.mapper.UserInfoMapper;
|
||||
import com.greenorange.promotion.model.dto.projectCommission.ProjectCommissionAddRequest;
|
||||
import com.greenorange.promotion.model.dto.userInfo.*;
|
||||
import com.greenorange.promotion.model.entity.ProjectCommission;
|
||||
import com.greenorange.promotion.model.entity.SubUserProjectCommission;
|
||||
import com.greenorange.promotion.model.entity.UserInfo;
|
||||
import com.greenorange.promotion.model.entity.UserMainInfo;
|
||||
import com.greenorange.promotion.model.entity.*;
|
||||
import com.greenorange.promotion.model.enums.UserRoleEnum;
|
||||
import com.greenorange.promotion.service.common.CommonService;
|
||||
import com.greenorange.promotion.service.project.ProjectCommissionService;
|
||||
import com.greenorange.promotion.service.project.ProjectDetailService;
|
||||
import com.greenorange.promotion.service.project.SubUserProjectCommissionService;
|
||||
import com.greenorange.promotion.service.userInfo.UserInfoService;
|
||||
import com.greenorange.promotion.service.userInfo.UserMainInfoService;
|
||||
|
@ -44,6 +42,7 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* @author 35880
|
||||
|
@ -86,6 +85,10 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
|||
private UserInfoMapper userInfoMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private ProjectDetailService projectDetailService;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
@ -186,21 +189,30 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
|||
|
||||
// 查询上级用户的项目抽佣记录
|
||||
List<ProjectCommission> projectCommissionList = commonService.findByFieldEqTargetField(ProjectCommission::getUserId, parentUserInfo.getId(), projectCommissionService);
|
||||
// 封装Map集合(键:项目明细id, 值:项目最小价格)
|
||||
Map<Long, BigDecimal> projectDetailMinPriceMap = new HashMap<>();
|
||||
List<ProjectDetail> projectDetailList = commonService.findByFieldInTargetField(projectCommissionList, projectDetailService, ProjectCommission::getProjectDetailId, ProjectDetail::getId);
|
||||
for (ProjectDetail projectDetail : projectDetailList) {
|
||||
projectDetailMinPriceMap.put(projectDetail.getId(), projectDetail.getProjectMinSettlementPrice());
|
||||
}
|
||||
// 插入当前用户的项目抽佣记录
|
||||
List<ProjectCommission> projectCommissions = new ArrayList<>();
|
||||
for (ProjectCommission projectCommission : projectCommissionList) {
|
||||
ProjectCommissionAddRequest projectCommissionAddRequest = commonService.copyProperties(projectCommission, ProjectCommissionAddRequest.class);
|
||||
ProjectCommission proCommission = commonService.copyProperties(projectCommissionAddRequest, ProjectCommission.class);
|
||||
proCommission.setMyUnitPrice(projectCommission.getMyUnitPrice().multiply(BigDecimal.ONE.subtract(projectCommission.getCurrentCommissionRate())));
|
||||
// 获取当前项目明细的最小结算价格
|
||||
BigDecimal projectMinSettlementPrice = projectDetailMinPriceMap.get(projectCommission.getProjectDetailId());
|
||||
BigDecimal currentSettlementPrice = projectCommission.getMyUnitPrice().multiply(BigDecimal.ONE.subtract(projectCommission.getCurrentCommissionRate().divide(BigDecimal.valueOf(100))));
|
||||
// 比较当前结算价格和项目明细最小结算价格,取出最大值
|
||||
proCommission.setMyUnitPrice(projectMinSettlementPrice.max(currentSettlementPrice));
|
||||
proCommission.setCurrentCommissionRate(BigDecimal.ZERO);
|
||||
proCommission.setUserId(myUserInfo.getId());
|
||||
projectCommissions.add(proCommission);
|
||||
}
|
||||
projectCommissionService.saveBatch(projectCommissions);
|
||||
// 插入下级用户的项目明细抽佣记录
|
||||
List<ProjectCommission> proCommissionList = commonService.findByFieldEqTargetField(ProjectCommission::getUserId, parentUserInfo.getId(), projectCommissionService);
|
||||
List<SubUserProjectCommission> subUserProjectCommissionList = new ArrayList<>();
|
||||
for (ProjectCommission projectCommission : proCommissionList) {
|
||||
for (ProjectCommission projectCommission : projectCommissionList) {
|
||||
ProjectCommissionAddRequest projectCommissionAddRequest = commonService.copyProperties(projectCommission, ProjectCommissionAddRequest.class);
|
||||
SubUserProjectCommission subUserProjectCommission = commonService.copyProperties(projectCommissionAddRequest, SubUserProjectCommission.class);
|
||||
subUserProjectCommission.setSubUserId(myUserInfo.getId());
|
||||
|
|
Loading…
Reference in New Issue
Block a user