From e774b8edc85f28c7ccea4390b2873b26afda1a22 Mon Sep 17 00:00:00 2001 From: chen-xin-zhi <3588068430@qq.com> Date: Wed, 14 May 2025 21:04:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/ProjectDetailController.java | 3 ++ .../ProjectSettlementController.java | 35 ++++++++++--------- .../WithdrawalApplyController.java | 8 ++--- .../userInfo/UserAccountController.java | 3 +- .../userInfo/UserInfoController.java | 3 +- .../ProjectSettlementAddRequest.java | 4 +-- .../ProjectSettlementQueryRequest.java | 2 +- .../ProjectSettlementUpdateRequest.java | 4 +-- .../dto/promoCode/PromoCodeUpdateRequest.java | 6 ---- .../model/entity/ProjectSettlement.java | 9 ++++- 10 files changed, 39 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java b/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java index f1b3fb3..6c49653 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java @@ -160,6 +160,7 @@ public class ProjectDetailController { subUserProjectCommissionList.sort(Comparator.comparing(SubUserProjectCommission::getUserId)); // 更新下级用户项目明细抽佣表记录 BigDecimal projectSettlementPrice = projectDetail.getProjectSettlementPrice(); + BigDecimal projectMinSettlementPrice = projectDetail.getProjectMinSettlementPrice(); // 封装Map集合(键:下级用户id,值:下级用户单价) Map subUserUnitPriceMap = new HashMap<>(); // 存储根用户的单价 @@ -174,6 +175,8 @@ public class ProjectDetailController { subUserProjectCommission.setMyUnitPrice(userUnitPrice); // 计算下级用户的单价 BigDecimal subUserUnitPrice = userUnitPrice.multiply(BigDecimal.ONE.subtract(currentCommissionRate)); + // 如果下级用户的单价小于项目明细最小结算价格,则设置下级用户的单价为项目明细最小结算价格 + if (subUserUnitPrice.compareTo(projectMinSettlementPrice) < 0) subUserUnitPrice = projectMinSettlementPrice; // 存储下级用户的单价 subUserUnitPriceMap.put(subUserId, subUserUnitPrice); } diff --git a/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java b/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java index eebfd33..5d51017 100644 --- a/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java +++ b/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java @@ -1,6 +1,7 @@ package com.greenorange.promotion.controller.projectSettlement; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.greenorange.promotion.annotation.RequiresPermission; import com.greenorange.promotion.annotation.SysLog; import com.greenorange.promotion.common.BaseResponse; @@ -17,6 +18,7 @@ import com.greenorange.promotion.service.common.CommonService; import com.greenorange.promotion.service.project.PromoCodeApplyService; import com.greenorange.promotion.service.settle.FundsChangeService; import com.greenorange.promotion.service.settle.ProjectSettlementService; +import com.greenorange.promotion.service.userInfo.UserInfoService; import com.greenorange.promotion.service.userInfo.UserMainInfoService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -31,6 +33,7 @@ import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.List; +import java.util.Map; /** @@ -57,6 +60,9 @@ public class ProjectSettlementController { @Resource private UserMainInfoService userMainInfoService; + @Resource + private UserInfoService userInfoService; + /** * 小程序端用户根据推广码申请记录id查询结算记录 @@ -69,10 +75,8 @@ public class ProjectSettlementController { // @SysLog(title = "项目结算记录管理", content = "小程序端用户根据推广码申请记录id查询结算记录") public BaseResponse> queryProjectSettlementRecordByPid(@Valid @RequestBody CommonRequest commonRequest) { Long id = commonRequest.getId(); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(ProjectSettlement::getPromoCodeRequestRecordId, id); - lambdaQueryWrapper.eq(ProjectSettlement::getRevenueSource, 0); - List projectSettlementList = projectSettlementService.list(lambdaQueryWrapper); + Map, Object> fieldConditions = Map.of(ProjectSettlement::getPromoCodeApplyId, id, ProjectSettlement::getRevenueSource, 0); + List projectSettlementList = commonService.findByFieldEqTargetFields(fieldConditions, projectSettlementService); List projectSettlementVOS = commonService.convertList(projectSettlementList, ProjectSettlementVO.class); return ResultUtils.success(projectSettlementVOS); } @@ -88,9 +92,7 @@ public class ProjectSettlementController { // @SysLog(title = "项目结算记录管理", content = "小程序端用户查询当前推广项目的所有结算明细") public BaseResponse> queryProjectSettlementRecordByProjectId(@Valid @RequestBody CommonRequest commonRequest) { Long id = commonRequest.getId(); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(ProjectSettlement::getProjectId, id); - List projectSettlementList = projectSettlementService.list(lambdaQueryWrapper); + List projectSettlementList = commonService.findByFieldEqTargetField(ProjectSettlement::getProjectId, id, projectSettlementService); List projectSettlementVOS = commonService.convertList(projectSettlementList, ProjectSettlementVO.class); return ResultUtils.success(projectSettlementVOS); } @@ -109,9 +111,8 @@ public class ProjectSettlementController { projectSettlementService.save(projectSettlement); // 查询对应的推广码申请记录 - Long pid = projectSettlement.getPromoCodeRequestRecordId(); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PromoCodeApply::getId, pid); + Long pid = projectSettlement.getPromoCodeApplyId(); + LambdaQueryWrapper lambdaQueryWrapper = commonService.buildQueryWrapperByField(PromoCodeApply::getId, pid, promoCodeApplyService); PromoCodeApply promoCodeApply = promoCodeApplyService.getOne(lambdaQueryWrapper); // 获取推广码申请记录的参数 String projectName = promoCodeApply.getProjectName(); @@ -121,6 +122,9 @@ public class ProjectSettlementController { // 获取项目结算记录的参数 BigDecimal settlementRevenue = projectSettlement.getSettlementRevenue(); Long projectSettlementId = projectSettlement.getId(); + + // 批量添加上级用户的项目结算记录 + // 添加资金变动记录 FundsChange fundsChange = FundsChange.builder() .projectName(projectName) @@ -131,7 +135,9 @@ public class ProjectSettlementController { .build(); fundsChangeService.save(fundsChange); - return ResultUtils.success(true); + // 批量添加下级用户的项目结算记录 + + return ResultUtils.success(true); } // /** @@ -173,8 +179,7 @@ public class ProjectSettlementController { Long id = commonRequest.getId(); projectSettlementService.removeById(id); // 删除资金变动记录 - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(FundsChange::getProjectSettlementId, id); + LambdaQueryWrapper lambdaQueryWrapper = commonService.buildQueryWrapperByField(FundsChange::getProjectSettlementId, id, fundsChangeService); fundsChangeService.remove(lambdaQueryWrapper); return ResultUtils.success(true); } @@ -223,9 +228,7 @@ public class ProjectSettlementController { @SysLog(title = "项目结算记录管理", content = "Web端管理员根据推广码申请记录id查询项目结算记录列表") public BaseResponse> queryProjectSettlementByPid(@Valid @RequestBody CommonRequest commonRequest) { Long id = commonRequest.getId(); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(ProjectSettlement::getPromoCodeRequestRecordId, id); - List projectSettlementList = projectSettlementService.list(lambdaQueryWrapper); + List projectSettlementList = commonService.findByFieldEqTargetField(ProjectSettlement::getPromoCodeApplyId, id, projectSettlementService); List projectSettlementVOS = commonService.convertList(projectSettlementList, ProjectSettlementVO.class); return ResultUtils.success(projectSettlementVOS); } diff --git a/src/main/java/com/greenorange/promotion/controller/projectSettlement/WithdrawalApplyController.java b/src/main/java/com/greenorange/promotion/controller/projectSettlement/WithdrawalApplyController.java index 38c7f53..3f21ced 100644 --- a/src/main/java/com/greenorange/promotion/controller/projectSettlement/WithdrawalApplyController.java +++ b/src/main/java/com/greenorange/promotion/controller/projectSettlement/WithdrawalApplyController.java @@ -82,9 +82,7 @@ public class WithdrawalApplyController { // @SysLog(title = "提现申请记录管理", content = "小程序端用户查询提现申请记录") public BaseResponse> queryWithdrawalApplyByUserId(HttpServletRequest request) { Long userId = (Long) request.getAttribute("userId"); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(WithdrawalApply::getUserId, userId); - List withdrawalApplyList = withdrawalApplyService.list(lambdaQueryWrapper); + List withdrawalApplyList = commonService.findByFieldEqTargetField(WithdrawalApply::getUserId, userId, withdrawalApplyService); List withdrawalApplyVOS = commonService.convertList(withdrawalApplyList, WithdrawalApplyVO.class); return ResultUtils.success(withdrawalApplyVOS); } @@ -100,9 +98,7 @@ public class WithdrawalApplyController { // @SysLog(title = "提现申请记录管理", content = "小程序端用户查询资金变动记录") public BaseResponse> queryFundsChangeByUserId(HttpServletRequest request) { Long userId = (Long) request.getAttribute("userId"); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(FundsChange::getUserId, userId); - List fundsChangeList = fundsChangeService.list(lambdaQueryWrapper); + List fundsChangeList = commonService.findByFieldEqTargetField(FundsChange::getUserId, userId, fundsChangeService); List fundsChangeVOS = commonService.convertList(fundsChangeList, FundsChangeVO.class); return ResultUtils.success(fundsChangeVOS); } diff --git a/src/main/java/com/greenorange/promotion/controller/userInfo/UserAccountController.java b/src/main/java/com/greenorange/promotion/controller/userInfo/UserAccountController.java index 909f642..09a9959 100644 --- a/src/main/java/com/greenorange/promotion/controller/userInfo/UserAccountController.java +++ b/src/main/java/com/greenorange/promotion/controller/userInfo/UserAccountController.java @@ -94,8 +94,7 @@ public class UserAccountController { // @SysLog(title = "用户账户管理", content = "web端管理员根据id查询用户账户") public BaseResponse queryUserAccountByUserId(HttpServletRequest request) { Long userId = (Long) request.getAttribute("userId"); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(UserAccount::getUserId, userId); + LambdaQueryWrapper lambdaQueryWrapper = commonService.buildQueryWrapperByField(UserAccount::getUserId, userId, userAccountService); UserAccount userAccount = userAccountService.getOne(lambdaQueryWrapper); UserAccountVO userAccountVO = commonService.copyProperties(userAccount, UserAccountVO.class); return ResultUtils.success(userAccountVO); diff --git a/src/main/java/com/greenorange/promotion/controller/userInfo/UserInfoController.java b/src/main/java/com/greenorange/promotion/controller/userInfo/UserInfoController.java index a623898..6a2ba97 100644 --- a/src/main/java/com/greenorange/promotion/controller/userInfo/UserInfoController.java +++ b/src/main/java/com/greenorange/promotion/controller/userInfo/UserInfoController.java @@ -211,8 +211,7 @@ public class UserInfoController { // @SysLog(title = "用户管理", content = "小程序端用户根据jwt获取用户主要信息") public BaseResponse getMiniUserMainInfoByJWT(HttpServletRequest request) { Long userId = (Long) request.getAttribute("userId"); - LambdaQueryWrapper userMainInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); - userMainInfoLambdaQueryWrapper.eq(UserMainInfo::getUserId, userId); + LambdaQueryWrapper userMainInfoLambdaQueryWrapper = commonService.buildQueryWrapperByField(UserMainInfo::getUserId, userId, userMainInfoService); UserMainInfo userMainInfo = userMainInfoService.getOne(userMainInfoLambdaQueryWrapper); UserMainInfoVO userMainInfoVO = commonService.copyProperties(userMainInfo, UserMainInfoVO.class); return ResultUtils.success(userMainInfoVO); diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementAddRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementAddRequest.java index 6d917f4..7eed3dd 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementAddRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementAddRequest.java @@ -20,7 +20,7 @@ import java.time.LocalDateTime; "settlementRevenue", "workTime", "settlementTime", - "promoCodeRequestRecordId", + "promoCodeApplyId", "projectId", "projectDetailId" }) @@ -62,7 +62,7 @@ public class ProjectSettlementAddRequest implements Serializable { */ @Min(value = 1L, message = "推广码申请记录id ID不能小于1") @Schema(description = "推广码申请记录id", example = "1") - private Long promoCodeRequestRecordId; + private Long promoCodeApplyId; /** * 项目id diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementQueryRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementQueryRequest.java index 443ed48..2c6a577 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementQueryRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementQueryRequest.java @@ -61,7 +61,7 @@ public class ProjectSettlementQueryRequest extends PageRequest implements Serial */ @Min(value = 1L, message = "推广码申请记录id ID不能小于1") @Schema(description = "推广码申请记录id", example = "1") - private Long promoCodeRequestRecordId; + private Long promoCodeApplyId; /** * 项目id diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementUpdateRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementUpdateRequest.java index c3ebcf3..84f65de 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementUpdateRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementUpdateRequest.java @@ -21,7 +21,7 @@ import java.time.LocalDateTime; "settlementRevenue", "workTime", "settlementTime", - "promoCodeRequestRecordId", + "promoCodeApplyId", "projectId", "projectDetailId" }) @@ -70,7 +70,7 @@ public class ProjectSettlementUpdateRequest implements Serializable { */ @Min(value = 1L, message = "推广码申请记录id ID不能小于1") @Schema(description = "推广码申请记录id", example = "1") - private Long promoCodeRequestRecordId; + private Long promoCodeApplyId; /** * 项目id diff --git a/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeUpdateRequest.java b/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeUpdateRequest.java index 985d214..f309d2a 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeUpdateRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeUpdateRequest.java @@ -49,12 +49,6 @@ public class PromoCodeUpdateRequest implements Serializable { @Schema(description = "项目ID", example = "1") private Long projectId; - /** - * 推广码状态(true:占用,false:空闲) - */ - @NotBlank(message = "推广码状态不能为空") - @Schema(description = "推广码状态(true:占用,false:空闲)", example = "false") - private Boolean promoCodeStatus; @Serial diff --git a/src/main/java/com/greenorange/promotion/model/entity/ProjectSettlement.java b/src/main/java/com/greenorange/promotion/model/entity/ProjectSettlement.java index edce562..327e8bf 100644 --- a/src/main/java/com/greenorange/promotion/model/entity/ProjectSettlement.java +++ b/src/main/java/com/greenorange/promotion/model/entity/ProjectSettlement.java @@ -7,7 +7,11 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 项目结算记录表 @@ -15,6 +19,9 @@ import lombok.Data; */ @TableName(value ="project_settlement") @Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class ProjectSettlement implements Serializable { /** * 结算记录ID @@ -50,7 +57,7 @@ public class ProjectSettlement implements Serializable { /** * 推广码申请记录id */ - private Long promoCodeRequestRecordId; + private Long promoCodeApplyId; /** * 收益来源(true:抽成,false:推广码)