Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
90f8472fcb
|
|
@ -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<LoginVO> 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);
|
||||
|
|
|
|||
|
|
@ -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<Page<SysRole>> getList(PageDTO pageDTO) {
|
||||
return CzgResult.success(roleService.getList(pageDTO));
|
||||
}
|
||||
|
||||
@SaAdminCheckPermission(value = "role.add")
|
||||
public CzgResult add() {
|
||||
public CzgResult add(PageDTO pageDTO) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.czg</groupId>
|
||||
<artifactId>cash-common</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
<name>异常处理模块</name>
|
||||
<description>异常处理</description>
|
||||
<artifactId>cash-common-exception</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.apache.tomcat.embed</groupId>
|
||||
<artifactId>tomcat-embed-core</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -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<String, Object> handleRuntimeException(Exception e) {
|
||||
log.error("", e);
|
||||
Map<String, Object> error = new HashMap<>();
|
||||
error.put("code", 500);
|
||||
error.put("msg", e.getMessage());
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -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, 并指定账号类型
|
||||
*
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
<modules>
|
||||
<module>cash-common-tools</module>
|
||||
<module>cash-common-sa-token</module>
|
||||
<module>cash-common-exception</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -40,11 +40,6 @@
|
|||
<artifactId>cash-common-tools</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.czg</groupId>
|
||||
<artifactId>cash-common-exception</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<!-- Sa-Token 权限认证,在线文档:https://sa-token.cc -->
|
||||
<!-- sa-token 的漏洞的依赖处理 -->
|
||||
<!-- sa-token start -->
|
||||
|
|
|
|||
|
|
@ -28,10 +28,7 @@
|
|||
<artifactId>cash-common-tools</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.czg</groupId>
|
||||
<artifactId>cash-common-exception</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
package com.czg.service.account.dto;
|
||||
|
||||
public record PageDTO(Integer page, Integer size) {
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
package com.czg.service.account.service;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
*/
|
||||
public interface PermissionService {
|
||||
}
|
||||
|
|
@ -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<SysRole> {
|
||||
|
||||
List<SysRole> getByUserId(Long id);
|
||||
|
||||
Page<SysRole> getList(PageDTO pageDTO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<SysRole> roleList = sysRoleService.getByUserId(user.getId());
|
||||
List<String> roleNames = roleList.stream().map(SysRole::getName).collect(Collectors.toList());
|
||||
|
|
@ -110,8 +112,6 @@ public class AuthorizationServiceImpl implements AuthorizationService {
|
|||
// 权限赋予
|
||||
List<String> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
}
|
||||
|
|
@ -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<SysRoleMapper, SysRole> imp
|
|||
public List<SysRole> getByUserId(Long id) {
|
||||
return mapper.selectByUserId(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<SysRole> getList(PageDTO pageDTO) {
|
||||
QueryChain<SysRole> queryChain = queryChain();
|
||||
if (!StpKit.ADMIN.isAdmin()) {
|
||||
queryChain.eq(SysRole::getCreateUserId, StpKit.ADMIN.getLoginIdAsLong());
|
||||
}
|
||||
return queryChain.page(new Page<>(pageDTO.page(), pageDTO.size()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String> promissionList,
|
||||
// 登录类型
|
||||
Integer loginType,
|
||||
// 店铺信息
|
||||
TbShopInfo shopInfo
|
||||
) {
|
||||
}
|
||||
|
|
@ -69,7 +69,7 @@ public class Main {
|
|||
//设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
|
||||
globalConfig.getStrategyConfig()
|
||||
.setTablePrefix("")
|
||||
.setGenerateTable("tb_shop_user");
|
||||
.setGenerateTable("sys_users_roles");
|
||||
|
||||
//设置生成 entity 并启用 Lombok
|
||||
globalConfig.enableEntity()
|
||||
|
|
|
|||
Loading…
Reference in New Issue