wangliang 3 лет назад
Родитель
Сommit
1b9549297d

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -32,6 +32,8 @@ public interface SysOrgService extends IService<SysOrg> {
 
     boolean saveOrg(SysOrg org);
 
+    boolean saveReportOrg(SysOrg org);
+
     /**
      * 根据外键查找学院信息
      *

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java

@@ -47,6 +47,8 @@ public interface SysUserService extends IService<SysUser> {
 
     boolean enable(SysUser user) throws NoSuchAlgorithmException, IllegalAccessException;
 
+    boolean enableReport(SysUser user) throws NoSuchAlgorithmException;
+
     boolean resetPassword(Long id) throws NoSuchAlgorithmException;
 
     /**

+ 33 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -169,6 +169,39 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         return success;
     }
 
+    @Transactional
+    @Override
+    public boolean saveReportOrg(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("机构代码已存在");
+            }
+            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("机构代码已存在");
+            }
+            org.setUpdateId(sysUser.getId());
+            org.setUpdateTime(System.currentTimeMillis());
+            return this.updateById(org);
+        }
+    }
+
     /**
      * 校验各机构关系
      *

+ 13 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -187,6 +187,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return success;
     }
 
+    @Override
+    public boolean enableReport(SysUser user) throws NoSuchAlgorithmException {
+        UpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(SysUser::getEnable, user.getEnable()).eq(SysUser::getId, user.getId());
+
+        boolean success = this.update(updateWrapper);
+        //如果状态为禁用,需要踢下线重新登录
+        if (!user.getEnable()) {
+            commonService.removeUserInfo(user.getId(), true);
+        }
+        return success;
+    }
+
     @Override
     public boolean resetPassword(Long id) throws NoSuchAlgorithmException {
         SysConfig sysConfig = sysConfigService.getByKey("sys.user.initPassword");

+ 7 - 0
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysController.java

@@ -7,6 +7,7 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
+import com.qmth.teachcloud.common.cache.ThirdUserAuthCacheUtil;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
@@ -152,6 +153,12 @@ public class SysController {
                 }
             }
         }
+        if (Objects.nonNull(ThirdUserAuthCacheUtil.getAuthRole(String.valueOf(sysUser.getId())))) {
+            commonCacheService.removeUserCache(sysUser.getId());
+            commonCacheService.removeUserAuthCache(sysUser.getId());
+            commonCacheService.removeUserMenuCache(sysUser.getId());
+            commonCacheService.removeUserRolePrivilegeCache(sysUser.getId());
+        }
         return ResultUtil.ok(teachcloudCommonService.login(login.getPassword(), sysUser, AppSourceEnum.SYSTEM));
     }
 

+ 1 - 2
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysOrgController.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.teachcloud.common.bean.dto.OrgDto;
 import com.qmth.teachcloud.common.entity.SysOrg;
-import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -55,7 +54,7 @@ public class SysOrgController {
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     public Result save(@RequestBody SysOrg org) {
-        return ResultUtil.ok(sysOrgService.saveOrg(org));
+        return ResultUtil.ok(sysOrgService.saveReportOrg(org));
     }
 
     /**

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysUserController.java

@@ -116,7 +116,7 @@ public class SysUserController {
     @ApiOperation(value = "启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
     public Result enable(@RequestBody SysUser user) throws NoSuchAlgorithmException, IllegalAccessException {
-        return ResultUtil.ok(sysUserService.enable(user));
+        return ResultUtil.ok(sysUserService.enableReport(user));
     }
 
     /**

+ 1 - 3
teachcloud-report/src/main/resources/application-dev.properties

@@ -26,9 +26,7 @@ com.qmth.redis.db=2
 com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
 com.qmth.datasource.username=${db.username}
 com.qmth.datasource.password=${db.password}
-com.qmth.datasource.min-idle=40
-com.qmth.datasource.max-pool-size=200
-com.qmth.datasource.log-level=debug
+com.qmth.mybatis.log-level=debug
 
 #\u963F\u91CC\u4E91OSS\u914D\u7F6E
 aliyun.oss.name=oss-cn-shenzhen.aliyuncs.com