From 5d33bfe68f9170faa18dad7ed2d25823d29a7bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Mon, 10 Feb 2025 16:40:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A7=92=E8=89=B2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qyft/gd/system/common/result/ResultCode.java | 2 + .../qyft/gd/system/controller/RoleController.java | 75 ++++++++++++++++++++++ .../java/com/qyft/gd/system/mapper/RoleMapper.java | 2 + .../java/com/qyft/gd/system/model/entity/Role.java | 4 +- .../java/com/qyft/gd/system/model/entity/User.java | 4 ++ .../com/qyft/gd/system/service/RoleService.java | 8 +++ .../com/qyft/gd/system/service/UserService.java | 2 - .../gd/system/service/impl/RoleServiceImpl.java | 21 ++++++ src/main/resources/mapper/system/RoleMapper.xml | 3 + 9 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/qyft/gd/system/controller/RoleController.java diff --git a/src/main/java/com/qyft/gd/system/common/result/ResultCode.java b/src/main/java/com/qyft/gd/system/common/result/ResultCode.java index e388062..82d0d6a 100644 --- a/src/main/java/com/qyft/gd/system/common/result/ResultCode.java +++ b/src/main/java/com/qyft/gd/system/common/result/ResultCode.java @@ -103,6 +103,8 @@ public enum ResultCode implements IResultCode, Serializable { USER_OPERATION_EXCEPTION("A0440", "用户操作异常"), + DATA_ALREADY_EXISTS("C0450", "数据已存在"), + /** 二级宏观错误码 */ USER_REQUEST_SERVICE_EXCEPTION("A0500", "用户请求服务异常"), REQUEST_LIMIT_EXCEEDED("A0501", "请求次数超出限制"), diff --git a/src/main/java/com/qyft/gd/system/controller/RoleController.java b/src/main/java/com/qyft/gd/system/controller/RoleController.java new file mode 100644 index 0000000..be201de --- /dev/null +++ b/src/main/java/com/qyft/gd/system/controller/RoleController.java @@ -0,0 +1,75 @@ +package com.qyft.gd.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.qyft.gd.system.common.base.BasePageQuery; +import com.qyft.gd.system.common.result.PageResult; +import com.qyft.gd.system.common.result.Result; +import com.qyft.gd.system.common.result.ResultCode; +import com.qyft.gd.system.model.entity.Role; +import com.qyft.gd.system.service.RoleService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "角色接口") +@RestController +@RequestMapping("/api/role") +@RequiredArgsConstructor +@Slf4j +public class RoleController { + + private final RoleService roleService; + + @Operation(summary = "角色列表") + @GetMapping("/list") + public PageResult getAllRole(BasePageQuery pageQuery) { + IPage result = roleService.page(new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()), null); + return PageResult.success(result); + } + + + @Operation(summary = "添加新角色") + @PostMapping("/") + public Result addRole(@RequestBody Role role) { + Role existingRole = roleService.findByCode(role.getCode()); + if(existingRole == null) { + boolean isSuccess = roleService.addRole(role); + if (isSuccess) { + return Result.success(); + } + }else{ + return Result.failed(ResultCode.DATA_ALREADY_EXISTS); + } + return Result.failed(); + } + + @Operation(summary = "更新角色") + @PutMapping("/{id}") + public Result updateRole(@PathVariable Long id, @RequestBody Role role) { + role.setId(id); + Role existingRole = roleService.findByCode(role.getCode()); + if(existingRole == null) { + boolean isSuccess = roleService.updateRole(role); + if (isSuccess) { + return Result.success(); + } + }else{ + return Result.failed(ResultCode.DATA_ALREADY_EXISTS); + } + return Result.failed(); + } + + @Operation(summary = "删除角色") + @DeleteMapping("/{id}") + public Result deleteRole(@PathVariable Long id) { + boolean isSuccess = roleService.deleteRole(id); + if (isSuccess) { + return Result.success(); + } + return Result.failed(); + } + +} diff --git a/src/main/java/com/qyft/gd/system/mapper/RoleMapper.java b/src/main/java/com/qyft/gd/system/mapper/RoleMapper.java index b179d6c..32ca0ff 100644 --- a/src/main/java/com/qyft/gd/system/mapper/RoleMapper.java +++ b/src/main/java/com/qyft/gd/system/mapper/RoleMapper.java @@ -7,4 +7,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface RoleMapper extends BaseMapper { + Role findByCode(String code); + } diff --git a/src/main/java/com/qyft/gd/system/model/entity/Role.java b/src/main/java/com/qyft/gd/system/model/entity/Role.java index f906188..7c82374 100644 --- a/src/main/java/com/qyft/gd/system/model/entity/Role.java +++ b/src/main/java/com/qyft/gd/system/model/entity/Role.java @@ -3,6 +3,7 @@ package com.qyft.gd.system.model.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.qyft.gd.system.common.base.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; @@ -14,10 +15,11 @@ import lombok.Setter; @Getter @Setter public class Role extends BaseEntity { - + @NotBlank() @Schema(description = "角色名称") private String name; + @NotBlank() @Schema(description = "角色编码") private String code; diff --git a/src/main/java/com/qyft/gd/system/model/entity/User.java b/src/main/java/com/qyft/gd/system/model/entity/User.java index 1f7a99d..068ab6d 100644 --- a/src/main/java/com/qyft/gd/system/model/entity/User.java +++ b/src/main/java/com/qyft/gd/system/model/entity/User.java @@ -3,6 +3,7 @@ package com.qyft.gd.system.model.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.qyft.gd.system.common.base.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; @@ -15,12 +16,15 @@ import lombok.Setter; @Setter public class User extends BaseEntity { + @NotBlank() @Schema(description = "用户名") private String username; + @NotBlank() @Schema(description = "昵称") private String nickname; + @NotBlank() @Schema(description = "密码") private String password; diff --git a/src/main/java/com/qyft/gd/system/service/RoleService.java b/src/main/java/com/qyft/gd/system/service/RoleService.java index 2584b2b..67d10b3 100644 --- a/src/main/java/com/qyft/gd/system/service/RoleService.java +++ b/src/main/java/com/qyft/gd/system/service/RoleService.java @@ -3,11 +3,19 @@ package com.qyft.gd.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qyft.gd.system.model.entity.Role; +import com.qyft.gd.system.model.entity.User; /** * 角色业务接口层 */ public interface RoleService extends IService { + Role findByCode(String code); + + boolean addRole(Role role); + + boolean updateRole(Role role); + + boolean deleteRole(Long roleId); } diff --git a/src/main/java/com/qyft/gd/system/service/UserService.java b/src/main/java/com/qyft/gd/system/service/UserService.java index e43b0a4..cfe0ef6 100644 --- a/src/main/java/com/qyft/gd/system/service/UserService.java +++ b/src/main/java/com/qyft/gd/system/service/UserService.java @@ -3,8 +3,6 @@ package com.qyft.gd.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qyft.gd.system.model.entity.User; -import java.util.List; - /** * 用户业务接口 */ diff --git a/src/main/java/com/qyft/gd/system/service/impl/RoleServiceImpl.java b/src/main/java/com/qyft/gd/system/service/impl/RoleServiceImpl.java index 760078b..72c47c1 100644 --- a/src/main/java/com/qyft/gd/system/service/impl/RoleServiceImpl.java +++ b/src/main/java/com/qyft/gd/system/service/impl/RoleServiceImpl.java @@ -3,6 +3,7 @@ package com.qyft.gd.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qyft.gd.system.mapper.RoleMapper; import com.qyft.gd.system.model.entity.Role; +import com.qyft.gd.system.model.entity.User; import com.qyft.gd.system.service.RoleService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -14,5 +15,25 @@ import org.springframework.stereotype.Service; @RequiredArgsConstructor public class RoleServiceImpl extends ServiceImpl implements RoleService { + @Override + public Role findByCode(String code) { + return this.baseMapper.findByCode(code); + } + + @Override + public boolean addRole(Role role) { + return this.baseMapper.insert(role) > 0; + } + + @Override + public boolean updateRole(Role role) { + return this.baseMapper.updateById(role) > 0; + } + + @Override + public boolean deleteRole(Long roleId) { + return this.baseMapper.deleteById(roleId) > 0; + } + } diff --git a/src/main/resources/mapper/system/RoleMapper.xml b/src/main/resources/mapper/system/RoleMapper.xml index 68a2a5e..9b5028a 100644 --- a/src/main/resources/mapper/system/RoleMapper.xml +++ b/src/main/resources/mapper/system/RoleMapper.xml @@ -5,4 +5,7 @@ +