修改了根据员工id查询客户订单明细的bug

This commit is contained in:
2025-07-14 11:30:25 +08:00
parent 66793d69f6
commit fd0504f477
27 changed files with 236 additions and 24 deletions

View File

@ -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;
/** /**

View File

@ -30,6 +30,7 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -48,6 +49,7 @@ import java.util.stream.Collectors;
@RequestMapping("course") @RequestMapping("course")
@Slf4j @Slf4j
@Tag(name = "课程模块") @Tag(name = "课程模块")
@Transactional
public class CourseController { public class CourseController {
@Resource @Resource

View File

@ -10,6 +10,7 @@ import com.greenorange.promotion.common.BaseResponse;
import com.greenorange.promotion.common.ErrorCode; import com.greenorange.promotion.common.ErrorCode;
import com.greenorange.promotion.common.ResultUtils; import com.greenorange.promotion.common.ResultUtils;
import com.greenorange.promotion.constant.OrderStatusConstant; import com.greenorange.promotion.constant.OrderStatusConstant;
import com.greenorange.promotion.constant.SystemConstant;
import com.greenorange.promotion.constant.UserConstant; import com.greenorange.promotion.constant.UserConstant;
import com.greenorange.promotion.exception.ThrowUtils; import com.greenorange.promotion.exception.ThrowUtils;
import com.greenorange.promotion.model.dto.CommonBatchRequest; 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.dto.courseOrder.CourseOrderUpdateRequest;
import com.greenorange.promotion.model.entity.Course; import com.greenorange.promotion.model.entity.Course;
import com.greenorange.promotion.model.entity.CourseOrder; 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.CourseCardVO;
import com.greenorange.promotion.model.vo.course.CourseVO; import com.greenorange.promotion.model.vo.course.CourseVO;
import com.greenorange.promotion.model.vo.courseOrder.CourseOrderBaseInfoVO; 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.model.vo.courseOrder.CourseOrderVO;
import com.greenorange.promotion.service.common.CommonService; import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.course.CourseOrderService; 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.course.CourseService;
import com.greenorange.promotion.service.userInfo.UserInfoService;
import com.greenorange.promotion.service.userInfo.UserPerformanceSummaryService;
import com.greenorange.promotion.utils.OrderNumberUtils; import com.greenorange.promotion.utils.OrderNumberUtils;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -34,13 +41,17 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; 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.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.function.Function;
/** /**
@ -50,6 +61,7 @@ import java.util.List;
@RequestMapping("courseOrder") @RequestMapping("courseOrder")
@Slf4j @Slf4j
@Tag(name = "课程订单模块") @Tag(name = "课程订单模块")
@Transactional
public class CourseOrderController { public class CourseOrderController {
@Resource @Resource
@ -61,6 +73,15 @@ public class CourseOrderController {
@Resource @Resource
private CommonService commonService; private CommonService commonService;
@Resource
private UserInfoService userInfoService;
@Resource
private UserPerformanceSummaryService userPerformanceSummaryService;
@Resource
private CoursePromotionCommissionPendingService coursePromotionCommissionPendingService;
/** /**
* 小程序端用户生成课程订单 * 小程序端用户生成课程订单
* @param courseOrderAddRequest 课程id * @param courseOrderAddRequest 课程id
@ -89,6 +110,149 @@ public class CourseOrderController {
} }
/**
* 模拟订单支付回调
*/
@PostMapping("payment")
@Operation(summary = "模拟订单支付回调", description = "参数订单id权限管理员方法名paymentCourse")
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
public BaseResponse<Boolean> paymentCourse(@Valid @RequestBody CommonRequest commonRequest) {
System.out.println("---------------------------微信支付回调(开始)-------------------------------");
// 获取订单信息
Long id = commonRequest.getId();
CourseOrder courseOrder = courseOrderService.getById(id);
// 修改订单状态
LambdaUpdateWrapper<CourseOrder> 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<Long> pathToRoot = userInfoService.findPathToRoot(userId);
List<Long> superUserIdList = pathToRoot.subList(1, 3);
List<UserPerformanceSummary> userPerformanceSummaryList = commonService.findByFieldInTargetField(superUserIdList, userPerformanceSummaryService, Function.identity(), UserPerformanceSummary::getUserId);
BigDecimal rate;
Map<String, BigDecimal> 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<Boolean> refundCourse(@Valid @RequestBody CommonRequest commonRequest) {
System.out.println("---------------------------微信退款回调(开始)-------------------------------");
// 获取订单信息
Long id = commonRequest.getId();
CourseOrder courseOrder = courseOrderService.getById(id);
// 修改订单状态
LambdaUpdateWrapper<CourseOrder> 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<Long> pathToRoot = userInfoService.findPathToRoot(userId);
List<Long> superUserIdList = pathToRoot.subList(1, 3);
List<UserPerformanceSummary> userPerformanceSummaryList = commonService.findByFieldInTargetField(superUserIdList, userPerformanceSummaryService, Function.identity(), UserPerformanceSummary::getUserId);
BigDecimal rate;
LambdaQueryWrapper<CoursePromotionCommissionPending> 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<CoursePromotionCommissionPending> 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 * @param courseOrderAddRequest 课程id

View File

@ -29,6 +29,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -49,6 +50,7 @@ import java.util.List;
@RequestMapping("coursePromo") @RequestMapping("coursePromo")
@Slf4j @Slf4j
@Tag(name = "课程推广待提成记录模块") @Tag(name = "课程推广待提成记录模块")
@Transactional
public class CoursePromotionCommissionPendingController { public class CoursePromotionCommissionPendingController {
@Resource @Resource

View File

@ -18,6 +18,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -36,6 +37,7 @@ import java.util.List;
@RequestMapping("refundRecord") @RequestMapping("refundRecord")
@Slf4j @Slf4j
@Tag(name = "退款记录模块") @Tag(name = "退款记录模块")
@Transactional
public class RefundRecordController { public class RefundRecordController {
@Resource @Resource

View File

@ -10,6 +10,7 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -23,6 +24,7 @@ import java.io.IOException;
@RequestMapping("file") @RequestMapping("file")
@Slf4j @Slf4j
@Tag(name = "文件管理") @Tag(name = "文件管理")
@Transactional
public class FileInfoController { public class FileInfoController {

View File

@ -35,6 +35,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.lang.reflect.GenericDeclaration; import java.lang.reflect.GenericDeclaration;
@ -51,6 +52,7 @@ import java.util.stream.Collectors;
@RequestMapping("projectCommission") @RequestMapping("projectCommission")
@Slf4j @Slf4j
@Tag(name = "项目明细抽佣管理") @Tag(name = "项目明细抽佣管理")
@Transactional
public class ProjectCommissionController { public class ProjectCommissionController {
@Resource @Resource

View File

@ -33,6 +33,7 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -51,6 +52,7 @@ import java.util.Map;
@RequestMapping("project") @RequestMapping("project")
@Slf4j @Slf4j
@Tag(name = "项目管理") @Tag(name = "项目管理")
@Transactional
public class ProjectController { public class ProjectController {
@Resource @Resource

View File

@ -28,6 +28,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import com.greenorange.promotion.model.dto.CommonRequest; import com.greenorange.promotion.model.dto.CommonRequest;
@ -47,6 +48,7 @@ import java.util.stream.Collectors;
@RequestMapping("projectDetail") @RequestMapping("projectDetail")
@Slf4j @Slf4j
@Tag(name = "项目明细管理") @Tag(name = "项目明细管理")
@Transactional
public class ProjectDetailController { public class ProjectDetailController {
@Resource @Resource

View File

@ -23,6 +23,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -41,6 +42,7 @@ import java.util.List;
@RequestMapping("projectNotification") @RequestMapping("projectNotification")
@Slf4j @Slf4j
@Tag(name = "项目通知管理") @Tag(name = "项目通知管理")
@Transactional
public class ProjectNotificationController { public class ProjectNotificationController {
@Resource @Resource

View File

@ -30,6 +30,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -49,6 +50,7 @@ import java.util.Map;
@RequestMapping("promoCodeApply") @RequestMapping("promoCodeApply")
@Slf4j @Slf4j
@Tag(name = "推广码申请记录管理") @Tag(name = "推广码申请记录管理")
@Transactional
public class PromoCodeApplyController { public class PromoCodeApplyController {
@Resource @Resource

View File

@ -24,6 +24,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -42,6 +43,7 @@ import java.util.List;
@RequestMapping("promoCode") @RequestMapping("promoCode")
@Slf4j @Slf4j
@Tag(name = "推广码管理") @Tag(name = "推广码管理")
@Transactional
public class PromoCodeController { public class PromoCodeController {
@Resource @Resource

View File

@ -47,6 +47,7 @@ import java.util.function.Function;
@RequestMapping("projectSettlement") @RequestMapping("projectSettlement")
@Slf4j @Slf4j
@Tag(name = "项目结算记录管理") @Tag(name = "项目结算记录管理")
@Transactional
public class ProjectSettlementController { public class ProjectSettlementController {
@Resource @Resource

View File

@ -31,6 +31,7 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -48,6 +49,7 @@ import java.util.List;
@RequestMapping("withdrawalApply") @RequestMapping("withdrawalApply")
@Slf4j @Slf4j
@Tag(name = "提现申请记录管理") @Tag(name = "提现申请记录管理")
@Transactional
public class WithdrawalApplyController { public class WithdrawalApplyController {
@Resource @Resource

View File

@ -28,6 +28,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -44,6 +45,7 @@ import java.util.UUID;
@RequestMapping("advancementApply") @RequestMapping("advancementApply")
@Slf4j @Slf4j
@Tag(name = "晋升申请模块") @Tag(name = "晋升申请模块")
@Transactional
public class AdvancementApplyController { public class AdvancementApplyController {
@Resource @Resource

View File

@ -17,6 +17,7 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -30,6 +31,7 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("userAccount") @RequestMapping("userAccount")
@Slf4j @Slf4j
@Tag(name = "用户账户管理") @Tag(name = "用户账户管理")
@Transactional
public class UserAccountController { public class UserAccountController {
@Resource @Resource

View File

@ -32,6 +32,7 @@ import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.ArrayList;
@ -47,6 +48,7 @@ import java.util.concurrent.TimeUnit;
@RequestMapping("userInfo") @RequestMapping("userInfo")
@Slf4j @Slf4j
@Tag(name = "用户管理") @Tag(name = "用户管理")
@Transactional
public class UserInfoController { public class UserInfoController {

View File

@ -24,6 +24,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import com.greenorange.promotion.model.dto.CommonRequest; import com.greenorange.promotion.model.dto.CommonRequest;
@ -45,6 +46,7 @@ import java.util.Map;
@RequestMapping("userMainInfo") @RequestMapping("userMainInfo")
@Slf4j @Slf4j
@Tag(name = "用户主要信息管理") @Tag(name = "用户主要信息管理")
@Transactional
public class UserMainInfoController { public class UserMainInfoController {
@Resource @Resource

View File

@ -31,6 +31,7 @@ import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.scheduling.annotation.Scheduled; 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.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -50,6 +51,7 @@ import java.util.function.Function;
@RequestMapping("perform") @RequestMapping("perform")
@Slf4j @Slf4j
@Tag(name = "用户绩效汇总模块") @Tag(name = "用户绩效汇总模块")
@Transactional
public class UserPerformanceSummaryController { public class UserPerformanceSummaryController {
@Resource @Resource

View File

@ -15,6 +15,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.*; import java.io.*;
@ -24,6 +25,7 @@ import java.io.*;
@RestController @RestController
@Tag(name = "获取二维码模块") @Tag(name = "获取二维码模块")
@RequestMapping("/qrcode") @RequestMapping("/qrcode")
@Transactional
public class WechatGetQrcodeController { public class WechatGetQrcodeController {

View File

@ -31,6 +31,7 @@ import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils; 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.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -42,6 +43,7 @@ import java.io.IOException;
@RestController @RestController
@Tag(name = "微信支付") @Tag(name = "微信支付")
@RequestMapping("/wxPay") @RequestMapping("/wxPay")
@Transactional
public class WechatPayController { public class WechatPayController {

View File

@ -11,6 +11,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -23,6 +24,7 @@ import java.util.Map;
@RestController @RestController
@Tag(name = "微信提现模块") @Tag(name = "微信提现模块")
@RequestMapping("/payouts") @RequestMapping("/payouts")
@Transactional
public class WechatPayoutsController { public class WechatPayoutsController {

View File

@ -16,8 +16,7 @@ import java.io.Serializable;
@Data @Data
@Schema(description = "晋升申请批准请求体", requiredProperties = { @Schema(description = "晋升申请批准请求体", requiredProperties = {
"applyId", "applyId",
"invitationCode", "invitationCode"
"userRole"
}) })
public class AdvancementApplyApproveRequest implements Serializable { public class AdvancementApplyApproveRequest implements Serializable {

View File

@ -178,9 +178,11 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
myUserInfo.setUserAvatar(UserConstant.USER_DEFAULT_AVATAR); myUserInfo.setUserAvatar(UserConstant.USER_DEFAULT_AVATAR);
this.save(myUserInfo); this.save(myUserInfo);
// // 添加用户绩效记录 // 添加用户绩效记录
// UserPerformanceSummary userPerformanceSummary = UserPerformanceSummary.builder().userId(myUserInfo.getId()).build(); if (UserRoleEnum.SUPERVISOR.equals(userRoleEnum) || UserRoleEnum.STAFF.equals(userRoleEnum)) {
// userPerformanceSummaryService.save(userPerformanceSummary); UserPerformanceSummary userPerformanceSummary = UserPerformanceSummary.builder().userId(myUserInfo.getId()).build();
userPerformanceSummaryService.save(userPerformanceSummary);
}
// 更新上级用户的数量 // 更新上级用户的数量
updateParentUserInfoEmpCount(myUserInfo.getId(), userRoleEnum); updateParentUserInfoEmpCount(myUserInfo.getId(), userRoleEnum);
@ -345,7 +347,7 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
if (userRoleEnum.equals(UserRoleEnum.USER)) { if (userRoleEnum.equals(UserRoleEnum.USER)) {
userInfoLambdaQueryWrapper.eq(UserInfo::getUserRole, userRoleEnum.getValue()); userInfoLambdaQueryWrapper.eq(UserInfo::getUserRole, userRoleEnum.getValue());
} else { } 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; return userInfoLambdaQueryWrapper;
} }

View File

@ -95,12 +95,21 @@ public class UserPerformanceSummaryServiceImpl extends ServiceImpl<UserPerforman
String orderNumber = userCourseOrderQueryRequest.getOrderNumber(); String orderNumber = userCourseOrderQueryRequest.getOrderNumber();
String startTimeStr = userCourseOrderQueryRequest.getStartDate(); String startTimeStr = userCourseOrderQueryRequest.getStartDate();
String endTimeStr = userCourseOrderQueryRequest.getEndDate(); String endTimeStr = userCourseOrderQueryRequest.getEndDate();
DateTime startDate = DateUtil.parse(startTimeStr, "yyyy-MM-dd HH:mm:ss"); DateTime startDate = null;
DateTime endDate = DateUtil.parse(endTimeStr, "yyyy-MM-dd HH:mm:ss"); DateTime endDate = null;
boolean isAddDate = true;
try {
startDate = DateUtil.parse(startTimeStr, "yyyy-MM-dd HH:mm:ss");
endDate = DateUtil.parse(endTimeStr, "yyyy-MM-dd HH:mm:ss");
} catch (Exception e) {
isAddDate = false;
}
QueryWrapper<CourseOrder> queryWrapper = new QueryWrapper<>(); QueryWrapper<CourseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.isNotBlank(orderNumber), "orderNumber", orderNumber); queryWrapper.eq(StringUtils.isNotBlank(orderNumber), "orderNumber", orderNumber);
if (isAddDate) {
queryWrapper.ge(StringUtils.isNotBlank(startTimeStr), "createTime", startDate); queryWrapper.ge(StringUtils.isNotBlank(startTimeStr), "createTime", startDate);
queryWrapper.le(StringUtils.isNotBlank(endTimeStr), "createTime", endDate); queryWrapper.le(StringUtils.isNotBlank(endTimeStr), "createTime", endDate);
}
return queryWrapper; return queryWrapper;
} }

View File

@ -228,18 +228,18 @@ public class WechatPayServiceImpl implements WechatPayService {
amountReq.setCurrency("CNY"); amountReq.setCurrency("CNY");
createRequest.setAmount(amountReq); createRequest.setAmount(amountReq);
// 生成退款记录 // // 生成退款记录
Course course = courseService.getById(courseOrder.getCourseId()); // Course course = courseService.getById(courseOrder.getCourseId());
RefundRecord refundRecord = commonService.copyProperties(course, RefundRecord.class); // RefundRecord refundRecord = commonService.copyProperties(course, RefundRecord.class);
refundRecord.setId(null); // refundRecord.setId(null);
refundRecord.setOutTradeNo(orderNumber); // refundRecord.setOutTradeNo(orderNumber);
refundRecord.setOutRefundNo(outRefundNo); // refundRecord.setOutRefundNo(outRefundNo);
refundRecord.setTotalAmount(courseOrder.getTotalAmount().movePointRight(2)); // refundRecord.setTotalAmount(courseOrder.getTotalAmount().movePointRight(2));
refundRecord.setRefundAmount(refundAmount.movePointRight(2)); // refundRecord.setRefundAmount(refundAmount.movePointRight(2));
refundRecord.setUserId(courseOrder.getUserId()); // refundRecord.setUserId(courseOrder.getUserId());
refundRecord.setCreateTime(null); // refundRecord.setCreateTime(null);
refundRecord.setUpdateTime(null); // refundRecord.setUpdateTime(null);
refundRecordService.save(refundRecord); // refundRecordService.save(refundRecord);
// 申请退款 // 申请退款
System.out.println("退款请求:" + createRequest); System.out.println("退款请求:" + createRequest);

View File

@ -78,7 +78,6 @@ mybatis-plus:
logic-delete-field: isDelete #全局逻辑删除的实体字段名 logic-delete-field: isDelete #全局逻辑删除的实体字段名
logic-delete-value: 1 #逻辑已删除值(默认为1) logic-delete-value: 1 #逻辑已删除值(默认为1)
logic-not-delete-value: 0 #逻辑未删除值(默认为0) logic-not-delete-value: 0 #逻辑未删除值(默认为0)
type-handlers-package: com.cultural.heritage.handler