From 1255780aa1400143c5faba9154143191c8d9ede3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 10 Feb 2025 14:45:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1.=E8=B4=A6=E5=8F=B7=E6=9D=83=E9=99=90?= =?UTF-8?q?=E8=A1=A5=E5=85=85=202.=E8=A7=92=E8=89=B2=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AuthorizationController.java | 18 +++++++++++++----- .../com/czg/controller/RoleController.java | 17 ++++++++++++++++- .../src/main/java/com/czg/sa/MyStpLogic.java | 13 +++++-------- .../com/czg/service/account/dto/PageDTO.java | 4 ++++ .../account/service/AuthorizationService.java | 3 ++- .../account/service/PermissionService.java | 7 +++++++ .../account/service/SysRoleService.java | 4 ++++ .../service/impl/AuthorizationServiceImpl.java | 8 ++++---- .../service/impl/PermissionServiceImpl.java | 11 +++++++++++ .../service/impl/SysRoleServiceImpl.java | 13 +++++++++++++ .../com/czg/service/account/vo/LoginVO.java | 18 ++++++++++++++++++ 11 files changed, 97 insertions(+), 19 deletions(-) create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/dto/PageDTO.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/service/PermissionService.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PermissionServiceImpl.java create mode 100644 cash-service/account-service/src/main/java/com/czg/service/account/vo/LoginVO.java diff --git a/cash-api/account-server/src/main/java/com/czg/controller/AuthorizationController.java b/cash-api/account-server/src/main/java/com/czg/controller/AuthorizationController.java index 986b5b3f..8649e5bf 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/AuthorizationController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/AuthorizationController.java @@ -4,6 +4,9 @@ import com.czg.service.account.dto.SysLoginDTO; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; import com.czg.service.account.service.AuthorizationService; +import com.czg.service.account.service.PermissionService; +import com.czg.service.account.vo.LoginVO; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -16,11 +19,11 @@ import java.util.Map; @RestController @RequestMapping("auth") public class AuthorizationController { - private final AuthorizationService authorizationService; + @Resource + private AuthorizationService authorizationService; + @Resource + private PermissionService permissionService; - public AuthorizationController(AuthorizationService authorizationService) { - this.authorizationService = authorizationService; - } /** * 验证码获取 @@ -37,10 +40,15 @@ public class AuthorizationController { * @return token信息 */ @PostMapping("login") - public CzgResult login(@Validated @RequestBody SysLoginDTO loginDTO) { + public CzgResult login(@Validated @RequestBody SysLoginDTO loginDTO) { return CzgResult.success(authorizationService.login(loginDTO)); } + @GetMapping("/permission") + public CzgResult getPermission() { + return CzgResult.success(); + } + @GetMapping("test") public CzgResult login() { StpKit.ADMIN.login(1); diff --git a/cash-api/account-server/src/main/java/com/czg/controller/RoleController.java b/cash-api/account-server/src/main/java/com/czg/controller/RoleController.java index bc83d92c..c4550009 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/RoleController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/RoleController.java @@ -2,6 +2,12 @@ package com.czg.controller; import com.czg.annotation.SaAdminCheckPermission; import com.czg.resp.CzgResult; +import com.czg.service.account.dto.PageDTO; +import com.czg.service.account.entity.SysRole; +import com.czg.service.account.service.SysRoleService; +import com.mybatisflex.core.paginate.Page; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -14,8 +20,17 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/role") public class RoleController { + @Resource + private SysRoleService roleService; + + @SaAdminCheckPermission(value = "role.list") + @GetMapping("/list") + public CzgResult> getList(PageDTO pageDTO) { + return CzgResult.success(roleService.getList(pageDTO)); + } + @SaAdminCheckPermission(value = "role.add") - public CzgResult add() { + public CzgResult add(PageDTO pageDTO) { return null; } } diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java index 8baacdc9..536de2ec 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java @@ -1,21 +1,18 @@ package com.czg.sa; import cn.dev33.satoken.stp.StpLogic; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.ArrayUtil; -import com.alibaba.fastjson2.JSONObject; -import jakarta.annotation.Resource; -import org.springframework.data.redis.core.StringRedisTemplate; +import lombok.Getter; +import lombok.Setter; import java.util.List; /** * @author Administrator */ +@Getter public class MyStpLogic extends StpLogic { - @Resource - private StringRedisTemplate redisTemplate; - + @Setter + private boolean isAdmin; /** * 初始化 StpLogic, 并指定账号类型 * diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/dto/PageDTO.java b/cash-service/account-service/src/main/java/com/czg/service/account/dto/PageDTO.java new file mode 100644 index 00000000..7d4df604 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/dto/PageDTO.java @@ -0,0 +1,4 @@ +package com.czg.service.account.dto; + +public record PageDTO(Integer page, Integer size) { +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/AuthorizationService.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/AuthorizationService.java index 1d8a9a84..cc0a247a 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/AuthorizationService.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/AuthorizationService.java @@ -2,6 +2,7 @@ package com.czg.service.account.service; import com.czg.service.account.dto.SysLoginDTO; +import com.czg.service.account.vo.LoginVO; /** * @author Administrator @@ -9,5 +10,5 @@ import com.czg.service.account.dto.SysLoginDTO; public interface AuthorizationService { Object getCaptcha(); - Object login(SysLoginDTO loginDTO); + LoginVO login(SysLoginDTO loginDTO); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/PermissionService.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/PermissionService.java new file mode 100644 index 00000000..52bc6aa5 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/PermissionService.java @@ -0,0 +1,7 @@ +package com.czg.service.account.service; + +/** + * @author Administrator + */ +public interface PermissionService { +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/SysRoleService.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/SysRoleService.java index 31f6c5b4..0410b42f 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/SysRoleService.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/SysRoleService.java @@ -1,5 +1,7 @@ package com.czg.service.account.service; +import com.czg.service.account.dto.PageDTO; +import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; import com.czg.service.account.entity.SysRole; @@ -14,4 +16,6 @@ import java.util.List; public interface SysRoleService extends IService { List getByUserId(Long id); + + Page getList(PageDTO pageDTO); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java index 9f3f3ca6..b83a67da 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java @@ -12,6 +12,7 @@ import com.czg.sa.StpKit; import com.czg.service.account.entity.*; import com.czg.service.account.mapper.SysMenuMapper; import com.czg.service.account.service.*; +import com.czg.service.account.vo.LoginVO; import com.mybatisflex.core.query.QueryChain; import com.wf.captcha.SpecCaptcha; import jakarta.annotation.Resource; @@ -61,7 +62,7 @@ public class AuthorizationServiceImpl implements AuthorizationService { } @Override - public Object login(SysLoginDTO loginDTO) { + public LoginVO login(SysLoginDTO loginDTO) { // Object code = redisService.get(RedisCst.LOGIN_CODE + loginDTO.uuid()); // if (!"666666".equals(loginDTO.code()) && code == null || !code.equals(loginDTO.code())) { // throw new RuntimeException("验证码错误"); @@ -103,6 +104,7 @@ public class AuthorizationServiceImpl implements AuthorizationService { } StpKit.ADMIN.login(user.getId()); + StpKit.ADMIN.setAdmin(user.getIsAdmin()); // 查询角色 List roleList = sysRoleService.getByUserId(user.getId()); List roleNames = roleList.stream().map(SysRole::getName).collect(Collectors.toList()); @@ -110,8 +112,6 @@ public class AuthorizationServiceImpl implements AuthorizationService { // 权限赋予 List promissionList = sysMenuMapper.selectByUserId(user.getId(), null).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).collect(Collectors.toList()); StpKit.ADMIN.addPermissionList(promissionList); - return Map.of("tokenInfo", StpKit.ADMIN.getTokenInfo(), - "loginType", loginDTO.loginType(), - "shopInfo", shopInfo); + return new LoginVO(StpKit.ADMIN.getTokenInfo(), promissionList, loginDTO.loginType(), shopInfo); } } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PermissionServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PermissionServiceImpl.java new file mode 100644 index 00000000..b3401ca0 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/PermissionServiceImpl.java @@ -0,0 +1,11 @@ +package com.czg.service.account.service.impl; + +import com.czg.service.account.service.PermissionService; +import org.springframework.stereotype.Service; + +/** + * @author zs + */ +@Service +public class PermissionServiceImpl implements PermissionService { +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java index f137bb50..dce4ca43 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java @@ -1,5 +1,9 @@ package com.czg.service.account.service.impl; +import com.czg.sa.StpKit; +import com.czg.service.account.dto.PageDTO; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryChain; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.czg.service.account.entity.SysRole; import com.czg.service.account.mapper.SysRoleMapper; @@ -21,4 +25,13 @@ public class SysRoleServiceImpl extends ServiceImpl imp public List getByUserId(Long id) { return mapper.selectByUserId(id); } + + @Override + public Page getList(PageDTO pageDTO) { + QueryChain queryChain = queryChain(); + if (!StpKit.ADMIN.isAdmin()) { + queryChain.eq(SysRole::getCreateUserId, StpKit.ADMIN.getLoginIdAsLong()); + } + return queryChain.page(new Page<>(pageDTO.page(), pageDTO.size())); + } } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/vo/LoginVO.java b/cash-service/account-service/src/main/java/com/czg/service/account/vo/LoginVO.java new file mode 100644 index 00000000..d4b0bbf6 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/vo/LoginVO.java @@ -0,0 +1,18 @@ +package com.czg.service.account.vo; + +import cn.dev33.satoken.stp.SaTokenInfo; +import com.czg.service.account.entity.TbShopInfo; + +import java.util.List; + +public record LoginVO( + // token信息 + SaTokenInfo tokenInfo, + // 接口权限集合 + List promissionList, + // 登录类型 + Integer loginType, + // 店铺信息 + TbShopInfo shopInfo +) { +} From f0b5d3c5357d3494376ac924f74ead287793ee04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 10 Feb 2025 14:48:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1.pom=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cash-common/cash-common-exception/pom.xml | 27 --------------- .../czg/handler/GlobalExceptionHandler.java | 33 ------------------- cash-common/pom.xml | 1 - cash-dependencies/pom.xml | 5 --- cash-service/account-service/pom.xml | 5 +-- .../src/main/java/com/czg/Main.java | 2 +- 6 files changed, 2 insertions(+), 71 deletions(-) delete mode 100644 cash-common/cash-common-exception/pom.xml delete mode 100644 cash-common/cash-common-exception/src/main/java/com/czg/handler/GlobalExceptionHandler.java diff --git a/cash-common/cash-common-exception/pom.xml b/cash-common/cash-common-exception/pom.xml deleted file mode 100644 index 0cc06831..00000000 --- a/cash-common/cash-common-exception/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - 4.0.0 - - com.czg - cash-common - 1.0.0 - - 异常处理模块 - 异常处理 - cash-common-exception - - - - org.springframework.boot - spring-boot-starter-web - - - org.apache.tomcat.embed - tomcat-embed-core - - - - - diff --git a/cash-common/cash-common-exception/src/main/java/com/czg/handler/GlobalExceptionHandler.java b/cash-common/cash-common-exception/src/main/java/com/czg/handler/GlobalExceptionHandler.java deleted file mode 100644 index 6fa46279..00000000 --- a/cash-common/cash-common-exception/src/main/java/com/czg/handler/GlobalExceptionHandler.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.czg.handler; - - -import jakarta.annotation.PostConstruct; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author Administrator - */ -@RestControllerAdvice -public class GlobalExceptionHandler { - private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); - - @PostConstruct - public void init() { - log.info("✅ GlobalExceptionHandler 已初始化"); - } - @ExceptionHandler(Exception.class) - public Map handleRuntimeException(Exception e) { - log.error("", e); - Map error = new HashMap<>(); - error.put("code", 500); - error.put("msg", e.getMessage()); - return error; - } -} - diff --git a/cash-common/pom.xml b/cash-common/pom.xml index ce2cdc77..d1d869a5 100644 --- a/cash-common/pom.xml +++ b/cash-common/pom.xml @@ -14,7 +14,6 @@ cash-common-tools cash-common-sa-token - cash-common-exception diff --git a/cash-dependencies/pom.xml b/cash-dependencies/pom.xml index 4ec930bd..fe979996 100644 --- a/cash-dependencies/pom.xml +++ b/cash-dependencies/pom.xml @@ -40,11 +40,6 @@ cash-common-tools 1.0.0 - - com.czg - cash-common-exception - 1.0.0 - diff --git a/cash-service/account-service/pom.xml b/cash-service/account-service/pom.xml index 20cc17e2..90f2cde2 100644 --- a/cash-service/account-service/pom.xml +++ b/cash-service/account-service/pom.xml @@ -28,10 +28,7 @@ cash-common-tools - - com.czg - cash-common-exception - + diff --git a/cash-service/code-generator/src/main/java/com/czg/Main.java b/cash-service/code-generator/src/main/java/com/czg/Main.java index 5397962b..d8cd7fa1 100644 --- a/cash-service/code-generator/src/main/java/com/czg/Main.java +++ b/cash-service/code-generator/src/main/java/com/czg/Main.java @@ -69,7 +69,7 @@ public class Main { //设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表 globalConfig.getStrategyConfig() .setTablePrefix("") - .setGenerateTable("tb_shop_user"); + .setGenerateTable("sys_users_roles"); //设置生成 entity 并启用 Lombok globalConfig.enableEntity()