forked from github/dataease
feat: 用户管理后台接口
This commit is contained in:
parent
bb17350411
commit
586916a4b7
@ -0,0 +1,12 @@
|
||||
package io.dataease.base.mapper.ext;
|
||||
|
||||
import io.dataease.controller.sys.request.UserGridRequest;
|
||||
import io.dataease.controller.sys.response.SysUserGridResponse;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ExtSysUserMapper {
|
||||
|
||||
List<SysUserGridResponse> query(@Param("request")UserGridRequest request);
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<?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="io.dataease.base.mapper.ext.ExtSysUserMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="io.dataease.controller.sys.response.SysUserGridResponse" extends="io.dataease.base.mapper.SysUserMapper.BaseResultMap">
|
||||
<result column="roleIds" property="role_ids"/>
|
||||
<collection property="roleIds" ofType="long">
|
||||
<constructor>
|
||||
<arg column="role_id"/>
|
||||
</constructor>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<select id="query" resultMap="BaseResultMap">
|
||||
select u.*, ur.role_id
|
||||
from sys_user u left join sys_users_roles ur on u.user_id = ur.user_id
|
||||
<where>
|
||||
<if test="request.name != null">
|
||||
AND u.name like CONCAT('%', #{request.name},'%')
|
||||
</if>
|
||||
</where>
|
||||
order by u.update_time desc
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
@ -0,0 +1,50 @@
|
||||
package io.dataease.controller.sys;
|
||||
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.controller.sys.request.SysUserCreateRequest;
|
||||
import io.dataease.controller.sys.request.UserGridRequest;
|
||||
import io.dataease.controller.sys.response.SysUserGridResponse;
|
||||
import io.dataease.service.sys.SysUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@Api(tags = "系统:用户管理")
|
||||
@RequestMapping("/api/user")
|
||||
public class SysUserController {
|
||||
|
||||
@Resource
|
||||
private SysUserService sysUserService;
|
||||
|
||||
@ApiOperation("查询用户")
|
||||
@PostMapping("/userGrid/{goPage}/{pageSize}")
|
||||
public Pager<List<SysUserGridResponse>> userGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody UserGridRequest request) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
return PageUtils.setPageInfo(page, sysUserService.query(request));
|
||||
}
|
||||
|
||||
@ApiOperation("创建用户")
|
||||
@PostMapping("/create")
|
||||
public void create(@RequestBody SysUserCreateRequest request){
|
||||
sysUserService.save(request);
|
||||
}
|
||||
|
||||
@ApiOperation("更新用户")
|
||||
@PostMapping("/updat")
|
||||
public void update(@RequestBody SysUserCreateRequest request){
|
||||
sysUserService.update(request);
|
||||
}
|
||||
|
||||
@ApiOperation("更新用户")
|
||||
@PostMapping("/updat/{userId}")
|
||||
public void delete(@PathVariable("userId") Long userId){
|
||||
sysUserService.delete(userId);
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package io.dataease.controller.sys.request;
|
||||
|
||||
import io.dataease.base.domain.SysUser;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SysUserCreateRequest extends SysUser {
|
||||
|
||||
private List<Long> roleIds;
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package io.dataease.controller.sys.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class UserGridRequest implements Serializable {
|
||||
private String name;
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package io.dataease.controller.sys.response;
|
||||
|
||||
import io.dataease.base.domain.SysUser;
|
||||
import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SysUserGridResponse extends SysUser {
|
||||
|
||||
|
||||
private List<Long> roleIds;
|
||||
}
|
@ -2,7 +2,9 @@ package io.dataease.service.sys;
|
||||
|
||||
|
||||
import io.dataease.base.domain.SysRole;
|
||||
import io.dataease.base.domain.SysUsersRolesExample;
|
||||
import io.dataease.base.mapper.SysRoleMapper;
|
||||
import io.dataease.base.mapper.SysUsersRolesMapper;
|
||||
import io.dataease.base.mapper.ext.ExtSysRoleMapper;
|
||||
import io.dataease.controller.sys.request.RoleGridRequest;
|
||||
import io.dataease.controller.sys.request.RoleMenusRequest;
|
||||
@ -25,6 +27,9 @@ public class SysRoleService {
|
||||
@Resource
|
||||
private ExtSysRoleMapper extSysRoleMapper;
|
||||
|
||||
@Resource
|
||||
private SysUsersRolesMapper sysUsersRolesMapper;
|
||||
|
||||
|
||||
public int add(SysRole role){
|
||||
Long now = System.currentTimeMillis();
|
||||
@ -40,7 +45,12 @@ public class SysRoleService {
|
||||
return mapper.updateByPrimaryKey(role);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public int delete(Long roleId){
|
||||
SysUsersRolesExample example = new SysUsersRolesExample();
|
||||
example.createCriteria().andRoleIdEqualTo(roleId);
|
||||
sysUsersRolesMapper.deleteByExample(example);//删除用户角色关联关系
|
||||
extSysRoleMapper.deleteRoleMenu(roleId);//删除菜单角色关联关系
|
||||
return mapper.deleteByPrimaryKey(roleId);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,112 @@
|
||||
package io.dataease.service.sys;
|
||||
|
||||
import io.dataease.base.domain.SysUser;
|
||||
import io.dataease.base.domain.SysUserExample;
|
||||
import io.dataease.base.domain.SysUsersRolesExample;
|
||||
import io.dataease.base.domain.SysUsersRolesKey;
|
||||
import io.dataease.base.mapper.SysUserMapper;
|
||||
import io.dataease.base.mapper.SysUsersRolesMapper;
|
||||
import io.dataease.base.mapper.ext.ExtSysUserMapper;
|
||||
import io.dataease.commons.utils.BeanUtils;
|
||||
import io.dataease.commons.utils.CodingUtil;
|
||||
import io.dataease.controller.sys.request.SysUserCreateRequest;
|
||||
import io.dataease.controller.sys.request.UserGridRequest;
|
||||
import io.dataease.controller.sys.response.SysUserGridResponse;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class SysUserService {
|
||||
|
||||
private final static String DEFAULT_PWD = "DataEase123..";
|
||||
|
||||
@Resource
|
||||
private SysUserMapper sysUserMapper;
|
||||
|
||||
@Resource
|
||||
private SysUsersRolesMapper sysUsersRolesMapper;
|
||||
|
||||
@Resource
|
||||
private ExtSysUserMapper extSysUserMapper;
|
||||
|
||||
public List<SysUserGridResponse> query(UserGridRequest request){
|
||||
return extSysUserMapper.query(request);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public int save(SysUserCreateRequest request){
|
||||
SysUser user = BeanUtils.copyBean(new SysUser(), request);
|
||||
long now = System.currentTimeMillis();
|
||||
user.setCreateTime(now);
|
||||
user.setUpdateTime(now);
|
||||
user.setIsAdmin(false);
|
||||
user.setPassword(CodingUtil.md5(DEFAULT_PWD));
|
||||
int insert = sysUserMapper.insert(user);
|
||||
SysUser dbUser = findOne(user);
|
||||
saveUserRoles(dbUser.getUserId(), request.getRoleIds());//插入用户角色关联
|
||||
return insert;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public int update(SysUserCreateRequest request){
|
||||
SysUser user = BeanUtils.copyBean(new SysUser(), request);
|
||||
long now = System.currentTimeMillis();
|
||||
user.setUpdateTime(now);
|
||||
deleteUserRoles(user.getUserId());//先删除用户角色关联
|
||||
saveUserRoles(user.getUserId(), request.getRoleIds());//再插入角色关联
|
||||
return sysUserMapper.updateByPrimaryKey(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户角色关联
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
private int deleteUserRoles(Long userId){
|
||||
SysUsersRolesExample example = new SysUsersRolesExample();
|
||||
example.createCriteria().andUserIdEqualTo(userId);
|
||||
return sysUsersRolesMapper.deleteByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存用户角色关联
|
||||
* @param userId
|
||||
* @param roleIds
|
||||
*/
|
||||
private void saveUserRoles(Long userId, List<Long> roleIds){
|
||||
roleIds.forEach(roleId -> {
|
||||
SysUsersRolesKey sysUsersRolesKey = new SysUsersRolesKey();
|
||||
sysUsersRolesKey.setUserId(userId);
|
||||
sysUsersRolesKey.setRoleId(roleId);
|
||||
sysUsersRolesMapper.insert(sysUsersRolesKey);
|
||||
});
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public int delete(Long userId){
|
||||
deleteUserRoles(userId);
|
||||
return sysUserMapper.deleteByPrimaryKey(userId);
|
||||
}
|
||||
|
||||
public SysUser findOne(SysUser user){
|
||||
if (ObjectUtils.isEmpty(user)) return null;
|
||||
if (ObjectUtils.isNotEmpty(user.getUserId())){
|
||||
return sysUserMapper.selectByPrimaryKey(user.getUserId());
|
||||
}
|
||||
SysUserExample example = new SysUserExample();
|
||||
SysUserExample.Criteria criteria = example.createCriteria();
|
||||
if (ObjectUtils.isNotEmpty(user.getUsername())){
|
||||
criteria.andUsernameEqualTo(user.getUsername());
|
||||
List<SysUser> sysUsers = sysUserMapper.selectByExample(example);
|
||||
if (CollectionUtils.isNotEmpty(sysUsers))return sysUsers.get(0);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user