From e9c3b6c1238d152e609797a183576b4b6b7f5f13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=97=E9=A3=8E?= <2452618307@qq.com> Date: Thu, 29 Feb 2024 13:02:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/config/StaticVariablesConfig.java | 22 ++ .../manager/controller/UserController.java | 160 ++++++-- .../manager/manager/dao/UserDao.java | 22 +- .../manager/manager/dao/UtilDao.java | 68 ++++ .../manager/manager/entity/NoticeReadVO.java | 12 + .../manager/manager/entity/NoticeVO.java | 10 + .../manager/manager/model/SysUser.java | 2 +- .../manager/manager/service/UserService.java | 19 +- .../manager/service/impl/UserServiceImpl.java | 136 ++++--- .../manager/manager/utils/Constant.java | 14 + .../resources/mappers/user/UserMapper.xml | 73 ---- .../resources/mappers/user/UtilMapper.xml | 29 ++ .../resources/mappers/user/newUserMapper.xml | 204 ++++++++++ src/main/resources/static/js/select.js | 2 +- .../static/js/work/user/UserManagementList.js | 291 ++++++++++++++ .../static/pages/user/addUserForm.html | 367 ++++++++++++++++++ .../resources/static/pages/user/userList.html | 303 ++++++++------- 17 files changed, 1435 insertions(+), 299 deletions(-) create mode 100644 src/main/java/com/bonus/leader/performance/manager/manager/config/StaticVariablesConfig.java create mode 100644 src/main/java/com/bonus/leader/performance/manager/manager/dao/UtilDao.java create mode 100644 src/main/java/com/bonus/leader/performance/manager/manager/utils/Constant.java delete mode 100644 src/main/resources/mappers/user/UserMapper.xml create mode 100644 src/main/resources/mappers/user/UtilMapper.xml create mode 100644 src/main/resources/mappers/user/newUserMapper.xml create mode 100644 src/main/resources/static/js/work/user/UserManagementList.js create mode 100644 src/main/resources/static/pages/user/addUserForm.html diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/config/StaticVariablesConfig.java b/src/main/java/com/bonus/leader/performance/manager/manager/config/StaticVariablesConfig.java new file mode 100644 index 0000000..167c3bb --- /dev/null +++ b/src/main/java/com/bonus/leader/performance/manager/manager/config/StaticVariablesConfig.java @@ -0,0 +1,22 @@ +package com.bonus.leader.performance.manager.manager.config; + +/** + * 包名称:com.bonus.gm.system.manager.config + * 类名称:WorkConfig + * 类描述: 配置静态变量 + * 创建人:@author ztq + * 创建时间:2024年01月04日 09:05 + */ +public class StaticVariablesConfig { + + /** + * 初始密码 + */ + private static String INITIAL_PASSWORD = "123qwer@"; + + public static String getInitialPassword() { + return INITIAL_PASSWORD; + } + + +} diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/controller/UserController.java b/src/main/java/com/bonus/leader/performance/manager/manager/controller/UserController.java index ff08e0f..b6092d8 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/controller/UserController.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/controller/UserController.java @@ -3,6 +3,7 @@ package com.bonus.leader.performance.manager.manager.controller; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import com.bonus.leader.performance.manager.manager.dao.UserDao; import com.bonus.leader.performance.manager.manager.entity.MapBean; @@ -13,14 +14,13 @@ import com.bonus.leader.performance.manager.manager.table.PageTableHandler; import com.bonus.leader.performance.manager.manager.table.PageTableRequest; import com.bonus.leader.performance.manager.manager.table.PageTableResponse; import com.bonus.leader.performance.manager.manager.service.UserService; -import com.bonus.leader.performance.manager.manager.utils.AjaxRes; -import com.bonus.leader.performance.manager.manager.utils.GlobalConst; -import com.bonus.leader.performance.manager.manager.utils.UserUtil; +import com.bonus.leader.performance.manager.manager.utils.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import com.bonus.leader.performance.manager.manager.annotation.LogAnnotation; @@ -123,20 +123,26 @@ public class UserController { /**-------------------------------------------用户管理新接口-----------------------------------------------------------------*/ - @LogAnnotation - @PostMapping("getLoginLog") - @ApiOperation(value = "个人信息-登录日志") - public List> getLoginLogs() { - return userService.getLoginLogs(); + @PostMapping("getUserList") + @ApiOperation(value = "用户管理-列表") + public R getList(SysUser o){ + List list = userService.getMsgList(o); + return list.size() > 0 ? R.okTable(list, list.size()):R.failTable("暂无数据"); } @LogAnnotation - @PostMapping(value = "/getRole") - @ApiOperation(value = "人员角色select列表") - public List getRole() { - List result = userService.getRole(); - return result; + @PostMapping("switchListen") + @ApiOperation(value = "用户管理-用户锁定") + public AjaxRes switchListen(SysUser bean) { + AjaxRes ar = new AjaxRes(); + int result = userService.updateSwitchListen(bean); + if(result==1){ + ar.setSucceedMsg(GlobalConst.DATA_SUCCEED); + }else { + ar.setFailMsg(GlobalConst.DATA_FAIL); + } + return ar; } @LogAnnotation @@ -153,18 +159,50 @@ public class UserController { return ar; } - @RequestMapping(value = "getListPerson", method = RequestMethod.POST) + @LogAnnotation + @PostMapping(value = "/getRole") + @ApiOperation(value = "人员角色select列表") + public List getRole(String roleId) { + List result = userService.getRole(roleId); + return result; + } + + @RequestMapping(value = "addInfo", method = RequestMethod.POST) @ResponseBody - @ApiOperation(value = "个人信息-查询") - public AjaxRes getListPerson(){ + @ApiOperation(value = "用户管理-新增") + public AjaxRes addInfo(@RequestBody SysUser bean) throws Exception { AjaxRes ar = new AjaxRes(); - SysUser sysUser = userService.getListPerson(); - Map map = new HashMap<>(); - if(sysUser !=null){ - map.put("sysUser",sysUser); + int cb = userService.addInfo(bean); + ar.setFailMsg(GlobalConst.DATA_FAIL); + if(cb>0){ + ar.setFailMsg(GlobalConst.INIT_SUCCEED); +// if (cb == 3){ +// ar.setFailMsg("人员已存在"); +// } + if (cb == 5){ + ar.setFailMsg("手机号已存在"); + } } - ar.setSucceed(map,GlobalConst.DATA_SUCCEED); - return ar; + return ar; + } + + @RequestMapping(value = "updateInfo", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "用户管理-修改") + public AjaxRes updateInfo(@RequestBody SysUser bean) throws Exception { + AjaxRes ar = new AjaxRes(); + int cb = userService.updateInfo(bean); + ar.setFailMsg(GlobalConst.DATA_FAIL); + if(cb>0){ + ar.setFailMsg(GlobalConst.INIT_SUCCEED); +// if (cb == 3){ +// ar.setFailMsg("人员已存在"); +// } + if (cb == 5){ + ar.setFailMsg("手机号已存在"); + } + } + return ar; } @RequestMapping(value = "updatePerson", method = RequestMethod.POST) @@ -183,6 +221,84 @@ public class UserController { return ar; } + + + + @RequestMapping(value = "getListPerson", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "个人信息-查询") + public AjaxRes getListPerson(){ + AjaxRes ar = new AjaxRes(); + SysUser sysUser = userService.getListPerson(); + Map map = new HashMap<>(); + if(sysUser !=null){ + map.put("sysUser",sysUser); + } + ar.setSucceed(map,GlobalConst.DATA_SUCCEED); + return ar; + } + + @RequestMapping(value = "updateMyInfo", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "个人信息-修改") + public AjaxRes updateMyInfo(@RequestBody SysUser bean) throws Exception { + AjaxRes ar = new AjaxRes(); + int cb = userService.updateMyInfo(bean); + ar.setFailMsg(GlobalConst.DATA_FAIL); + if(cb>0){ + ar.setFailMsg(GlobalConst.INIT_SUCCEED); + } + return ar; + } + + @RequestMapping(value = "getListById", method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "用户管理-查询人员信息") + public AjaxRes getListById(String id){ + AjaxRes ar = new AjaxRes(); + SysUser sysUser = userService.getListById(id); + Map map = new HashMap<>(); + if(sysUser !=null){ + map.put("sysUser",sysUser); + } + ar.setSucceed(map,GlobalConst.DATA_SUCCEED); + return ar; + } + + + + @LogAnnotation + @PostMapping("delById") + @ApiOperation(value = "用户管理-删除") + public AjaxRes delById(SysUser bean) throws Exception { + AjaxRes ar = new AjaxRes(); + //删除之前先查询出来 + Long userId = bean.getId(); + SysUser userDto = userDao.getEyId(userId); + int result = userService.delById(bean); + if(result==1){ + ar.setSucceedMsg(GlobalConst.DATA_SUCCEED); + }else { + ar.setFailMsg(GlobalConst.DATA_FAIL); + } + + return ar; + } + + @LogAnnotation + @PostMapping("resetPassword") + @ApiOperation(value = "用户管理-重置密码") + public AjaxRes resetPassword(SysUser bean) { + AjaxRes ar = new AjaxRes(); + int result = userService.resetPassword(bean); + if(result==1){ + ar.setSucceedMsg(GlobalConst.DATA_SUCCEED); + }else { + ar.setFailMsg(GlobalConst.DATA_FAIL); + } + return ar; + } + } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/dao/UserDao.java b/src/main/java/com/bonus/leader/performance/manager/manager/dao/UserDao.java index acacfd1..a6d9342 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/dao/UserDao.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/dao/UserDao.java @@ -42,19 +42,31 @@ public interface UserDao { int update(SysUser user); - int insertLoginInfo(SysUser sysuser); + SysUser getEyId(Long userId); - List findAllByOrderByCreateTimeDesc(String userId); - - List getRole(); + List getRole(String roleId); List getDepartmentTree(ZNode o); SysUser getListById(String id); - int phoneIfExists(String sysUser, String phone, String phone1, String string); + List getMsgList(SysUser o); + + int updateSwitchListen(SysUser o); + + int addInfo(SysUser bean); + + int insertroleUser(SysUser bean); int updateInfo(SysUser bean); int updateRoleUser(SysUser bean); + + int updateMyInfo(SysUser bean); + + int resetPassword(SysUser bean); + + int delById(SysUser bean); + + int insertLoginInfo(SysUser sysuser); } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/dao/UtilDao.java b/src/main/java/com/bonus/leader/performance/manager/manager/dao/UtilDao.java new file mode 100644 index 0000000..51f5e3a --- /dev/null +++ b/src/main/java/com/bonus/leader/performance/manager/manager/dao/UtilDao.java @@ -0,0 +1,68 @@ +/** + * 创建人: @author 北风 + * 创建时间: 2023年05月31日 13:32 + * 项目名称: YSpeaManager + * 文件名称: UtilDao + * 文件描述: @Description: 工具类dao + */ +package com.bonus.leader.performance.manager.manager.dao; + +import com.bonus.leader.performance.manager.manager.model.SysUser; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UtilDao { + /** + * 判断某个数据是否存在 + * 需要传入的值: + * tableName: 表名 + * filed: 字段名 + * filedValue: 字段值 + * id : 数据库表的id 可加可不加 + * @return 0 表示不存在 1表示存在 sql限制了查询到一条即返回 + */ + int determineIfExists(String tableName,String filedId,String filedValue,String id); + + + int personIfExists(String tableName, String filedId, String filedValue); + +// void insertLoginInfo(SysUser b); + + int insertLoginInfo(SysUser b); + + int phoneIfExists(String sysUser, String phone, String phone1, String id); + + int upLoginLog(SysUser bean); +// +// /** +// * 获取医院下拉框 可根据传入mapBean value值进行模糊查询,不传默认查询全部 +// * @param bean +// * @return +// */ +// List getHospitalSelect(MapBean bean); +// +// List getPackageType(); +// +// List getPersonType(); +// +// List getSpecialPost(); +// +// List getRole(); +// +// /** +// * 获取套餐下拉框 可根据传入mapBean keyword和type值进行查询,不传默认查询全部 +// * @param bean +// * @return +// */ +// List getSetMeal(MapBean bean); +// +// int findteltpone(String phone); +// +// String getstandId(); +// +// int userteltpone(String phone); +// +// List getHazard(); + + +} diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/entity/NoticeReadVO.java b/src/main/java/com/bonus/leader/performance/manager/manager/entity/NoticeReadVO.java index 9ae90fe..0a7f7f0 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/entity/NoticeReadVO.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/entity/NoticeReadVO.java @@ -4,6 +4,9 @@ import java.util.Date; import com.bonus.leader.performance.manager.manager.model.Notice; +/** + * @author 24526 + */ public class NoticeReadVO extends Notice { private static final long serialVersionUID = -3842182350180882396L; @@ -35,4 +38,13 @@ public class NoticeReadVO extends Notice { public void setIsRead(Boolean isRead) { this.isRead = isRead; } + + @Override + public String toString() { + return "NoticeReadVO{" + + "userId=" + userId + + ", readTime=" + readTime + + ", isRead=" + isRead + + '}'; + } } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/entity/NoticeVO.java b/src/main/java/com/bonus/leader/performance/manager/manager/entity/NoticeVO.java index f0f8218..07ddf75 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/entity/NoticeVO.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/entity/NoticeVO.java @@ -6,6 +6,9 @@ import java.util.List; import com.bonus.leader.performance.manager.manager.model.Notice; import com.bonus.leader.performance.manager.manager.model.SysUser; +/** + * @author 24526 + */ public class NoticeVO implements Serializable { private static final long serialVersionUID = 7363353918096951799L; @@ -30,4 +33,11 @@ public class NoticeVO implements Serializable { this.users = users; } + @Override + public String toString() { + return "NoticeVO{" + + "notice=" + notice + + ", users=" + users + + '}'; + } } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/model/SysUser.java b/src/main/java/com/bonus/leader/performance/manager/manager/model/SysUser.java index 295659e..2c359a8 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/model/SysUser.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/model/SysUser.java @@ -28,7 +28,7 @@ public class SysUser extends BaseEntity { private String departmentId; private String department; private String keyWord; - + private String orgName; private String roleName; private String level; diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/service/UserService.java b/src/main/java/com/bonus/leader/performance/manager/manager/service/UserService.java index f35bb14..87cb4b9 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/service/UserService.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/service/UserService.java @@ -22,11 +22,28 @@ public interface UserService { List> getLoginLogs(); - List getRole(); + List getRole(String roleId); List getDepartmentTree(); SysUser getListPerson(); int updatePerson(SysUser bean); + + + List getMsgList(SysUser o); + + int updateSwitchListen(SysUser bean); + + int addInfo(SysUser bean); + + int updateInfo(SysUser bean); + + int updateMyInfo(SysUser bean); + + SysUser getListById(String id); + + int resetPassword(SysUser bean); + + int delById(SysUser bean); } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/UserServiceImpl.java b/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/UserServiceImpl.java index 364d3bb..cf349bb 100644 --- a/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/UserServiceImpl.java +++ b/src/main/java/com/bonus/leader/performance/manager/manager/service/impl/UserServiceImpl.java @@ -10,7 +10,9 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import com.bonus.leader.performance.manager.manager.config.StaticVariablesConfig; import com.bonus.leader.performance.manager.manager.dao.UserDao; +import com.bonus.leader.performance.manager.manager.dao.UtilDao; import com.bonus.leader.performance.manager.manager.entity.MapBean; import com.bonus.leader.performance.manager.manager.entity.ZNode; import com.bonus.leader.performance.manager.manager.model.SysUser; @@ -26,11 +28,14 @@ import org.springframework.util.CollectionUtils; import com.bonus.leader.performance.manager.manager.entity.UserDto; import com.bonus.leader.performance.manager.manager.service.UserService; +import javax.annotation.Resource; + @Service public class UserServiceImpl implements UserService { private static final Logger log = LoggerFactory.getLogger("adminLogger"); - + @Resource + private UtilDao utilDao; @Autowired private UserDao userDao; @Autowired @@ -79,56 +84,14 @@ public class UserServiceImpl implements UserService { log.debug("修改{}的密码", username); } - - - @Override - @Transactional - public SysUser updateUser(UserDto userDto) { - userDao.update(userDto); - saveUserRoles(userDto.getId(), userDto.getRoleIds()); - - return userDto; - } - - /**-------------------------------------------用户管理新接口-----------------------------------------------------------------*/ - @Override public List> getLoginLogs() { - List> result = new ArrayList<>(); - String userId = UserUtil.getLoginUser().getId().toString(); - List sysUsers = userDao.findAllByOrderByCreateTimeDesc(userId); - Map>> resultMap = new LinkedHashMap<>(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); - - for (SysUser sysUser : sysUsers) { - String loginDate = dateFormat.format(sysUser.getCreateTime()); - - Map record = new LinkedHashMap<>(); - record.put("system", sysUser.getSystemName()); - record.put("ip", sysUser.getIpAddress()); - record.put("hostName", sysUser.getHostName()); - record.put("time", timeFormat.format(sysUser.getCreateTime())); - - if (!resultMap.containsKey(loginDate)) { - resultMap.put(loginDate, new ArrayList<>()); - } - resultMap.get(loginDate).add(record); - } - - for (Map.Entry>> entry : resultMap.entrySet()) { - Map dateRecord = new LinkedHashMap<>(); - dateRecord.put("date", entry.getKey()); - dateRecord.put("records", entry.getValue()); - result.add(dateRecord); - } - - return result; + return null; } @Override - public List getRole() { - return userDao.getRole(); + public List getRole(String roleId) { + return userDao.getRole(roleId); } @Override @@ -147,14 +110,83 @@ public class UserServiceImpl implements UserService { @Override public int updatePerson(SysUser bean) { + return 0; + } + + @Override + public List getMsgList(SysUser o) { + return userDao.getMsgList(o); + } + + @Override + public int updateSwitchListen(SysUser o) { + return userDao.updateSwitchListen(o); + } + + @Override + @Transactional + public int addInfo(SysUser bean) { + int phone = utilDao.personIfExists("sys_user","phone",bean.getPhone()); + if(phone >0){ + return 5; + } + bean.setPassword(passwordEncoder.encode(StaticVariablesConfig.getInitialPassword())); + int num = userDao.addInfo(bean); + if (num > 0){ + //返回主键 插入sys_role_user表中去 + num = userDao.insertroleUser(bean); + } + return num; + + } + + @Override + @Transactional + public int updateInfo(SysUser bean) { int num =0; - bean.setId(UserUtil.getLoginUser().getId()); -// int phone = userDao.phoneIfExists("sys_user","phone",bean.getPhone(),bean.getId().toString()); -// if(phone >0){ -// return 5; -// } + int phone = utilDao.phoneIfExists("sys_user","phone",bean.getPhone(),bean.getId().toString()); + if(phone >0){ + return 5; + } num = userDao.updateInfo(bean); - int team = userDao.updateRoleUser(bean); + if (num > 0){ + num = userDao.updateRoleUser(bean); + } return num; } + + @Override + public int updateMyInfo(SysUser bean) { + return userDao.updateMyInfo(bean); + } + + @Override + public SysUser getListById(String id) { + return userDao.getListById(id); + } + + @Override + public int resetPassword(SysUser bean) { + bean.setPassword(passwordEncoder.encode(bean.getPassword())); + return userDao.resetPassword(bean); + } + + @Override + public int delById(SysUser bean) { + return userDao.delById(bean); + } + + + @Override + @Transactional + public SysUser updateUser(UserDto userDto) { + userDao.update(userDto); + saveUserRoles(userDto.getId(), userDto.getRoleIds()); + + return userDto; + } + + /**-------------------------------------------用户管理新接口-----------------------------------------------------------------*/ + + } diff --git a/src/main/java/com/bonus/leader/performance/manager/manager/utils/Constant.java b/src/main/java/com/bonus/leader/performance/manager/manager/utils/Constant.java new file mode 100644 index 0000000..b1be3e1 --- /dev/null +++ b/src/main/java/com/bonus/leader/performance/manager/manager/utils/Constant.java @@ -0,0 +1,14 @@ +package com.bonus.leader.performance.manager.manager.utils; + +/** + * FileName: Constant + * + * @author tqzhang + * Date: 2024 2024/2/19 15:45 + * Description:常量 + */ +public class Constant { + + public static final String TWO_STR = "2"; + +} diff --git a/src/main/resources/mappers/user/UserMapper.xml b/src/main/resources/mappers/user/UserMapper.xml deleted file mode 100644 index 85bc736..0000000 --- a/src/main/resources/mappers/user/UserMapper.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - and t.username like concat('%', #{params.username}, '%') - - - and t.nickname like concat('%', #{params.nickname}, '%') - - - and t.status = #{params.status} - - - - - - - - - - insert into sys_role_user(roleId, userId) values - - (#{roleId}, #{userId}) - - - - - update sys_user t - - - username = #{username}, - - - nickname = #{nickname}, - - - headImgUrl = #{headImgUrl}, - - - phone = #{phone}, - - - telephone = #{telephone}, - - - email = #{email}, - - - birthday = #{birthday}, - - - sex = #{sex}, - - - status = #{status}, - - updateTime = #{updateTime} - - where t.id = #{id} - - \ No newline at end of file diff --git a/src/main/resources/mappers/user/UtilMapper.xml b/src/main/resources/mappers/user/UtilMapper.xml new file mode 100644 index 0000000..f6c28a0 --- /dev/null +++ b/src/main/resources/mappers/user/UtilMapper.xml @@ -0,0 +1,29 @@ + + + + + insert into login_logs + (system_name, ip, address, createTime, month, is_active, userId) + values + (#{systemName}, #{ipAddress}, #{hostName}, now(), #{month}, '1', #{userId}) + + + update sys_notic_person set is_read = '1' where id = #{id} + + + + + + + + diff --git a/src/main/resources/mappers/user/newUserMapper.xml b/src/main/resources/mappers/user/newUserMapper.xml new file mode 100644 index 0000000..e75fb51 --- /dev/null +++ b/src/main/resources/mappers/user/newUserMapper.xml @@ -0,0 +1,204 @@ + + + + + + + + and t.username like concat('%', #{params.username}, '%') + + + and t.nickname like concat('%', #{params.nickname}, '%') + + + and t.status = #{params.status} + + + + + update sys_user set is_active = '0' where id = #{id} + + + + + + + + + + + + + + insert into sys_role_user(roleId, userId) values + + (#{roleId}, #{userId}) + + + + insert into sys_user(username,password,phone,role_id,org_id,status,is_active) + values (#{username},#{password},#{phone},#{roleId},#{departmentId},'1','1') + + + INSERT INTO sys_role_user(userId, roleId) + SELECT id, #{roleId} + FROM sys_user + WHERE phone = #{phone} and is_active = '1' + + + insert into login_logs + (system_name, ip, address, createTime, month, is_active, userId) + values + (#{systemName}, #{ipAddress}, #{hostName}, now(), #{month}, '1', #{userId}) + + + + update sys_user t + + + username = #{username}, + + + nickname = #{nickname}, + + + headImgUrl = #{headImgUrl}, + + + phone = #{phone}, + + + telephone = #{telephone}, + + + email = #{email}, + + + birthday = #{birthday}, + + + sex = #{sex}, + + + status = #{status}, + + updateTime = #{updateTime} + + where t.id = #{id} + + + update sys_user set status = #{status} where id = #{id} + + + update sys_user + + + username = #{username}, + + + phone = #{phone}, + + + role_id = #{roleId}, + + + org_id = #{departmentId}, + + + where id = #{id} + + + UPDATE sys_role_user + SET + roleId = #{roleId} + WHERE + userId = #{id}; + + + update sys_user + + + username = #{username}, + + + phone = #{phone}, + + + role_id = #{roleId}, + + + org_id = #{departmentId}, + + + where phone = #{phone} + + + update sys_user set password = #{password} where id = #{id} + + \ No newline at end of file diff --git a/src/main/resources/static/js/select.js b/src/main/resources/static/js/select.js index 5e72ccb..2c2d3df 100644 --- a/src/main/resources/static/js/select.js +++ b/src/main/resources/static/js/select.js @@ -392,7 +392,7 @@ function getRole(form,roleId) { } } $("#roleId").html(html); - layui.form.render('select'); //这里就是我们要渲染的地方了 + form.render('select'); //这里就是我们要渲染的地方了 // form.render('select' ,'combinType'); }, error: function (err) { diff --git a/src/main/resources/static/js/work/user/UserManagementList.js b/src/main/resources/static/js/work/user/UserManagementList.js new file mode 100644 index 0000000..4644375 --- /dev/null +++ b/src/main/resources/static/js/work/user/UserManagementList.js @@ -0,0 +1,291 @@ +var oldKeyWord; +var oldDepartment; +var oldDepartmentId; +var oldRoleId; +var oldRoleName; +layui.use(['table', 'layer', 'laydate', 'jquery', 'form'], function () { + var table = layui.table; + var laydate = layui.laydate; + let form = layui.form; + + //渲染table + table.render({ + elem: '#demo' + , url: ctxPath + '/users/getUserList' //数据接口 + , method: 'post' //方式默认是get + , toolbar: 'default' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档 + , where: {} //post请求必须加where ,post请求需要的参数 + , cellMinWidth: 80 + , cols: [[ //表头 + {field: 'number', width:100,title: '序号', align: 'center', type: 'numbers'} + , {field: 'username',width:200, align: 'center', title: '用户名'} + , {field: 'phone', width: 150, align: 'center', title: '联系方式(登录名)'} + , {field: 'roleName', width: 200, align: 'center', title: '角色'} + , {field: 'orgName', width: 220, align: 'center', title: '组织机构'} + , {field: 'createTimes', width: 220, align: 'center', title: '创建时间'} + , {field: 'status', width: 200, align: 'center', title: '状态', id:'statusSwitch', templet: '#switchTpl'} + , {fixed: 'right', title: '操作', align: 'center', toolbar: '#toolsBar'} + ]] + , id: 'menuTable' + , page: true //开启分页 + , loading: true //数据加载中。。。 + , limits: [10, 20, 50, 100] //一页选择显示3,5或10条数据 + , limit: 10 //一页显示5条数据 + , response: { + statusCode: 200 //规定成功的状态码,默认:0 + }, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据,res为从url中get到的数据 + let result; + if (res.data !== '' && res.data != null && res.data !== "null") { + if (this.page.curr) { + result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr); + } else { + result = res.data.slice(0, this.limit); + } + } + return { + "code": res.code, //解析接口状态 + "msg": res.msg, //解析提示文本 + "count": res.count, //解析数据长度 + "data": result, //解析数据列表 + }; + }, + toolbar: "#toolbar" + }); + + form.on('switch(statusSwitch)', function(data){ + var isChecked = data.elem.checked; // 获取复选框的当前状态 + var value = data.value; // 获取复选框的值 + let status = isChecked ? 1 : 0; + // 发送请求到后端更新数据库中的状态字段 + $.ajax({ + url: ctxPath + '/users/switchListen', + type: 'POST', + data: { id: value, status: status }, + success: function(res) { + layer.msg('状态更新成功'); + }, + error: function() { + layer.msg('更新状态失败'); + } + }); + }); + + /** + * 部门下拉树 + */ + loadOrgTree(); + /** + * 点击除了部门输入框和下拉树范围之外的地方,关闭下拉树列表 + */ + $(document).on('click',function(e){ + if ($(e.target).closest('#orgContent').length == 0 && $(e.target).closest('#department').length == 0){ + hideRole(); + } + }) + // 行工具事件 + table.on('tool(test)', function (obj) { + var data = obj.data //获得当前行数据 + var layEvent = obj.event; //获得 lay-event 对应的值 + var id = data.id + if (layEvent === 'edit') { + openForm(id,'修改'); + } else if (layEvent === 'del') { + del(id); + } else if (layEvent === 'resetPassword'){ + resetPassword(id); + } + }); + + //头监听事件 -- checkBox 选中行和选中条数 + table.on('toolbar(test)', function (obj) { + // 获取当前表格被选中的记录对象,返回数据 + table.checkStatus(obj.config.id); + //获取事件名,执行对应的代码 + var eventName = obj.event; + console.log(eventName) + switch (eventName) { + case "searchBt": + oldKeyWord = $("#keyWord").val(); + oldDepartment = $("#department").val(); + oldDepartmentId = $("#departmentId").val(); + oldRoleId = $("#roleId").val(); + table.reload('menuTable', { + url: ctxPath + '/users/getUserList' + , method: 'post' //方式默认是get + , page: true + , where: { + keyWord: oldKeyWord, + department: oldDepartment, + departmentId: oldDepartmentId, + roleId: oldRoleId + } //设定异步数据接口的额外参数 + }); + /**二次赋值-- 点击搜索按钮之后会进行一次刷新操作*/ + loadOrgTree(); + $("#keyWord").val(oldKeyWord); + $("#department").val(oldDepartment); + $("#departmentId").val(oldDepartmentId); + getRole(form,oldRoleId); + loadOrgTree(); + break; + case "addBtn": + openForm("",'新增用户'); + break; + case "resetBt": + oldKeyWord = ""; + oldDepartment = "点击进行部门选择"; + oldDepartmentId = ""; + oldRoleId = ""; + $("#keyWord").val(""); + $("#department").val("点击进行部门选择"); + $("#departmentId").val(""); + table.reload('menuTable', { + url: ctxPath + '/users/getUserList' + , method: 'post' //方式默认是get + , page: true + , where: { + username: "", + keyWord: "", + department: "", + departmentId: "", + roleId: "" + } //设定异步数据接口的额外参数 + }); + loadOrgTree(); + getRole(form,"") + break; + case "exportBtn": + //导出 + break; + } + }); + getRole(form,null); + form.render(); +}); + + +/** + * 新增-修改功能 + */ +function openForm(id,title){ + localStorage.setItem("id",id); + localStorage.setItem("inType","personAdd") + layerOpenForm(title,"./addUserForm.html","70%","85%") +} + + +/** + * 删除功能 + */ +function del(id) { + layer.confirm('确定要删除吗?', { + btn : [ '确定', '取消' ] + }, function() { + ajaxCommonMethods('/users/delById',{'id': id},"删除成功","删除失败","1"); + layer.close(1); + }); +} + + +/** + * 重置密码 + * @param id + */ +function resetPassword(id){ + layer.prompt({ + formType: 0, + value: '', + title: '请输入重置后密码', + btn:['确定','取消'], + btnAlign:'c', + }, function(value, index, elem){ + if (!password_reg(value)){ + layer.msg("密码过于简单,必须包含数字,特殊符号,大写或小写!",{icon:0}); + return false; + } + ajaxCommonMethods('/users/resetPassword',{'id': id,'password':value},"重置成功","重置失败","1"); + }); +} + + +/** 树的方法开始 */ +var machines = new Set(); //专业容器 +var size = 1; //序号 +var map =[]; +var mapinfo={}; +function loadOrgTree(){ + $.ajax({ + type: "post", + url: ctxPath + "/users/getDepartmentTree", + data: {}, + dataType: "json", + success: function(data) { + $.fn.zTree.init($("#departmentTree"),{view:{showIcon: false,dblClickExpand:true,selectedMulti:false,nameIsHTML:true},data:{simpleData:{enable: true}}, + callback:{ + onClick:clickRole + }},data.obj); + // 获取树对象 + var treeObj = $.fn.zTree.getZTreeObj("departmentTree"); + /* 获取所有树节点 */ + var nodes = treeObj.transformToArray(treeObj.getNodes()); + //展开第一级树 + treeObj.expandNode(nodes[1], true); + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + alert("未连接到服务器,请检查网络!"); + } + }); +} + +/** + * 专业的选择 + */ +var preisShow=false;//窗口是否显示 +function showRole() { + if(preisShow){ + hideRole(); + }else{ + var obj = $("#department"); + var offpos = $("#department").position(); + $("#orgContent").css({width:offpos.width+"px",left:offpos.left+"px",top:offpos.top+obj.heigth+"px"}).slideDown("fast"); + preisShow=true; + } +} + +function hideRole(){ + $("#orgContent").fadeOut("fast"); + preisShow=false; +} +var isParent = null +var examPerfession = null; +var typeId = null; +function clickRole(e, treeId, treeNode) { + // if(!treeNode.isParent){ + var check = (treeNode); + if(check){ + var zTree = $.fn.zTree.getZTreeObj("departmentTree"), + nodes = zTree.getSelectedNodes(),v ="",n ="",o="",p=""; + for (var i=0, l=nodes.length; i 0 ) v = v.substring(0, v.length-1); + if (n.length > 0 ) n = n.substring(0, n.length-1); + if (o.length > 0 ) o = o.substring(0, o.length-1); + if (p.length > 0 ) p = p.substring(0, p.length-1); + $("#departmentId").val(n); + $("#department").val(p); + // typeId = n; + examPerfession = n; + isParent = treeNode.isParent; + typeId = treeNode.type; + hideRole(); + } + // } +} +/**树的方法结束*/ \ No newline at end of file diff --git a/src/main/resources/static/pages/user/addUserForm.html b/src/main/resources/static/pages/user/addUserForm.html new file mode 100644 index 0000000..81cf50a --- /dev/null +++ b/src/main/resources/static/pages/user/addUserForm.html @@ -0,0 +1,367 @@ + + + + + 用户查询--新增 + + + + + + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + + + +
+
+
+
+
+ + +
+
+ + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/pages/user/userList.html b/src/main/resources/static/pages/user/userList.html index 6fa6933..9a47fad 100644 --- a/src/main/resources/static/pages/user/userList.html +++ b/src/main/resources/static/pages/user/userList.html @@ -1,156 +1,171 @@ - + - -Insert title here - - - + + 用户查询--用户列表 + + + + -
-
-
-
- - - - - -
-
-
- 用户名: - - 昵称: - - 状态: - - -
-
-
- -
-
-
- -
-
- - - - - - - - - - - - - - - -
username昵称手机号邮箱状态操作
-
-
-
+
+
+ +
+
+ +
+
+
- - - - - + + - + + + + + \ No newline at end of file