修改用户

main
tamguo 7 years ago
parent 3a12d4fa69
commit 5faef5ab16

@ -0,0 +1,8 @@
package com.tamguo.modules.sys.dao;
import com.tamguo.config.dao.SuperMapper;
import com.tamguo.modules.sys.model.SysUserPostEntity;
public interface SysUserPostMapper extends SuperMapper<SysUserPostEntity>{
}

@ -3,6 +3,7 @@ package com.tamguo.modules.sys.model;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
@ -63,11 +64,15 @@ public class SysUserEntity implements Serializable {
private String updateBy;
private Date updateDate;
private String userName;
private String empName;
private String userType;
private BigDecimal userWeight;
private String wxOpenid;
private String userNameEn;
@TableField(exist=false)
private List<String> employeePosts;
public SysUserEntity() {
}
@ -423,5 +428,21 @@ public class SysUserEntity implements Serializable {
this.userNameEn = userNameEn;
}
public List<String> getEmployeePosts() {
return employeePosts;
}
public void setEmployeePosts(List<String> employeePosts) {
this.employeePosts = employeePosts;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
}

@ -0,0 +1,23 @@
package com.tamguo.modules.sys.model;
import com.baomidou.mybatisplus.annotations.TableName;
@TableName(value="sys_user_post")
public class SysUserPostEntity {
private String userCode;
private String postCode;
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getPostCode() {
return postCode;
}
public void setPostCode(String postCode) {
this.postCode = postCode;
}
}

@ -10,4 +10,13 @@ public interface ISysUserService extends IService<SysUserEntity>{
public SysUserEntity queryByLoginCode(String loginCode);
public Page<SysUserEntity> listData(SysUserCondition condition);
/** 用户岗位*/
public String queryUserPostByUserCode(String userCode);
/** 检查登录账号*/
public Boolean checkLoginCode(String oldLoginCode , String loginCode);
/** 更新用户信息*/
public void update(SysUserEntity user);
}

@ -1,13 +1,21 @@
package com.tamguo.modules.sys.service.impl;
import java.util.LinkedList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.tamguo.modules.sys.dao.SysUserMapper;
import com.tamguo.modules.sys.dao.SysUserPostMapper;
import com.tamguo.modules.sys.model.SysUserEntity;
import com.tamguo.modules.sys.model.SysUserPostEntity;
import com.tamguo.modules.sys.model.condition.SysUserCondition;
import com.tamguo.modules.sys.service.ISysUserService;
@ -16,6 +24,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
@Autowired
public SysUserMapper sysUserMapper;
@Autowired
public SysUserPostMapper sysUserPostMapper;
@Transactional(readOnly=false)
@Override
@ -32,4 +42,63 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUserEntity
return page.setRecords(sysUserMapper.listData(condition , page));
}
@SuppressWarnings("unchecked")
@Override
public String queryUserPostByUserCode(String userCode) {
Condition condition = Condition.create();
condition.eq("user_code", userCode);
List<SysUserPostEntity> userPostList = sysUserPostMapper.selectList(condition);
List<String> postCodes = new LinkedList<>();
for(int i=0 ; i<userPostList.size() ; i++) {
postCodes.add(userPostList.get(i).getPostCode());
}
return StringUtils.join(postCodes, ",");
}
@Transactional(readOnly=false)
@SuppressWarnings("unchecked")
@Override
public Boolean checkLoginCode(String oldLoginCode, String loginCode) {
Condition condition = Condition.create();
condition.eq("login_code", loginCode);
condition.ne("login_code", oldLoginCode);
List<SysUserEntity> userList = sysUserMapper.selectList(condition);
return CollectionUtils.isEmpty(userList);
}
@SuppressWarnings("unchecked")
@Transactional(readOnly=false)
@Override
public void update(SysUserEntity user) {
SysUserEntity entity = sysUserMapper.selectById(user.getUserCode());
entity.setOfficeCode(user.getOfficeCode());
entity.setOfficeName(user.getOfficeName());
entity.setCompanyCode(user.getCompanyCode());
entity.setCompanyName(user.getCompanyName());
entity.setLoginCode(user.getLoginCode());
entity.setUserName(user.getUserName());
entity.setEmail(user.getEmail());
entity.setMobile(user.getMobile());
entity.setPhone(user.getPhone());
entity.setUserWeight(user.getUserWeight());
entity.setRefName(user.getRefName());
entity.setUserNameEn(user.getUserNameEn());
entity.setRemarks(user.getRemarks());
sysUserMapper.updateById(entity);
// 删除记录
sysUserPostMapper.delete(Condition.create().eq("user_code", user.getUserCode()));
// 处理岗位
List<String> employeePosts = user.getEmployeePosts();
for(int i=0 ; i<employeePosts.size() ; i++) {
SysUserPostEntity userPost = new SysUserPostEntity();
userPost.setPostCode(employeePosts.get(i));
userPost.setUserCode(user.getUserCode());
sysUserPostMapper.insert(userPost);
}
}
}

