添加机构,重写机构和用户关系

This commit is contained in:
qiankunpingtai
2019-03-12 16:12:18 +08:00
parent ac9b292a5a
commit ab1b77e125
18 changed files with 1025 additions and 105 deletions

View File

@@ -99,6 +99,30 @@ public class BusinessConstants {
* 根机构编号默认为01
* */
public static final String ORGANIZATION_ROOT_NO = "01";
/**
* 新增用户默认密码
* */
public static final String USER_DEFAULT_PASSWORD = "123456";
/**
* 用户是否系统自带
* 0、非系统自带1系统自带
* */
public static final byte USER_NOT_SYSTEM = 0;
public static final byte USER_IS_SYSTEM = 1;
/**
* 用户是否为管理者
* 0、管理者1员工
* */
public static final byte USER_IS_MANAGER = 0;
public static final byte USER_NOT_MANAGER = 1;
/**
* 用户状态
* 0正常1删除2封禁
* */
public static final byte USER_STATUS_NORMAL = 0;
public static final byte USER_STATUS_DELETE = 1;
public static final byte USER_STATUS_BANNED = 2;

View File

@@ -23,22 +23,44 @@ public class ExceptionConstants {
**/
public static final int SERVICE_SYSTEM_ERROR_CODE = 500;
public static final String SERVICE_SYSTEM_ERROR_MSG = "未知异常";
/**
* 用户信息
* type = 5
* */
//添加用户信息失败
public static final int USER_ADD_FAILED_CODE = 500000;
public static final String USER_ADD_FAILED_MSG = "添加用户信息失败";
//删除用户信息失败
public static final int USER_DELETE_FAILED_CODE = 500001;
public static final String USER_DELETE_FAILED_MSG = "删除用户信息失败";
//修改用户信息失败
public static final int USER_EDIT_FAILED_CODE = 500002;
public static final String USER_EDIT_FAILED_MSG = "修改用户信息失败";
//用户名已存在
public static final int USER_USER_NAME_ALREADY_EXISTS_CODE = 500003;
public static final String USER_USER_NAME_ALREADY_EXISTS_MSG = "用户名已存在";
//登录名已存在
public static final int USER_LOGIN_NAME_ALREADY_EXISTS_CODE = 500003;
public static final String USER_LOGIN_NAME_ALREADY_EXISTS_MSG = "登录名已存在";
/**
* 序列号
* type = 105
* 商品类别信息
* type = 75
* */
/**序列号已存在*/
public static final int SERIAL_NUMBERE_ALREADY_EXISTS_CODE = 10500000;
public static final String SERIAL_NUMBERE_ALREADY_EXISTS_MSG = "序列号已存在";
/**序列号不能为为空*/
public static final int SERIAL_NUMBERE_NOT_BE_EMPTY_CODE = 10500001;
public static final String SERIAL_NUMBERE_NOT_BE_EMPTY_MSG = "序列号不能为为空";
/**商品%s下序列号不充足请补充后重试*/
public static final int MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_CODE = 10500002;
public static final String MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_MSG = "商品:%s下序列号不充足请补充后重试";
//添加商品类别信息失败
public static final int MATERIAL_CATEGORY_ADD_FAILED_CODE = 7500000;
public static final String MATERIAL_CATEGORY_ADD_FAILED_MSG = "添加商品类别信息失败";
//删除商品类别信息失败
public static final int MATERIAL_CATEGORY_DELETE_FAILED_CODE = 7500001;
public static final String MATERIAL_CATEGORY_DELETE_FAILED_MSG = "删除商品类别信息失败";
//修改商品类别信息失败
public static final int MATERIAL_CATEGORY_EDIT_FAILED_CODE = 7500002;
public static final String MATERIAL_CATEGORY_EDIT_FAILED_MSG = "添加商品类别信息失败";
//商品类别编号已存在
public static final int MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_CODE = 7500003;
public static final String MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_MSG = "商品类别编号已存在";
/**
* 商品信息
@@ -59,22 +81,20 @@ public class ExceptionConstants {
//商品库存不足
public static final int MATERIAL_STOCK_NOT_ENOUGH_CODE = 8000004;
public static final String MATERIAL_STOCK_NOT_ENOUGH_MSG = "商品:%s库存不足";
/**
* 商品类别信息
* type = 75
* 序列号
* type = 105
* */
//添加商品类别信息失败
public static final int MATERIAL_CATEGORY_ADD_FAILED_CODE = 7500000;
public static final String MATERIAL_CATEGORY_ADD_FAILED_MSG = "添加商品类别信息失败";
//删除商品类别信息失败
public static final int MATERIAL_CATEGORY_DELETE_FAILED_CODE = 7500001;
public static final String MATERIAL_CATEGORY_DELETE_FAILED_MSG = "删除商品类别信息失败";
//修改商品类别信息失败
public static final int MATERIAL_CATEGORY_EDIT_FAILED_CODE = 7500002;
public static final String MATERIAL_CATEGORY_EDIT_FAILED_MSG = "添加商品类别信息失败";
//商品类别编号已存在
public static final int MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_CODE = 7500003;
public static final String MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_MSG = "商品类别编号已存在";
/**序列号已存在*/
public static final int SERIAL_NUMBERE_ALREADY_EXISTS_CODE = 10500000;
public static final String SERIAL_NUMBERE_ALREADY_EXISTS_MSG = "序列号已存在";
/**序列号不能为为空*/
public static final int SERIAL_NUMBERE_NOT_BE_EMPTY_CODE = 10500001;
public static final String SERIAL_NUMBERE_NOT_BE_EMPTY_MSG = "序列号不能为为空";
/**商品%s下序列号不充足请补充后重试*/
public static final int MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_CODE = 10500002;
public static final String MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_MSG = "商品:%s下序列号不充足请补充后重试";
/**
* 机构
* type = 110
@@ -97,6 +117,19 @@ public class ExceptionConstants {
//根机构不允许修改
public static final int ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_CODE = 11000005;
public static final String ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_MSG = "根机构不允许修改";
/**
* 机构用户关联关系
* type = 115
* */
//添加机构用户关联关系失败
public static final int ORGA_USER_REL_ADD_FAILED_CODE = 11500000;
public static final String ORGA_USER_REL_ADD_FAILED_MSG = "添加机构用户关联关系失败";
//删除机构用户关联关系失败
public static final int ORGA_USER_REL_DELETE_FAILED_CODE = 11500001;
public static final String ORGA_USER_REL_DELETE_FAILED_MSG = "删除机构用户关联关系失败";
//修改机构用户关联关系失败
public static final int ORGA_USER_REL_EDIT_FAILED_CODE = 11500002;
public static final String ORGA_USER_REL_EDIT_FAILED_MSG = "修改机构用户关联关系失败";
/**
* 标准正常返回/操作成功返回

View File

@@ -1,6 +1,15 @@
package com.jsh.erp.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.jsh.erp.constants.BusinessConstants;
import com.jsh.erp.constants.ExceptionConstants;
import com.jsh.erp.datasource.entities.DepotEx;
import com.jsh.erp.datasource.entities.SerialNumberEx;
import com.jsh.erp.datasource.entities.User;
import com.jsh.erp.datasource.entities.UserEx;
import com.jsh.erp.service.user.UserService;
import com.jsh.erp.utils.*;
import org.slf4j.Logger;
@@ -12,9 +21,8 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import static com.jsh.erp.utils.ResponseJsonUtil.returnJson;
/**
@@ -209,4 +217,99 @@ public class UserController {
}
return res;
}
/**
* create by: cjl
* description:
* 查询分页用户列表
* create time: 2019/3/8 15:08
* @Param: pageSize
 * @Param: currentPage
 * @Param: search
* @return java.lang.String
*/
@GetMapping(value = "/getUserList")
public String getUserList(@RequestParam(value = Constants.PAGE_SIZE, required = false) Integer pageSize,
@RequestParam(value = Constants.CURRENT_PAGE, required = false) Integer currentPage,
@RequestParam(value = Constants.SEARCH, required = false) String search)throws Exception {
Map<String, Object> parameterMap = new HashMap<String, Object>();
//查询参数
JSONObject obj= JSON.parseObject(search);
Set<String> key= obj.keySet();
for(String keyEach: key){
parameterMap.put(keyEach,obj.getString(keyEach));
}
PageQueryInfo queryInfo = new PageQueryInfo();
Map<String, Object> objectMap = new HashMap<String, Object>();
if (pageSize == null || pageSize <= 0) {
pageSize = BusinessConstants.DEFAULT_PAGINATION_PAGE_SIZE;
}
if (currentPage == null || currentPage <= 0) {
currentPage = BusinessConstants.DEFAULT_PAGINATION_PAGE_NUMBER;
}
PageHelper.startPage(currentPage,pageSize,false);
List<UserEx> list = userService.getUserList(parameterMap);
//获取分页查询后的数据
PageInfo<UserEx> pageInfo = new PageInfo<>(list);
objectMap.put("page", queryInfo);
if (list == null) {
queryInfo.setRows(new ArrayList<Object>());
queryInfo.setTotal(BusinessConstants.DEFAULT_LIST_NULL_NUMBER);
return returnJson(objectMap, "查找不到数据", ErpInfo.OK.code);
}
queryInfo.setRows(list);
queryInfo.setTotal(pageInfo.getTotal());
return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
}
/**
* create by: cjl
* description:
* 新增用户及机构和用户关系
* create time: 2019/3/8 16:06
* @Param: beanJson
* @return java.lang.Object
*/
@PostMapping("/addUser")
@ResponseBody
public Object addUser(@RequestParam("info") String beanJson)throws Exception{
JSONObject result = ExceptionConstants.standardSuccess();
UserEx ue= JSON.parseObject(beanJson, UserEx.class);
userService.addUserAndOrgUserRel(ue);
return result;
}
/**
* create by: cjl
* description:
* 修改用户及机构和用户关系
* create time: 2019/3/8 16:06
* @Param: beanJson
* @return java.lang.Object
*/
@PostMapping("/updateUser")
@ResponseBody
public Object updateUser(@RequestParam("info") String beanJson,@RequestParam("id") Long id)throws Exception{
JSONObject result = ExceptionConstants.standardSuccess();
UserEx ue= JSON.parseObject(beanJson, UserEx.class);
ue.setId(id);
userService.updateUserAndOrgUserRel(ue);
return result;
}
@PostMapping("/deleteUser")
@ResponseBody
public Object deleteUser(@RequestParam("ids") String ids)throws Exception{
JSONObject result = ExceptionConstants.standardSuccess();
userService.batDeleteUser(ids);
return result;
}
@PostMapping("/batchDeleteUser")
@ResponseBody
public Object batchDeleteUser(@RequestParam("ids") String ids)throws Exception{
JSONObject result = ExceptionConstants.standardSuccess();
userService.batDeleteUser(ids);
return result;
}
}

View File

@@ -0,0 +1,10 @@
package com.jsh.erp.datasource.entities;
/**
* Description
*
* @Author: cjl
* @Date: 2019/3/12 10:09
*/
public class OrgaUserRelEx extends OrgaUserRel {
}

View File

@@ -0,0 +1,50 @@
package com.jsh.erp.datasource.entities;
/**
* Description
*
* @Author: cjl
* @Date: 2019/3/8 15:12
*/
public class UserEx extends User{
//机构简称
private String orgAbr;
//机构id
private Long orgaId;
//用户在部门中排序
private String userBlngOrgaDsplSeq;
//机构用户关联关系id
private Long orgaUserRelId;
public String getOrgAbr() {
return orgAbr;
}
public void setOrgAbr(String orgAbr) {
this.orgAbr = orgAbr;
}
public Long getOrgaId() {
return orgaId;
}
public void setOrgaId(Long orgaId) {
this.orgaId = orgaId;
}
public String getUserBlngOrgaDsplSeq() {
return userBlngOrgaDsplSeq;
}
public void setUserBlngOrgaDsplSeq(String userBlngOrgaDsplSeq) {
this.userBlngOrgaDsplSeq = userBlngOrgaDsplSeq;
}
public Long getOrgaUserRelId() {
return orgaUserRelId;
}
public void setOrgaUserRelId(Long orgaUserRelId) {
this.orgaUserRelId = orgaUserRelId;
}
}

View File

@@ -0,0 +1,14 @@
package com.jsh.erp.datasource.mappers;
import com.jsh.erp.datasource.entities.OrgaUserRel; /**
* Description
*
* @Author: cjl
* @Date: 2019/3/12 9:13
*/
public interface OrgaUserRelMapperEx {
int addOrgaUserRel(OrgaUserRel orgaUserRel);
int updateOrgaUserRel(OrgaUserRel orgaUserRel);
}

View File

@@ -1,10 +1,13 @@
package com.jsh.erp.datasource.mappers;
import com.jsh.erp.datasource.entities.User;
import com.jsh.erp.datasource.entities.UserEx;
import com.jsh.erp.datasource.entities.UserExample;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
public interface UserMapperEx {
@@ -17,4 +20,15 @@ public interface UserMapperEx {
Long countsByUser(
@Param("userName") String userName,
@Param("loginName") String loginName);
List<UserEx> getUserList(Map<String, Object> parameterMap);
int addUser(UserEx ue);
int updateUser(UserEx ue);
List<User> getUserListByUserNameOrLoginName(@Param("userName") String userName,
@Param("loginame") String loginame);
int batDeleteOrUpdateUser(@Param("ids") String ids[], @Param("status") byte status);
}

View File

@@ -0,0 +1,65 @@
package com.jsh.erp.service.orgaUserRel;
import com.jsh.erp.service.ICommonQuery;
import com.jsh.erp.service.organization.OrganizationResource;
import com.jsh.erp.service.organization.OrganizationService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* Description
*
* @Author: cjl
* @Date: 2019/3/11 18:10
*/
@Service(value = "orgaUserRel_component")
@OrgaUserRelResource
public class OrgaUserRelComponent implements ICommonQuery {
@Resource
private OrgaUserRelService orgaUserRelService;
@Override
public Object selectOne(String condition) {
return null;
}
@Override
public List<?> select(Map<String, String> parameterMap) {
return getOrgaUserRelList(parameterMap);
}
private List<?> getOrgaUserRelList(Map<String, String> map) {
return null;
}
@Override
public Long counts(Map<String, String> parameterMap) {
return null;
}
@Override
public int insert(String beanJson, HttpServletRequest request) {
return orgaUserRelService.insertOrgaUserRel(beanJson,request);
}
@Override
public int update(String beanJson, Long id) {
return orgaUserRelService.updateOrgaUserRel(beanJson,id);
}
@Override
public int delete(Long id) {
return orgaUserRelService.deleteOrgaUserRel(id);
}
@Override
public int batchDelete(String ids) {
return orgaUserRelService.batchDeleteOrgaUserRel(ids);
}
@Override
public int checkIsNameExist(Long id, String name) {
return 0;
}
}

View File

@@ -0,0 +1,19 @@
package com.jsh.erp.service.orgaUserRel;
import com.jsh.erp.service.ResourceInfo;
import java.lang.annotation.*;
/**
* Description
* 机构用户关系
* @Author: cjl
* @Date: 2019/3/11 18:11
*/
@ResourceInfo(value = "orgaUserRel", type = 115)
@Inherited
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface OrgaUserRelResource {
}

View File

@@ -0,0 +1,119 @@
package com.jsh.erp.service.orgaUserRel;
import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.constants.BusinessConstants;
import com.jsh.erp.datasource.entities.*;
import com.jsh.erp.datasource.mappers.OrgaUserRelMapper;
import com.jsh.erp.datasource.mappers.OrgaUserRelMapperEx;
import com.jsh.erp.service.organization.OrganizationService;
import com.jsh.erp.service.user.UserService;
import com.jsh.erp.utils.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
/**
* Description
*
* @Author: cjl
* @Date: 2019/3/11 18:11
*/
@Service
public class OrgaUserRelService {
private Logger logger = LoggerFactory.getLogger(OrganizationService.class);
@Resource
private OrgaUserRelMapper orgaUserRelMapper;
@Resource
private OrgaUserRelMapperEx orgaUserRelMapperEx;
@Resource
private UserService userService;
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int insertOrgaUserRel(String beanJson, HttpServletRequest request) {
OrgaUserRel orgaUserRel = JSONObject.parseObject(beanJson, OrgaUserRel.class);
return orgaUserRelMapper.insertSelective(orgaUserRel);
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int updateOrgaUserRel(String beanJson, Long id) {
OrgaUserRel orgaUserRel = JSONObject.parseObject(beanJson, OrgaUserRel.class);
orgaUserRel.setId(id);
return orgaUserRelMapper.updateByPrimaryKeySelective(orgaUserRel);
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int deleteOrgaUserRel(Long id) {
return orgaUserRelMapper.deleteByPrimaryKey(id);
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int batchDeleteOrgaUserRel(String ids) {
List<Long> idList = StringUtil.strToLongList(ids);
OrgaUserRelExample example = new OrgaUserRelExample();
example.createCriteria().andIdIn(idList);
return orgaUserRelMapper.deleteByExample(example);
}
/**
* create by: cjl
* description:
* 新增机构用户关联关系,反显id
* create time: 2019/3/12 9:40
* @Param: orgaUserRel
* @return void
*/
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public OrgaUserRel addOrgaUserRel(OrgaUserRel orgaUserRel) throws Exception{
Date date = new Date();
User userInfo=userService.getCurrentUser();
//创建时间
if(orgaUserRel.getCreateTime()==null){
orgaUserRel.setCreateTime(date);
}
//创建人
if(orgaUserRel.getCreator()==null){
orgaUserRel.setCreator(userInfo==null?null:userInfo.getId());
}
//更新时间
if(orgaUserRel.getUpdateTime()==null){
orgaUserRel.setUpdateTime(date);
}
//更新人
if(orgaUserRel.getUpdater()==null){
orgaUserRel.setUpdater(userInfo==null?null:userInfo.getId());
}
orgaUserRel.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS);
int i=orgaUserRelMapperEx.addOrgaUserRel(orgaUserRel);
if(i>0){
return orgaUserRel;
}
return null;
}
/**
* create by: cjl
* description:
* 更新机构用户关联关系
* create time: 2019/3/12 9:40
* @Param: orgaUserRel
* @return void
*/
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public OrgaUserRel updateOrgaUserRel(OrgaUserRel orgaUserRel) {
User userInfo=userService.getCurrentUser();
//更新时间
if(orgaUserRel.getUpdateTime()==null){
orgaUserRel.setUpdateTime(new Date());
}
//更新人
if(orgaUserRel.getUpdater()==null){
orgaUserRel.setUpdater(userInfo==null?null:userInfo.getId());
}
int i= orgaUserRelMapperEx.updateOrgaUserRel(orgaUserRel);
if(i>0){
return orgaUserRel;
}
return null;
}
}

View File

@@ -1,14 +1,24 @@
package com.jsh.erp.service.user;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.constants.BusinessConstants;
import com.jsh.erp.constants.ExceptionConstants;
import com.jsh.erp.datasource.entities.OrgaUserRel;
import com.jsh.erp.datasource.entities.User;
import com.jsh.erp.datasource.entities.UserEx;
import com.jsh.erp.datasource.entities.UserExample;
import com.jsh.erp.datasource.mappers.UserMapper;
import com.jsh.erp.datasource.mappers.UserMapperEx;
import com.jsh.erp.utils.*;
import com.jsh.erp.exception.BusinessRunTimeException;
import com.jsh.erp.service.orgaUserRel.OrgaUserRelService;
import com.jsh.erp.utils.ExceptionCodeConstants;
import com.jsh.erp.utils.JshException;
import com.jsh.erp.utils.StringUtil;
import com.jsh.erp.utils.Tools;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
@@ -17,6 +27,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.security.NoSuchAlgorithmException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -29,6 +40,8 @@ public class UserService {
@Resource
private UserMapperEx userMapperEx;
@Resource
private OrgaUserRelService orgaUserRelService;
public User getUser(long id) {
return userMapper.selectByPrimaryKey(id);
@@ -187,4 +200,202 @@ public class UserService {
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
return (User)request.getSession().getAttribute("user");
}
public List<UserEx> getUserList(Map<String, Object> parameterMap) throws Exception{
return userMapperEx.getUserList(parameterMap);
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public void addUserAndOrgUserRel(UserEx ue) throws Exception{
//检查用户名和登录名
checkUserNameAndLoginName(ue);
//新增用户信息
ue= this.addUser(ue);
if(ue==null){
logger.error("异常码[{}],异常提示[{}],参数,[{}]",
ExceptionConstants.USER_ADD_FAILED_CODE,ExceptionConstants.USER_ADD_FAILED_MSG);
throw new BusinessRunTimeException(ExceptionConstants.USER_ADD_FAILED_CODE,
ExceptionConstants.USER_ADD_FAILED_MSG);
}
if(ue.getOrgaId()==null){
//如果没有选择机构,就不建机构和用户的关联关系
return;
}
//新增用户和机构关联关系
OrgaUserRel oul=new OrgaUserRel();
//机构id
oul.setOrgaId(ue.getOrgaId());
//用户id
oul.setUserId(ue.getId());
//用户在机构中的排序
oul.setUserBlngOrgaDsplSeq(ue.getUserBlngOrgaDsplSeq());
oul=orgaUserRelService.addOrgaUserRel(oul);
if(oul==null){
logger.error("异常码[{}],异常提示[{}],参数,[{}]",
ExceptionConstants.ORGA_USER_REL_ADD_FAILED_CODE,ExceptionConstants.ORGA_USER_REL_ADD_FAILED_MSG);
throw new BusinessRunTimeException(ExceptionConstants.ORGA_USER_REL_ADD_FAILED_CODE,
ExceptionConstants.ORGA_USER_REL_ADD_FAILED_MSG);
}
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public UserEx addUser(UserEx ue) throws Exception{
/**
* 新增用户默认设置
* 1、密码默认123456
* 2是否系统自带默认为非系统自带
* 3是否管理者默认为员工
* 4默认用户状态为正常
* */
ue.setPassword(Tools.md5Encryp(BusinessConstants.USER_DEFAULT_PASSWORD));
ue.setIsystem(BusinessConstants.USER_NOT_SYSTEM);
if(ue.getIsmanager()==null){
ue.setIsmanager(BusinessConstants.USER_NOT_MANAGER);
}
ue.setStatus(BusinessConstants.USER_STATUS_NORMAL);
int i=userMapperEx.addUser(ue);
if(i>0){
return ue;
}
return null;
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public void updateUserAndOrgUserRel(UserEx ue) throws Exception{
//检查用户名和登录名
checkUserNameAndLoginName(ue);
//更新用户信息
ue=this.updateUser(ue);
if(ue==null){
logger.error("异常码[{}],异常提示[{}],参数,[{}]",
ExceptionConstants.USER_EDIT_FAILED_CODE,ExceptionConstants.USER_EDIT_FAILED_MSG);
throw new BusinessRunTimeException(ExceptionConstants.USER_EDIT_FAILED_CODE,
ExceptionConstants.USER_EDIT_FAILED_MSG);
}
if(ue.getOrgaId()==null){
//如果没有选择机构,就不建机构和用户的关联关系
return;
}
//更新用户和机构关联关系
OrgaUserRel oul=new OrgaUserRel();
//机构和用户关联关系id
oul.setId(ue.getOrgaUserRelId());
//机构id
oul.setOrgaId(ue.getOrgaId());
//用户id
oul.setUserId(ue.getId());
//用户在机构中的排序
oul.setUserBlngOrgaDsplSeq(ue.getUserBlngOrgaDsplSeq());
if(oul.getId()!=null){
//已存在机构和用户的关联关系,更新
oul=orgaUserRelService.updateOrgaUserRel(oul);
}else{
//不存在机构和用户的关联关系,新建
oul=orgaUserRelService.addOrgaUserRel(oul);
}
if(oul==null){
logger.error("异常码[{}],异常提示[{}],参数,[{}]",
ExceptionConstants.ORGA_USER_REL_EDIT_FAILED_CODE,ExceptionConstants.ORGA_USER_REL_EDIT_FAILED_MSG);
throw new BusinessRunTimeException(ExceptionConstants.ORGA_USER_REL_EDIT_FAILED_CODE,
ExceptionConstants.ORGA_USER_REL_EDIT_FAILED_MSG);
}
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public UserEx updateUser(UserEx ue){
int i=userMapperEx.updateUser(ue);
if(i>0){
return ue;
}
return null;
}
/**
* create by: cjl
* description:
* 检查用户名称和登录名不能重复
* create time: 2019/3/12 11:36
* @Param: userEx
* @return void
*/
public void checkUserNameAndLoginName(UserEx userEx){
List<User> list=null;
if(userEx==null){
return;
}
Long userId=userEx.getId();
//检查登录名
if(!StringUtils.isEmpty(userEx.getLoginame())){
String loginName=userEx.getLoginame();
list=this.getUserListByloginName(loginName);
if(list!=null&&list.size()>0){
if(list.size()>1){
//超过一条数据存在,该登录名已存在
logger.error("异常码[{}],异常提示[{}],参数,loginName:[{}]",
ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_CODE,ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_MSG,loginName);
throw new BusinessRunTimeException(ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_CODE,
ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_MSG);
}
//一条数据新增时抛出异常修改时和当前的id不同时抛出异常
if(list.size()==1){
if(userId==null||(userId!=null&&!userId.equals(list.get(0).getId()))){
logger.error("异常码[{}],异常提示[{}],参数,loginName:[{}]",
ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_CODE,ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_MSG,loginName);
throw new BusinessRunTimeException(ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_CODE,
ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_MSG);
}
}
}
}
//检查用户名
if(!StringUtils.isEmpty(userEx.getUsername())){
String userName=userEx.getUsername();
list=this.getUserListByUserName(userName);
if(list!=null&&list.size()>0){
if(list.size()>1){
//超过一条数据存在,该用户名已存在
logger.error("异常码[{}],异常提示[{}],参数,userName:[{}]",
ExceptionConstants.USER_USER_NAME_ALREADY_EXISTS_CODE,ExceptionConstants.USER_USER_NAME_ALREADY_EXISTS_MSG,userName);
throw new BusinessRunTimeException(ExceptionConstants.USER_USER_NAME_ALREADY_EXISTS_CODE,
ExceptionConstants.USER_USER_NAME_ALREADY_EXISTS_MSG);
}
//一条数据新增时抛出异常修改时和当前的id不同时抛出异常
if(list.size()==1){
if(userId==null||(userId!=null&&!userId.equals(list.get(0).getId()))){
logger.error("异常码[{}],异常提示[{}],参数,userName:[{}]",
ExceptionConstants.USER_USER_NAME_ALREADY_EXISTS_CODE,ExceptionConstants.USER_USER_NAME_ALREADY_EXISTS_MSG,userName);
throw new BusinessRunTimeException(ExceptionConstants.USER_USER_NAME_ALREADY_EXISTS_CODE,
ExceptionConstants.USER_USER_NAME_ALREADY_EXISTS_MSG);
}
}
}
}
}
/**
* 通过用户名获取用户列表
* */
public List<User> getUserListByUserName(String userName){
return userMapperEx.getUserListByUserNameOrLoginName(userName,null);
}
/**
* 通过登录名获取用户列表
* */
public List<User> getUserListByloginName(String loginName){
return userMapperEx.getUserListByUserNameOrLoginName(null,loginName);
}
/**
* 批量删除用户
* */
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public void batDeleteUser(String ids) {
String idsArray[]=ids.split(",");
int i= userMapperEx.batDeleteOrUpdateUser(idsArray,BusinessConstants.USER_STATUS_DELETE);
if(i<1){
logger.error("异常码[{}],异常提示[{}],参数,ids:[{}]",
ExceptionConstants.USER_DELETE_FAILED_CODE,ExceptionConstants.USER_DELETE_FAILED_MSG,ids);
throw new BusinessRunTimeException(ExceptionConstants.USER_DELETE_FAILED_CODE,
ExceptionConstants.USER_DELETE_FAILED_MSG);
}
}
}

View File

@@ -0,0 +1,44 @@
<?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.jsh.erp.datasource.mappers.OrgaUserRelMapperEx" >
<resultMap extends="com.jsh.erp.datasource.mappers.OrgaUserRelMapper.BaseResultMap" id="BaseResultMapEx" type="com.jsh.erp.datasource.entities.OrgaUserRelEx" >
</resultMap>
<insert id="addOrgaUserRel" parameterType="com.jsh.erp.datasource.entities.OrgaUserRel"
useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into jsh_orga_user_rel (orga_id, user_id,
user_blng_orga_dspl_seq, delete_flag, create_time,
creator, update_time, updater
)
values (#{orgaId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT},
#{userBlngOrgaDsplSeq,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=CHAR}, #{createTime,jdbcType=TIMESTAMP},
#{creator,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP}, #{updater,jdbcType=BIGINT}
)
</insert>
<update id="updateOrgaUserRel" parameterType="com.jsh.erp.datasource.entities.OrgaUserRel" >
update jsh_orga_user_rel
<set >
<if test="orgaId != null" >
orga_id = #{orgaId},
</if>
<if test="userId != null" >
user_id = #{userId},
</if>
<if test="userBlngOrgaDsplSeq != null" >
user_blng_orga_dspl_seq = #{userBlngOrgaDsplSeq},
</if>
<if test="deleteFlag != null" >
delete_flag = #{deleteFlag},
</if>
<if test="updateTime != null" >
update_time = #{updateTime},
</if>
<if test="updater != null" >
updater = #{updater},
</if>
</set>
where 1=1
and id=#{id}
</update>
</mapper>

View File

@@ -1,10 +1,17 @@
<?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.jsh.erp.datasource.mappers.UserMapperEx">
<resultMap extends="com.jsh.erp.datasource.mappers.UserMapper.BaseResultMap" id="ResultMapEx" type="com.jsh.erp.datasource.entities.UserEx">
<result column="orgaId" jdbcType="BIGINT" property="orgaId" />
<result column="org_abr" jdbcType="VARCHAR" property="orgAbr" />
<result column="user_blng_orga_dspl_seq" jdbcType="VARCHAR" property="userBlngOrgaDsplSeq" />
<result column="orgaUserRelId" jdbcType="BIGINT" property="orgaUserRelId" />
</resultMap>
<select id="selectByConditionUser" parameterType="com.jsh.erp.datasource.entities.UserExample" resultMap="com.jsh.erp.datasource.mappers.UserMapper.BaseResultMap">
select *
FROM jsh_user
where 1=1
and user.status not in('1','2')
<if test="userName != null">
and username like '%${userName}%'
</if>
@@ -20,6 +27,7 @@
COUNT(id)
FROM jsh_user
WHERE 1=1
and user.status not in('1','2')
<if test="userName != null">
and username like '%${userName}%'
</if>
@@ -27,4 +35,101 @@
and loginame like '%${loginName}%'
</if>
</select>
<select id="getUserList" parameterType="java.util.Map" resultMap="ResultMapEx">
select user.id, user.username, user.loginame, user.position, user.email, user.phonenum,
user.description, user.remark,user.isystem,org.id as orgaId,org.org_abr,rel.user_blng_orga_dspl_seq,
rel.id as orgaUserRelId
FROM jsh_user user
left join jsh_orga_user_rel rel on user.id=rel.user_id and rel.delete_flag!='1'
left join jsh_organization org on rel.orga_id=org.id
where 1=1
and user.status not in('1','2')
<if test="userName != null and userName != ''">
<bind name="userName" value="'%' + _parameter.userName + '%'" />
and user.userName like #{userName}
</if>
<if test="loginName != null and loginName != ''">
<bind name="loginName" value="'%' + _parameter.loginName + '%'" />
and user.loginName like #{loginName}
</if>
order by user.id desc
</select>
<insert id="addUser" parameterType="com.jsh.erp.datasource.entities.UserEx"
useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into jsh_user (username, loginame,
password, position,
email, phonenum, ismanager,
isystem, status, description,
remark)
values (#{username,jdbcType=VARCHAR}, #{loginame,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR}, #{position,jdbcType=VARCHAR},
#{email,jdbcType=VARCHAR}, #{phonenum,jdbcType=VARCHAR}, #{ismanager,jdbcType=TINYINT},
#{isystem,jdbcType=TINYINT}, #{status,jdbcType=TINYINT}, #{description,jdbcType=VARCHAR},
#{remark,jdbcType=VARCHAR})
</insert>
<update id="updateUser" parameterType="com.jsh.erp.datasource.entities.UserEx">
update jsh_user
<set>
<if test="username != null">
username = #{username,jdbcType=VARCHAR},
</if>
<if test="loginame != null">
loginame = #{loginame,jdbcType=VARCHAR},
</if>
<if test="password != null">
password = #{password,jdbcType=VARCHAR},
</if>
<if test="position != null">
position = #{position,jdbcType=VARCHAR},
</if>
<if test="department != null">
department = #{department,jdbcType=VARCHAR},
</if>
<if test="email != null">
email = #{email,jdbcType=VARCHAR},
</if>
<if test="phonenum != null">
phonenum = #{phonenum,jdbcType=VARCHAR},
</if>
<if test="ismanager != null">
ismanager = #{ismanager,jdbcType=TINYINT},
</if>
<if test="isystem != null">
isystem = #{isystem,jdbcType=TINYINT},
</if>
<if test="status != null">
status = #{status,jdbcType=TINYINT},
</if>
<if test="description != null">
description = #{description,jdbcType=VARCHAR},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getUserListByUserNameOrLoginName" resultMap="com.jsh.erp.datasource.mappers.UserMapper.BaseResultMap">
select user.id, user.username, user.loginame, user.position, user.email, user.phonenum,
user.description, user.remark,user.isystem
FROM jsh_user user
where 1=1
and user.status not in('1','2')
<if test="userName != null and userName != ''">
and user.userName = #{userName}
</if>
<if test="loginame != null and loginame != ''">
and user.loginame = #{loginame}
</if>
order by user.id desc
</select>
<update id="batDeleteOrUpdateUser">
update jsh_user
set status=#{status}
where id in (
<foreach collection="ids" item="id" separator=",">
#{id}
</foreach>
)
</update>
</mapper>