From fd0504f4773234b2e870313f49e5848896ded4c2 Mon Sep 17 00:00:00 2001 From: chen-xin-zhi <3588068430@qq.com> Date: Mon, 14 Jul 2025 11:30:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=91=98=E5=B7=A5id=E6=9F=A5=E8=AF=A2=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=98=8E=E7=BB=86=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/constant/UserConstant.java | 2 +- .../controller/course/CourseController.java | 2 + .../course/CourseOrderController.java | 164 ++++++++++++++++++ ...ePromotionCommissionPendingController.java | 2 + .../course/RefundRecordController.java | 2 + .../fileInfo/FileInfoController.java | 2 + .../project/ProjectCommissionController.java | 2 + .../controller/project/ProjectController.java | 2 + .../project/ProjectDetailController.java | 2 + .../ProjectNotificationController.java | 2 + .../project/PromoCodeApplyController.java | 2 + .../project/PromoCodeController.java | 2 + .../ProjectSettlementController.java | 1 + .../WithdrawalApplyController.java | 2 + .../userInfo/AdvancementApplyController.java | 2 + .../userInfo/UserAccountController.java | 2 + .../userInfo/UserInfoController.java | 2 + .../userInfo/UserMainInfoController.java | 2 + .../UserPerformanceSummaryController.java | 2 + .../wechat/WechatGetQrcodeController.java | 2 + .../wechat/WechatPayController.java | 2 + .../wechat/WechatPayoutsController.java | 2 + .../AdvancementApplyApproveRequest.java | 3 +- .../userInfo/impl/UserInfoServiceImpl.java | 10 +- .../UserPerformanceSummaryServiceImpl.java | 17 +- .../wechat/impl/WechatPayServiceImpl.java | 24 +-- src/main/resources/application-caozhe.yml | 1 - 27 files changed, 236 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/greenorange/promotion/constant/UserConstant.java b/src/main/java/com/greenorange/promotion/constant/UserConstant.java index 0a9ec3c..418e67e 100644 --- a/src/main/java/com/greenorange/promotion/constant/UserConstant.java +++ b/src/main/java/com/greenorange/promotion/constant/UserConstant.java @@ -14,7 +14,7 @@ public interface UserConstant { /** * 用户默认头像 */ - String USER_DEFAULT_AVATAR = SystemConstant.FILE_COMMON_PREFIX + SystemConstant.DEFAULT_AVATAR_VIEW; + String USER_DEFAULT_AVATAR = SystemConstant.DEFAULT_AVATAR_VIEW; /** diff --git a/src/main/java/com/greenorange/promotion/controller/course/CourseController.java b/src/main/java/com/greenorange/promotion/controller/course/CourseController.java index a0ff09c..1edd361 100644 --- a/src/main/java/com/greenorange/promotion/controller/course/CourseController.java +++ b/src/main/java/com/greenorange/promotion/controller/course/CourseController.java @@ -30,6 +30,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -48,6 +49,7 @@ import java.util.stream.Collectors; @RequestMapping("course") @Slf4j @Tag(name = "课程模块") +@Transactional public class CourseController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/course/CourseOrderController.java b/src/main/java/com/greenorange/promotion/controller/course/CourseOrderController.java index 64764f5..64f7375 100644 --- a/src/main/java/com/greenorange/promotion/controller/course/CourseOrderController.java +++ b/src/main/java/com/greenorange/promotion/controller/course/CourseOrderController.java @@ -10,6 +10,7 @@ import com.greenorange.promotion.common.BaseResponse; import com.greenorange.promotion.common.ErrorCode; import com.greenorange.promotion.common.ResultUtils; import com.greenorange.promotion.constant.OrderStatusConstant; +import com.greenorange.promotion.constant.SystemConstant; import com.greenorange.promotion.constant.UserConstant; import com.greenorange.promotion.exception.ThrowUtils; import com.greenorange.promotion.model.dto.CommonBatchRequest; @@ -19,6 +20,9 @@ import com.greenorange.promotion.model.dto.courseOrder.CourseOrderQueryRequest; import com.greenorange.promotion.model.dto.courseOrder.CourseOrderUpdateRequest; import com.greenorange.promotion.model.entity.Course; import com.greenorange.promotion.model.entity.CourseOrder; +import com.greenorange.promotion.model.entity.CoursePromotionCommissionPending; +import com.greenorange.promotion.model.entity.UserPerformanceSummary; +import com.greenorange.promotion.model.enums.CommissionStatusEnum; import com.greenorange.promotion.model.vo.course.CourseCardVO; import com.greenorange.promotion.model.vo.course.CourseVO; import com.greenorange.promotion.model.vo.courseOrder.CourseOrderBaseInfoVO; @@ -26,7 +30,10 @@ import com.greenorange.promotion.model.vo.courseOrder.CourseOrderCardVO; import com.greenorange.promotion.model.vo.courseOrder.CourseOrderVO; import com.greenorange.promotion.service.common.CommonService; import com.greenorange.promotion.service.course.CourseOrderService; +import com.greenorange.promotion.service.course.CoursePromotionCommissionPendingService; import com.greenorange.promotion.service.course.CourseService; +import com.greenorange.promotion.service.userInfo.UserInfoService; +import com.greenorange.promotion.service.userInfo.UserPerformanceSummaryService; import com.greenorange.promotion.utils.OrderNumberUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -34,13 +41,17 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.function.Function; /** @@ -50,6 +61,7 @@ import java.util.List; @RequestMapping("courseOrder") @Slf4j @Tag(name = "课程订单模块") +@Transactional public class CourseOrderController { @Resource @@ -61,6 +73,15 @@ public class CourseOrderController { @Resource private CommonService commonService; + @Resource + private UserInfoService userInfoService; + + @Resource + private UserPerformanceSummaryService userPerformanceSummaryService; + + @Resource + private CoursePromotionCommissionPendingService coursePromotionCommissionPendingService; + /** * 小程序端用户生成课程订单 * @param courseOrderAddRequest 课程id @@ -89,6 +110,149 @@ public class CourseOrderController { } + /** + * 模拟订单支付回调 + */ + @PostMapping("payment") + @Operation(summary = "模拟订单支付回调", description = "参数:订单id,权限:管理员,方法名:paymentCourse") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + public BaseResponse paymentCourse(@Valid @RequestBody CommonRequest commonRequest) { + + System.out.println("---------------------------微信支付回调(开始)-------------------------------"); + // 获取订单信息 + Long id = commonRequest.getId(); + CourseOrder courseOrder = courseOrderService.getById(id); + + // 修改订单状态 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(CourseOrder::getId, courseOrder.getId()) + .set(CourseOrder::getOrderStatus, OrderStatusConstant.SUCCESS); + courseOrderService.update(updateWrapper); + + // 修改当前课程下单人数 + Long courseId = courseOrder.getCourseId(); + Course course = courseService.getById(courseId); + if (course != null) { + course.setOrderCount(course.getOrderCount() + 1); + courseService.updateById(course); + } + + // 更新主管和员工的绩效记录 + Long userId = courseOrder.getUserId(); + List pathToRoot = userInfoService.findPathToRoot(userId); + List superUserIdList = pathToRoot.subList(1, 3); + List userPerformanceSummaryList = commonService.findByFieldInTargetField(superUserIdList, userPerformanceSummaryService, Function.identity(), UserPerformanceSummary::getUserId); + BigDecimal rate; + Map rateMap = userPerformanceSummaryService.queryRakeRewardsRate(); + for (int i = 0; i < userPerformanceSummaryList.size(); i ++ ) { + if (i == 0) rate = rateMap.get("first"); + else rate = rateMap.get("second"); + // 计算理论上获得的最大提成奖励 + BigDecimal rakeRewards = courseOrder.getTotalAmount().multiply(rate); + UserPerformanceSummary userPerformanceSummary = userPerformanceSummaryList.get(i); + + userPerformanceSummary.setTotalAmount(userPerformanceSummary.getTotalAmount().add(courseOrder.getTotalAmount())); + userPerformanceSummary.setNetAmount(userPerformanceSummary.getNetAmount().add(courseOrder.getTotalAmount().multiply(SystemConstant.FEE_RATE))); + userPerformanceSummary.setOrderCount(userPerformanceSummary.getOrderCount() + 1); + userPerformanceSummary.setToRelease(userPerformanceSummary.getToRelease().add(rakeRewards.multiply(SystemConstant.REFUND_RATE))); + userPerformanceSummary.setToSettle(userPerformanceSummary.getToSettle().add(rakeRewards.multiply(SystemConstant.FEE_RATE))); + } + userPerformanceSummaryService.updateBatchById(userPerformanceSummaryList); + + + // 添加课程推广待提成记录 + Long firstUserId = pathToRoot.get(0); + Long secondUserId = pathToRoot.get(1); + CoursePromotionCommissionPending coursePromotionCommissionPending = CoursePromotionCommissionPending.builder() + .firstUserId(firstUserId) + .secondUserId(secondUserId) + .courseId(courseId) + .name(courseOrder.getName()) + .type(courseOrder.getType()) + .image(courseOrder.getImage()) + .orderId(courseOrder.getId()) + .userId(userId) + .firstRate(rateMap.get("first")) + .secondRate(rateMap.get("second")) + .firstReward(courseOrder.getTotalAmount().multiply(rateMap.get("first"))) + .secondReward(courseOrder.getTotalAmount().multiply(rateMap.get("second"))) + .totalAmount(courseOrder.getTotalAmount()) + .commissionStatus(CommissionStatusEnum.PENDING.getValue()) + .orderCreateTime(courseOrder.getCreateTime()) + .build(); + coursePromotionCommissionPendingService.save(coursePromotionCommissionPending); + + + System.out.println("---------------------------微信支付回调(结束)-------------------------------"); + + return ResultUtils.success(true); + } + + + + + /** + * 模拟订单退款回调 + */ + @PostMapping("refund") + @Operation(summary = "模拟订单退款回调", description = "参数:订单id,权限:管理员,方法名:refundCourse") + @RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE) + public BaseResponse refundCourse(@Valid @RequestBody CommonRequest commonRequest) { + System.out.println("---------------------------微信退款回调(开始)-------------------------------"); + // 获取订单信息 + Long id = commonRequest.getId(); + CourseOrder courseOrder = courseOrderService.getById(id); + + // 修改订单状态 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(CourseOrder::getId, courseOrder.getId()) + .set(CourseOrder::getOrderStatus, OrderStatusConstant.REFUNDED); + courseOrderService.update(updateWrapper); + + // 修改课程下单人数 + Long courseId = courseOrder.getCourseId(); + Course course = courseService.getById(courseId); + if (course != null) { + course.setOrderCount(course.getOrderCount() - 1); + courseService.updateById(course); + } + + // 更新主管和员工的绩效记录 + Long userId = courseOrder.getUserId(); + List pathToRoot = userInfoService.findPathToRoot(userId); + List superUserIdList = pathToRoot.subList(1, 3); + List userPerformanceSummaryList = commonService.findByFieldInTargetField(superUserIdList, userPerformanceSummaryService, Function.identity(), UserPerformanceSummary::getUserId); + BigDecimal rate; + LambdaQueryWrapper coursePromotionQueryWrapper = new LambdaQueryWrapper<>(); + coursePromotionQueryWrapper.eq(CoursePromotionCommissionPending::getOrderId, courseOrder.getId()); + CoursePromotionCommissionPending coursePromotionCommissionPending = coursePromotionCommissionPendingService.getOne(coursePromotionQueryWrapper); + for (int i = 0; i < userPerformanceSummaryList.size(); i ++ ) { + if (i == 0) rate = coursePromotionCommissionPending.getFirstRate(); + else rate = coursePromotionCommissionPending.getSecondRate(); + // 计算理论上获得的最大提成奖励 + BigDecimal rakeRewards = courseOrder.getTotalAmount().multiply(rate); + UserPerformanceSummary userPerformanceSummary = userPerformanceSummaryList.get(i); + + userPerformanceSummary.setTotalAmount(userPerformanceSummary.getTotalAmount().add(courseOrder.getTotalAmount())); + userPerformanceSummary.setNetAmount(userPerformanceSummary.getNetAmount().add(courseOrder.getTotalAmount().multiply(SystemConstant.FEE_RATE))); + userPerformanceSummary.setOrderCount(userPerformanceSummary.getOrderCount() + 1); + userPerformanceSummary.setToRelease(userPerformanceSummary.getToRelease().subtract(rakeRewards.multiply(SystemConstant.REFUND_RATE))); + userPerformanceSummary.setRefunded(userPerformanceSummary.getRefunded().add(courseOrder.getTotalAmount().multiply(SystemConstant.REFUND_RATE))); + } + userPerformanceSummaryService.updateBatchById(userPerformanceSummaryList); + + // 修改课程推广待提成状态为"已失效" + LambdaUpdateWrapper coursePromotionUpdateWrapper = new LambdaUpdateWrapper<>(); + coursePromotionUpdateWrapper.eq(CoursePromotionCommissionPending::getOrderId, courseOrder.getId()) + .set(CoursePromotionCommissionPending::getCommissionStatus, CommissionStatusEnum.EXPIRED.getValue()); + coursePromotionCommissionPendingService.update(coursePromotionUpdateWrapper); + + System.out.println("---------------------------微信退款回调(结束)-------------------------------"); + return ResultUtils.success(true); + } + + + /** * 小程序端用户取消课程订单 * @param courseOrderAddRequest 课程id diff --git a/src/main/java/com/greenorange/promotion/controller/course/CoursePromotionCommissionPendingController.java b/src/main/java/com/greenorange/promotion/controller/course/CoursePromotionCommissionPendingController.java index 1ae4e5c..098b1aa 100644 --- a/src/main/java/com/greenorange/promotion/controller/course/CoursePromotionCommissionPendingController.java +++ b/src/main/java/com/greenorange/promotion/controller/course/CoursePromotionCommissionPendingController.java @@ -29,6 +29,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -49,6 +50,7 @@ import java.util.List; @RequestMapping("coursePromo") @Slf4j @Tag(name = "课程推广待提成记录模块") +@Transactional public class CoursePromotionCommissionPendingController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/course/RefundRecordController.java b/src/main/java/com/greenorange/promotion/controller/course/RefundRecordController.java index e2f45b9..2db25e0 100644 --- a/src/main/java/com/greenorange/promotion/controller/course/RefundRecordController.java +++ b/src/main/java/com/greenorange/promotion/controller/course/RefundRecordController.java @@ -18,6 +18,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -36,6 +37,7 @@ import java.util.List; @RequestMapping("refundRecord") @Slf4j @Tag(name = "退款记录模块") +@Transactional public class RefundRecordController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/fileInfo/FileInfoController.java b/src/main/java/com/greenorange/promotion/controller/fileInfo/FileInfoController.java index 97f45c9..c34612d 100644 --- a/src/main/java/com/greenorange/promotion/controller/fileInfo/FileInfoController.java +++ b/src/main/java/com/greenorange/promotion/controller/fileInfo/FileInfoController.java @@ -10,6 +10,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotBlank; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -23,6 +24,7 @@ import java.io.IOException; @RequestMapping("file") @Slf4j @Tag(name = "文件管理") +@Transactional public class FileInfoController { diff --git a/src/main/java/com/greenorange/promotion/controller/project/ProjectCommissionController.java b/src/main/java/com/greenorange/promotion/controller/project/ProjectCommissionController.java index 9b1c480..da37db1 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/ProjectCommissionController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/ProjectCommissionController.java @@ -35,6 +35,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.lang.reflect.GenericDeclaration; @@ -51,6 +52,7 @@ import java.util.stream.Collectors; @RequestMapping("projectCommission") @Slf4j @Tag(name = "项目明细抽佣管理") +@Transactional public class ProjectCommissionController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java b/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java index ac8ca70..b92b544 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java @@ -33,6 +33,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -51,6 +52,7 @@ import java.util.Map; @RequestMapping("project") @Slf4j @Tag(name = "项目管理") +@Transactional public class ProjectController { @Resource 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 a3088b9..b3ab607 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/ProjectDetailController.java @@ -28,6 +28,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import com.greenorange.promotion.model.dto.CommonRequest; @@ -47,6 +48,7 @@ import java.util.stream.Collectors; @RequestMapping("projectDetail") @Slf4j @Tag(name = "项目明细管理") +@Transactional public class ProjectDetailController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/project/ProjectNotificationController.java b/src/main/java/com/greenorange/promotion/controller/project/ProjectNotificationController.java index a09da3b..8936c94 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/ProjectNotificationController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/ProjectNotificationController.java @@ -23,6 +23,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -41,6 +42,7 @@ import java.util.List; @RequestMapping("projectNotification") @Slf4j @Tag(name = "项目通知管理") +@Transactional public class ProjectNotificationController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/project/PromoCodeApplyController.java b/src/main/java/com/greenorange/promotion/controller/project/PromoCodeApplyController.java index f5d3677..c5807bd 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/PromoCodeApplyController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/PromoCodeApplyController.java @@ -30,6 +30,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -49,6 +50,7 @@ import java.util.Map; @RequestMapping("promoCodeApply") @Slf4j @Tag(name = "推广码申请记录管理") +@Transactional public class PromoCodeApplyController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/project/PromoCodeController.java b/src/main/java/com/greenorange/promotion/controller/project/PromoCodeController.java index fd31140..52cd5b9 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/PromoCodeController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/PromoCodeController.java @@ -24,6 +24,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -42,6 +43,7 @@ import java.util.List; @RequestMapping("promoCode") @Slf4j @Tag(name = "推广码管理") +@Transactional public class PromoCodeController { @Resource 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 9277af1..d5326f2 100644 --- a/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java +++ b/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java @@ -47,6 +47,7 @@ import java.util.function.Function; @RequestMapping("projectSettlement") @Slf4j @Tag(name = "项目结算记录管理") +@Transactional public class ProjectSettlementController { @Resource 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 a4914b8..ac2ea91 100644 --- a/src/main/java/com/greenorange/promotion/controller/projectSettlement/WithdrawalApplyController.java +++ b/src/main/java/com/greenorange/promotion/controller/projectSettlement/WithdrawalApplyController.java @@ -31,6 +31,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -48,6 +49,7 @@ import java.util.List; @RequestMapping("withdrawalApply") @Slf4j @Tag(name = "提现申请记录管理") +@Transactional public class WithdrawalApplyController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/userInfo/AdvancementApplyController.java b/src/main/java/com/greenorange/promotion/controller/userInfo/AdvancementApplyController.java index 134ac54..5900266 100644 --- a/src/main/java/com/greenorange/promotion/controller/userInfo/AdvancementApplyController.java +++ b/src/main/java/com/greenorange/promotion/controller/userInfo/AdvancementApplyController.java @@ -28,6 +28,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -44,6 +45,7 @@ import java.util.UUID; @RequestMapping("advancementApply") @Slf4j @Tag(name = "晋升申请模块") +@Transactional public class AdvancementApplyController { @Resource 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 32a84fa..6fc5d00 100644 --- a/src/main/java/com/greenorange/promotion/controller/userInfo/UserAccountController.java +++ b/src/main/java/com/greenorange/promotion/controller/userInfo/UserAccountController.java @@ -17,6 +17,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -30,6 +31,7 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("userAccount") @Slf4j @Tag(name = "用户账户管理") +@Transactional public class UserAccountController { @Resource 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 74da42b..3c0a945 100644 --- a/src/main/java/com/greenorange/promotion/controller/userInfo/UserInfoController.java +++ b/src/main/java/com/greenorange/promotion/controller/userInfo/UserInfoController.java @@ -32,6 +32,7 @@ import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; @@ -47,6 +48,7 @@ import java.util.concurrent.TimeUnit; @RequestMapping("userInfo") @Slf4j @Tag(name = "用户管理") +@Transactional public class UserInfoController { diff --git a/src/main/java/com/greenorange/promotion/controller/userInfo/UserMainInfoController.java b/src/main/java/com/greenorange/promotion/controller/userInfo/UserMainInfoController.java index 176b357..5beb102 100644 --- a/src/main/java/com/greenorange/promotion/controller/userInfo/UserMainInfoController.java +++ b/src/main/java/com/greenorange/promotion/controller/userInfo/UserMainInfoController.java @@ -24,6 +24,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import com.greenorange.promotion.model.dto.CommonRequest; @@ -45,6 +46,7 @@ import java.util.Map; @RequestMapping("userMainInfo") @Slf4j @Tag(name = "用户主要信息管理") +@Transactional public class UserMainInfoController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/userInfo/UserPerformanceSummaryController.java b/src/main/java/com/greenorange/promotion/controller/userInfo/UserPerformanceSummaryController.java index c8a1697..ef97c2a 100644 --- a/src/main/java/com/greenorange/promotion/controller/userInfo/UserPerformanceSummaryController.java +++ b/src/main/java/com/greenorange/promotion/controller/userInfo/UserPerformanceSummaryController.java @@ -31,6 +31,7 @@ import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -50,6 +51,7 @@ import java.util.function.Function; @RequestMapping("perform") @Slf4j @Tag(name = "用户绩效汇总模块") +@Transactional public class UserPerformanceSummaryController { @Resource diff --git a/src/main/java/com/greenorange/promotion/controller/wechat/WechatGetQrcodeController.java b/src/main/java/com/greenorange/promotion/controller/wechat/WechatGetQrcodeController.java index baf30cf..ba6c932 100644 --- a/src/main/java/com/greenorange/promotion/controller/wechat/WechatGetQrcodeController.java +++ b/src/main/java/com/greenorange/promotion/controller/wechat/WechatGetQrcodeController.java @@ -15,6 +15,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.io.*; @@ -24,6 +25,7 @@ import java.io.*; @RestController @Tag(name = "获取二维码模块") @RequestMapping("/qrcode") +@Transactional public class WechatGetQrcodeController { diff --git a/src/main/java/com/greenorange/promotion/controller/wechat/WechatPayController.java b/src/main/java/com/greenorange/promotion/controller/wechat/WechatPayController.java index 145e890..8be48e6 100644 --- a/src/main/java/com/greenorange/promotion/controller/wechat/WechatPayController.java +++ b/src/main/java/com/greenorange/promotion/controller/wechat/WechatPayController.java @@ -31,6 +31,7 @@ import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import org.apache.commons.lang3.StringUtils; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -42,6 +43,7 @@ import java.io.IOException; @RestController @Tag(name = "微信支付") @RequestMapping("/wxPay") +@Transactional public class WechatPayController { diff --git a/src/main/java/com/greenorange/promotion/controller/wechat/WechatPayoutsController.java b/src/main/java/com/greenorange/promotion/controller/wechat/WechatPayoutsController.java index 12247e0..ecbddb5 100644 --- a/src/main/java/com/greenorange/promotion/controller/wechat/WechatPayoutsController.java +++ b/src/main/java/com/greenorange/promotion/controller/wechat/WechatPayoutsController.java @@ -11,6 +11,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -23,6 +24,7 @@ import java.util.Map; @RestController @Tag(name = "微信提现模块") @RequestMapping("/payouts") +@Transactional public class WechatPayoutsController { diff --git a/src/main/java/com/greenorange/promotion/model/dto/advancementApply/AdvancementApplyApproveRequest.java b/src/main/java/com/greenorange/promotion/model/dto/advancementApply/AdvancementApplyApproveRequest.java index 89bcc8c..97e0541 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/advancementApply/AdvancementApplyApproveRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/advancementApply/AdvancementApplyApproveRequest.java @@ -16,8 +16,7 @@ import java.io.Serializable; @Data @Schema(description = "晋升申请批准请求体", requiredProperties = { "applyId", - "invitationCode", - "userRole" + "invitationCode" }) public class AdvancementApplyApproveRequest implements Serializable { diff --git a/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserInfoServiceImpl.java b/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserInfoServiceImpl.java index 89332de..c9eb9b1 100644 --- a/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserInfoServiceImpl.java +++ b/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserInfoServiceImpl.java @@ -178,9 +178,11 @@ public class UserInfoServiceImpl extends ServiceImpl myUserInfo.setUserAvatar(UserConstant.USER_DEFAULT_AVATAR); this.save(myUserInfo); -// // 添加用户绩效记录 -// UserPerformanceSummary userPerformanceSummary = UserPerformanceSummary.builder().userId(myUserInfo.getId()).build(); -// userPerformanceSummaryService.save(userPerformanceSummary); + // 添加用户绩效记录 + if (UserRoleEnum.SUPERVISOR.equals(userRoleEnum) || UserRoleEnum.STAFF.equals(userRoleEnum)) { + UserPerformanceSummary userPerformanceSummary = UserPerformanceSummary.builder().userId(myUserInfo.getId()).build(); + userPerformanceSummaryService.save(userPerformanceSummary); + } // 更新上级用户的数量 updateParentUserInfoEmpCount(myUserInfo.getId(), userRoleEnum); @@ -345,7 +347,7 @@ public class UserInfoServiceImpl extends ServiceImpl if (userRoleEnum.equals(UserRoleEnum.USER)) { userInfoLambdaQueryWrapper.eq(UserInfo::getUserRole, userRoleEnum.getValue()); } else { - userInfoLambdaQueryWrapper.in(UserInfo::getUserRole, UserRoleEnum.MANAGER, UserRoleEnum.SUPERVISOR, UserRoleEnum.STAFF); + userInfoLambdaQueryWrapper.in(UserInfo::getUserRole, UserRoleEnum.MANAGER.getValue(), UserRoleEnum.SUPERVISOR.getValue(), UserRoleEnum.STAFF.getValue()); } return userInfoLambdaQueryWrapper; } diff --git a/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserPerformanceSummaryServiceImpl.java b/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserPerformanceSummaryServiceImpl.java index 7696781..0cbf98e 100644 --- a/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserPerformanceSummaryServiceImpl.java +++ b/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserPerformanceSummaryServiceImpl.java @@ -95,12 +95,21 @@ public class UserPerformanceSummaryServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank(orderNumber), "orderNumber", orderNumber); - queryWrapper.ge(StringUtils.isNotBlank(startTimeStr), "createTime", startDate); - queryWrapper.le(StringUtils.isNotBlank(endTimeStr), "createTime", endDate); + if (isAddDate) { + queryWrapper.ge(StringUtils.isNotBlank(startTimeStr), "createTime", startDate); + queryWrapper.le(StringUtils.isNotBlank(endTimeStr), "createTime", endDate); + } return queryWrapper; } diff --git a/src/main/java/com/greenorange/promotion/service/wechat/impl/WechatPayServiceImpl.java b/src/main/java/com/greenorange/promotion/service/wechat/impl/WechatPayServiceImpl.java index 3465c22..6c82899 100644 --- a/src/main/java/com/greenorange/promotion/service/wechat/impl/WechatPayServiceImpl.java +++ b/src/main/java/com/greenorange/promotion/service/wechat/impl/WechatPayServiceImpl.java @@ -228,18 +228,18 @@ public class WechatPayServiceImpl implements WechatPayService { amountReq.setCurrency("CNY"); createRequest.setAmount(amountReq); - // 生成退款记录 - Course course = courseService.getById(courseOrder.getCourseId()); - RefundRecord refundRecord = commonService.copyProperties(course, RefundRecord.class); - refundRecord.setId(null); - refundRecord.setOutTradeNo(orderNumber); - refundRecord.setOutRefundNo(outRefundNo); - refundRecord.setTotalAmount(courseOrder.getTotalAmount().movePointRight(2)); - refundRecord.setRefundAmount(refundAmount.movePointRight(2)); - refundRecord.setUserId(courseOrder.getUserId()); - refundRecord.setCreateTime(null); - refundRecord.setUpdateTime(null); - refundRecordService.save(refundRecord); +// // 生成退款记录 +// Course course = courseService.getById(courseOrder.getCourseId()); +// RefundRecord refundRecord = commonService.copyProperties(course, RefundRecord.class); +// refundRecord.setId(null); +// refundRecord.setOutTradeNo(orderNumber); +// refundRecord.setOutRefundNo(outRefundNo); +// refundRecord.setTotalAmount(courseOrder.getTotalAmount().movePointRight(2)); +// refundRecord.setRefundAmount(refundAmount.movePointRight(2)); +// refundRecord.setUserId(courseOrder.getUserId()); +// refundRecord.setCreateTime(null); +// refundRecord.setUpdateTime(null); +// refundRecordService.save(refundRecord); // 申请退款 System.out.println("退款请求:" + createRequest); diff --git a/src/main/resources/application-caozhe.yml b/src/main/resources/application-caozhe.yml index 828505f..031b6b1 100644 --- a/src/main/resources/application-caozhe.yml +++ b/src/main/resources/application-caozhe.yml @@ -78,7 +78,6 @@ mybatis-plus: logic-delete-field: isDelete #全局逻辑删除的实体字段名 logic-delete-value: 1 #逻辑已删除值(默认为1) logic-not-delete-value: 0 #逻辑未删除值(默认为0) - type-handlers-package: com.cultural.heritage.handler