@ -36,10 +36,13 @@ public class SysUserController {
return model;
}
@SuppressWarnings("unchecked")
@RequestMapping(path="update")
public ModelAndView update(String userCode , ModelAndView model) {
model.setViewName(USER_DETAIL_PAGE);
model.addObject("user", iSysUserService.selectById(userCode));
model.addObject("postList", iPostService.selectList(Condition.create().eq("status", "0")));
model.addObject("userPostCode", iSysUserService.queryUserPostByUserCode(userCode));
return model;
}
@ -50,4 +53,16 @@ public class SysUserController {
return Result.jqGridResult(page.getRecords(), page.getTotal(), page.getSize(), page.getCurrent(), page.getPages());
}
@RequestMapping(path="checkLoginCode",method=RequestMethod.GET)
@ResponseBody
public Boolean checkLoginCode(String oldLoginCode , String loginCode) {
return iSysUserService.checkLoginCode(oldLoginCode , loginCode);
}
@RequestMapping(path="update",method=RequestMethod.POST)
@ResponseBody
public Result update(SysUserEntity user) {
iSysUserService.update(user);
return Result.result(0, null, "保存用户【"+user.getUserCode()+"】成功!");
}
}

@ -4,6 +4,7 @@
<select id="listData" resultType="SysUserEntity">
SELECT
distinct
u.user_code,
u.office_code,
u.office_name,

@ -0,0 +1,5 @@
<?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.tamguo.modules.sys.dao.SysUserPostMapper">
</mapper>

