Procházet zdrojové kódy

教研新增报告和登录地址

wangliang před 2 roky
rodič
revize
dc5adf5c2a

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -157,6 +157,8 @@ public class SystemConstant {
     public static final String TEACHCLOUD_REPORT_STUDENT_URL = "teachcloud.report.student.url";
     public static final String TEACHCLOUD_REPORT_LOGIN_URL = "teachcloud.report.login.url";
     public static final String TEACHCLOUD_PRINT_HOST_URL = "teachcloud.print.host.url";
+    public static final String TEACHCLOUD_REPORT_LOCATION_URL = "teachcloud.report.location.url";
+    public static final String TEACHCLOUD_PRINT_HOST_DEFAULT_URL = "teachcloud.print.host.default.url";
 
     public static final String SMS_SIGN_NAME = "sms.sign.name";
     public static final String SMS_TPL_CODE = "sms.tpl.code";

+ 15 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysConfig.java

@@ -65,6 +65,21 @@ public class SysConfig extends BaseEntity implements Serializable {
 
     }
 
+    public SysConfig(SysConfigResult sysConfigResult) {
+        if (Objects.isNull(sysConfigResult.getId())) {
+            setId(SystemConstant.getDbUuid());
+        } else {
+            setId(sysConfigResult.getId());
+        }
+        this.configKey = sysConfigResult.getCode();
+        this.configName = sysConfigResult.getName();
+        this.configValue = String.valueOf(sysConfigResult.getValue());
+        this.enable = sysConfigResult.getEnable();
+        this.sort = sysConfigResult.getSort();
+        setCreateId(1L);
+        setCreateTime(System.currentTimeMillis());
+    }
+
     public SysConfig(Long schoolId, SysConfigResult sysConfigResult) {
         if (Objects.isNull(sysConfigResult.getId())) {
             setId(SystemConstant.getDbUuid());

+ 8 - 7
teachcloud-report-business/src/main/resources/db/install/teachcloud_report_db.sql

@@ -1747,10 +1747,11 @@ INSERT INTO `sys_config` VALUES (17, NULL, NULL, 'cloudmark.host.url', '云阅
 INSERT INTO `sys_config` VALUES (18, NULL, NULL, 'sms.normal.code', '万能短信验证码', 'qmth', NULL, 1, 1, 1, NULL, NULL, NULL);
 INSERT INTO `sys_config` VALUES (19, NULL, NULL, 'code.expired.time', '短信验证码有效时间', '2', NULL, 1, 1, 1, NULL, NULL, NULL);
 INSERT INTO `sys_config` VALUES (20, NULL, NULL, 'code.send.interval', '短信验证码发送间隔', '60', NULL, 1, 1, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (21, NULL, NULL, 'teachcloud.report.student.url', '学生报告地址', 'http://localhost:9099/#/student-report/', NULL, 1, 1, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (22, NULL, NULL, 'teachcloud.report.login.url', '单点登录地址', 'http://127.0.0.1:8057/#/login-authen/', NULL, 1, 1, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (23, NULL, NULL, 'teachcloud.print.host.url', '分布式印刷地址', 'http://127.0.0.1:7001', NULL, 1, 1, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (24, NULL, NULL, 'teachcloud.print.open.callback.pwd', '分布式印刷回调密码', '123456', NULL, 1, 1, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (25, NULL, NULL, 'sms.sign.name', '短信签名', '逸教云', NULL, 1, 1, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (26, NULL, NULL, 'sms.tpl.code', '登录短信验证码', 'SMS_147416565', NULL, 1, 2, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (27, NULL, NULL, 'sys.txt.charset', 'txt文件编码', 'utf8', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (21, NULL, NULL, 'teachcloud.report.student.url', '学生报告地址', 'http://127.0.0.1:7500/#/student-report/', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (22, NULL, NULL, 'teachcloud.report.login.url', '单点登录地址', 'http://127.0.0.1:7500/#/login-authen/', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (23, NULL, NULL, 'teachcloud.print.open.callback.pwd', '分布式印刷回调密码', '123456', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (24, NULL, NULL, 'sms.sign.name', '短信签名', '逸教云', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (25, NULL, NULL, 'sms.tpl.code', '登录短信验证码', 'SMS_147416565', NULL, 1, 2, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (26, NULL, NULL, 'sys.txt.charset', 'txt文件编码', 'utf8', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (27, NULL, NULL, 'teachcloud.print.host.default.url', '分布式印刷地址', 'http://127.0.0.1:7400', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO `sys_config` VALUES (28, NULL, NULL, 'teachcloud.report.location.url', '报告和登录地址', 'http://127.0.0.1:7500', NULL, 1, 2, 1, NULL, NULL, NULL);

+ 58 - 5
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysAdminSetController.java

@@ -1,12 +1,11 @@
 package com.qmth.teachcloud.report.api;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.result.SysConfigResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.util.Result;
@@ -14,6 +13,7 @@ import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.report.business.bean.params.SysAdminSetParam;
 import com.qmth.teachcloud.report.business.bean.result.SysAdminSetResult;
 import io.swagger.annotations.*;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
@@ -44,12 +44,23 @@ public class SysAdminSetController {
     @RequestMapping(value = "/sync/select", method = RequestMethod.POST)
     public Result sysadminSyncSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
         SysConfig sysConfigTeachCloudPrintHostUrl = commonCacheService.addSysConfigCache(schoolId, SystemConstant.TEACHCLOUD_PRINT_HOST_URL);
+        SysConfig sysConfigTeachCloudReportLocationUrl = commonCacheService.addSysConfigCache(SystemConstant.TEACHCLOUD_REPORT_LOCATION_URL);
 
         List<SysConfigResult> sysConfigResultList = new ArrayList<>();
         if (Objects.nonNull(sysConfigTeachCloudPrintHostUrl)) {
             sysConfigResultList.add(new SysConfigResult(sysConfigTeachCloudPrintHostUrl));
         } else {
-            sysConfigResultList.add(new SysConfigResult(null, SystemConstant.TEACHCLOUD_PRINT_HOST_URL, "分布式印刷地址", "", 1));
+            SysConfig sysConfigTeachCloudPrintHostDefaultUrl = commonCacheService.addSysConfigCache(SystemConstant.TEACHCLOUD_PRINT_HOST_DEFAULT_URL);
+            if (Objects.nonNull(sysConfigTeachCloudPrintHostDefaultUrl)) {
+                sysConfigResultList.add(new SysConfigResult(sysConfigTeachCloudPrintHostDefaultUrl));
+            } else {
+                sysConfigResultList.add(new SysConfigResult(null, SystemConstant.TEACHCLOUD_PRINT_HOST_URL, "分布式印刷地址", "", 1));
+            }
+        }
+        if (Objects.nonNull(sysConfigTeachCloudReportLocationUrl)) {
+            sysConfigResultList.add(new SysConfigResult(sysConfigTeachCloudReportLocationUrl));
+        } else {
+            sysConfigResultList.add(new SysConfigResult(null, SystemConstant.TEACHCLOUD_REPORT_LOCATION_URL, "报告和登录地址", "", 2));
         }
         return ResultUtil.ok(new SysAdminSetResult(schoolId, sysConfigResultList));
     }
@@ -65,14 +76,56 @@ public class SysAdminSetController {
         Optional.ofNullable(sysAdminSetParam.getParam()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("同步配置地址不能为空"));
 
         List<SysConfigResult> sysConfigResultList = sysAdminSetParam.getParam();
+        Long schoolId = sysAdminSetParam.getSchoolId();
         List<SysConfig> sysConfigList = new ArrayList<>();
+        List<String> keys = new ArrayList<>();
+        String value = null;
         for (SysConfigResult s : sysConfigResultList) {
-            sysConfigList.add(new SysConfig(sysAdminSetParam.getSchoolId(), s));
+            if (s.getCode().contains(SystemConstant.TEACHCLOUD_REPORT_LOCATION_URL)) {
+                value = (String) s.getValue();
+                sysConfigList.add(new SysConfig(s));
+                if (Objects.nonNull(s.getEnable()) && !s.getEnable()){
+                    throw ExceptionResultEnum.ERROR.exception("报告和登录地址不能关闭");
+                }
+            } else {
+                s.setId(null);
+                s.setCode(s.getCode().replace(".default", ""));
+                keys.add(s.getCode());
+                sysConfigList.add(new SysConfig(sysAdminSetParam.getSchoolId(), s));
+            }
+        }
+        if (Objects.nonNull(value) && !Objects.equals(value.trim(), "")) {
+            SysConfig sysConfigTeachCloudReportLocalUrl = commonCacheService.addSysConfigCache(SystemConstant.TEACHCLOUD_REPORT_LOGIN_URL);
+            SysConfig sysConfigTeachCloudReportStudentUrl = commonCacheService.addSysConfigCache(SystemConstant.TEACHCLOUD_REPORT_STUDENT_URL);
+            String[] localStrs = StringUtils.split(sysConfigTeachCloudReportLocalUrl.getConfigValue(), "#");
+            String[] studentStrs = StringUtils.split(sysConfigTeachCloudReportStudentUrl.getConfigValue(), "#");
+            String split = value.substring(value.length() - 1, value.length());
+            if (split.contains(SystemConstant.ORG_SPLIT)) {
+                sysConfigTeachCloudReportLocalUrl.setConfigValue(value + SystemConstant.DEFAULT_SIGN + localStrs[1]);
+                sysConfigTeachCloudReportStudentUrl.setConfigValue(value + SystemConstant.DEFAULT_SIGN + studentStrs[1]);
+            } else {
+                sysConfigTeachCloudReportLocalUrl.setConfigValue(value + SystemConstant.ORG_SPLIT + SystemConstant.DEFAULT_SIGN + localStrs[1]);
+                sysConfigTeachCloudReportStudentUrl.setConfigValue(value + SystemConstant.ORG_SPLIT + SystemConstant.DEFAULT_SIGN + studentStrs[1]);
+            }
+            sysConfigList.add(sysConfigTeachCloudReportLocalUrl);
+            sysConfigList.add(sysConfigTeachCloudReportStudentUrl);
+            commonCacheService.updateSysConfigCache(sysConfigTeachCloudReportLocalUrl.getConfigKey());
+            commonCacheService.updateSysConfigCache(sysConfigTeachCloudReportStudentUrl.getConfigKey());
+        } else {
+            throw ExceptionResultEnum.ERROR.exception("报告和登录地址不能为空");
         }
+        QueryWrapper<SysConfig> sysConfigQueryWrapper = new QueryWrapper<>();
+        sysConfigQueryWrapper.lambda().eq(SysConfig::getSchoolId, schoolId)
+                .in(SysConfig::getConfigKey, keys);
+        sysConfigService.remove(sysConfigQueryWrapper);
         sysConfigService.saveOrUpdateBatch(sysConfigList);
 
         for (SysConfigResult s : sysConfigResultList) {
-            commonCacheService.updateSysConfigCache(sysAdminSetParam.getSchoolId(), s.getCode());
+            if (s.getCode().contains(SystemConstant.TEACHCLOUD_REPORT_LOCATION_URL)) {
+                commonCacheService.updateSysConfigCache(s.getCode());
+            } else {
+                commonCacheService.updateSysConfigCache(sysAdminSetParam.getSchoolId(), s.getCode());
+            }
         }
         return ResultUtil.ok(true);
     }

+ 4 - 2
teachcloud-report/src/main/java/com/qmth/teachcloud/report/start/StartRunning.java

@@ -1,7 +1,7 @@
 package com.qmth.teachcloud.report.start;
 
 import com.qmth.teachcloud.common.service.AuthInfoService;
-import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.teachcloud.common.service.SysConfigService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.CommandLineRunner;
@@ -22,12 +22,14 @@ public class StartRunning implements CommandLineRunner {
 
     @Resource
     AuthInfoService authInfoService;
+
     @Resource
-    SysUserService sysUserService;
+    SysConfigService sysConfigService;
 
     @Override
     public void run(String... args) {
         log.info("服务器启动时执行 start");
+        sysConfigService.selectAll();
         authInfoService.appInfoInit();
         log.info("服务器启动时执行 end");
     }