修复了一系列bug
This commit is contained in:
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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");
|
||||
|
@ -1,4 +1,4 @@
|
||||
spring:
|
||||
profiles:
|
||||
active: dev
|
||||
active: test
|
||||
|
||||
|
Reference in New Issue
Block a user