提交 f54808c1 编写于 作者: 112Lst's avatar 112Lst

【add】用户权限关联

上级 8e0bac29
package com.lssst.auth.application.controller;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Preconditions;
import com.lssst.auth.application.convert.AuthRolePermissionDTOConverter;
import com.lssst.auth.application.dto.AuthRolePermissionDTO;
import com.lssst.auth.common.entity.Result;
import com.lssst.auth.domain.entity.AuthRolePermissionBO;
import com.lssst.auth.domain.service.AuthRolePermissionDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 角色权限controller
*/
@RestController
@RequestMapping("/rolePermission/")
@Slf4j
public class RolePermissionController {
@Resource
private AuthRolePermissionDomainService authRolePermissionDomainService;
/**
* 新增角色权限关联关系
*/
@RequestMapping("add")
public Result<Boolean> add(@RequestBody AuthRolePermissionDTO authRolePermissionDTO) {
try {
if (log.isInfoEnabled()) {
log.info("RolePermissionController.add.dto:{}", JSON.toJSONString(authRolePermissionDTO));
}
Preconditions.checkArgument(!CollectionUtils.isEmpty(authRolePermissionDTO.getPermissionIdList()),"权限关联不能为空");
Preconditions.checkNotNull(authRolePermissionDTO.getRoleId(),"角色不能为空!");
AuthRolePermissionBO rolePermissionBO = AuthRolePermissionDTOConverter.INSTANCE.convertDTOToBO(authRolePermissionDTO);
return Result.ok(authRolePermissionDomainService.add(rolePermissionBO));
} catch (Exception e) {
log.error("PermissionController.add.error:{}", e.getMessage(), e);
return Result.fail("新增角色权限失败");
}
}
}
package com.lssst.auth.application.convert;
import com.lssst.auth.application.dto.AuthRolePermissionDTO;
import com.lssst.auth.domain.entity.AuthRolePermissionBO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* 权限dto转换器
*/
@Mapper
public interface AuthRolePermissionDTOConverter {
AuthRolePermissionDTOConverter INSTANCE = Mappers.getMapper(AuthRolePermissionDTOConverter.class);
AuthRolePermissionBO convertDTOToBO(AuthRolePermissionDTO authRolePermissionDTO);
}
package com.lssst.auth.application.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* (AuthRolePermission)实体类
*/
@Data
public class AuthRolePermissionDTO implements Serializable {
private static final long serialVersionUID = 459343371709166261L;
private Long id;
private Long roleId;
private Long permissionId;
private List<Long> permissionIdList;
}
package com.lssst.auth.domain.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* (AuthRolePermission)实体类
*/
@Data
public class AuthRolePermissionBO implements Serializable {
private static final long serialVersionUID = 459343371709166261L;
private Long id;
private Long roleId;
private Long permissionId;
private List<Long> permissionIdList;
}
package com.lssst.auth.domain.service;
import com.lssst.auth.domain.entity.AuthRolePermissionBO;
/**
* 角色领域service
*/
public interface AuthRolePermissionDomainService {
Boolean add(AuthRolePermissionBO authRolePermissionBO);
}
package com.lssst.auth.domain.service.impl;
import com.lssst.auth.common.enums.IsDeletedFlagEnum;
import com.lssst.auth.domain.entity.AuthRolePermissionBO;
import com.lssst.auth.domain.service.AuthRolePermissionDomainService;
import com.lssst.auth.infra.basic.entity.AuthRolePermission;
import com.lssst.auth.infra.basic.service.AuthRolePermissionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;
@Service
@Slf4j
public class AuthRolePermissionDomainServiceImpl implements AuthRolePermissionDomainService {
@Resource
private AuthRolePermissionService authRolePermissionService;
@Override
public Boolean add(AuthRolePermissionBO authRolePermissionBO) {
List<AuthRolePermission> rolePermissionList = new LinkedList<>();
Long roleId = authRolePermissionBO.getRoleId();
authRolePermissionBO.getPermissionIdList().forEach(permissionId -> {
AuthRolePermission authRolePermission = new AuthRolePermission();
authRolePermission.setRoleId(roleId);
authRolePermission.setPermissionId(permissionId);
authRolePermission.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
rolePermissionList.add(authRolePermission);
});
int count = authRolePermissionService.batchInsert(rolePermissionList);
return count > 0;
}
}
package com.lssst.auth.infra.basic.entity;
import java.util.Date;
import java.io.Serializable;
/**
* (AuthRolePermission)实体类
*/
public class AuthRolePermission implements Serializable {
private static final long serialVersionUID = 459343371709166261L;
private Long id;
private Long roleId;
private Long permissionId;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
private Integer isDeleted;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public Long getPermissionId() {
return permissionId;
}
public void setPermissionId(Long permissionId) {
this.permissionId = permissionId;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(Integer isDeleted) {
this.isDeleted = isDeleted;
}
}
......@@ -7,6 +7,9 @@ import java.util.List;
/**
* (AuthRole)表数据库访问层
*
* @author makejava
* @since 2023-11-02 23:55:19
*/
public interface AuthRoleDao {
......@@ -24,7 +27,7 @@ public interface AuthRoleDao {
* @param authRole 查询条件
* @return 对象列表
*/
List<AuthRole> queryAllByLimit(AuthRole authRole);
AuthRole queryAllByLimit(AuthRole authRole);
/**
* 统计总行数
......
package com.lssst.auth.infra.basic.mapper;
import com.lssst.auth.infra.basic.entity.AuthRolePermission;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* (AuthRolePermission)表数据库访问层
*
* @author makejava
* @since 2023-11-04 22:16:00
*/
public interface AuthRolePermissionDao {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
AuthRolePermission queryById(Long id);
/**
* 查询指定行数据
*
* @param authRolePermission 查询条件
* @return 对象列表
*/
List<AuthRolePermission> queryAllByLimit(AuthRolePermission authRolePermission);
/**
* 统计总行数
*
* @param authRolePermission 查询条件
* @return 总行数
*/
long count(AuthRolePermission authRolePermission);
/**
* 新增数据
*
* @param authRolePermission 实例对象
* @return 影响行数
*/
int insert(AuthRolePermission authRolePermission);
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<AuthRolePermission> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<AuthRolePermission> entities);
/**
* 批量新增或按主键更新数据(MyBatis原生foreach方法)
*
* @param entities List<AuthRolePermission> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<AuthRolePermission> entities);
/**
* 修改数据
*
* @param authRolePermission 实例对象
* @return 影响行数
*/
int update(AuthRolePermission authRolePermission);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Long id);
}
package com.lssst.auth.infra.basic.service;
import com.lssst.auth.infra.basic.entity.AuthRolePermission;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.List;
/**
* (AuthRolePermission)表服务接口
*/
public interface AuthRolePermissionService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
AuthRolePermission queryById(Long id);
/**
* 新增数据
*
* @param authRolePermission 实例对象
* @return 实例对象
*/
AuthRolePermission insert(AuthRolePermission authRolePermission);
int batchInsert(List<AuthRolePermission> authRolePermissionList);
/**
* 修改数据
*
* @param authRolePermission 实例对象
* @return 实例对象
*/
AuthRolePermission update(AuthRolePermission authRolePermission);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Long id);
}
package com.lssst.auth.infra.basic.service.impl;
import com.lssst.auth.infra.basic.entity.AuthRolePermission;
import com.lssst.auth.infra.basic.mapper.AuthRolePermissionDao;
import com.lssst.auth.infra.basic.service.AuthRolePermissionService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* (AuthRolePermission)表服务实现类
*/
@Service("authRolePermissionService")
public class AuthRolePermissionServiceImpl implements AuthRolePermissionService {
@Resource
private AuthRolePermissionDao authRolePermissionDao;
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public AuthRolePermission queryById(Long id) {
return this.authRolePermissionDao.queryById(id);
}
/**
* 新增数据
*
* @param authRolePermission 实例对象
* @return 实例对象
*/
@Override
public AuthRolePermission insert(AuthRolePermission authRolePermission) {
this.authRolePermissionDao.insert(authRolePermission);
return authRolePermission;
}
@Override
public int batchInsert(List<AuthRolePermission> authRolePermissionList) {
return this.authRolePermissionDao.insertBatch(authRolePermissionList);
}
/**
* 修改数据
*
* @param authRolePermission 实例对象
* @return 实例对象
*/
@Override
public AuthRolePermission update(AuthRolePermission authRolePermission) {
this.authRolePermissionDao.update(authRolePermission);
return this.queryById(authRolePermission.getId());
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Long id) {
return this.authRolePermissionDao.deleteById(id) > 0;
}
}
<?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.lssst.auth.infra.basic.mapper.AuthRolePermissionDao">
<resultMap type="com.lssst.auth.infra.basic.entity.AuthRolePermission" id="AuthRolePermissionMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="roleId" column="role_id" jdbcType="INTEGER"/>
<result property="permissionId" column="permission_id" jdbcType="INTEGER"/>
<result property="createdBy" column="created_by" jdbcType="VARCHAR"/>
<result property="createdTime" column="created_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="isDeleted" column="is_deleted" jdbcType="INTEGER"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="AuthRolePermissionMap">
select
id, role_id, permission_id, created_by, created_time, update_by, update_time, is_deleted
from auth_role_permission
where id = #{id}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="AuthRolePermissionMap">
select
id, role_id, permission_id, created_by, created_time, update_by, update_time, is_deleted
from auth_role_permission
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="roleId != null">
and role_id = #{roleId}
</if>
<if test="permissionId != null">
and permission_id = #{permissionId}
</if>
<if test="createdBy != null and createdBy != ''">
and created_by = #{createdBy}
</if>
<if test="createdTime != null">
and created_time = #{createdTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="isDeleted != null">
and is_deleted = #{isDeleted}
</if>
</where>
</select>
<!--统计总行数-->
<select id="count" resultType="java.lang.Long">
select count(1)
from auth_role_permission
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="roleId != null">
and role_id = #{roleId}
</if>
<if test="permissionId != null">
and permission_id = #{permissionId}
</if>
<if test="createdBy != null and createdBy != ''">
and created_by = #{createdBy}
</if>
<if test="createdTime != null">
and created_time = #{createdTime}
</if>
<if test="updateBy != null and updateBy != ''">
and update_by = #{updateBy}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="isDeleted != null">
and is_deleted = #{isDeleted}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into auth_role_permission(role_id, permission_id, created_by, created_time, update_by, update_time, is_deleted)
values (#{roleId}, #{permissionId}, #{createdBy}, #{createdTime}, #{updateBy}, #{updateTime}, #{isDeleted})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into auth_role_permission(role_id, permission_id, created_by, created_time, update_by, update_time, is_deleted)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.roleId}, #{entity.permissionId}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.isDeleted})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
insert into auth_role_permission(role_id, permission_id, created_by, created_time, update_by, update_time, is_deleted)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.roleId}, #{entity.permissionId}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updateBy}, #{entity.updateTime}, #{entity.isDeleted})
</foreach>
on duplicate key update
role_id = values(role_id),
permission_id = values(permission_id),
created_by = values(created_by),
created_time = values(created_time),
update_by = values(update_by),
update_time = values(update_time),
is_deleted = values(is_deleted)
</insert>
<!--通过主键修改数据-->
<update id="update">
update auth_role_permission
<set>
<if test="roleId != null">
role_id = #{roleId},
</if>
<if test="permissionId != null">
permission_id = #{permissionId},
</if>
<if test="createdBy != null and createdBy != ''">
created_by = #{createdBy},
</if>
<if test="createdTime != null">
created_time = #{createdTime},
</if>
<if test="updateBy != null and updateBy != ''">
update_by = #{updateBy},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="isDeleted != null">
is_deleted = #{isDeleted},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from auth_role_permission where id = #{id}
</delete>
</mapper>
......@@ -145,6 +145,9 @@
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
insert into auth_user(user_name, nick_name, email, phone, password, sex, avatar, status, introduce, ext_json, created_by, created_time, update_by, update_time, is_deleted)
values (#{userName}, #{nickName}, #{email}, #{phone}, #{password}, #{sex}, #{avatar}, #{status}, #{introduce}, #{extJson}, #{createdBy}, #{createdTime}, #{updateBy}, #{updateTime}, #{isDeleted})
</insert>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册