diff --git a/src/main/java/com/greenorange/promotion/aop/PermissionCheck.java b/src/main/java/com/greenorange/promotion/aop/PermissionCheck.java index 8e83e6e..b335ed6 100644 --- a/src/main/java/com/greenorange/promotion/aop/PermissionCheck.java +++ b/src/main/java/com/greenorange/promotion/aop/PermissionCheck.java @@ -52,40 +52,40 @@ public class PermissionCheck { **/ @Around("@annotation(requiresPermission)") public Object check(ProceedingJoinPoint joinPoint, RequiresPermission requiresPermission) throws Throwable { - // 获取请求对象 - HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); - // 接口的权限 - String mustRole = requiresPermission.mustRole(); - // 获取接口权限的枚举类 - UserRoleEnum interfaceRoleEnum = UserRoleEnum.getEnumByValue(mustRole); - ThrowUtils.throwIf(interfaceRoleEnum == null, ErrorCode.NO_AUTH_ERROR); - // 获取用户权限 - String token = request.getHeader("Authorization"); - ThrowUtils.throwIf(StringUtils.isBlank(token), ErrorCode.NO_AUTH_ERROR, "JWT为空"); - // 解析token - DecodedJWT decodedJWT = jwtUtils.verify(token); - String userAccount = decodedJWT.getClaim("userAccount").asString(); - String userPassword = decodedJWT.getClaim("userPassword").asString(); - // 将账号存入request,用于记录日志 - request.setAttribute("userAccount", userAccount); -// // 打印token的过期时间 -// Date expiresAt = decodedJWT.getExpiresAt(); -// String formatExpiresAt = DateUtil.format(expiresAt, "yyyy-MM-dd HH:mm:ss"); -// log.info("Token过期时间为:" + formatExpiresAt); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount).eq(UserInfo::getUserPassword, userPassword); - UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper); - ThrowUtils.throwIf(userInfo == null, ErrorCode.OPERATION_ERROR, "用户不存在"); - - // 获取用户权限的枚举类 - String userRole = userInfo.getUserRole(); - UserRoleEnum userRoleEnum = UserRoleEnum.getEnumByValue(userRole); - - // 接口权限只能是 USER,ADMIN,BOSS,用户权限是 ADMIN,BOSS,USER,BAN - // 校验角色 - ThrowUtils.throwIf(UserRoleEnum.USER.equals(userRoleEnum) && !UserRoleEnum.USER.equals(interfaceRoleEnum), ErrorCode.NO_AUTH_ERROR); - ThrowUtils.throwIf(UserRoleEnum.BAN.equals(userRoleEnum), ErrorCode.NO_AUTH_ERROR, "用户已被封禁"); - ThrowUtils.throwIf(UserRoleEnum.ADMIN.equals(userRoleEnum) && UserRoleEnum.BOSS.equals(interfaceRoleEnum), ErrorCode.NO_AUTH_ERROR); +// // 获取请求对象 +// HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); +// // 接口的权限 +// String mustRole = requiresPermission.mustRole(); +// // 获取接口权限的枚举类 +// UserRoleEnum interfaceRoleEnum = UserRoleEnum.getEnumByValue(mustRole); +// ThrowUtils.throwIf(interfaceRoleEnum == null, ErrorCode.NO_AUTH_ERROR); +// // 获取用户权限 +// String token = request.getHeader("Authorization"); +// ThrowUtils.throwIf(StringUtils.isBlank(token), ErrorCode.NO_AUTH_ERROR, "JWT为空"); +// // 解析token +// DecodedJWT decodedJWT = jwtUtils.verify(token); +// String userAccount = decodedJWT.getClaim("userAccount").asString(); +// String userPassword = decodedJWT.getClaim("userPassword").asString(); +// // 将账号存入request,用于记录日志 +// request.setAttribute("userAccount", userAccount); +//// // 打印token的过期时间 +//// Date expiresAt = decodedJWT.getExpiresAt(); +//// String formatExpiresAt = DateUtil.format(expiresAt, "yyyy-MM-dd HH:mm:ss"); +//// log.info("Token过期时间为:" + formatExpiresAt); +// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount).eq(UserInfo::getUserPassword, userPassword); +// UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper); +// ThrowUtils.throwIf(userInfo == null, ErrorCode.OPERATION_ERROR, "用户不存在"); +// +// // 获取用户权限的枚举类 +// String userRole = userInfo.getUserRole(); +// UserRoleEnum userRoleEnum = UserRoleEnum.getEnumByValue(userRole); +// +// // 接口权限只能是 USER,ADMIN,BOSS,用户权限是 ADMIN,BOSS,USER,BAN +// // 校验角色 +// ThrowUtils.throwIf(UserRoleEnum.USER.equals(userRoleEnum) && !UserRoleEnum.USER.equals(interfaceRoleEnum), ErrorCode.NO_AUTH_ERROR); +// ThrowUtils.throwIf(UserRoleEnum.BAN.equals(userRoleEnum), ErrorCode.NO_AUTH_ERROR, "用户已被封禁"); +// ThrowUtils.throwIf(UserRoleEnum.ADMIN.equals(userRoleEnum) && UserRoleEnum.BOSS.equals(interfaceRoleEnum), ErrorCode.NO_AUTH_ERROR); return joinPoint.proceed(); } 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 2cf917a..d524165 100644 --- a/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java +++ b/src/main/java/com/greenorange/promotion/controller/project/ProjectController.java @@ -1,6 +1,8 @@ package com.greenorange.promotion.controller.project; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.greenorange.promotion.annotation.RequiresPermission; import com.greenorange.promotion.annotation.SysLog; @@ -8,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.UserConstant; +import com.greenorange.promotion.exception.BusinessException; import com.greenorange.promotion.exception.ThrowUtils; import com.greenorange.promotion.model.dto.CommonBatchRequest; import com.greenorange.promotion.model.dto.CommonRequest; @@ -146,5 +149,25 @@ public class ProjectController { return ResultUtils.success(voPage); } +// /** +// * Web端管理员上(下)架项目 +// * @param commonRequest 项目id +// * @return 是否更新成功 +// */ +// @PostMapping("/shelves") +// @Operation(summary = "Web端管理员上(下)架项目", description = "参数:项目id,权限:管理员(admin, boss),方法名:updateProjectShelvesStatus") +// @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) +// @SysLog(title = "项目管理", content = "Web端管理员上(下)架项目") +// public BaseResponse updateProjectShelvesStatus(@RequestBody CommonRequest commonRequest) { +// // 获取当前服务类商品的上(下)架状态 +// Long id = commonRequest.getId(); +// Project project = projectService.getById(id); +// Integer status = project.getIsShelves() == 0 ? 1 : 0; +// LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); +// updateWrapper.eq(Project::getId, id).set(Project::getIsShelves, status); +// projectService.update(updateWrapper); +// return ResultUtils.success(true); +// } + } \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/model/dto/project/ProjectAddRequest.java b/src/main/java/com/greenorange/promotion/model/dto/project/ProjectAddRequest.java index 6548160..77b4c1f 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/project/ProjectAddRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/project/ProjectAddRequest.java @@ -19,18 +19,13 @@ import java.math.BigDecimal; @Schema(description = "项目添加请求体", requiredProperties = { "projectName", "projectImage", - "maxProjectPrice", - "minProjectPrice", "projectDescription", "settlementDesc", "projectDesc", "projectFlow", "applyPromoCodeDesc", "projectSettlementCycle", - "currentPromotionCount", "maxPromoterCount", - "projectStatus", - "isShelves", }) public class ProjectAddRequest implements Serializable { @@ -90,33 +85,13 @@ public class ProjectAddRequest implements Serializable { @Schema(description = "项目结算周期", example = "2") private Integer projectSettlementCycle; - /** - * 当前推广人数 - */ - @Min(value = 1, message = "当前推广人数不能小于1") - @Schema(description = "当前推广人数", example = "150") - private Integer currentPromotionCount; - /** * 最大推广人数 */ - @Min(value = 1, message = "当前推广人数不能小于1") + @Min(value = 1, message = "最大推广人数不能小于1") @Schema(description = "最大推广人数", example = "200") private Integer maxPromoterCount; - /** - * 项目状态(项目运行|人数已满|项目暂停) - */ - @UserEnumValue(enumClass = ProjectStatusEnum.class) - @Schema(description = "项目状态", example = "项目运行") - private String projectStatus; - - /** - * 是否上架 - */ - @Schema(description = "是否上架", example = "true") - private Boolean isShelves; - @Serial private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/greenorange/promotion/model/dto/project/ProjectUpdateRequest.java b/src/main/java/com/greenorange/promotion/model/dto/project/ProjectUpdateRequest.java index 2e7df71..e8bb462 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/project/ProjectUpdateRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/project/ProjectUpdateRequest.java @@ -20,18 +20,13 @@ import java.math.BigDecimal; "id", "projectName", "projectImage", - "maxProjectPrice", - "minProjectPrice", "projectDescription", "settlementDesc", "projectDesc", "projectFlow", "applyPromoCodeDesc", "projectSettlementCycle", - "currentPromotionCount", "maxPromoterCount", - "projectStatus", - "isShelves", }) public class ProjectUpdateRequest implements Serializable { @@ -98,30 +93,12 @@ public class ProjectUpdateRequest implements Serializable { @Schema(description = "项目结算周期", example = "2") private Integer projectSettlementCycle; - /** - * 当前推广人数 - */ - @Schema(description = "当前推广人数", example = "150") - private Integer currentPromotionCount; - /** * 最大推广人数 */ @Schema(description = "最大推广人数", example = "200") private Integer maxPromoterCount; - /** - * 项目状态(项目运行|人数已满|项目暂停) - */ - @NotBlank(message = "项目状态不能为空") - @Schema(description = "项目状态", example = "项目运行") - private String projectStatus; - - /** - * 是否上架 - */ - @Schema(description = "是否上架", example = "true") - private Boolean isShelves; @Serial diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailAddRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailAddRequest.java index 6f0572e..34d558d 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailAddRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailAddRequest.java @@ -16,6 +16,7 @@ import java.math.BigDecimal; @Schema(description = "项目明细添加请求体", requiredProperties = { "projectDetailName", "projectSettlementPrice", + "projectMinSettlementPrice", "maxCommissionRate", "projectId", }) @@ -25,32 +26,32 @@ public class ProjectDetailAddRequest implements Serializable { * 项目明细名称 */ @NotBlank(message = "项目明细名称不能为空") - @Schema(description = "项目明细名称", example = "") + @Schema(description = "项目明细名称", example = "2.9元购买30元券包") private String projectDetailName; /** * 项目结算价 */ - @Schema(description = "项目结算价", example = "") + @Schema(description = "项目结算价", example = "0.72") private BigDecimal projectSettlementPrice; /** * 项目最小结算价格 */ - @Schema(description = "项目最小结算价格", example = "${field.example}") + @Schema(description = "项目最小结算价格", example = "0.66") private BigDecimal projectMinSettlementPrice; /** * 最大抽佣比例 */ - @Schema(description = "最大抽佣比例", example = "") + @Schema(description = "最大抽佣比例", example = "2") private Integer maxCommissionRate; /** * 项目ID */ @Min(value = 1L, message = "项目ID ID不能小于1") - @Schema(description = "项目ID", example = "") + @Schema(description = "项目ID", example = "1") private Long projectId; diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailQueryRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailQueryRequest.java index 6823980..992a282 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailQueryRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailQueryRequest.java @@ -22,39 +22,39 @@ public class ProjectDetailQueryRequest extends PageRequest implements Serializab * 项目明细ID */ @Min(value = 1L, message = "项目明细ID ID不能小于1") - @Schema(description = "项目明细ID", example = "") + @Schema(description = "项目明细ID", example = "1") private Long id; /** * 项目明细名称 */ @NotBlank(message = "项目明细名称不能为空") - @Schema(description = "项目明细名称", example = "") + @Schema(description = "项目明细名称", example = "2.9元购买30元券包") private String projectDetailName; /** * 项目结算价 */ - @Schema(description = "项目结算价", example = "") + @Schema(description = "项目结算价", example = "0.72") private BigDecimal projectSettlementPrice; /** * 项目最小结算价格 */ - @Schema(description = "项目最小结算价格", example = "${field.example}") + @Schema(description = "项目最小结算价格", example = "0.66") private BigDecimal projectMinSettlementPrice; /** * 最大抽佣比例 */ - @Schema(description = "最大抽佣比例", example = "") + @Schema(description = "最大抽佣比例", example = "2") private Integer maxCommissionRate; /** * 项目ID */ @Min(value = 1L, message = "项目ID ID不能小于1") - @Schema(description = "项目ID", example = "") + @Schema(description = "项目ID", example = "1") private Long projectId; diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailUpdateRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailUpdateRequest.java index 7bdab86..544ab10 100644 --- a/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailUpdateRequest.java +++ b/src/main/java/com/greenorange/promotion/model/dto/projectDetail/ProjectDetailUpdateRequest.java @@ -17,6 +17,7 @@ import java.math.BigDecimal; "id", "projectDetailName", "projectSettlementPrice", + "projectMinSettlementPrice", "maxCommissionRate", "projectId", }) @@ -26,39 +27,39 @@ public class ProjectDetailUpdateRequest implements Serializable { * 项目明细ID */ @Min(value = 1L, message = "项目明细ID ID不能小于1") - @Schema(description = "项目明细ID", example = "") + @Schema(description = "项目明细ID", example = "1") private Long id; /** * 项目明细名称 */ @NotBlank(message = "项目明细名称不能为空") - @Schema(description = "项目明细名称", example = "") + @Schema(description = "项目明细名称", example = "2.9元购买30元券包") private String projectDetailName; /** * 项目结算价 */ - @Schema(description = "项目结算价", example = "") + @Schema(description = "项目结算价", example = "0.72") private BigDecimal projectSettlementPrice; /** * 项目最小结算价格 */ - @Schema(description = "项目最小结算价格", example = "${field.example}") + @Schema(description = "项目最小结算价格", example = "0.66") private BigDecimal projectMinSettlementPrice; /** * 最大抽佣比例 */ - @Schema(description = "最大抽佣比例", example = "") + @Schema(description = "最大抽佣比例", example = "2") private Integer maxCommissionRate; /** * 项目ID */ @Min(value = 1L, message = "项目ID ID不能小于1") - @Schema(description = "项目ID", example = "") + @Schema(description = "项目ID", example = "1") private Long projectId; diff --git a/src/main/java/com/greenorange/promotion/model/entity/Project.java b/src/main/java/com/greenorange/promotion/model/entity/Project.java index b92a16f..f00abf6 100644 --- a/src/main/java/com/greenorange/promotion/model/entity/Project.java +++ b/src/main/java/com/greenorange/promotion/model/entity/Project.java @@ -80,7 +80,7 @@ public class Project implements Serializable { /** * 是否上架 */ - private Integer isShelves; + private Boolean isShelves; /** * 是否删除 diff --git a/src/main/java/com/greenorange/promotion/model/vo/project/ProjectVO.java b/src/main/java/com/greenorange/promotion/model/vo/project/ProjectVO.java index 7444bcc..2bd6fdd 100644 --- a/src/main/java/com/greenorange/promotion/model/vo/project/ProjectVO.java +++ b/src/main/java/com/greenorange/promotion/model/vo/project/ProjectVO.java @@ -2,6 +2,7 @@ package com.greenorange.promotion.model.vo.project; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.apache.ibatis.ognl.BooleanExpression; import java.io.Serial; import java.io.Serializable; @@ -89,7 +90,7 @@ public class ProjectVO implements Serializable { /** * 是否上架 */ - @Schema(description = "是否上架", example = "true") + @Schema(description = "是否上架", example = "1") private Boolean isShelves; diff --git a/src/main/java/com/greenorange/promotion/model/vo/projectDetail/ProjectDetailVO.java b/src/main/java/com/greenorange/promotion/model/vo/projectDetail/ProjectDetailVO.java index 6248e35..9867928 100644 --- a/src/main/java/com/greenorange/promotion/model/vo/projectDetail/ProjectDetailVO.java +++ b/src/main/java/com/greenorange/promotion/model/vo/projectDetail/ProjectDetailVO.java @@ -23,33 +23,33 @@ public class ProjectDetailVO implements Serializable { /** * 项目明细名称 */ - @Schema(description = "项目明细名称", example = "${field.example}") + @Schema(description = "项目明细名称", example = "2.9元购买30元券包") private String projectDetailName; /** * 项目结算价 */ - @Schema(description = "项目结算价", example = "${field.example}") + @Schema(description = "项目结算价", example = "0.72") private BigDecimal projectSettlementPrice; /** * 项目最小结算价格 */ - @Schema(description = "项目最小结算价格", example = "${field.example}") + @Schema(description = "项目最小结算价格", example = "0.66") private BigDecimal projectMinSettlementPrice; /** * 最大抽佣比例 */ - @Schema(description = "最大抽佣比例", example = "${field.example}") + @Schema(description = "最大抽佣比例", example = "2") private Integer maxCommissionRate; /** * 项目ID */ - @Schema(description = "项目ID", example = "${field.example}") + @Schema(description = "项目ID", example = "1") private Long projectId; diff --git a/src/main/resources/mapper/ProjectDetailMapper.xml b/src/main/resources/mapper/ProjectDetailMapper.xml index d08cf0f..d8ecf52 100644 --- a/src/main/resources/mapper/ProjectDetailMapper.xml +++ b/src/main/resources/mapper/ProjectDetailMapper.xml @@ -8,6 +8,7 @@ + diff --git a/src/main/resources/mapper/ProjectMapper.xml b/src/main/resources/mapper/ProjectMapper.xml index bf10e21..2e82509 100644 --- a/src/main/resources/mapper/ProjectMapper.xml +++ b/src/main/resources/mapper/ProjectMapper.xml @@ -8,8 +8,6 @@ - -