feat:角色接口开发v1

This commit is contained in:
xiang
2025-08-25 23:54:31 +08:00
parent c6592f2e5d
commit 09d2eb87b8
11 changed files with 197 additions and 5 deletions

View File

@@ -1,4 +1,32 @@
package com.xiang.xservice.auth.api.dto.req.role; package com.xiang.xservice.auth.api.dto.req.role;
public class RoleAddRequest { import com.xiang.xservice.basic.common.req.BaseRequest;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RoleAddRequest extends BaseRequest {
/**
* 名称
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 状态0禁用 1启用
*/
private Integer status;
/**
* data_scope
*/
private Integer dataScope;
} }

View File

@@ -1,4 +1,31 @@
package com.xiang.xservice.auth.api.dto.req.role; package com.xiang.xservice.auth.api.dto.req.role;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RoleQueryRequest { public class RoleQueryRequest {
/**
* 名称
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 状态0禁用 1启用
*/
private Integer status;
/**
* data_scope
*/
private Integer dataScope;
} }

View File

@@ -1,4 +1,14 @@
package com.xiang.xservice.auth.api.dto.req.role; package com.xiang.xservice.auth.api.dto.req.role;
public class RoleUpdateRequest { import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RoleUpdateRequest extends RoleAddRequest{
private Long id;
} }

View File

@@ -1,4 +1,22 @@
package com.xiang.xservice.auth.api.dto.req.user; package com.xiang.xservice.auth.api.dto.req.user;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserRoleUpdateRequest { public class UserRoleUpdateRequest {
/**
* 用户id
*/
private Long userId;
/**
* 角色id集合
*/
private List<Long> roleIds;
} }

View File

@@ -0,0 +1,20 @@
package com.xiang.xservice.auth.service.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XUserRole {
/**
* 用户id
*/
private Long userId;
/**
* 角色id
*/
private Long roleId;
}

View File

@@ -17,5 +17,6 @@ public interface XRoleMapper {
int delBatch(@Param("ids") List<Long> ids, @Param("time") LocalDateTime time, @Param("operator") String operator); int delBatch(@Param("ids") List<Long> ids, @Param("time") LocalDateTime time, @Param("operator") String operator);
List<XRole> getRoleList(XRole record); List<XRole> getRoleList(XRole record);
XRole getRoleById(Long id); XRole getRoleById(Long id);
List<XRole> getRoleByIds(@Param("ids") List<Long> ids);
} }

View File

@@ -0,0 +1,19 @@
package com.xiang.xservice.auth.service.repository.mapper;
import com.xiang.xservice.auth.service.entity.XUserRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
@Mapper
public interface XUserRoleMapper {
int insertUserRole(@Param("list") List<XUserRole> userRoles);
int delByUserId(@Param("userId") Long userId);
int delByRoleIds(@Param("list") List<Long> roleIds);
}

View File

@@ -40,12 +40,18 @@ public class XRoleServiceImpl implements RoleService {
@Override @Override
public Boolean addRole(RoleAddRequest request) { public Boolean addRole(RoleAddRequest request) {
return roleMapper.insert(roleConvert.toDO(request)) > 0; XRole role = roleConvert.toDO(request);
role.setCreateBy(request.getOperator());
role.setUpdateBy(request.getOperator());
return roleMapper.insert(role) > 0;
} }
@Override @Override
public Boolean updateRole(RoleUpdateRequest request) { public Boolean updateRole(RoleUpdateRequest request) {
return roleMapper.update(roleConvert.toDO(request)) > 0; XRole role = roleConvert.toDO(request);
role.setCreateBy(request.getOperator());
role.setUpdateBy(request.getOperator());
return roleMapper.update(role) > 0;
} }
@Override @Override

View File

@@ -14,8 +14,11 @@ import com.xiang.xservice.auth.api.dto.resp.RegisterResp;
import com.xiang.xservice.auth.api.dto.resp.UserResp; import com.xiang.xservice.auth.api.dto.resp.UserResp;
import com.xiang.xservice.auth.service.convert.XUserConvert; import com.xiang.xservice.auth.service.convert.XUserConvert;
import com.xiang.xservice.auth.service.entity.XUser; import com.xiang.xservice.auth.service.entity.XUser;
import com.xiang.xservice.auth.service.entity.XUserRole;
import com.xiang.xservice.auth.service.enums.UserStatusEnum; import com.xiang.xservice.auth.service.enums.UserStatusEnum;
import com.xiang.xservice.auth.service.repository.mapper.XRoleMapper;
import com.xiang.xservice.auth.service.repository.mapper.XUserMapper; import com.xiang.xservice.auth.service.repository.mapper.XUserMapper;
import com.xiang.xservice.auth.service.repository.mapper.XUserRoleMapper;
import com.xiang.xservice.auth.service.service.XUserService; import com.xiang.xservice.auth.service.service.XUserService;
import com.xiang.xservice.basic.enums.DelStatusEnum; import com.xiang.xservice.basic.enums.DelStatusEnum;
import com.xiang.xservice.basic.exception.BusinessException; import com.xiang.xservice.basic.exception.BusinessException;
@@ -49,6 +52,8 @@ public class XUserServiceImpl implements XUserService {
private final AuthenticationManager authenticationManager; private final AuthenticationManager authenticationManager;
private final PasswordEncoder passwordEncoder; private final PasswordEncoder passwordEncoder;
private final XUserConvert userConvert; private final XUserConvert userConvert;
private final XRoleMapper roleMapper;
private final XUserRoleMapper userRoleMapper;
@Override @Override
public LoginResp login(LoginRequest request) { public LoginResp login(LoginRequest request) {
@@ -182,6 +187,22 @@ public class XUserServiceImpl implements XUserService {
@Override @Override
public Boolean setUserRole(UserRoleUpdateRequest request) { public Boolean setUserRole(UserRoleUpdateRequest request) {
return null; XUser user = userMapper.getUserById(request.getUserId());
if (Objects.isNull(user)) {
log.error("查询用户信息不存在用户id:{}", request.getUserId());
throw new BusinessException(UserErrorCode.USER_NOT_EXISTS);
}
List<XUserRole> params = Lists.newArrayList();
for (Long roleId : request.getRoleIds()) {
XUserRole userRole = new XUserRole();
userRole.setRoleId(roleId);
userRole.setUserId(request.getUserId());
params.add(userRole);
}
if (CollectionUtils.isNotEmpty(params)) {
return userRoleMapper.insertUserRole(params) > 0;
}
return Boolean.FALSE;
} }
} }

View File

@@ -138,5 +138,13 @@
</if> </if>
</trim> </trim>
</select> </select>
<select id="getRoleByIds" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from x_role
where id in
<foreach collection="ids" item="id" close=")" open="(" separator=",">
#{id}
</foreach>
</select>
</mapper> </mapper>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xiang.xservice.auth.service.repository.mapper.XUserRoleMapper">
<resultMap id="BaseResultMap" type="com.xiang.xservice.auth.service.entity.XUserRole" >
<result column="user_id" property="userId" />
<result column="role_id" property="roleId" />
</resultMap>
<sql id="Base_Column_List">
user_id,
role_id
</sql>
<insert id="insertUserRole">
insert into x_user_role(user_id, role_id)
values
<foreach collection="list" item="item" separator=",">
(#{item.userId}, #{item.roleId})
</foreach>
</insert>
<delete id="delByUserId">
delete from x_user_role where user_id = #{userId}
</delete>
<delete id="delByRoleIds">
delete from x_user_role where role_id in
<foreach collection="list" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>