完成了第一版
This commit is contained in:
parent
e774b8edc8
commit
1a14df8296
|
@ -15,7 +15,9 @@ import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementUp
|
||||||
import com.greenorange.promotion.model.entity.*;
|
import com.greenorange.promotion.model.entity.*;
|
||||||
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.PromoCodeApplyService;
|
import com.greenorange.promotion.service.project.PromoCodeApplyService;
|
||||||
|
import com.greenorange.promotion.service.project.SubUserProjectCommissionService;
|
||||||
import com.greenorange.promotion.service.settle.FundsChangeService;
|
import com.greenorange.promotion.service.settle.FundsChangeService;
|
||||||
import com.greenorange.promotion.service.settle.ProjectSettlementService;
|
import com.greenorange.promotion.service.settle.ProjectSettlementService;
|
||||||
import com.greenorange.promotion.service.userInfo.UserInfoService;
|
import com.greenorange.promotion.service.userInfo.UserInfoService;
|
||||||
|
@ -32,6 +34,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -63,6 +67,13 @@ public class ProjectSettlementController {
|
||||||
@Resource
|
@Resource
|
||||||
private UserInfoService userInfoService;
|
private UserInfoService userInfoService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProjectDetailService projectDetailService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SubUserProjectCommissionService subUserProjectCommissionService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 小程序端用户根据推广码申请记录id查询结算记录
|
* 小程序端用户根据推广码申请记录id查询结算记录
|
||||||
|
@ -111,9 +122,8 @@ public class ProjectSettlementController {
|
||||||
projectSettlementService.save(projectSettlement);
|
projectSettlementService.save(projectSettlement);
|
||||||
|
|
||||||
// 查询对应的推广码申请记录
|
// 查询对应的推广码申请记录
|
||||||
Long pid = projectSettlement.getPromoCodeApplyId();
|
Long applyId = projectSettlement.getPromoCodeApplyId();
|
||||||
LambdaQueryWrapper<PromoCodeApply> lambdaQueryWrapper = commonService.buildQueryWrapperByField(PromoCodeApply::getId, pid, promoCodeApplyService);
|
PromoCodeApply promoCodeApply = promoCodeApplyService.getById(applyId);
|
||||||
PromoCodeApply promoCodeApply = promoCodeApplyService.getOne(lambdaQueryWrapper);
|
|
||||||
// 获取推广码申请记录的参数
|
// 获取推广码申请记录的参数
|
||||||
String projectName = promoCodeApply.getProjectName();
|
String projectName = promoCodeApply.getProjectName();
|
||||||
Long userId = promoCodeApply.getUserId();
|
Long userId = promoCodeApply.getUserId();
|
||||||
|
@ -122,8 +132,36 @@ public class ProjectSettlementController {
|
||||||
// 获取项目结算记录的参数
|
// 获取项目结算记录的参数
|
||||||
BigDecimal settlementRevenue = projectSettlement.getSettlementRevenue();
|
BigDecimal settlementRevenue = projectSettlement.getSettlementRevenue();
|
||||||
Long projectSettlementId = projectSettlement.getId();
|
Long projectSettlementId = projectSettlement.getId();
|
||||||
|
// 获取项目明细的结算价格
|
||||||
|
Long projectDetailId = projectSettlement.getProjectDetailId();
|
||||||
|
ProjectDetail projectDetail = projectDetailService.getById(projectDetailId);
|
||||||
|
BigDecimal projectSettlementPrice = projectDetail.getProjectSettlementPrice();
|
||||||
|
BigDecimal projectMinSettlementPrice = projectDetail.getProjectMinSettlementPrice();
|
||||||
// 批量添加上级用户的项目结算记录
|
// 批量添加上级用户的项目结算记录
|
||||||
|
List<SubUserProjectCommission> subUserProjectCommissionList = commonService.findByFieldEqTargetField(SubUserProjectCommission::getProjectDetailId, projectDetailId, subUserProjectCommissionService);
|
||||||
|
// 封装Map集合(键:用户id-下级用户id,值:抽佣价格)
|
||||||
|
Map<String, BigDecimal> subUserProjectCommissionMap = new HashMap<>();
|
||||||
|
for (SubUserProjectCommission subUserProjectCommission : subUserProjectCommissionList) {
|
||||||
|
Long uid = subUserProjectCommission.getUserId();
|
||||||
|
Long subUid = subUserProjectCommission.getSubUserId();
|
||||||
|
BigDecimal myUnitPrice = subUserProjectCommission.getMyUnitPrice();
|
||||||
|
BigDecimal currentCommissionRate = subUserProjectCommission.getCurrentCommissionRate();
|
||||||
|
subUserProjectCommissionMap.put(uid + "-" + subUid, myUnitPrice.multiply(currentCommissionRate));
|
||||||
|
}
|
||||||
|
List<ProjectSettlement> projectSettlementList = new ArrayList<>();
|
||||||
|
// 获取当前用户到根用户的路径
|
||||||
|
List<Long> pathToRoot = userInfoService.findPathToRoot(userId);
|
||||||
|
for (int i = 0; i < pathToRoot.size() - 1; i ++ ) {
|
||||||
|
Long uid = pathToRoot.get(i);
|
||||||
|
Long subUid = pathToRoot.get(i + 1);
|
||||||
|
BigDecimal commissionRatePrice = subUserProjectCommissionMap.get(uid + "-" + subUid);
|
||||||
|
ProjectSettlement projectSettle = commonService.copyProperties(projectSettlementAddRequest, ProjectSettlement.class);
|
||||||
|
projectSettle.setSettlementRevenue(commissionRatePrice);
|
||||||
|
projectSettle.setRevenueSource(true);
|
||||||
|
projectSettle.setSuperId(projectSettlementId);
|
||||||
|
projectSettlementList.add(projectSettle);
|
||||||
|
}
|
||||||
|
projectSettlementService.saveBatch(projectSettlementList);
|
||||||
|
|
||||||
// 添加资金变动记录
|
// 添加资金变动记录
|
||||||
FundsChange fundsChange = FundsChange.builder()
|
FundsChange fundsChange = FundsChange.builder()
|
||||||
|
|
|
@ -288,6 +288,7 @@ public class UserInfoController {
|
||||||
@SysLog(title = "用户管理", content = "web端管理员添加用户")
|
@SysLog(title = "用户管理", content = "web端管理员添加用户")
|
||||||
public BaseResponse<Boolean> addUserInfo(@Valid @RequestBody UserInfoAddRequest userInfoAddRequest) {
|
public BaseResponse<Boolean> addUserInfo(@Valid @RequestBody UserInfoAddRequest userInfoAddRequest) {
|
||||||
UserInfo userInfo = commonService.copyProperties(userInfoAddRequest, UserInfo.class);
|
UserInfo userInfo = commonService.copyProperties(userInfoAddRequest, UserInfo.class);
|
||||||
|
userInfo.setParentUserId(-1L);
|
||||||
userInfoService.save(userInfo);
|
userInfoService.save(userInfo);
|
||||||
return ResultUtils.success(true);
|
return ResultUtils.success(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.greenorange.promotion.annotation.UserEnumValue;
|
||||||
import com.greenorange.promotion.model.enums.UserRoleEnum;
|
import com.greenorange.promotion.model.enums.UserRoleEnum;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.Pattern;
|
||||||
import jakarta.validation.constraints.Size;
|
import jakarta.validation.constraints.Size;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
@ -58,7 +59,7 @@ public class UserInfoAddRequest implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 用户角色
|
* 用户角色
|
||||||
*/
|
*/
|
||||||
@UserEnumValue(enumClass = UserRoleEnum.class)
|
@Pattern(regexp = "admin", message = "用户角色只能为 admin")
|
||||||
@Schema(description = "用户角色", example = "user")
|
@Schema(description = "用户角色", example = "user")
|
||||||
private String userRole;
|
private String userRole;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user