Compare commits

..

1 Commits

Author SHA1 Message Date
Xiang
22f0b546ad fix:鉴权校验 2026-03-20 11:21:59 +08:00
14 changed files with 81 additions and 75 deletions

56
pom.xml
View File

@@ -3,9 +3,9 @@
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">
<parent>
<groupId>com.xiang</groupId>
<artifactId>xservice-parent-starter</artifactId>
<version>2.0</version>
<groupId>com.xiang.pom</groupId>
<artifactId>xmc-parent</artifactId>
<version>1.0</version>
</parent>
<packaging>pom</packaging>
<modules>
@@ -53,40 +53,42 @@
<version>5.7.11</version>
</dependency>
<dependency>
<groupId>com.xiang</groupId>
<artifactId>xservice-common</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.xiang</groupId>
<artifactId>xservice-mysql-starter</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.xiang</groupId>
<artifactId>xservice-cache-starter</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.5.Final</version>
</dependency>
<!-- 系统二方包 -->
<dependency>
<groupId>com.xiang</groupId>
<artifactId>xservice-message-starter</artifactId>
<groupId>com.xiang.starter</groupId>
<artifactId>xmc-mysql-starter</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.xiang.starter</groupId>
<artifactId>xmc-cache-starter</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.xiang.starter</groupId>
<artifactId>xmc-common</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.xiang.starter</groupId>
<artifactId>xmc-message-starter</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.xiang.starter</groupId>
<artifactId>xmc-http-starter</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.7</version>
<groupId>com.xiang.starter</groupId>
<artifactId>xmc-logger-starter</artifactId>
<version>1.1</version>
</dependency>
</dependencies>

View File

@@ -1,5 +1,7 @@
package com.xiang;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
@@ -7,11 +9,14 @@ import org.springframework.security.config.annotation.method.configuration.Enabl
@SpringBootApplication
@ConfigurationPropertiesScan(basePackages = {
"com.xiang.xservice.basic.xservice.aliyun.config"
})
@EnableMethodSecurity(prePostEnabled = true)
public class AuthApplication {
private static final Logger log = LoggerFactory.getLogger(AuthApplication.class);
public static void main(String[] args) {
SpringApplication.run(AuthApplication.class, args);
log.info("auth-center start success!");
}
}

View File

