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 +) { +}