1.账号权限补充

2.角色相关接口
This commit is contained in:
张松
2025-02-10 14:45:38 +08:00
parent babfa6a8ca
commit 1255780aa1
11 changed files with 97 additions and 19 deletions

View File

@@ -0,0 +1,4 @@
package com.czg.service.account.dto;
public record PageDTO(Integer page, Integer size) {
}

View File

@@ -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);
}

View File

@@ -0,0 +1,7 @@
package com.czg.service.account.service;
/**
* @author Administrator
*/
public interface PermissionService {
}

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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 {
}

View File

@@ -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()));
}
}

View File

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