1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

用户管理增删改查全部完成

This commit is contained in:
2023-03-29 17:24:27 +08:00
parent cf962a92da
commit 14907e3e26
24 changed files with 775 additions and 252 deletions

View File

@@ -99,10 +99,10 @@
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--<dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-devtools</artifactId>-->
<!--</dependency>-->
</dependencies>

View File

@@ -2,14 +2,17 @@ package com.cxyxiaomo.epp.user.controller;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.cxyxiaomo.epp.common.enums.EditType;
import com.cxyxiaomo.epp.common.enums.SearchType;
import com.cxyxiaomo.epp.PageTable.enums.AddType;
import com.cxyxiaomo.epp.PageTable.enums.EditType;
import com.cxyxiaomo.epp.PageTable.enums.SearchType;
import com.cxyxiaomo.epp.PageTable.query.PageQuery;
import com.cxyxiaomo.epp.PageTable.utils.FieldBuilder;
import com.cxyxiaomo.epp.PageTable.utils.FieldMapperBuilder;
import com.cxyxiaomo.epp.PageTable.utils.FieldRuleBuilder;
import com.cxyxiaomo.epp.PageTable.utils.FieldRuleListBuilder;
import com.cxyxiaomo.epp.common.pojo.Role;
import com.cxyxiaomo.epp.common.pojo.User;
import com.cxyxiaomo.epp.common.query.PageQuery;
import com.cxyxiaomo.epp.common.response.Res;
import com.cxyxiaomo.epp.common.utils.PageTableFieldBuilder;
import com.cxyxiaomo.epp.common.utils.PageTableFieldMapperBuilder;
import com.cxyxiaomo.epp.common.vo.UserVO;
import com.cxyxiaomo.epp.user.service.RoleService;
import com.cxyxiaomo.epp.user.service.UserService;
@@ -66,7 +69,7 @@ public class UserController {
*/
@PostMapping("/rpc/getUserById")
@ResponseBody
public User getUserById(Long id) {
public User getUserById(Integer id) {
return userService.getUserById(id);
}
@@ -78,7 +81,6 @@ public class UserController {
@GetMapping("/manage/getUserList")
@ResponseBody
public Res getUserList(PageQuery pageQuery, UserVO userVO) {
// 查询分页数据
PageHelper.startPage(pageQuery.getPageIndex(), pageQuery.getPageSize());
List<User> userList = userService.getUserList(userVO);
@@ -86,29 +88,82 @@ public class UserController {
List<User> list = userPageInfo.getList();
List<UserVO> voList = UserVO.convertFrom(list);
// id列 字段名区分大小写以VO中的变量名为准
// 新增、修改弹窗时,使用该列作为主键列进行操作
String idFieldName = "id";
// 指定前端表格显示列
JSONArray columns = PageTableFieldBuilder.create()
.add("username", "username", "用户名",
true, SearchType.INPUT,
false, EditType.PLAIN_TEXT, null)
.add("roleId", "roleName", "角色",
true, SearchType.SELECT,
true, EditType.SELECT, 0)
.add("realname", "realname", "真实姓名",
true, SearchType.INPUT,
true, EditType.INPUT, "")
.add("phoneNumber", "phoneNumber", "电话",
true, SearchType.INPUT,
true, EditType.INPUT, "")
.add("idNumber", "idNumber", "身份证号",
true, SearchType.INPUT,
true, EditType.INPUT, "")
.add("buildingId", "buildingId", "门栋/单元号",
true, SearchType.INPUT,
true, EditType.INPUT, "")
.add("doorplate", "doorplate", "门牌号",
true, SearchType.INPUT,
true, EditType.INPUT, "")
JSONArray columns = FieldBuilder.create()
.add("username", "username", "账号", "",
true, SearchType.INPUT, AddType.INPUT, EditType.CAN_NOT_EDIT,
FieldBuilder.SEARCH_PLACEHOLDER_SAME_AS_FIELDNAME,
"用户名", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
FieldRuleListBuilder.create()
.add(FieldRuleBuilder.create("用户名").required())
.add(FieldRuleBuilder.create("用户名").minMax(2, 10)),
"DPD @word(2, 10)"
)
.add("password", "password", "密码", "",
false, SearchType.CAN_NOT_SEARCH, AddType.INPUT, EditType.INPUT,
null,
"必填", "若不修改则留空",
FieldRuleListBuilder.create()
.add(FieldRuleBuilder.create("用户密码").minMax(2, 10)),
"DPD @word(2, 10)"
)
.add("roleId", "roleName", "角色", "",
true, SearchType.SELECT, AddType.SELECT, EditType.SELECT,
"用户角色",
"用户的角色", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
FieldRuleListBuilder.create()
.add(FieldRuleBuilder.create("角色").required()),
"DPD @pick([\"1\", \"2\", \"3\", \"4\", \"5\", \"6\"])"
)
.add("realname", "realname", "真实姓名", "",
true, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
FieldBuilder.SEARCH_PLACEHOLDER_SAME_AS_FIELDNAME,
"用户的真实姓名", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
FieldRuleListBuilder.create()
.add(FieldRuleBuilder.create("真实姓名").required())
.add(FieldRuleBuilder.create("真实姓名").minMax(2, 15)),
"DPD @cword(2, 8)"
)
.add("phoneNumber", "phoneNumber", "电话", "",
true, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
"电话号码",
"支持11位手机号码、区号-7/8位座机号码", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
FieldRuleListBuilder.create()
.add(FieldRuleBuilder.create("电话").required())
.add(FieldRuleBuilder.create("电话").pattern("^(1[3-9]\\d{9})$|^(0\\d{2,3}-?\\d{7,8})$")),
"DTD /^(1[3-9]\\d{9})$|^(0\\d{2,3}-?\\d{7,8})$/"
)
.add("idNumber", "idNumber", "身份证号", "",
true, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
FieldBuilder.SEARCH_PLACEHOLDER_SAME_AS_FIELDNAME,
"支持15位、18位数字、17位数字+X格式", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
FieldRuleListBuilder.create()
.add(FieldRuleBuilder.create("身份证号").required())
.add(FieldRuleBuilder.create("身份证号").min(15))
.add(FieldRuleBuilder.create("身份证号").max(18))
.add(FieldRuleBuilder.create("身份证号").pattern("^(\\d{15})$|^(\\d{18})$|^(\\d{17}(\\d|X|x))$")),
"DTD /^(\\d{15})$|^(\\d{18})$|^(\\d{17}(\\d|X|x))$/"
)
.add("buildingId", "buildingId", "门栋单元", "",
true, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
FieldBuilder.SEARCH_PLACEHOLDER_SAME_AS_FIELDNAME,
"门栋及单元号例如11-0511栋05单元", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
FieldRuleListBuilder.create()
.add(FieldRuleBuilder.create("门栋/单元号").minMax(2, 10)),
"DTD /^\\d{2}-\\d{2}$/"
)
.add("doorplate", "doorplate", "门牌号", "",
true, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
FieldBuilder.SEARCH_PLACEHOLDER_SAME_AS_FIELDNAME,
"门牌号例如200320楼03户", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
FieldRuleListBuilder.create()
.add(FieldRuleBuilder.create("门牌号").minMax(1, 10)),
"DTD /^\\d{4}$/"
)
.build();
// 指定需要翻译的字段
@@ -119,7 +174,7 @@ public class UserController {
roleMap.put(role.getId(), role.getRoleName());
}
// build
JSONArray fieldMapper = PageTableFieldMapperBuilder.create()
JSONArray fieldMapper = FieldMapperBuilder.create()
.add("roleId", "roleName", roleMap)
.build();
@@ -129,31 +184,70 @@ public class UserController {
map.put("list", voList);
map.put("columns", columns);
map.put("fieldMapper", fieldMapper);
map.put("idFieldName", idFieldName);
// 返回结果
return Res.success(map);
}
@RequestMapping("/person")
/**
* 新增 / 编辑用户
*
* @return
*/
@PostMapping("/manage/editUser")
@ResponseBody
public User person(String username) {
return null;
// return userService.getUserByUsername(username);
public Res editUser(@ModelAttribute UserVO userVO, String password) {
User user = UserVO.convertTo(userVO);
// 先查询用户名是否存在
User existUser = userService.getUserByUsername(user.getUsername());
if (user.getId() == null || user.getId() < 1) {
// 新增用户
if (existUser != null) {
return Res.error("用户名已存在,操作失败");
}
if (password == null || "".equals(password)) {
return Res.error("密码不能为空");
}
String passwordHash = DigestUtils.sha512Hex(password);
user.setPassword(passwordHash);
userService.addUser(user);
} else {
// 修改用户
if (existUser == null) {
return Res.error("用户不存在,操作失败");
}
if (password == null || "".equals(password)) {
user.setPassword(null);
} else {
String passwordHash = DigestUtils.sha512Hex(password);
user.setPassword(passwordHash);
}
userService.updateUser(user);
}
return Res.success(true);
}
@RequestMapping("/addUser")
/**
* 删除用户
*
* @param id
* @return
*/
@PostMapping("/manage/deleteUser")
@ResponseBody
public Res addUser(String username, String name, Integer role) {
// User user = new User();
// user.setUsername(username);
// user.setPassword(username);
// user.setName(name);
// if (role == 2) {
// user.setStu_id(username);
// }
// user.setRole(role);
// return Res.success(userService.addUser(user));
return null;
public Res deleteUser(Integer id) {
if (id == null || id <= 0) {
return Res.error("用户不存在,删除失败");
}
// 先查询用户名是否存在
User existUser = userService.getUserById(id);
if (existUser == null) {
return Res.error("用户不存在,删除失败");
}
boolean b = userService.deleteUser(existUser.getId());
return Res.success(b);
}
}

View File

@@ -13,9 +13,13 @@ public interface UserDao {
public boolean addUser(User user);
public User getUserById(Long id);
public boolean updateUser(User user);
public User getUserById(Integer id);
User getUserByUsername(String username);
public List<User> getUserList(UserVO userVO);
public boolean deleteUserById(Integer userId);
}

View File

@@ -18,7 +18,7 @@ public class UserService {
return userDao.getUserByUsername(username);
}
public User getUserById(Long id) {
public User getUserById(Integer id) {
return userDao.getUserById(id);
}
@@ -26,4 +26,21 @@ public class UserService {
List<User> userList = userDao.getUserList(userVO);
return userList;
}
public boolean addUser(User user) {
user.setId(null);
if (user.getPermission() == null) {
// 填充默认值
user.setPermission("0");
}
return userDao.addUser(user);
}
public boolean updateUser(User user) {
return userDao.updateUser(user);
}
public boolean deleteUser(Integer userId) {
return userDao.deleteUserById(userId);
}
}

View File

@@ -4,10 +4,48 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cxyxiaomo.epp.user.dao.UserDao">
<insert id="addUser" parameterType="com.cxyxiaomo.epp.common.pojo.User">
INSERT INTO user (username, password)
VALUES (#{username}, #{password})
INSERT INTO user (username, `password`, realname, id_number, phone_number, role_id, building_id, doorplate,
permission, permission_time)
VALUES (#{username}, #{password}, #{realname}, #{idNumber}, #{phoneNumber}, #{roleId}, #{buildingId},
#{doorplate}, #{permission}, #{permissionTime})
</insert>
<select id="getUserById" parameterType="java.lang.Long" resultType="com.cxyxiaomo.epp.common.pojo.User">
<update id="updateUser" parameterType="com.cxyxiaomo.epp.common.pojo.User">
UPDATE user
<set>
<if test="username != null and username != ''">
username = #{username},
</if>
<if test="password != null and password != ''">
`password` = #{password},
</if>
<if test="realname != null and realname != ''">
realname = #{realname},
</if>
<if test="idNumber != null and idNumber != ''">
id_number = #{idNumber},
</if>
<if test="phoneNumber != null and phoneNumber != ''">
phone_number = #{phoneNumber},
</if>
<if test="roleId != null">
role_id = #{roleId},
</if>
<if test="buildingId != null and buildingId != ''">
building_id = #{buildingId},
</if>
<if test="doorplate != null and doorplate != ''">
doorplate = #{doorplate},
</if>
<if test="permission != null">
permission = #{permission},
</if>
<if test="permissionTime != null">
permission_time = #{permissionTime},
</if>
</set>
WHERE id = #{id}
</update>
<select id="getUserById" parameterType="java.lang.Integer" resultType="com.cxyxiaomo.epp.common.pojo.User">
SELECT *
FROM user
WHERE id = #{id}
@@ -43,4 +81,10 @@
AND doorplate LIKE concat('%',#{doorplate,jdbcType=VARCHAR},'%')
</if>
</select>
<delete id="deleteUserById">
DELETE
FROM user
WHERE id = #{userId}
</delete>
</mapper>