Browse Source

机构修改

wangliang 3 năm trước cách đây
mục cha
commit
10e2cab2c6

+ 11 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java

@@ -10,12 +10,14 @@ import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -39,6 +41,7 @@ public class SysOrgController {
 
     /**
      * 查询机构树
+     *
      * @return
      */
     @ApiOperation(value = "查询")
@@ -50,18 +53,22 @@ public class SysOrgController {
 
     /**
      * 新增/修改
+     *
      * @param org
      * @return
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save(@RequestBody SysOrg org) {
-        boolean isSuccess = sysOrgService.saveOrg(org);
-        return ResultUtil.ok(isSuccess);
+    public Result save(@Valid @RequestBody SysOrg org, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
+        }
+        return ResultUtil.ok(sysOrgService.saveOrg(org));
     }
 
     /**
      * 启用/禁用
+     *
      * @param org
      * @return
      */
@@ -74,6 +81,7 @@ public class SysOrgController {
 
     /**
      * 删除
+     *
      * @param org
      * @return
      */

+ 12 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/base/BaseEntity.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -42,6 +43,17 @@ public class BaseEntity implements Serializable {
     @ApiModelProperty(value = "修改时间")
     private Long updateTime;
 
+    public void insertInfo(Long userId) {
+        this.id = SystemConstant.getDbUuid();
+        this.createId = userId;
+        this.createTime = System.currentTimeMillis();
+    }
+
+    public void updateInfo(Long userId) {
+        this.updateId = userId;
+        this.updateTime = System.currentTimeMillis();
+    }
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }

+ 4 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysOrg.java

@@ -8,6 +8,8 @@ import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 /**
@@ -33,12 +35,14 @@ public class SysOrg extends BaseEntity implements Serializable {
      */
     private String code;
 
+    @NotNull(message = "机构类型不能为空")
     @ApiModelProperty(value = "类型,COLLEGE:学院,FACULTY:院系,TEACHING_ROOM:教研室,PRINTING_HOUSE:印刷厂")
     private OrgTypeEnum type;
 
     /**
      * 机构名称
      */
+    @NotBlank(message = "机构名称不能为空")
     private String name;
     /**
      * 上级机构ID

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysRole.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 

+ 3 - 11
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysUser.java

@@ -96,22 +96,14 @@ public class SysUser extends BaseEntity implements Serializable {
     @TableField(exist = false)
     private Long[] courseIds;
 
-    public void setInsertInfo(Long userId) {
-        setId(SystemConstant.getDbUuid());
-        setCreateId(userId);
-        setUpdateId(userId);
-        setCreateTime(System.currentTimeMillis());
-        setUpdateTime(System.currentTimeMillis());
+    @Override
+    public void insertInfo(Long userId) {
+        super.insertInfo(userId);
         SysConfigService sysConfigService = SpringContextHolder.getBean(SysConfigService.class);
         SysConfig sysConfig = sysConfigService.getByKey("sys.user.initPassword");
         setPassword(Base64Util.encode(StringUtils.isNoneBlank(sysConfig.getConfigValue()) ? sysConfig.getConfigValue().getBytes() : "123456".getBytes()));
     }
 
-    public void setUpdateInfo(Long userId) {
-        setUpdateId(userId);
-        setUpdateTime(System.currentTimeMillis());
-    }
-
     public Long getSchoolId() {
         return schoolId;
     }

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FieldUniqueEnum.java

@@ -13,7 +13,9 @@ public enum FieldUniqueEnum {
 
     user_schoolId_orgId_loginName_idx("登录名"),
 
-    schoolId_name_idx("角色名");
+    schoolId_name_idx("角色名"),
+
+    org_schoolId_code_idx("机构编码");
 
     private String title;
 

+ 0 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/TeachcloudCommonService.java

@@ -35,7 +35,6 @@ public interface TeachcloudCommonService {
      * @param sysUser
      * @param roleId
      */
-    @Deprecated
     public void addUserRolePrivilege(SysUser sysUser, Long roleId);
 
     /**

+ 35 - 26
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.common.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.boot.api.exception.ApiException;
 import com.qmth.teachcloud.common.bean.dto.OrgDto;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -9,13 +10,16 @@ import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysRole;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.mapper.SysOrgMapper;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysRoleService;
 import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -75,35 +79,40 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
 
     @Override
     public boolean saveOrg(SysOrg org) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        org.setSchoolId(schoolId);
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-
-        QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(SysOrg::getSchoolId, org.getSchoolId()).eq(SysOrg::getParentId, org.getParentId()).eq(SysOrg::getCode, org.getCode());
-        SysOrg sysOrg = this.getOne(queryWrapper);
-
-        // 新增
-        if (org.getId() == null) {
-            if (sysOrg != null) {
-                throw ExceptionResultEnum.ERROR.exception("机构代码已存在");
+        try {
+            Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+            org.setSchoolId(schoolId);
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+
+            QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(SysOrg::getSchoolId, org.getSchoolId()).eq(SysOrg::getParentId, org.getParentId()).eq(SysOrg::getCode, org.getCode());
+            SysOrg sysOrg = this.getOne(queryWrapper);
+
+            if (org.getId() == null) {// 新增
+                if (sysOrg != null) {
+                    throw ExceptionResultEnum.ERROR.exception("机构代码已存在");
+                }
+                org.insertInfo(sysUser.getId());
+                return this.save(org);
+            } else { // 修改
+                if (sysOrg != null && org.getId().longValue() != sysOrg.getId().longValue()) {
+                    throw ExceptionResultEnum.ERROR.exception("机构代码已存在");
+                }
+                org.updateInfo(sysUser.getId());
+                return this.updateById(org);
             }
-            org.setId(SystemConstant.getDbUuid());
-            org.setCreateId(sysUser.getId());
-            org.setCreateTime(System.currentTimeMillis());
-            org.setCreateTime(System.currentTimeMillis());
-            return this.save(org);
-        }
-        // 修改
-        else {
-            if (sysOrg != null && org.getId().longValue() != sysOrg.getId().longValue()) {
-                throw ExceptionResultEnum.ERROR.exception("机构代码已存在");
+        } catch (Exception e) {
+            if (e instanceof DuplicateKeyException) {
+                String errorColumn = e.getCause().toString();
+                String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length()).replaceAll("'", "");
+                throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
+            } else if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
             }
-            org.setUpdateId(sysUser.getId());
-            org.setUpdateTime(System.currentTimeMillis());
-            return this.updateById(org);
         }
-
+        return true;
     }
 
     @Override

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -136,7 +136,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             if (Objects.nonNull(role.getId())) {//编辑
                 List<SysRolePrivilege> sysRolePrivilegeList = cacheService.rolePrivilegeCache(role.getId());
                 int count = (int) sysRolePrivilegeList.stream().filter(s -> Arrays.asList(role.getPrivilegeIds()).contains(s.getPrivilegeId())).count();
-                role.setUpdateId(sysUser.getId());
+                role.updateInfo(sysUser.getId());
                 sysRoleService.updateById(role);
                 cacheService.updateRoleCache(role.getId());
                 if (count != sysRolePrivilegeList.size() || count != role.getPrivilegeIds().length) {
@@ -150,7 +150,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                     }
                 }
             } else {
-                role.setCreateId(sysUser.getId());
+                role.insertInfo(sysUser.getId());
                 sysRoleService.save(role);
                 sysRolePrivilegeService.saveBatch(role);//角色权限
             }

+ 5 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -274,7 +274,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             userSaveParams.setSchoolId(schoolId);
             SysUser sysUser = gson.fromJson(gson.toJson(userSaveParams), SysUser.class);
             if (Objects.isNull(sysUser.getId())) {//新增用户
-                sysUser.setInsertInfo(requestUser.getId());
+                sysUser.insertInfo(requestUser.getId());
                 sysUserService.save(sysUser);
                 commonService.addUserRolePrivilege(sysUser, userSaveParams.getRoleIds());
             } else {//修改用户
@@ -283,7 +283,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 Set<Long> dbUserRolesList = sysUserRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
                 int count = (int) dbUserRolesList.stream().filter(s -> userRolesList.contains(s)).count();
                 SysUser dbUser = sysUserService.getById(sysUser.getId());
-                sysUser.setUpdateInfo(requestUser.getId());
+                sysUser.updateInfo(requestUser.getId());
                 sysUserService.updateById(sysUser);
                 //如果修改了角色,需要重新登录
                 if (count == 0 || dbUserRolesList.size() != userRolesList.size()) {
@@ -336,6 +336,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     /**
      * 临时保存用户不鉴权
+     *
      * @param userSaveParams 用户参数
      * @return 结果
      */
@@ -368,7 +369,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     throw ExceptionResultEnum.ERROR.exception("用户名已存在");
                 }
 
-                sysUser.setInsertInfo(requestUser.getId());
+                sysUser.insertInfo(requestUser.getId());
                 sysUserService.save(sysUser);
                 for (Long roleId : userSaveParams.getRoleIds()) {
                     commonService.addUserRolePrivilege(sysUser, roleId);
@@ -379,7 +380,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 Set<Long> dbUserRolesList = sysUserRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
                 int count = (int) dbUserRolesList.stream().filter(s -> userRolesList.contains(s)).count();
                 SysUser dbUser = sysUserService.getById(sysUser.getId());
-                sysUser.setUpdateInfo(requestUser.getId());
+                sysUser.updateInfo(requestUser.getId());
                 sysUserService.updateById(sysUser);
                 List<SysRole> list = sysUserRoleService.listRoleByUserId(sysUser.getId());
                 boolean containsQuestionTeacher = list.stream().filter(m -> RoleTypeEnum.SCHOOL_ADMIN.equals(m.getType())).count() > 0;

+ 0 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -81,9 +81,6 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
     @Resource
     TeachcloudCommonService commonService;
 
-    @Autowired
-    private TBTaskService tbTaskService;
-
     @Resource
     BasicAttachmentService basicAttachmentService;
 
@@ -93,7 +90,6 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
      * @param sysUser
      * @param roleId
      */
-    @Deprecated
     @Override
     public void addUserRolePrivilege(SysUser sysUser, Long roleId) {
         List<SysRolePrivilege> sysRolePrivilegeList = cacheService.rolePrivilegeCache(roleId);