修复了用户注册接口(设置了项目明细的最小结算价格)
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.mapper.UserInfoMapper;
|
||||||
import com.greenorange.promotion.model.dto.projectCommission.ProjectCommissionAddRequest;
|
import com.greenorange.promotion.model.dto.projectCommission.ProjectCommissionAddRequest;
|
||||||
import com.greenorange.promotion.model.dto.userInfo.*;
|
import com.greenorange.promotion.model.dto.userInfo.*;
|
||||||
import com.greenorange.promotion.model.entity.ProjectCommission;
|
import com.greenorange.promotion.model.entity.*;
|
||||||
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.enums.UserRoleEnum;
|
import com.greenorange.promotion.model.enums.UserRoleEnum;
|
||||||
import com.greenorange.promotion.service.common.CommonService;
|
import com.greenorange.promotion.service.common.CommonService;
|
||||||
import com.greenorange.promotion.service.project.ProjectCommissionService;
|
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.project.SubUserProjectCommissionService;
|
||||||
import com.greenorange.promotion.service.userInfo.UserInfoService;
|
import com.greenorange.promotion.service.userInfo.UserInfoService;
|
||||||
import com.greenorange.promotion.service.userInfo.UserMainInfoService;
|
import com.greenorange.promotion.service.userInfo.UserMainInfoService;
|
||||||
|
@ -44,6 +42,7 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 35880
|
* @author 35880
|
||||||
|
@ -86,6 +85,10 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
||||||
private UserInfoMapper userInfoMapper;
|
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);
|
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<>();
|
List<ProjectCommission> projectCommissions = new ArrayList<>();
|
||||||
for (ProjectCommission projectCommission : projectCommissionList) {
|
for (ProjectCommission projectCommission : projectCommissionList) {
|
||||||
ProjectCommissionAddRequest projectCommissionAddRequest = commonService.copyProperties(projectCommission, ProjectCommissionAddRequest.class);
|
ProjectCommissionAddRequest projectCommissionAddRequest = commonService.copyProperties(projectCommission, ProjectCommissionAddRequest.class);
|
||||||
ProjectCommission proCommission = commonService.copyProperties(projectCommissionAddRequest, ProjectCommission.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.setCurrentCommissionRate(BigDecimal.ZERO);
|
||||||
proCommission.setUserId(myUserInfo.getId());
|
proCommission.setUserId(myUserInfo.getId());
|
||||||
projectCommissions.add(proCommission);
|
projectCommissions.add(proCommission);
|
||||||
}
|
}
|
||||||
projectCommissionService.saveBatch(projectCommissions);
|
projectCommissionService.saveBatch(projectCommissions);
|
||||||
// 插入下级用户的项目明细抽佣记录
|
// 插入下级用户的项目明细抽佣记录
|
||||||
List<ProjectCommission> proCommissionList = commonService.findByFieldEqTargetField(ProjectCommission::getUserId, parentUserInfo.getId(), projectCommissionService);
|
|
||||||
List<SubUserProjectCommission> subUserProjectCommissionList = new ArrayList<>();
|
List<SubUserProjectCommission> subUserProjectCommissionList = new ArrayList<>();
|
||||||
for (ProjectCommission projectCommission : proCommissionList) {
|
for (ProjectCommission projectCommission : projectCommissionList) {
|
||||||
ProjectCommissionAddRequest projectCommissionAddRequest = commonService.copyProperties(projectCommission, ProjectCommissionAddRequest.class);
|
ProjectCommissionAddRequest projectCommissionAddRequest = commonService.copyProperties(projectCommission, ProjectCommissionAddRequest.class);
|
||||||
SubUserProjectCommission subUserProjectCommission = commonService.copyProperties(projectCommissionAddRequest, SubUserProjectCommission.class);
|
SubUserProjectCommission subUserProjectCommission = commonService.copyProperties(projectCommissionAddRequest, SubUserProjectCommission.class);
|
||||||
subUserProjectCommission.setSubUserId(myUserInfo.getId());
|
subUserProjectCommission.setSubUserId(myUserInfo.getId());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user