parent
babfa6a8ca
commit
1255780aa1
|
|
@ -4,6 +4,9 @@ import com.czg.service.account.dto.SysLoginDTO;
|
||||||
import com.czg.resp.CzgResult;
|
import com.czg.resp.CzgResult;
|
||||||
import com.czg.sa.StpKit;
|
import com.czg.sa.StpKit;
|
||||||
import com.czg.service.account.service.AuthorizationService;
|
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.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
|
@ -16,11 +19,11 @@ import java.util.Map;
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("auth")
|
@RequestMapping("auth")
|
||||||
public class AuthorizationController {
|
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信息
|
* @return token信息
|
||||||
*/
|
*/
|
||||||
@PostMapping("login")
|
@PostMapping("login")
|
||||||
public CzgResult<?> login(@Validated @RequestBody SysLoginDTO loginDTO) {
|
public CzgResult<LoginVO> login(@Validated @RequestBody SysLoginDTO loginDTO) {
|
||||||
return CzgResult.success(authorizationService.login(loginDTO));
|
return CzgResult.success(authorizationService.login(loginDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/permission")
|
||||||
|
public CzgResult<?> getPermission() {
|
||||||
|
return CzgResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("test")
|
@GetMapping("test")
|
||||||
public CzgResult<?> login() {
|
public CzgResult<?> login() {
|
||||||
StpKit.ADMIN.login(1);
|
StpKit.ADMIN.login(1);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,12 @@ package com.czg.controller;
|
||||||
|
|
||||||
import com.czg.annotation.SaAdminCheckPermission;
|
import com.czg.annotation.SaAdminCheckPermission;
|
||||||
import com.czg.resp.CzgResult;
|
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.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
|
@ -14,8 +20,17 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
@RequestMapping("/role")
|
@RequestMapping("/role")
|
||||||
public class RoleController {
|
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")
|
@SaAdminCheckPermission(value = "role.add")
|
||||||
public CzgResult add() {
|
public CzgResult add(PageDTO pageDTO) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,18 @@
|
||||||
package com.czg.sa;
|
package com.czg.sa;
|
||||||
|
|
||||||
import cn.dev33.satoken.stp.StpLogic;
|
import cn.dev33.satoken.stp.StpLogic;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import lombok.Getter;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import lombok.Setter;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Administrator
|
* @author Administrator
|
||||||
*/
|
*/
|
||||||
|
@Getter
|
||||||
public class MyStpLogic extends StpLogic {
|
public class MyStpLogic extends StpLogic {
|
||||||
@Resource
|
@Setter
|
||||||
private StringRedisTemplate redisTemplate;
|
private boolean isAdmin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化 StpLogic, 并指定账号类型
|
* 初始化 StpLogic, 并指定账号类型
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -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.dto.SysLoginDTO;
|
||||||
|
import com.czg.service.account.vo.LoginVO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Administrator
|
* @author Administrator
|
||||||
|
|
@ -9,5 +10,5 @@ import com.czg.service.account.dto.SysLoginDTO;
|
||||||
public interface AuthorizationService {
|
public interface AuthorizationService {
|
||||||
Object getCaptcha();
|
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;
|
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.mybatisflex.core.service.IService;
|
||||||
import com.czg.service.account.entity.SysRole;
|
import com.czg.service.account.entity.SysRole;
|
||||||
|
|
||||||
|
|
@ -14,4 +16,6 @@ import java.util.List;
|
||||||
public interface SysRoleService extends IService<SysRole> {
|
public interface SysRoleService extends IService<SysRole> {
|
||||||
|
|
||||||
List<SysRole> getByUserId(Long id);
|
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.entity.*;
|
||||||
import com.czg.service.account.mapper.SysMenuMapper;
|
import com.czg.service.account.mapper.SysMenuMapper;
|
||||||
import com.czg.service.account.service.*;
|
import com.czg.service.account.service.*;
|
||||||
|
import com.czg.service.account.vo.LoginVO;
|
||||||
import com.mybatisflex.core.query.QueryChain;
|
import com.mybatisflex.core.query.QueryChain;
|
||||||
import com.wf.captcha.SpecCaptcha;
|
import com.wf.captcha.SpecCaptcha;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
@ -61,7 +62,7 @@ public class AuthorizationServiceImpl implements AuthorizationService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object login(SysLoginDTO loginDTO) {
|
public LoginVO login(SysLoginDTO loginDTO) {
|
||||||
// Object code = redisService.get(RedisCst.LOGIN_CODE + loginDTO.uuid());
|
// Object code = redisService.get(RedisCst.LOGIN_CODE + loginDTO.uuid());
|
||||||
// if (!"666666".equals(loginDTO.code()) && code == null || !code.equals(loginDTO.code())) {
|
// if (!"666666".equals(loginDTO.code()) && code == null || !code.equals(loginDTO.code())) {
|
||||||
// throw new RuntimeException("验证码错误");
|
// throw new RuntimeException("验证码错误");
|
||||||
|
|
@ -103,6 +104,7 @@ public class AuthorizationServiceImpl implements AuthorizationService {
|
||||||
}
|
}
|
||||||
|
|
||||||
StpKit.ADMIN.login(user.getId());
|
StpKit.ADMIN.login(user.getId());
|
||||||
|
StpKit.ADMIN.setAdmin(user.getIsAdmin());
|
||||||
// 查询角色
|
// 查询角色
|
||||||
List<SysRole> roleList = sysRoleService.getByUserId(user.getId());
|
List<SysRole> roleList = sysRoleService.getByUserId(user.getId());
|
||||||
List<String> roleNames = roleList.stream().map(SysRole::getName).collect(Collectors.toList());
|
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());
|
List<String> promissionList = sysMenuMapper.selectByUserId(user.getId(), null).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||||
StpKit.ADMIN.addPermissionList(promissionList);
|
StpKit.ADMIN.addPermissionList(promissionList);
|
||||||
return Map.of("tokenInfo", StpKit.ADMIN.getTokenInfo(),
|
return new LoginVO(StpKit.ADMIN.getTokenInfo(), promissionList, loginDTO.loginType(), shopInfo);
|
||||||
"loginType", loginDTO.loginType(),
|
|
||||||
"shopInfo", 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;
|
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.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
import com.czg.service.account.entity.SysRole;
|
import com.czg.service.account.entity.SysRole;
|
||||||
import com.czg.service.account.mapper.SysRoleMapper;
|
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) {
|
public List<SysRole> getByUserId(Long id) {
|
||||||
return mapper.selectByUserId(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
|
||||||
|
) {
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue