feat:角色接口开发v1
This commit is contained in:
@@ -1,4 +1,48 @@
|
||||
package com.xiang.xservice.auth.api.dto.resp;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class RoleDTO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 状态(0:禁用 1:启用)
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* data_scope
|
||||
*/
|
||||
private Integer dataScope;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private LocalDateTime updatedTime;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String updateBy;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
package com.xiang.xservice.auth.server.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleAddRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleQueryRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleUpdateRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleUserUpdateRequest;
|
||||
import com.xiang.xservice.auth.api.dto.resp.RoleDTO;
|
||||
import com.xiang.xservice.auth.service.service.RoleService;
|
||||
import com.xiang.xservice.basic.common.resp.Result;
|
||||
import com.xiang.xservice.basic.exception.BusinessException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -22,33 +26,60 @@ import java.util.List;
|
||||
/**
|
||||
* 角色控制器
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class RoleController {
|
||||
|
||||
private final RoleService roleService;
|
||||
|
||||
@PostMapping("/private/role/list")
|
||||
public Result<RoleDTO> getRoleList(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleQueryRequest request) {
|
||||
return Result.success(new RoleDTO());
|
||||
return Result.success(roleService.getRoleList(request));
|
||||
}
|
||||
|
||||
@GetMapping("/private/role/info/{id}")
|
||||
public Result<RoleDTO> getRoleInfo(@PathVariable Long id) {
|
||||
return Result.success(new RoleDTO());
|
||||
return Result.success(roleService.getRoleInfo(id));
|
||||
}
|
||||
|
||||
@PostMapping("/private/role/add")
|
||||
public Result<Void> addRole(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleAddRequest request) {
|
||||
return Result.success();
|
||||
public Result<Boolean> addRole(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleAddRequest request) {
|
||||
try {
|
||||
return Result.success(roleService.addRole(request));
|
||||
} catch (BusinessException e) {
|
||||
log.error("角色新增异常,请求:{}", JSON.toJSONString(request), e);
|
||||
return Result.error(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("角色新增异常,请求:{}", JSON.toJSONString(request), e);
|
||||
}
|
||||
return Result.error();
|
||||
}
|
||||
|
||||
@PostMapping("/private/role/update")
|
||||
public Result<Void> updateRole(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleUpdateRequest request) {
|
||||
return Result.success();
|
||||
public Result<Boolean> updateRole(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RoleUpdateRequest request) {
|
||||
try {
|
||||
return Result.success(roleService.updateRole(request));
|
||||
} catch (BusinessException e) {
|
||||
log.error("角色编辑异常,请求:{}", JSON.toJSONString(request), e);
|
||||
return Result.error(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("角色编辑异常,请求:{}", JSON.toJSONString(request), e);
|
||||
}
|
||||
return Result.error();
|
||||
}
|
||||
|
||||
@PostMapping("/private/role/del")
|
||||
public Result<Void> delRole(@RequestParam @Valid @NotEmpty(message = "请求参数不能为空") List<Long> ids) {
|
||||
return Result.success();
|
||||
public Result<Boolean> delRole(@RequestParam @Valid @NotEmpty(message = "请求参数不能为空") List<Long> ids) {
|
||||
try {
|
||||
return Result.success(roleService.delRole(ids));
|
||||
} catch (BusinessException e) {
|
||||
log.error("角色删除异常,请求:{}", ids, e);
|
||||
return Result.error(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("角色删除异常,请求:{}", ids, e);
|
||||
}
|
||||
return Result.error();
|
||||
}
|
||||
|
||||
@PostMapping("/private/role/setUser")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.xiang.xservice.auth.service.convert;
|
||||
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleAddRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleQueryRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleUpdateRequest;
|
||||
import com.xiang.xservice.auth.api.dto.resp.RoleDTO;
|
||||
import com.xiang.xservice.auth.service.entity.XRole;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper(componentModel = "spring")
|
||||
public interface XRoleConvert {
|
||||
XRoleConvert INSTANCE = Mappers.getMapper(XRoleConvert.class);
|
||||
|
||||
XRole toDO(RoleQueryRequest request);
|
||||
XRole toDO(RoleAddRequest request);
|
||||
XRole toDO(RoleUpdateRequest request);
|
||||
|
||||
List<RoleDTO> toDTOList(List<XRole> roleList);
|
||||
|
||||
RoleDTO toDTO(XRole role);
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.xiang.xservice.auth.service.entity;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class XRole implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 状态(0:禁用 1:启用)
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* data_scope
|
||||
*/
|
||||
private Integer dataScope;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createdTime;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private LocalDateTime updatedTime;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 删除标识(0:未删除 1:已删除)
|
||||
*/
|
||||
private Integer delFlag;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.xiang.xservice.auth.service.repository.mapper;
|
||||
|
||||
import com.xiang.xservice.auth.service.entity.XRole;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface XRoleMapper {
|
||||
|
||||
int insert(XRole record);
|
||||
int update(XRole record);
|
||||
int delBatch(@Param("ids") List<Long> ids, @Param("time") LocalDateTime time, @Param("operator") String operator);
|
||||
List<XRole> getRoleList(XRole record);
|
||||
XRole getRoleById(Long id);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.xiang.xservice.auth.service.service;
|
||||
|
||||
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleAddRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleQueryRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleUpdateRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleUserUpdateRequest;
|
||||
import com.xiang.xservice.auth.api.dto.resp.RoleDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface RoleService {
|
||||
List<RoleDTO> getRoleList(RoleQueryRequest request);
|
||||
|
||||
RoleDTO getRoleInfo(Long id);
|
||||
|
||||
Boolean addRole(RoleAddRequest request);
|
||||
|
||||
Boolean updateRole(RoleUpdateRequest request);
|
||||
|
||||
Boolean delRole(List<Long> ids);
|
||||
|
||||
Boolean setUserDept(RoleUserUpdateRequest request);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.xiang.xservice.auth.service.service.impl;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleAddRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleQueryRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleUpdateRequest;
|
||||
import com.xiang.xservice.auth.api.dto.req.role.RoleUserUpdateRequest;
|
||||
import com.xiang.xservice.auth.api.dto.resp.RoleDTO;
|
||||
import com.xiang.xservice.auth.service.convert.XRoleConvert;
|
||||
import com.xiang.xservice.auth.service.entity.XRole;
|
||||
import com.xiang.xservice.auth.service.repository.mapper.XRoleMapper;
|
||||
import com.xiang.xservice.auth.service.service.RoleService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class XRoleServiceImpl implements RoleService {
|
||||
private final XRoleMapper roleMapper;
|
||||
private final XRoleConvert roleConvert;
|
||||
|
||||
@Override
|
||||
public List<RoleDTO> getRoleList(RoleQueryRequest request) {
|
||||
List<XRole> roleList = roleMapper.getRoleList(roleConvert.toDO(request));
|
||||
if (CollectionUtils.isEmpty(roleList)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
return roleConvert.toDTOList(roleList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RoleDTO getRoleInfo(Long id) {
|
||||
XRole role = roleMapper.getRoleById(id);
|
||||
return roleConvert.toDTO(role);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean addRole(RoleAddRequest request) {
|
||||
return roleMapper.insert(roleConvert.toDO(request)) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateRole(RoleUpdateRequest request) {
|
||||
return roleMapper.update(roleConvert.toDO(request)) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delRole(List<Long> ids) {
|
||||
return roleMapper.delBatch(ids, LocalDateTime.now(), "System") > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean setUserDept(RoleUserUpdateRequest request) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
142
xs-service/src/main/resources/mapper/user/XRoleMapper.xml
Normal file
142
xs-service/src/main/resources/mapper/user/XRoleMapper.xml
Normal file
@@ -0,0 +1,142 @@
|
||||
<?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.XRoleMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.xiang.xservice.auth.service.entity.XRole" >
|
||||
<result column="id" property="id" />
|
||||
<result column="name" property="name" />
|
||||
<result column="code" property="code" />
|
||||
<result column="status" property="status" />
|
||||
<result column="data_scope" property="dataScope" />
|
||||
<result column="created_time" property="createdTime" />
|
||||
<result column="create_by" property="createBy" />
|
||||
<result column="updated_time" property="updatedTime" />
|
||||
<result column="update_by" property="updateBy" />
|
||||
<result column="del_flag" property="delFlag" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,
|
||||
name,
|
||||
code,
|
||||
status,
|
||||
data_scope,
|
||||
created_time,
|
||||
create_by,
|
||||
updated_time,
|
||||
update_by,
|
||||
del_flag
|
||||
</sql>
|
||||
|
||||
<insert id="insert" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.xiang.xservice.auth.service.entity.XRole">
|
||||
INSERT INTO x_role
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="null != name and '' != name">
|
||||
name,
|
||||
</if>
|
||||
<if test="null != code and '' != code">
|
||||
code,
|
||||
</if>
|
||||
<if test="null != status ">
|
||||
status,
|
||||
</if>
|
||||
<if test="null != dataScope ">
|
||||
data_scope,
|
||||
</if>
|
||||
<if test="null != createdTime ">
|
||||
created_time,
|
||||
</if>
|
||||
<if test="null != createBy and '' != createBy">
|
||||
create_by,
|
||||
</if>
|
||||
<if test="null != updatedTime ">
|
||||
updated_time,
|
||||
</if>
|
||||
<if test="null != updateBy and '' != updateBy">
|
||||
update_by,
|
||||
</if>
|
||||
<if test="null != delFlag ">
|
||||
del_flag
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="null != name and '' != name">
|
||||
#{name},
|
||||
</if>
|
||||
<if test="null != code and '' != code">
|
||||
#{code},
|
||||
</if>
|
||||
<if test="null != status ">
|
||||
#{status},
|
||||
</if>
|
||||
<if test="null != dataScope ">
|
||||
#{dataScope},
|
||||
</if>
|
||||
<if test="null != createdTime ">
|
||||
#{createdTime},
|
||||
</if>
|
||||
<if test="null != createBy and '' != createBy">
|
||||
#{createBy},
|
||||
</if>
|
||||
<if test="null != updatedTime ">
|
||||
#{updatedTime},
|
||||
</if>
|
||||
<if test="null != updateBy and '' != updateBy">
|
||||
#{updateBy},
|
||||
</if>
|
||||
<if test="null != delFlag ">
|
||||
#{delFlag}
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="delBatch" >
|
||||
update x_role set del_flag = 0, update_time = #{time}, update_by = #{operator} where id in
|
||||
<foreach collection="ids" item="id" open="(" close=")" separator=",">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<update id="update" parameterType="com.xiang.xservice.auth.service.entity.XRole">
|
||||
UPDATE x_role
|
||||
<set>
|
||||
<if test="null != name and '' != name">name = #{name},</if>
|
||||
<if test="null != code and '' != code">code = #{code},</if>
|
||||
<if test="null != status ">status = #{status},</if>
|
||||
<if test="null != dataScope ">data_scope = #{dataScope},</if>
|
||||
<if test="null != createdTime ">created_time = #{createdTime},</if>
|
||||
<if test="null != createBy and '' != createBy">create_by = #{createBy},</if>
|
||||
<if test="null != updatedTime ">updated_time = #{updatedTime},</if>
|
||||
<if test="null != updateBy and '' != updateBy">update_by = #{updateBy},</if>
|
||||
<if test="null != delFlag ">del_flag = #{delFlag}</if>
|
||||
</set>
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<select id="getRoleById" resultMap="BaseResultMap">
|
||||
select <include refid="Base_Column_List"/>
|
||||
from x_role
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="getRoleList" resultMap="BaseResultMap">
|
||||
select <include refid="Base_Column_List"/>
|
||||
from x_role
|
||||
<trim prefix="AND">
|
||||
<if test="name != null and name != ''">
|
||||
AND name = #{name}
|
||||
</if>
|
||||
<if test="code != null and code != ''">
|
||||
AND code = #{code}
|
||||
</if>
|
||||
<if test="status != null">
|
||||
AND status = #{status}
|
||||
</if>
|
||||
<if test="dataScope != null">
|
||||
AND data_scope = #{dataScope}
|
||||
</if>
|
||||
</trim>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user