@@ -34,13 +34,13 @@ public class DeptController {
private final XDeptService deptService;
@PostMapping("/private/dept/list")
public Result<DeptDTO> getDeptList(@RequestBody @Valid @NotNull(message = "请求参数不能为空") DeptQueryRequest request) {
return Result.success(deptService.getDeptList(request));
public Result<List<DeptDTO>> getDeptList(@RequestBody @Valid @NotNull(message = "请求参数不能为空") DeptQueryRequest request) {
return Result.data(deptService.getDeptList(request));
}
@GetMapping("/private/dept/info/{id}")
public Result<DeptDTO> getDeptInfo(@PathVariable Long id) {
return Result.success(deptService.getDeptInfo(id));
return Result.data(deptService.getDeptInfo(id));
}
@PostMapping("/private/dept/add")

View File

@@ -34,19 +34,19 @@ public class RoleController {
private final XRoleService roleService;
@PostMapping("/private/role/list")
public Result<RoleDTO> getRoleList(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleQueryRequest request) {
return Result.success(roleService.getRoleList(request));
public Result<List<RoleDTO>> getRoleList(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleQueryRequest request) {
return Result.data(roleService.getRoleList(request));
}
@GetMapping("/private/role/info/{id}")
public Result<RoleDTO> getRoleInfo(@PathVariable Long id) {
return Result.success(roleService.getRoleInfo(id));
return Result.data(roleService.getRoleInfo(id));
}
@PostMapping("/private/role/add")
public Result<Boolean> addRole(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleAddRequest request) {
try {
return Result.success(roleService.addRole(request));
return Result.data(roleService.addRole(request));
} catch (BusinessException e) {
log.error("角色新增异常,请求:{}", JSON.toJSONString(request), e);
return Result.error(e.getMessage());
@@ -59,7 +59,7 @@ public class RoleController {
@PostMapping("/private/role/update")
public Result<Boolean> updateRole(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleUpdateRequest request) {
try {
return Result.success(roleService.updateRole(request));
return Result.data(roleService.updateRole(request));
} catch (BusinessException e) {
log.error("角色编辑异常,请求:{}", JSON.toJSONString(request), e);
return Result.error(e.getMessage());
@@ -72,7 +72,7 @@ public class RoleController {
@PostMapping("/private/role/del")
public Result<Boolean> delRole(@RequestParam @Valid @NotEmpty(message = "请求参数不能为空") List<Long> ids) {
try {
return Result.success(roleService.delRole(ids));
return Result.data(roleService.delRole(ids));
} catch (BusinessException e) {
log.error("角色删除异常,请求:{}", ids, e);
return Result.error(e.getMessage());
@@ -85,7 +85,7 @@ public class RoleController {
@PostMapping("/private/role/setUser")
public Result<Boolean> setUserRole(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleUserUpdateRequest request) {
try {
return Result.success(roleService.setUserRole(request));
return Result.data(roleService.setUserRole(request));
} catch (BusinessException e) {
log.error("角色用户关联异常,请求:{}", JSON.toJSONString(request), e);
return Result.error(e.getMessage());

View File

@@ -31,7 +31,7 @@ public class TokenController implements TokenApi {
public Result<LoginResp> login(@RequestBody @NotNull(message = "请求参数不能为空") @Valid LoginRequest request) {
try {
LoginResp login = userService.login(request);
return Result.success("操作成功", login);
return Result.data(login);
} catch (BusinessException e) {
log.error("【用户登录】用户登录失败,{}", e.getMessage(), e);
return Result.error(e.getMessage());
@@ -47,7 +47,7 @@ public class TokenController implements TokenApi {
try {
RegisterResp registerResp = userService.userRegister(request);
if (Objects.nonNull(registerResp)) {
return Result.success("操作成功", registerResp);
return Result.data(registerResp);
}
} catch (BusinessException e) {
log.error("【用户注册】用户注册失败:{}", e.getMessage(), e);
@@ -61,6 +61,6 @@ public class TokenController implements TokenApi {
@GetMapping("/private/auth/getInfo")
public Result<UserDTO> getUserInfo() {
// todo token的工具类直接获取token中的userId无需传参
return Result.success(userService.getUserDetail(1L));
return Result.data(userService.getUserDetail(1L));
}
}

View File

@@ -1,7 +1,7 @@
package com.xiang.xservice.auth.server.controller;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiang.xservice.auth.api.dto.req.user.UserAddRequest;
import com.xiang.xservice.auth.api.dto.req.user.UserDeptUpdateRequest;
import com.xiang.xservice.auth.api.dto.req.user.UserQueryRequest;
@@ -33,19 +33,19 @@ public class UserController {
private final XUserService userService;
@PostMapping("/private/user/list")
public Result<PageInfo<UserResp>> getUserList(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserQueryRequest request) {
return Result.success(userService.getUserList(request));
public Result<Page<UserResp>> getUserList(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserQueryRequest request) {
return Result.data(userService.getUserList(request));
}
@GetMapping("/private/user/info/{id}")
public Result<UserResp> getUserById(@PathVariable("id") Long id) {
return Result.success(userService.getUserInfo(id));
return Result.data(userService.getUserInfo(id));
}
@PostMapping("/private/user/add")
public Result<Boolean> addUser(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserAddRequest request) {
try {
return Result.success(userService.addUser(request));
return Result.data(userService.addUser(request));
} catch (BusinessException e) {
log.error("用户新增异常,请求:{}", JSON.toJSONString(request), e);
return Result.error(e.getMessage());
@@ -58,7 +58,7 @@ public class UserController {
@PostMapping("/private/user/update")
public Result<Boolean> updateUser(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserUpdateRequest request) {
try {
return Result.success(userService.updateUser(request));
return Result.data(userService.updateUser(request));
} catch (BusinessException e) {
log.error("用户编辑异常,请求:{}", JSON.toJSONString(request), e);
return Result.error(e.getMessage());
@@ -71,7 +71,7 @@ public class UserController {
@PostMapping("/private/user/del")
public Result<Boolean> delUser(@RequestParam @Valid @NotEmpty(message = "请求参数不能为空") List<Long> ids) {
try {
return Result.success(userService.delUser(ids));
return Result.data(userService.delUser(ids));
} catch (BusinessException e) {
log.error("用户删除异常,请求:{}", JSON.toJSONString(ids), e);
return Result.error(e.getMessage());
@@ -84,7 +84,7 @@ public class UserController {
@PostMapping("/private/user/setDept")
public Result<Boolean> setUserDept(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserDeptUpdateRequest request) {
try {
return Result.success(userService.setUserDept(request));
return Result.data(userService.setUserDept(request));
} catch (BusinessException e) {
log.error("用户设置部门异常,请求:{}", JSON.toJSONString(request), e);
return Result.error(e.getMessage());
@@ -97,7 +97,7 @@ public class UserController {
@PostMapping("/private/user/setRole")
public Result<Boolean> setUserRole(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserRoleUpdateRequest request) {
try {
return Result.success(userService.setUserRole(request));
return Result.data(userService.setUserRole(request));
} catch (BusinessException e) {
log.error("用户设置角色异常,请求:{}", JSON.toJSONString(request), e);
return Result.error(e.getMessage());

View File

@@ -1,12 +1,12 @@
package com.xiang.xservice.auth.server.controller;
import com.xiang.xmc.service.message.aliyun.smscode.ISmsCodeService;
import com.xiang.xservice.auth.api.dto.req.CaptchaImageRequest;
import com.xiang.xservice.auth.api.dto.resp.CaptchaDTO;
import com.xiang.xservice.auth.service.enums.CaptchaTypeEnum;
import com.xiang.xservice.auth.service.service.ValidCodeGenerateFactory;
import com.xiang.xservice.basic.common.resp.Result;
import com.xiang.xservice.basic.utils.RandomCodeUtils;
import com.xiang.xservice.basic.xservice.aliyun.smscode.ISmsCodeService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -45,7 +45,7 @@ public class ValidationCodeController {
captchaImage = validCodeGenerateFactory.get(CaptchaTypeEnum.NORMAL_CAPTCHA_IMAGE.getType()).getCaptchaImage(request);
}
}
return Result.success(captchaImage);
return Result.data(captchaImage);
} catch (Exception e) {
log.error("获取验证码失败", e);
}

View File

@@ -12,16 +12,16 @@ spring:
primary: master
datasource:
master:
url: jdbc:mysql://rm-bp15t34gqx62jm069ro.mysql.rds.aliyuncs.com:3306/xservice-user?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
url: jdbc:mysql://120.27.153.87:3306/xservice-user?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: root
password: xb#UWqnhH24&XpX
password: sdkljfikdfn@123
driver-class-name: com.mysql.cj.jdbc.Driver
sshConnect: false
redis:
host: r-bp1wt59a6nfyt4e3ltpd.redis.rds.aliyuncs.com
port: 6379
password: Xiang0000 # 如果无密码可以省略
database: 0
database: 10
timeout: 5000
lettuce:
pool:

View File

@@ -1,6 +1,6 @@
package com.xiang.xservice.auth.service.convert;
import com.github.pagehelper.PageInfo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiang.xservice.auth.api.dto.req.user.UserAddRequest;
import com.xiang.xservice.auth.api.dto.req.user.UserQueryRequest;
import com.xiang.xservice.auth.api.dto.req.user.UserUpdateRequest;
@@ -17,7 +17,7 @@ public interface XUserConvert {
XUser toDO (UserAddRequest request);
XUser toDO (UserUpdateRequest request);
PageInfo<UserResp> toPage(PageInfo<XUser> list);
UserResp toResp(XUser user);
Page<UserResp> toPage(Page<XUser> page);
}

View File

@@ -1,5 +1,7 @@
package com.xiang.xservice.auth.service.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiang.xservice.auth.service.entity.XUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -10,7 +12,7 @@ import java.util.List;
@Repository
@Mapper
public interface XUserMapper {
public interface XUserMapper extends BaseMapper<XUser> {
/**
* 根据用户名查询用户
@@ -38,7 +40,7 @@ public interface XUserMapper {
* @param user
* @return
*/
List<XUser> getUserList(XUser user);
Page<XUser> getUserList(XUser user);
/**
* 查询用户详情

View File

@@ -1,6 +1,6 @@
package com.xiang.xservice.auth.service.service;
import com.github.pagehelper.PageInfo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiang.xservice.auth.api.dto.req.LoginRequest;
import com.xiang.xservice.auth.api.dto.req.RegisterRequest;
import com.xiang.xservice.auth.api.dto.req.user.UserAddRequest;
@@ -23,7 +23,7 @@ public interface XUserService {
RegisterResp userRegister(RegisterRequest request);
PageInfo<UserResp> getUserList(UserQueryRequest request);
Page<UserResp> getUserList(UserQueryRequest request);
UserResp getUserInfo(Long id);

View File

@@ -1,8 +1,10 @@
package com.xiang.xservice.auth.service.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.xiang.xmc.service.cache.service.IRedisService;
import com.xiang.xservice.auth.api.code.Code01UserErrorCode;
import com.xiang.xservice.auth.api.code.Code02RoleErrorCode;
import com.xiang.xservice.auth.api.code.Code03DeptErrorCode;
@@ -41,7 +43,6 @@ import com.xiang.xservice.auth.service.service.XUserService;
import com.xiang.xservice.basic.enums.DelStatusEnum;
import com.xiang.xservice.basic.exception.BusinessException;
import com.xiang.xservice.basic.utils.PrimaryKeyUtils;
import com.xiang.xservice.cache.service.IRedisService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -220,14 +221,10 @@ public class XUserServiceImpl implements XUserService {
}
@Override
public PageInfo<UserResp> getUserList(UserQueryRequest request) {
PageHelper.startPage(request.getCurrent(), request.getPageSize());
List<XUser> userList = userMapper.getUserList(userConvert.toDO(request));
if (CollectionUtils.isEmpty(userList)) {
return new PageInfo<>();
}
PageInfo<XUser> pageInfo = new PageInfo<>(userList);
return userConvert.toPage(pageInfo);
public Page<UserResp> getUserList(UserQueryRequest request) {
Page<XUser> page = new Page<>(request.getCurrent(), request.getPageSize());
LambdaQueryWrapper<XUser> lambdaQueryWrapper = Wrappers.lambdaQuery();
return userConvert.toPage(userMapper.selectPage(page, lambdaQueryWrapper));
}
@Override

View File

@@ -1,12 +1,12 @@
package com.xiang.xservice.auth.service.service.impl.captcha;
import com.xiang.xmc.service.cache.service.IRedisService;
import com.xiang.xservice.auth.api.dto.req.CaptchaImageRequest;
import com.xiang.xservice.auth.api.dto.resp.CaptchaDTO;
import com.xiang.xservice.auth.service.constants.RedisConstant;
import com.xiang.xservice.auth.service.enums.CaptchaTypeEnum;
import com.xiang.xservice.auth.service.service.ICaptchaService;
import com.xiang.xservice.basic.utils.RandomCodeUtils;
import com.xiang.xservice.cache.service.IRedisService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

View File

@@ -1,12 +1,12 @@
package com.xiang.xservice.auth.service.service.impl.captcha;
import com.xiang.xmc.service.cache.service.IRedisService;
import com.xiang.xservice.auth.api.dto.req.CaptchaImageRequest;
import com.xiang.xservice.auth.api.dto.resp.CaptchaDTO;
import com.xiang.xservice.auth.service.constants.RedisConstant;
import com.xiang.xservice.auth.service.enums.CaptchaTypeEnum;
import com.xiang.xservice.auth.service.service.ICaptchaService;
import com.xiang.xservice.basic.utils.RandomCodeUtils;
import com.xiang.xservice.cache.service.IRedisService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;