修复了一系列bug

This commit is contained in:
2025-08-07 20:33:05 +08:00
parent f450a785f4
commit f699b49c0f
8 changed files with 94 additions and 42 deletions

View File

@ -1,5 +1,7 @@
package com.greenorange.promotion.controller.userInfo;
import cn.binarywang.wx.miniapp.api.WxMaQrcodeService;
import cn.binarywang.wx.miniapp.bean.WxMaQrcode;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -23,6 +25,7 @@ import com.greenorange.promotion.model.vo.userMainInfo.UserMainInfoVO;
import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.userInfo.UserInfoService;
import com.greenorange.promotion.service.userInfo.UserMainInfoService;
import com.greenorange.promotion.service.wechat.WechatGetQrcodeService;
import com.greenorange.promotion.utils.JWTUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -35,6 +38,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -72,6 +76,27 @@ public class UserInfoController {
private JWTUtils jwtUtils;
@Resource
private WechatGetQrcodeService wechatGetQrcodeService;
@PostMapping("test")
public BaseResponse<Boolean> test() throws IOException {
List<UserInfo> list = userInfoService.list();
List<UserMainInfo> userMainInfoList = userMainInfoService.list();
for (UserInfo userInfo : list) {
String userRole = userInfo.getUserRole();
UserRoleEnum userRoleEnum = UserRoleEnum.getEnumByValue(userRole);
String wxQrCode = wechatGetQrcodeService.getWxQrCode(userInfo.getInvitationCode(), userRoleEnum);
UserMainInfo userMainInfo = UserMainInfo.builder().userId(userInfo.getId()).inviteQrCode(wxQrCode).build();
userMainInfoList.add(userMainInfo);
}
userMainInfoService.saveOrUpdateBatch(userMainInfoList);
return ResultUtils.success(true);
}
/**
@ -81,7 +106,6 @@ public class UserInfoController {
*/
@PostMapping("code/register")
@Operation(summary = "小程序端用户获取验证码(用于注册)", description = "参数手机号权限管理员boss, admin)方法名getVerificationCodeForRegister")
// @SysLog(title = "用户管理", content = "小程序端用户获取验证码")
public BaseResponse<String> getVerificationCodeForRegister(@Valid @RequestBody CommonStringRequest commonStringRequest) {
String phoneNumber = commonStringRequest.getTemplateString();
String verificationCode = userInfoService.getVerificationCodeForRegister(phoneNumber);

View File

@ -755,7 +755,7 @@ public class UserPerformanceSummaryController {
*/
@PostMapping("rank/supervisor")
@Operation(summary = "小程序端经理查询主管绩效排名", description = "参数小程序端绩效排名查询请求体权限管理员方法名miniListSupervisorPerformanceSummaryRankingsByPage")
@RequiresPermission(mustRole = UserConstant.MANAGER_ROLE)
@RequiresPermission(mustRole = UserConstant.SUPERVISOR_ROLE)
public BaseResponse<List<SupervisorPerformanceSummaryVO>> miniListSupervisorPerformanceSummaryRankingsByPage(@Valid @RequestBody MiniUserPerformanceSummaryRankQueryRequest miniUserPerformanceSummaryRankQueryRequest) {
String startTimeStr = miniUserPerformanceSummaryRankQueryRequest.getStartDate();
String endTimeStr = miniUserPerformanceSummaryRankQueryRequest.getEndDate();
@ -862,14 +862,19 @@ public class UserPerformanceSummaryController {
/**
* 小程序端主管查询员工绩效排名
* 小程序端主管(经理)查询员工绩效排名
* @param miniUserPerformanceSummaryRankQueryRequest 绩效排名查询请求体
* @return 用户绩效汇总列表
*/
@PostMapping("rank/staff")
@Operation(summary = "小程序端主管查询员工绩效排名", description = "参数绩效排名查询请求体权限管理员方法名miniListStaffUserPerformanceSummaryRankingsByPage")
@RequiresPermission(mustRole = UserConstant.SUPERVISOR_ROLE)
public BaseResponse<List<SupervisorPerformanceSummaryVO>> miniListStaffUserPerformanceSummaryRankingsByPage(@Valid @RequestBody MiniUserPerformanceSummaryRankQueryRequest miniUserPerformanceSummaryRankQueryRequest) {
@Operation(summary = "小程序端主管(经理)查询员工绩效排名", description = "参数绩效排名查询请求体权限管理员方法名miniListStaffUserPerformanceSummaryRankingsByPage")
@RequiresPermission(mustRole = UserConstant.STAFF_ROLE)
public BaseResponse<List<SupervisorPerformanceSummaryVO>> miniListStaffUserPerformanceSummaryRankingsByPage(@Valid @RequestBody MiniUserPerformanceSummaryRankQueryRequest miniUserPerformanceSummaryRankQueryRequest, HttpServletRequest request) {
Long currentUserId = (Long) request.getAttribute("userId");
UserInfo currentUserInfo = userInfoService.getById(currentUserId);
UserRoleEnum userRoleEnum = UserRoleEnum.getEnumByValue(currentUserInfo.getUserRole());
if (UserRoleEnum.STAFF.equals(userRoleEnum)) currentUserId = currentUserInfo.getParentUserId();
String startTimeStr = miniUserPerformanceSummaryRankQueryRequest.getStartDate();
String endTimeStr = miniUserPerformanceSummaryRankQueryRequest.getEndDate();
String nickName = miniUserPerformanceSummaryRankQueryRequest.getNickName();
@ -889,6 +894,7 @@ public class UserPerformanceSummaryController {
empQueryWrapper.ge(StringUtils.isNotBlank(startTimeStr), EmployeePromotionRecords::getCreateTime, startDate);
empQueryWrapper.le(StringUtils.isNotBlank(endTimeStr), EmployeePromotionRecords::getCreateTime, endDate);
}
if (!UserRoleEnum.MANAGER.equals(userRoleEnum)) empQueryWrapper.eq(EmployeePromotionRecords::getFirstUserId, currentUserId);
empQueryWrapper.select(EmployeePromotionRecords::getSecondUserId);
List<EmployeePromotionRecords> employeePromotionRecordsList = employeePromotionRecordsService.list(empQueryWrapper);
// 封装Map集合员工id, 值:推广数量)
@ -907,6 +913,7 @@ public class UserPerformanceSummaryController {
LambdaQueryWrapper<CoursePromotionCommissionPending> coursePromotionQueryWrapper = new LambdaQueryWrapper<>();
coursePromotionQueryWrapper.ge(StringUtils.isNotBlank(startTimeStr), CoursePromotionCommissionPending::getOrderCreateTime, startDate);
coursePromotionQueryWrapper.le(StringUtils.isNotBlank(endTimeStr), CoursePromotionCommissionPending::getOrderCreateTime, endDate);
if (!UserRoleEnum.MANAGER.equals(userRoleEnum)) coursePromotionQueryWrapper.eq(CoursePromotionCommissionPending::getFirstUserId, currentUserId);
coursePromotionQueryWrapper.select(CoursePromotionCommissionPending::getSecondUserId, CoursePromotionCommissionPending::getTotalAmount,
CoursePromotionCommissionPending::getUpdateTime, CoursePromotionCommissionPending::getCommissionStatus);
List<CoursePromotionCommissionPending> coursePromotionCommissionPendingList = coursePromotionCommissionPendingService.list(coursePromotionQueryWrapper);
@ -936,8 +943,8 @@ public class UserPerformanceSummaryController {
}
LambdaQueryWrapper<UserInfo> userInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
userInfoLambdaQueryWrapper.eq(StringUtils.isNotBlank(nickName), UserInfo::getNickName, nickName)
.eq(StringUtils.isNotBlank(phoneNumber), UserInfo::getPhoneNumber, phoneNumber)
.eq(UserInfo::getUserRole, UserConstant.STAFF_ROLE);
.eq(StringUtils.isNotBlank(phoneNumber), UserInfo::getPhoneNumber, phoneNumber).eq(UserInfo::getUserRole, UserConstant.STAFF_ROLE);
if (!UserRoleEnum.MANAGER.equals(userRoleEnum)) userInfoLambdaQueryWrapper.eq(UserInfo::getParentUserId, currentUserId);
userInfoLambdaQueryWrapper.select(UserInfo::getId, UserInfo::getNickName, UserInfo::getPhoneNumber);
List<UserInfo> userInfoList = userInfoService.list(userInfoLambdaQueryWrapper);
List<UserPerformanceSummary> userPerformanceSummaryList = commonService.findByFieldInTargetField(userInfoList, userPerformanceSummaryService, UserInfo::getId, UserPerformanceSummary::getUserId);

View File

@ -6,6 +6,7 @@ import com.greenorange.promotion.common.ResultUtils;
import com.greenorange.promotion.config.WxAccessToken;
import com.greenorange.promotion.model.dto.CommonRequest;
import com.greenorange.promotion.model.dto.CommonStringRequest;
import com.greenorange.promotion.model.enums.UserRoleEnum;
import com.greenorange.promotion.service.wechat.WechatGetQrcodeService;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.Operation;
@ -51,20 +52,19 @@ public class WechatGetQrcodeController {
}
// /**
// * 微信小程序获取二维码
// * @return
// * @throws IOException
// */
// @Hidden
// @PostMapping("/get/qrcode")
// @Operation(summary = "微信小程序获取二维码", description = "参数:无, 权限:所有人, 方法名getQrcode")
//// @RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
// public BaseResponse<String> getQrcode(@Valid @RequestBody CommonStringRequest commonStringRequest) throws IOException {
// String inviteCode = commonStringRequest.getTemplateString();
// String view = wechatGetQrcodeService.getWxQrCode(inviteCode);
// return ResultUtils.success(view);
// }
/**
* 微信小程序获取二维码
* @return
* @throws IOException
*/
@PostMapping("/get/qrcode")
@Operation(summary = "微信小程序获取二维码", description = "参数:无, 权限:所有人, 方法名:getQrcode")
// @RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
public BaseResponse<String> getQrcode(@Valid @RequestBody CommonStringRequest commonStringRequest) throws IOException {
String inviteCode = commonStringRequest.getTemplateString();
String view = wechatGetQrcodeService.getWxQrCode(inviteCode, UserRoleEnum.SUPERVISOR);
return ResultUtils.success(view);
}
// /**

View File

@ -7,7 +7,12 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 用户主要信息表
@ -15,6 +20,9 @@ import lombok.Data;
*/
@TableName(value ="user_main_info")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserMainInfo implements Serializable {
/**
* 主键ID

View File

@ -200,7 +200,9 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
updateParentUserInfoEmpCount(myUserInfo.getId(), userRoleEnum);
// 生成邀请二维码
generateInvitationQrcode(myUserInfo.getInvitationCode(), userRoleEnum);
String invitationQrcode = generateInvitationQrcode(myUserInfo.getInvitationCode(), userRoleEnum);
UserMainInfo userMainInfo = UserMainInfo.builder().userId(myUserInfo.getId()).inviteQrCode(invitationQrcode).build();
userMainInfoService.save(userMainInfo);
// // 批量保存当前用户的项目明细抽佣记录和下级用户项目明细抽佣记录
// saveBatchProjectCommissionAndSubUserProjectCommission(myUserInfo.getId(), parentUserInfo.getId());
@ -404,7 +406,9 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
updateParentUserInfoEmpCount(myUserInfo.getId(), UserRoleEnum.STAFF);
// 生成邀请二维码
generateInvitationQrcode(myUserInfo.getInvitationCode(), UserRoleEnum.STAFF);
String invitationQrcode = generateInvitationQrcode(myUserInfo.getInvitationCode(), UserRoleEnum.STAFF);
UserMainInfo userMainInfo = UserMainInfo.builder().userId(userId).inviteQrCode(invitationQrcode).build();
userMainInfoService.save(userMainInfo);
// // 批量保存当前用户的项目明细抽佣记录和下级用户项目明细抽佣记录
// saveBatchProjectCommissionAndSubUserProjectCommission(myUserInfo.getId(), parentUserInfo.getId());
@ -492,12 +496,13 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
/**
* 生成邀请二维码
*/
private void generateInvitationQrcode(String invitationCode, UserRoleEnum userRoleEnum) {
private String generateInvitationQrcode(String invitationCode, UserRoleEnum userRoleEnum) {
try {
wechatGetQrcodeService.getWxQrCode(invitationCode, userRoleEnum);
return wechatGetQrcodeService.getWxQrCode(invitationCode, userRoleEnum);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

View File

@ -240,14 +240,15 @@ public class UserPerformanceSummaryServiceImpl extends ServiceImpl<UserPerforman
Integer promotionCount;
QueryWrapper<CoursePromotionCommissionPending> coursePromotionQueryWrapper = new QueryWrapper<>();
coursePromotionQueryWrapper.ge("orderCreateTime", beginOfDay);
coursePromotionQueryWrapper.le("orderCreateTime", endOfDay);
LambdaQueryWrapper<CoursePromotionCommissionPending> coursePromotionQueryWrapper = new LambdaQueryWrapper<>();
coursePromotionQueryWrapper.ge(CoursePromotionCommissionPending::getOrderCreateTime, beginOfDay);
coursePromotionQueryWrapper.le(CoursePromotionCommissionPending::getOrderCreateTime, endOfDay);
if (UserRoleEnum.SUPERVISOR.equals(userRoleEnum)) {
coursePromotionQueryWrapper.eq("firstUserId", userId);
coursePromotionQueryWrapper.eq(CoursePromotionCommissionPending::getFirstUserId, userId);
} else if (UserRoleEnum.STAFF.equals(userRoleEnum)) {
coursePromotionQueryWrapper.eq("secondUserId", userId);
coursePromotionQueryWrapper.eq(CoursePromotionCommissionPending::getSecondUserId, userId);
}
coursePromotionQueryWrapper.select(CoursePromotionCommissionPending::getTotalAmount, CoursePromotionCommissionPending::getCommissionStatus);
List<CoursePromotionCommissionPending> coursePromotionCommissionPendingList = coursePromotionCommissionPendingService.list(coursePromotionQueryWrapper);
orderCount = coursePromotionCommissionPendingList.size();
for (CoursePromotionCommissionPending coursePromotionCommissionPending : coursePromotionCommissionPendingList) {
@ -261,16 +262,16 @@ public class UserPerformanceSummaryServiceImpl extends ServiceImpl<UserPerforman
}
}
QueryWrapper<EmployeePromotionRecords> empQueryWrapper = new QueryWrapper<>();
empQueryWrapper.ge("createTime", beginOfDay);
empQueryWrapper.le("createTime", endOfDay);
LambdaQueryWrapper<EmployeePromotionRecords> empQueryWrapper = new LambdaQueryWrapper<>();
empQueryWrapper.ge(EmployeePromotionRecords::getCreateTime, beginOfDay);
empQueryWrapper.le(EmployeePromotionRecords::getCreateTime, endOfDay);
if (UserRoleEnum.SUPERVISOR.equals(userRoleEnum)) {
coursePromotionQueryWrapper.eq("firstUserId", userId);
empQueryWrapper.eq(EmployeePromotionRecords::getFirstUserId, userId);
} else if (UserRoleEnum.STAFF.equals(userRoleEnum)) {
coursePromotionQueryWrapper.eq("secondUserId", userId);
empQueryWrapper.eq(EmployeePromotionRecords::getSecondUserId, userId);
}
List<EmployeePromotionRecords> employeePromotionRecordsList = employeePromotionRecordsService.list(empQueryWrapper);
promotionCount = employeePromotionRecordsList.size();
empQueryWrapper.select(EmployeePromotionRecords::getId);
promotionCount = Math.toIntExact(employeePromotionRecordsService.count(empQueryWrapper));
performanceSummaryMap.put("orderCount", orderCount);
performanceSummaryMap.put("orderAmount", orderAmount);
@ -310,11 +311,18 @@ public class UserPerformanceSummaryServiceImpl extends ServiceImpl<UserPerforman
Integer monthPromotionCount;
// 封装Map集合userId, 值:权限)
Map<Long, String> userRoleMap = new HashMap<>();
List<UserInfo> userInfoList = userInfoMapper.selectList(null);
LambdaQueryWrapper<UserInfo> userInfoQueryWrapper = new LambdaQueryWrapper<>();
userInfoQueryWrapper.select(UserInfo::getId, UserInfo::getUserRole);
List<UserInfo> userInfoList = userInfoMapper.selectList(userInfoQueryWrapper);
for (UserInfo userInfo : userInfoList) {
userRoleMap.put(userInfo.getId(), userInfo.getUserRole());
}
List<UserPerformanceSummary> userPerformanceSummaryList = this.list();
LambdaQueryWrapper<UserPerformanceSummary> userPerformanceSummaryQueryWrapper = new LambdaQueryWrapper<>();
userPerformanceSummaryQueryWrapper.select(UserPerformanceSummary::getUserId, UserPerformanceSummary::getTotalAmount,
UserPerformanceSummary::getNetAmount, UserPerformanceSummary::getPromoCount, UserPerformanceSummary::getEmpCount,
UserPerformanceSummary::getOrderCount, UserPerformanceSummary::getToRelease, UserPerformanceSummary::getToSettle,
UserPerformanceSummary::getSettled, UserPerformanceSummary::getRefunded);
List<UserPerformanceSummary> userPerformanceSummaryList = this.list(userPerformanceSummaryQueryWrapper);
for (UserPerformanceSummary userPerformanceSummary : userPerformanceSummaryList) {
Long userId = userPerformanceSummary.getUserId();
String userRole = userRoleMap.get(userId);

View File

@ -118,7 +118,7 @@ public class WechatGetQrcodeServiceImpl implements WechatGetQrcodeService {
}
Map<String, Object> param = new HashMap<>();
param.put("page", "pages/loginModule/register/register");
param.put("scene", "invitationCode=" + inviteCode);
param.put("scene", inviteCode + "=" + userRoleEnum.getValue());
param.put("width", 430);
param.put("check_path", false);
param.put("env_version", "develop");

View File

@ -1,4 +1,4 @@
spring:
profiles:
active: dev
active: test