@ -27,10 +27,8 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div>
<form id="inputForm" action="/js/a/sys/empUser/save" method="post" class="form-horizontal">
<form id="inputForm" th:action="${setting.domain + 'sys/user/update'}" method="post" class="form-horizontal">
<input type="hidden" id="op" name="op" value="edit"/>
<input type="hidden" id="userType" name="userType" value="employee"/>
<input type="hidden" id="userCode" name="userCode" value="TEST01_miom"/>
<div class="box-body">
<div class="form-unit">基本信息</div>
<div class="row">
@ -39,12 +37,10 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 归属机构:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<div class="input-group treeselect" id="officeDiv" data-url="/js/a/sys/office/treeData">
<input id="officeCode" type="hidden" name="employee.office.officeCode" th:value="${user.officeCode}" class="isReset"/>
<input id="officeName" type="text" name="employee.office.officeName" th:value="${user.officeName}"
class="form-control required " readonly="readonly"
/><span class="input-group-btn"><a id="officeButton" href="javascript:"
class="btn btn-default "><i class="fa fa-search"></i></a>
<div class="input-group treeselect" id="officeDiv" data-url="sys/office/treeData?">
<input id="officeCode" type="hidden" name="officeCode" th:value="${user.officeCode}" class="isReset"/>
<input id="officeName" type="text" name="officeName" th:value="${user.officeName}" class="form-control required " readonly="readonly"/>
<span class="input-group-btn"><a id="officeButton" href="javascript:" class="btn btn-default "><i class="fa fa-search"></i></a>
</span>
</div>
<script>
@ -125,16 +121,16 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 归属公司:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<div class="input-group treeselect" id="companyDiv" data-url="/js/a/sys/company/treeData">
<input id="companyCode" type="hidden" name="employee.company.companyCode" value="" class="isReset"/>
<input id="companyName" type="text" name="employee.company.companyName" value=""
<div class="input-group treeselect" id="companyDiv" data-url="sys/company/treeData?">
<input id="companyCode" type="hidden" name="companyCode" th:value="${user.companyCode}" class="isReset"/>
<input id="companyName" type="text" name="companyName" th:value="${user.companyName}"
class="form-control " readonly="readonly"
/><span class="input-group-btn"><a id="companyButton" href="javascript:"
class="btn btn-default "><i class="fa fa-search"></i></a>
</span>
</div>
<script>
$("#companyButton,#companyName").click(function(){
</div>
<script>
$("#companyButton,#companyName").click(function(){
if ($("#companyButton").hasClass("disabled")){
return true;
}
@ -144,7 +140,7 @@ $("#companyButton,#companyName").click(function(){
shadeClose: true,
title: '公司选择',
area: ['300px', '400px'],
content: '/js/tags/treeselect',
content: 'sys/treeselect',
contentFormData: {
url: $('#companyDiv').attr('data-url'),
checkbox: 'false',
@ -209,8 +205,9 @@ $("#companyButton,#companyName").click(function(){
}
};
js.layer.open(options);
});
</script> </div>
});
</script>
</div>
</div>
</div>
</div>
@ -220,8 +217,8 @@ $("#companyButton,#companyName").click(function(){
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 登录账号:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="hidden" id="oldLoginCode" name="oldLoginCode" value="TEST01"/>
<input type="text" id="loginCode" name="loginCode" th:value="${user.loginCode}" minlength="4" maxlength="20" class="form-control required userName" remote="/js/a/sys/user/checkLoginCode?oldLoginCode=TEST01" data-msg-remote="登录账号已存在"/>
<input type="hidden" id="oldLoginCode" name="oldLoginCode" th:value="${user.loginCode}"/>
<input type="text" id="loginCode" name="loginCode" th:value="${user.loginCode}" minlength="4" maxlength="20" class="form-control required userName" th:remote="${setting.domain + 'sys/user/checkLoginCode?oldLoginCode='+user.loginCode}" data-msg-remote="登录账号已存在"/>
</div>
</div>
</div>
@ -230,7 +227,7 @@ $("#companyButton,#companyName").click(function(){
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 用户昵称:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="userName" name="userName" th:value="${user.userName}" maxlength="32" class="form-control required "/>
<input type="text" id="userName" name="userName" th:value="${user.userName}" maxlength="32" class="form-control required "/>
</div>
</div>
</div>
@ -291,7 +288,7 @@ $("#companyButton,#companyName").click(function(){
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 员工编号:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="employee_empCode" name="employee.empCode" th:value="${user.userCode}" maxlength="32" readonly="true" class="form-control userName"/>
<input type="text" id="userCode" name="userCode" th:value="${user.userCode}" maxlength="32" readonly="true" class="form-control userName"/>
</div>
</div>
</div>
@ -300,7 +297,7 @@ $("#companyButton,#companyName").click(function(){
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 员工姓名:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="employee_empName" name="employee.empName" th:value="${user.userName}" maxlength="32" class="form-control "/>
<input type="text" id="empName" name="empName" th:value="${user.empName}" maxlength="32" class="form-control "/>
</div>
</div>
</div>
@ -311,12 +308,8 @@ $("#companyButton,#companyName").click(function(){
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 所在岗位:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="hidden" name="!employee.employeePosts" value=""/>
<select id="employee_employeePosts" name="employee.employeePosts" class="form-control" multiple="true">
<option value="cfo">财务经理</option>
<option value="hrm">人力经理</option>
<option value="dept">部门经理</option>
<option value="user">普通员工</option>
<select id="employeePosts" name="employeePosts" class="form-control" multiple="true">
<option th:value="${post.postCode}" th:selected="${#strings.contains(userPostCode,post.postCode)}" th:each="post,postStat:${postList}" th:text="${post.postName}">财务经理</option>
</select>
</div>
</div>
@ -326,7 +319,7 @@ $("#companyButton,#companyName").click(function(){
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 英文名:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="employee_empNameEn" name="employee.userNameEn" th:value="${user.userNameEn}" maxlength="32" class="form-control "/>
<input type="text" id="employee_empNameEn" name="userNameEn" th:value="${user.userNameEn}" maxlength="32" class="form-control "/>
</div>
</div>
</div>
@ -373,8 +366,8 @@ $("#companyButton,#companyName").click(function(){
<script th:src="${setting.domain + 'common/common.js'}"></script>
<!-- VUE -->
<script th:src="${setting.domain + 'vue/vue.min.js'}"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<!-- <script th:src="${setting.domain + 'vue/vue.min.js'}"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> -->
<script type="text/javascript" th:inline="javascript">
$("#inputForm").validate({
submitHandler: function(form){
@ -388,18 +381,4 @@ $("#inputForm").validate({
}, "json");
}
});
var vm = new Vue({
el:'#inputForm',
data:{
},
methods: {
}
});
var userCode = [[${userCode}]];
if(/^(undefined|null|\s*)?$/.test(userCode)){
}
</script>
Loading…
Cancel
Save