Commit 225f31d5 by yuwei

2.0.0项目初始化

parent 2e99c473
...@@ -8,6 +8,7 @@ import cn.datax.common.security.handler.DataAccessDeniedHandler; ...@@ -8,6 +8,7 @@ import cn.datax.common.security.handler.DataAccessDeniedHandler;
import cn.datax.common.security.handler.DataAuthExceptionEntryPoint; import cn.datax.common.security.handler.DataAuthExceptionEntryPoint;
import cn.datax.common.security.utils.RedisTokenStore; import cn.datax.common.security.utils.RedisTokenStore;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -124,8 +125,8 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap ...@@ -124,8 +125,8 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap
additionalInfo.put(DataConstant.UserAdditionalInfo.USERNAME.getKey(), user.getUsername()); additionalInfo.put(DataConstant.UserAdditionalInfo.USERNAME.getKey(), user.getUsername());
additionalInfo.put(DataConstant.UserAdditionalInfo.NICKNAME.getKey(), user.getNickname()); additionalInfo.put(DataConstant.UserAdditionalInfo.NICKNAME.getKey(), user.getNickname());
if (CollUtil.isNotEmpty(user.getDepts())){ if (StrUtil.isNotBlank(user.getDept())){
additionalInfo.put(DataConstant.UserAdditionalInfo.DEPT.getKey(), user.getDepts()); additionalInfo.put(DataConstant.UserAdditionalInfo.DEPT.getKey(), user.getDept());
} }
if (CollUtil.isNotEmpty(user.getRoles())){ if (CollUtil.isNotEmpty(user.getRoles())){
additionalInfo.put(DataConstant.UserAdditionalInfo.ROLE.getKey(), user.getRoles()); additionalInfo.put(DataConstant.UserAdditionalInfo.ROLE.getKey(), user.getRoles());
......
...@@ -64,8 +64,8 @@ public class DataUserDetailService implements UserDetailsService { ...@@ -64,8 +64,8 @@ public class DataUserDetailService implements UserDetailsService {
= AuthorityUtils.createAuthorityList(authsSet.toArray(new String[0])); = AuthorityUtils.createAuthorityList(authsSet.toArray(new String[0]));
DataUser user = new DataUser(userVo.getId(), userVo.getNickname(), userVo.getUsername(), userVo.getPassword(), DataUser user = new DataUser(userVo.getId(), userVo.getNickname(), userVo.getUsername(), userVo.getPassword(),
enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities); enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
if (CollUtil.isNotEmpty(userVo.getDepts())) { if(StrUtil.isNotBlank(userVo.getDeptId())){
user.setDepts(userVo.getDepts().stream().map(DeptVo::getId).collect(Collectors.toList())); user.setDept(userVo.getDeptId());
} }
if (CollUtil.isNotEmpty(userVo.getPosts())) { if (CollUtil.isNotEmpty(userVo.getPosts())) {
user.setPosts(userVo.getPosts().stream().map(PostVo::getId).collect(Collectors.toList())); user.setPosts(userVo.getPosts().stream().map(PostVo::getId).collect(Collectors.toList()));
......
...@@ -9,16 +9,12 @@ import lombok.Data; ...@@ -9,16 +9,12 @@ import lombok.Data;
public class DataScope { public class DataScope {
/** /**
* 部门表的别名 * 表的部门字段
*/ */
private String deptAlias = "sys_dept";
private String deptScopeName = "dept_id"; private String deptScopeName = "dept_id";
/** /**
* 用户表的别名 * 表的用户字段
*/ */
private String userAlias = "sys_user";
private String userScopeName = "create_by"; private String userScopeName = "create_by";
} }
...@@ -15,7 +15,7 @@ public class DataUser extends User { ...@@ -15,7 +15,7 @@ public class DataUser extends User {
private String id; private String id;
private String nickname; private String nickname;
private List<String> depts; private String dept;
private List<DataRole> roles; private List<DataRole> roles;
private List<String> posts; private List<String> posts;
......
...@@ -16,18 +16,12 @@ public @interface DataScopeAop { ...@@ -16,18 +16,12 @@ public @interface DataScopeAop {
* 表的别名 * 表的别名
*/ */
String alias() default "sys_user"; String alias() default "sys_user";
/** /**
* 部门表的别名 * 表的部门字段
*/ */
String deptAlias() default "sys_dept";
String deptScopeName() default "dept_id"; String deptScopeName() default "dept_id";
/** /**
* 用户表的别名 * 表的用户字段
*/ */
String userAlias() default "sys_user";
String userScopeName() default "create_by"; String userScopeName() default "create_by";
} }
...@@ -68,24 +68,24 @@ public class DataScopeAspect { ...@@ -68,24 +68,24 @@ public class DataScopeAspect {
break; break;
} else if (DataConstant.DataScope.CUSTOM.getKey().equals(roleDataScope)) { } else if (DataConstant.DataScope.CUSTOM.getKey().equals(roleDataScope)) {
sqlString.append(StrUtil.format( sqlString.append(StrUtil.format(
" OR ( SELECT dept_id FROM sys_user_dept WHERE user_id = {}.{} ) IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) " " OR {}.{} IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) "
,dataScope.alias() ,dataScope.alias()
,dataScope.userScopeName() ,dataScope.deptScopeName()
,"'" + role.getId() + "'" ,"'" + role.getId() + "'"
)); ));
} else if (DataConstant.DataScope.DEPT.getKey().equals(roleDataScope)) { } else if (DataConstant.DataScope.DEPT.getKey().equals(roleDataScope)) {
sqlString.append(StrUtil.format( sqlString.append(StrUtil.format(
" OR ( SELECT dept_id FROM sys_user_dept WHERE user_id = {}.{} ) IN ( SELECT dept_id FROM sys_user_dept WHERE user_id = {} ) " " OR {}.{} = {} "
,dataScope.alias() ,dataScope.alias()
,dataScope.userScopeName() ,dataScope.deptScopeName()
,"'" + user.getId() + "'" ,"'" + user.getDept() + "'"
)); ));
} else if (DataConstant.DataScope.DEPTANDCHILD.getKey().equals(roleDataScope)) { } else if (DataConstant.DataScope.DEPTANDCHILD.getKey().equals(roleDataScope)) {
sqlString.append(StrUtil.format( sqlString.append(StrUtil.format(
" OR ( SELECT dept_id FROM sys_user_dept WHERE user_id = {}.{} ) IN ( SELECT descendant FROM sys_dept_relation WHERE ancestor = {} )" " OR {}.{} IN ( SELECT descendant FROM sys_dept_relation WHERE ancestor = {} )"
,dataScope.alias() ,dataScope.alias()
,dataScope.userScopeName() ,dataScope.deptScopeName()
,"'" + role.getId() + "'" ,"'" + user.getDept() + "'"
)); ));
} else if (DataConstant.DataScope.SELF.getKey().equals(roleDataScope)) { } else if (DataConstant.DataScope.SELF.getKey().equals(roleDataScope)) {
if (StrUtil.isNotBlank(dataScope.alias())) { if (StrUtil.isNotBlank(dataScope.alias())) {
......
...@@ -50,9 +50,7 @@ public class DataScopeInterceptor extends AbstractSqlParserHandler implements In ...@@ -50,9 +50,7 @@ public class DataScopeInterceptor extends AbstractSqlParserHandler implements In
//查找参数中包含DataScope类型的参数 //查找参数中包含DataScope类型的参数
DataScope dataScope = findDataScopeObject(parameterObject); DataScope dataScope = findDataScopeObject(parameterObject);
if (dataScope == null) { if (dataScope != null) {
return invocation.proceed();
} else {
// 获取当前的用户 // 获取当前的用户
DataUser currentUser = SecurityUtil.getDataUser(); DataUser currentUser = SecurityUtil.getDataUser();
if (null != currentUser) { if (null != currentUser) {
...@@ -60,13 +58,13 @@ public class DataScopeInterceptor extends AbstractSqlParserHandler implements In ...@@ -60,13 +58,13 @@ public class DataScopeInterceptor extends AbstractSqlParserHandler implements In
if (!currentUser.isAdmin()) { if (!currentUser.isAdmin()) {
String sqlString = dataScopeFilter(currentUser, dataScope); String sqlString = dataScopeFilter(currentUser, dataScope);
if (StrUtil.isNotBlank(sqlString)) { if (StrUtil.isNotBlank(sqlString)) {
originalSql = "SELECT * FROM (" + originalSql + ") temp_data_scope WHERE 1=1 AND (" + sqlString.substring(4) + ")"; originalSql = "SELECT * FROM (" + originalSql + ") TEMP_DATA_SCOPE WHERE 1=1 AND (" + sqlString.substring(4) + ")";
metaObject.setValue("delegate.boundSql.sql", originalSql); metaObject.setValue("delegate.boundSql.sql", originalSql);
} }
} }
} }
return invocation.proceed();
} }
return invocation.proceed();
} }
/** /**
...@@ -86,21 +84,21 @@ public class DataScopeInterceptor extends AbstractSqlParserHandler implements In ...@@ -86,21 +84,21 @@ public class DataScopeInterceptor extends AbstractSqlParserHandler implements In
break; break;
} else if (DataConstant.DataScope.CUSTOM.getKey().equals(roleDataScope)) { } else if (DataConstant.DataScope.CUSTOM.getKey().equals(roleDataScope)) {
sqlString.append(StrUtil.format( sqlString.append(StrUtil.format(
" OR ( SELECT dept_id FROM sys_user_dept WHERE user_id = {} ) IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) " " OR {} IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) "
,dataScope.getUserScopeName() ,dataScope.getDeptScopeName()
,"'" + role.getId() + "'" ,"'" + role.getId() + "'"
)); ));
} else if (DataConstant.DataScope.DEPT.getKey().equals(roleDataScope)) { } else if (DataConstant.DataScope.DEPT.getKey().equals(roleDataScope)) {
sqlString.append(StrUtil.format( sqlString.append(StrUtil.format(
" OR ( SELECT dept_id FROM sys_user_dept WHERE user_id = {} ) IN ( SELECT dept_id FROM sys_user_dept WHERE user_id = {} ) " " OR {} = {} "
,dataScope.getUserScopeName() ,dataScope.getDeptScopeName()
,"'" + user.getId() + "'" ,"'" + user.getDept() + "'"
)); ));
} else if (DataConstant.DataScope.DEPTANDCHILD.getKey().equals(roleDataScope)) { } else if (DataConstant.DataScope.DEPTANDCHILD.getKey().equals(roleDataScope)) {
sqlString.append(StrUtil.format( sqlString.append(StrUtil.format(
" OR ( SELECT dept_id FROM sys_user_dept WHERE user_id = {} ) IN ( SELECT descendant FROM sys_dept_relation WHERE ancestor = {} )" " OR {} IN ( SELECT descendant FROM sys_dept_relation WHERE ancestor = {} )"
,dataScope.getUserScopeName() ,dataScope.getDeptScopeName()
,"'" + role.getId() + "'" ,"'" + user.getDept() + "'"
)); ));
} else if (DataConstant.DataScope.SELF.getKey().equals(roleDataScope)) { } else if (DataConstant.DataScope.SELF.getKey().equals(roleDataScope)) {
sqlString.append(StrUtil.format(" OR {} = {} " sqlString.append(StrUtil.format(" OR {} = {} "
......
...@@ -4,6 +4,7 @@ import cn.datax.common.core.DataConstant; ...@@ -4,6 +4,7 @@ import cn.datax.common.core.DataConstant;
import cn.datax.common.core.DataRole; import cn.datax.common.core.DataRole;
import cn.datax.common.core.DataUser; import cn.datax.common.core.DataUser;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
...@@ -52,14 +53,14 @@ public class DataUserAuthenticationConverter implements UserAuthenticationConver ...@@ -52,14 +53,14 @@ public class DataUserAuthenticationConverter implements UserAuthenticationConver
String username = (String) map.get(DataConstant.UserAdditionalInfo.USERNAME.getKey()); String username = (String) map.get(DataConstant.UserAdditionalInfo.USERNAME.getKey());
String nickname = (String) map.get(DataConstant.UserAdditionalInfo.NICKNAME.getKey()); String nickname = (String) map.get(DataConstant.UserAdditionalInfo.NICKNAME.getKey());
List<String> depts = (List<String>) map.get(DataConstant.UserAdditionalInfo.DEPT.getKey()); String dept = (String) map.get(DataConstant.UserAdditionalInfo.DEPT.getKey());
List<DataRole> roles = (List<DataRole>) map.get(DataConstant.UserAdditionalInfo.ROLE.getKey()); List<DataRole> roles = (List<DataRole>) map.get(DataConstant.UserAdditionalInfo.ROLE.getKey());
List<String> posts = (List<String>) map.get(DataConstant.UserAdditionalInfo.POST.getKey()); List<String> posts = (List<String>) map.get(DataConstant.UserAdditionalInfo.POST.getKey());
DataUser user = new DataUser(id, nickname, username, N_A, true DataUser user = new DataUser(id, nickname, username, N_A, true
, true, true, true, authorities); , true, true, true, authorities);
if (CollUtil.isNotEmpty(depts)){ if (StrUtil.isNotBlank(dept)){
user.setDepts(depts); user.setDept(dept);
} }
if (CollUtil.isNotEmpty(roles)){ if (CollUtil.isNotEmpty(roles)){
user.setRoles(roles); user.setRoles(roles);
......
...@@ -50,9 +50,8 @@ public class UserDto implements Serializable { ...@@ -50,9 +50,8 @@ public class UserDto implements Serializable {
private LocalDate birthday; private LocalDate birthday;
@ApiModelProperty(value = "部门") @ApiModelProperty(value = "部门")
@NotEmpty(message = "部门不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class}) @NotBlank(message = "部门不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
@Size(min = 1, max = 1, message="部门长度必须位于{min}-{max}之间") private String deptId;
private List<String> deptList;
@ApiModelProperty(value = "角色") @ApiModelProperty(value = "角色")
@NotEmpty(message = "角色不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class}) @NotEmpty(message = "角色不能为空", groups = {ValidationGroups.Insert.class, ValidationGroups.Update.class})
......
package cn.datax.service.system.api.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author yuwei
* @since 2019-09-11
*/
@Data
@Accessors(chain = true)
@TableName("sys_user_dept")
public class UserDeptEntity implements Serializable {
private static final long serialVersionUID=1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 用户ID
*/
private String userId;
/**
* 部门ID
*/
private String deptId;
}
...@@ -56,8 +56,13 @@ public class UserEntity extends BaseEntity { ...@@ -56,8 +56,13 @@ public class UserEntity extends BaseEntity {
*/ */
private LocalDate birthday; private LocalDate birthday;
/**
* 部门
*/
private String deptId;
@TableField(exist = false) @TableField(exist = false)
private List<DeptEntity> depts; private DeptEntity dept;
@TableField(exist = false) @TableField(exist = false)
private List<RoleEntity> roles; private List<RoleEntity> roles;
......
...@@ -24,7 +24,8 @@ public class UserVo implements Serializable { ...@@ -24,7 +24,8 @@ public class UserVo implements Serializable {
private String phone; private String phone;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate birthday; private LocalDate birthday;
private List<DeptVo> depts; private String deptId;
private DeptVo dept;
private List<PostVo> posts; private List<PostVo> posts;
private List<RoleVo> roles; private List<RoleVo> roles;
} }
...@@ -27,7 +27,7 @@ public class TestController extends BaseController { ...@@ -27,7 +27,7 @@ public class TestController extends BaseController {
public R getUserPageDataScope(UserQuery userQuery) { public R getUserPageDataScope(UserQuery userQuery) {
QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername()); queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername());
queryWrapper.apply(StrUtil.isNotBlank(userQuery.getDeptId()), "(select dept_id from sys_user_dept where user_id = id) = {0}", userQuery.getDeptId()); queryWrapper.eq(StrUtil.isNotBlank(userQuery.getDeptId()), "dept_id", userQuery.getDeptId());
if(CollUtil.isNotEmpty(userQuery.getOrderList())){ if(CollUtil.isNotEmpty(userQuery.getOrderList())){
userQuery.getOrderList().stream().forEach(orderItem -> { userQuery.getOrderList().stream().forEach(orderItem -> {
queryWrapper.orderBy(StrUtil.isNotBlank(orderItem.getColumn()), orderItem.isAsc(), orderItem.getColumn()); queryWrapper.orderBy(StrUtil.isNotBlank(orderItem.getColumn()), orderItem.isAsc(), orderItem.getColumn());
......
...@@ -70,7 +70,7 @@ public class UserController extends BaseController { ...@@ -70,7 +70,7 @@ public class UserController extends BaseController {
public R getUserPage(UserQuery userQuery) { public R getUserPage(UserQuery userQuery) {
QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername()); queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername());
queryWrapper.apply(StrUtil.isNotBlank(userQuery.getDeptId()), "(select dept_id from sys_user_dept where user_id = id) = {0}", userQuery.getDeptId()); queryWrapper.eq(StrUtil.isNotBlank(userQuery.getDeptId()), "dept_id", userQuery.getDeptId());
if(CollUtil.isNotEmpty(userQuery.getOrderList())){ if(CollUtil.isNotEmpty(userQuery.getOrderList())){
userQuery.getOrderList().stream().forEach(orderItem -> { userQuery.getOrderList().stream().forEach(orderItem -> {
queryWrapper.orderBy(StrUtil.isNotBlank(orderItem.getColumn()), orderItem.isAsc(), orderItem.getColumn()); queryWrapper.orderBy(StrUtil.isNotBlank(orderItem.getColumn()), orderItem.isAsc(), orderItem.getColumn());
......
package cn.datax.service.system.dao;
import cn.datax.service.system.api.entity.UserDeptEntity;
import cn.datax.common.base.BaseDao;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author yuwei
* @since 2019-09-11
*/
@Mapper
public interface UserDeptDao extends BaseDao<UserDeptEntity> {
void insertBatch(List<UserDeptEntity> list);
@Delete("delete from sys_user_dept where user_id = #{id}")
void deleteByUserId(String id);
}
...@@ -47,8 +47,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem ...@@ -47,8 +47,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
@Autowired @Autowired
private UserDao userDao; private UserDao userDao;
@Autowired @Autowired
private UserDeptDao userDeptDao;
@Autowired
private UserPostDao userPostDao; private UserPostDao userPostDao;
@Autowired @Autowired
private UserRoleDao userRoleDao; private UserRoleDao userRoleDao;
...@@ -71,9 +69,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem ...@@ -71,9 +69,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
if(CollUtil.isNotEmpty(userDto.getRoleList())){ if(CollUtil.isNotEmpty(userDto.getRoleList())){
insertBatchRole(userDto.getRoleList(), user.getId()); insertBatchRole(userDto.getRoleList(), user.getId());
} }
if(CollUtil.isNotEmpty(userDto.getDeptList())){
insertBatchDept(userDto.getDeptList(), user.getId());
}
if(CollUtil.isNotEmpty(userDto.getPostList())){ if(CollUtil.isNotEmpty(userDto.getPostList())){
insertBatchPost(userDto.getPostList(), user.getId()); insertBatchPost(userDto.getPostList(), user.getId());
} }
...@@ -90,17 +85,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem ...@@ -90,17 +85,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
userPostDao.insertBatch(userPostList); userPostDao.insertBatch(userPostList);
} }
private void insertBatchDept(List<String> deptss, String userId) {
List<UserDeptEntity> userDeptList = deptss
.stream().map(deptId -> {
UserDeptEntity userDept = new UserDeptEntity();
userDept.setUserId(userId);
userDept.setDeptId(deptId);
return userDept;
}).collect(Collectors.toList());
userDeptDao.insertBatch(userDeptList);
}
private void insertBatchRole(List<String> roles, String userId) { private void insertBatchRole(List<String> roles, String userId) {
List<UserRoleEntity> userRoleList = roles List<UserRoleEntity> userRoleList = roles
.stream().map(roleId -> { .stream().map(roleId -> {
...@@ -122,11 +106,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem ...@@ -122,11 +106,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
if(CollUtil.isNotEmpty(userDto.getRoleList())){ if(CollUtil.isNotEmpty(userDto.getRoleList())){
insertBatchRole(userDto.getRoleList(), user.getId()); insertBatchRole(userDto.getRoleList(), user.getId());
} }
userDeptDao.delete(Wrappers.<UserDeptEntity>lambdaQuery()
.eq(UserDeptEntity::getUserId, user.getId()));
if(CollUtil.isNotEmpty(userDto.getDeptList())){
insertBatchDept(userDto.getDeptList(), user.getId());
}
userPostDao.delete(Wrappers.<UserPostEntity>lambdaQuery() userPostDao.delete(Wrappers.<UserPostEntity>lambdaQuery()
.eq(UserPostEntity::getUserId, user.getId())); .eq(UserPostEntity::getUserId, user.getId()));
if(CollUtil.isNotEmpty(userDto.getPostList())){ if(CollUtil.isNotEmpty(userDto.getPostList())){
...@@ -138,7 +117,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem ...@@ -138,7 +117,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteUserById(String id) { public void deleteUserById(String id) {
userRoleDao.deleteByUserId(id); userRoleDao.deleteByUserId(id);
userDeptDao.deleteByUserId(id);
userPostDao.deleteByUserId(id); userPostDao.deleteByUserId(id);
userDao.deleteById(id); userDao.deleteById(id);
} }
......
<?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="cn.datax.service.system.dao.UserDeptDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.UserDeptEntity">
<result column="id" property="id" />
<result column="user_id" property="userId" />
<result column="dept_id" property="deptId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id,
user_id, dept_id
</sql>
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO sys_user_dept
(id, user_id, dept_id)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.userId}, #{item.deptId})
</foreach>
</insert>
</mapper>
...@@ -16,7 +16,8 @@ ...@@ -16,7 +16,8 @@
<result column="phone" property="phone" /> <result column="phone" property="phone" />
<result column="birthday" property="birthday" /> <result column="birthday" property="birthday" />
<result column="status" property="status" /> <result column="status" property="status" />
<collection property="depts" column="{userId=id}" select="getDeptList"></collection> <result column="dept_id" property="deptId" />
<collection property="dept" column="{userId=id}" select="getDept"></collection>
<collection property="roles" column="{userId=id}" select="getRoleList"></collection> <collection property="roles" column="{userId=id}" select="getRoleList"></collection>
<collection property="posts" column="{userId=id}" select="getPostList"></collection> <collection property="posts" column="{userId=id}" select="getPostList"></collection>
</resultMap> </resultMap>
...@@ -28,23 +29,23 @@ ...@@ -28,23 +29,23 @@
create_time, create_time,
update_by, update_by,
update_time, update_time,
username, nickname, password, email, phone, birthday, status username, nickname, password, email, phone, birthday, status, dept_id
</sql> </sql>
<update id="updateUserPassword"> <update id="updateUserPassword">
UPDATE sys_user SET password = #{password} WHERE id = #{id} UPDATE sys_user SET password = #{password} WHERE id = #{id}
</update> </update>
<select id="getDeptList" resultType="cn.datax.service.system.api.entity.DeptEntity"> <select id="getDept" resultType="cn.datax.service.system.api.entity.DeptEntity">
SELECT SELECT
<include refid="cn.datax.service.system.dao.DeptDao.Dept_Column_List"> <include refid="cn.datax.service.system.dao.DeptDao.Dept_Column_List">
<property name="alias" value="d"/> <property name="alias" value="d"/>
</include> </include>
FROM sys_dept d FROM sys_dept d
LEFT JOIN sys_user_dept ud ON d.id = ud.dept_id LEFT JOIN sys_user u ON d.id = u.dept_id
WHERE 1 = 1 AND d.status = 1 WHERE 1 = 1 AND d.status = 1
<if test="null != userId and '' != userId"> <if test="null != userId and '' != userId">
AND ud.user_id = #{userId} AND u.id = #{userId}
</if> </if>
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment