|
@@ -1,11 +1,14 @@
|
|
|
package com.qmth.distributed.print.api;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.google.gson.reflect.TypeToken;
|
|
|
import com.qmth.boot.api.constant.ApiConstant;
|
|
|
import com.qmth.distributed.print.business.backup.MySQLDatabaseBackup;
|
|
|
import com.qmth.distributed.print.business.bean.dto.StudentNumberConfigDto;
|
|
|
import com.qmth.distributed.print.business.bean.dto.StudentNumberLetterRelationShipDto;
|
|
|
+import com.qmth.distributed.print.business.bean.dto.admin.SetFontDto;
|
|
|
import com.qmth.distributed.print.business.bean.params.SysAdminSetParam;
|
|
|
import com.qmth.distributed.print.business.bean.result.CustomPrivilegeResult;
|
|
|
import com.qmth.distributed.print.business.bean.result.SysAdminSetResult;
|
|
@@ -18,6 +21,7 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
import com.qmth.teachcloud.common.enums.FlowMsgTypeEnum;
|
|
|
import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
|
|
|
import com.qmth.teachcloud.common.service.*;
|
|
|
+import com.qmth.teachcloud.common.util.GsonUtil;
|
|
|
import com.qmth.teachcloud.common.util.RedisUtil;
|
|
|
import com.qmth.teachcloud.common.util.Result;
|
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
@@ -81,6 +85,9 @@ public class SysAdminSetController {
|
|
|
@Resource
|
|
|
private RedisUtil redisUtil;
|
|
|
|
|
|
+ @Resource
|
|
|
+ BasicAttachmentService basicAttachmentService;
|
|
|
+
|
|
|
@ApiOperation(value = "数据还原")
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "数据还原信息", response = ResultUtil.class)})
|
|
|
@RequestMapping(value = "/backup", method = RequestMethod.POST)
|
|
@@ -546,9 +553,9 @@ public class SysAdminSetController {
|
|
|
public Result sysadminCourseDegreeSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
|
|
|
SysConfig sysConfig = commonCacheService.addSysConfigCache(schoolId, SystemConstant.SCHOOL_COURSE_DEGREE_TEMPLATE);
|
|
|
SysConfigResult sysConfigResult = new SysConfigResult();
|
|
|
- if (sysConfig != null) {
|
|
|
+ if (Objects.nonNull(sysConfig)) {
|
|
|
sysConfigResult = new SysConfigResult(sysConfig);
|
|
|
- if (sysConfigResult != null && sysConfigResult.getValue() != null) {
|
|
|
+ if (Objects.nonNull(sysConfigResult) && Objects.nonNull(sysConfigResult.getValue())) {
|
|
|
sysConfigResult.setValue(fileUploadService.filePreview(Long.valueOf(sysConfigResult.getValue().toString())));
|
|
|
}
|
|
|
}
|
|
@@ -561,7 +568,7 @@ public class SysAdminSetController {
|
|
|
public Result sysadminCourseDegreeSave(@ApiParam(value = "学校ID", required = true) @RequestParam Long schoolId,
|
|
|
@ApiParam(value = "附件ID", required = true) @RequestParam Long attachmentId) {
|
|
|
SysConfig sysConfig = commonCacheService.addSysConfigCache(schoolId, SystemConstant.SCHOOL_COURSE_DEGREE_TEMPLATE);
|
|
|
- if (sysConfig == null) {
|
|
|
+ if (Objects.isNull(sysConfig)) {
|
|
|
sysConfig = new SysConfig(schoolId, SystemConstant.SCHOOL_COURSE_DEGREE_TEMPLATE, "课程目标达成度模板配置", String.valueOf(attachmentId));
|
|
|
} else {
|
|
|
sysConfig.setConfigValue(String.valueOf(attachmentId));
|
|
@@ -570,7 +577,7 @@ public class SysAdminSetController {
|
|
|
commonCacheService.updateSysConfigCache(schoolId, sysConfig.getConfigKey());
|
|
|
}
|
|
|
SysConfigResult sysConfigResult = new SysConfigResult(sysConfig);
|
|
|
- if (sysConfigResult != null && sysConfigResult.getValue() != null) {
|
|
|
+ if (Objects.nonNull(sysConfigResult) && Objects.nonNull(sysConfigResult.getValue())) {
|
|
|
sysConfigResult.setValue(fileUploadService.filePreview(Long.valueOf(sysConfigResult.getValue().toString())));
|
|
|
}
|
|
|
return ResultUtil.ok(sysConfigResult);
|
|
@@ -584,22 +591,22 @@ public class SysAdminSetController {
|
|
|
List<SysConfigResult> list = new ArrayList<>();
|
|
|
// 数据库类型
|
|
|
SysConfig datasourceType = commonCacheService.addSysConfigCache(schoolId, SystemConstant.DATA_DATASOURCE_TYPE);
|
|
|
- list.add(datasourceType != null ? new SysConfigResult(datasourceType) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_TYPE, "数据库类型", "", 1));
|
|
|
+ list.add(Objects.nonNull(datasourceType) ? new SysConfigResult(datasourceType) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_TYPE, "数据库类型", "", 1));
|
|
|
// 数据库HOST
|
|
|
SysConfig datasourceHost = commonCacheService.addSysConfigCache(schoolId, SystemConstant.DATA_DATASOURCE_HOST);
|
|
|
- list.add(datasourceHost != null ? new SysConfigResult(datasourceHost) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_HOST, "HOST", "", 2));
|
|
|
+ list.add(Objects.nonNull(datasourceHost) ? new SysConfigResult(datasourceHost) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_HOST, "HOST", "", 2));
|
|
|
// 数据库PORT
|
|
|
SysConfig datasourcePort = commonCacheService.addSysConfigCache(schoolId, SystemConstant.DATA_DATASOURCE_PORT);
|
|
|
- list.add(datasourcePort != null ? new SysConfigResult(datasourcePort) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_PORT, "端口", "", 3));
|
|
|
+ list.add(Objects.nonNull(datasourcePort) ? new SysConfigResult(datasourcePort) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_PORT, "端口", "", 3));
|
|
|
// 数据库DataName
|
|
|
SysConfig datasourceDataName = commonCacheService.addSysConfigCache(schoolId, SystemConstant.DATA_DATASOURCE_DATANAME);
|
|
|
- list.add(datasourceDataName != null ? new SysConfigResult(datasourceDataName) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_DATANAME, "数据库名", "", 4));
|
|
|
+ list.add(Objects.nonNull(datasourceDataName) ? new SysConfigResult(datasourceDataName) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_DATANAME, "数据库名", "", 4));
|
|
|
// 数据库用户名
|
|
|
SysConfig datasourceUserName = commonCacheService.addSysConfigCache(schoolId, SystemConstant.DATA_DATASOURCE_USERNAME);
|
|
|
- list.add(datasourceUserName != null ? new SysConfigResult(datasourceUserName) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_USERNAME, "用户名", "", 5));
|
|
|
+ list.add(Objects.nonNull(datasourceUserName) ? new SysConfigResult(datasourceUserName) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_USERNAME, "用户名", "", 5));
|
|
|
// 数据库密码
|
|
|
SysConfig datasourcePassword = commonCacheService.addSysConfigCache(schoolId, SystemConstant.DATA_DATASOURCE_PASSWORD);
|
|
|
- list.add(datasourcePassword != null ? new SysConfigResult(datasourcePassword) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_PASSWORD, "密码", "", 6));
|
|
|
+ list.add(Objects.nonNull(datasourcePassword) ? new SysConfigResult(datasourcePassword) : new SysConfigResult(null, SystemConstant.DATA_DATASOURCE_PASSWORD, "密码", "", 6));
|
|
|
|
|
|
sysAdminSetResult.setResult(list);
|
|
|
return ResultUtil.ok(sysAdminSetResult);
|
|
@@ -637,10 +644,10 @@ public class SysAdminSetController {
|
|
|
List<SysConfigResult> list = new ArrayList<>();
|
|
|
// 是否开启机器人
|
|
|
SysConfig aiRobotSwitch = commonCacheService.addSysConfigCache(schoolId, SystemConstant.AI_ROBOT_ENABLE);
|
|
|
- list.add(aiRobotSwitch != null ? new SysConfigResult(aiRobotSwitch) : new SysConfigResult(null, SystemConstant.AI_ROBOT_ENABLE, "是否启用机器人", "false", 1));
|
|
|
+ list.add(Objects.nonNull(aiRobotSwitch) ? new SysConfigResult(aiRobotSwitch) : new SysConfigResult(null, SystemConstant.AI_ROBOT_ENABLE, "是否启用机器人", "false", 1));
|
|
|
// 机器人链接
|
|
|
SysConfig aiRobotUrl = commonCacheService.addSysConfigCache(schoolId, SystemConstant.AI_ROBOT_URL);
|
|
|
- list.add(aiRobotUrl != null ? new SysConfigResult(aiRobotUrl) : new SysConfigResult(null, SystemConstant.AI_ROBOT_URL, "机器人链接", "https://dify.qmth.com.cn/chat/O5OzUXL2hAOsr86c", 2));
|
|
|
+ list.add(Objects.nonNull(aiRobotUrl) ? new SysConfigResult(aiRobotUrl) : new SysConfigResult(null, SystemConstant.AI_ROBOT_URL, "机器人链接", "https://dify.qmth.com.cn/chat/O5OzUXL2hAOsr86c", 2));
|
|
|
sysAdminSetResult.setResult(list);
|
|
|
return ResultUtil.ok(sysAdminSetResult);
|
|
|
}
|
|
@@ -706,4 +713,117 @@ public class SysAdminSetController {
|
|
|
}
|
|
|
return ResultUtil.ok(true);
|
|
|
}
|
|
|
+
|
|
|
+ @ApiOperation(value = "字体查询")
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "字体信息", response = SysConfigResult.class)})
|
|
|
+ @RequestMapping(value = "/font/select", method = RequestMethod.POST)
|
|
|
+ public Result sysadminFontSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
|
|
|
+ SysConfig sysConfig = commonCacheService.addSysConfigCache(schoolId, SystemConstant.SCHOOL_FONT_TEMPLATE);
|
|
|
+ return ResultUtil.ok(Objects.nonNull(sysConfig) ? new SysConfigResult(sysConfig) : new SysConfigResult(null, SystemConstant.SCHOOL_FONT_TEMPLATE, "自定义字体配置", null, 1));
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "字体保存")
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "字体信息", response = SysConfigResult.class)})
|
|
|
+ @RequestMapping(value = "/font/save", method = RequestMethod.POST)
|
|
|
+ @Transactional
|
|
|
+ @OperationLogDetail(operationType = OperationTypeEnum.SAVE)
|
|
|
+ public Result sysadminFontSave(@ApiParam(value = "学校ID", required = true) @RequestParam Long schoolId,
|
|
|
+ @ApiParam(value = "附件ID", required = true) @RequestParam Long attachmentId) {
|
|
|
+ BasicAttachment basicAttachment = basicAttachmentService.getById(attachmentId);
|
|
|
+ Objects.requireNonNull(basicAttachment, "未找到附件信息");
|
|
|
+
|
|
|
+ SysConfig sysConfig = commonCacheService.addSysConfigCache(schoolId, SystemConstant.SCHOOL_FONT_TEMPLATE);
|
|
|
+ SetFontDto setFontDto = null;
|
|
|
+ List<SetFontDto> setFontDtoList = new ArrayList<>();
|
|
|
+ if (Objects.isNull(sysConfig)) {
|
|
|
+ setFontDto = new SetFontDto(basicAttachment, true);
|
|
|
+ setFontDtoList.add(setFontDto);
|
|
|
+ SetFontDto sysSetFontDto = new SetFontDto("系统默认字体");
|
|
|
+ setFontDtoList.add(sysSetFontDto);
|
|
|
+ Collections.sort(setFontDtoList);
|
|
|
+ sysConfig = new SysConfig(schoolId, SystemConstant.SCHOOL_FONT_TEMPLATE, "自定义字体配置", JSONArray.toJSONString(setFontDtoList));
|
|
|
+ } else {
|
|
|
+ setFontDtoList = GsonUtil.fromJson(sysConfig.getConfigValue(), new TypeToken<List<SetFontDto>>() {
|
|
|
+ }.getType());
|
|
|
+ setFontDto = new SetFontDto(basicAttachment, false);
|
|
|
+ if (setFontDtoList.contains(setFontDto)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("此字体已存在");
|
|
|
+ }
|
|
|
+ setFontDtoList.add(setFontDto);
|
|
|
+ Collections.sort(setFontDtoList);
|
|
|
+ sysConfig.setConfigValue(JSONArray.toJSONString(setFontDtoList));
|
|
|
+ }
|
|
|
+ if (sysConfigService.saveOrUpdate(sysConfig)) {
|
|
|
+ commonCacheService.updateSysConfigCache(schoolId, sysConfig.getConfigKey());
|
|
|
+ }
|
|
|
+ return ResultUtil.ok(new SysConfigResult(sysConfig));
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "字体修改")
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "字体信息", response = SysConfigResult.class)})
|
|
|
+ @RequestMapping(value = "/font/update", method = RequestMethod.POST)
|
|
|
+ @Transactional
|
|
|
+ public Result sysadminFontUpdate(@ApiParam(value = "学校ID", required = true) @RequestParam Long schoolId,
|
|
|
+ @ApiParam(value = "附件ID", required = true) @RequestParam Long attachmentId) {
|
|
|
+ SysConfig sysConfig = commonCacheService.addSysConfigCache(schoolId, SystemConstant.SCHOOL_FONT_TEMPLATE);
|
|
|
+ Objects.requireNonNull(sysConfig, "未找到字体信息");
|
|
|
+
|
|
|
+ List<SetFontDto> setFontDtoList = GsonUtil.fromJson(sysConfig.getConfigValue(), new TypeToken<List<SetFontDto>>() {
|
|
|
+ }.getType());
|
|
|
+ setFontDtoList.stream().map(s -> {
|
|
|
+ if (s.getAttachmentId().longValue() == attachmentId.longValue() && attachmentId.longValue() == -1L && s.getChoose()) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("系统默认字体已被选择");
|
|
|
+ } else if (s.getAttachmentId().longValue() == attachmentId.longValue() && s.getChoose()) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("当前字体已被选择");
|
|
|
+ } else if (s.getAttachmentId().longValue() == attachmentId.longValue()) {
|
|
|
+ s.setChoose(true);
|
|
|
+ } else {
|
|
|
+ s.setChoose(false);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ List<SetFontDto> setFontDtoListTemp = setFontDtoList.stream().filter(s -> s.getChoose()).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isEmpty(setFontDtoListTemp)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("未找到字体");
|
|
|
+ }
|
|
|
+ sysConfig.setConfigValue(JSONArray.toJSONString(setFontDtoList));
|
|
|
+ if (sysConfigService.saveOrUpdate(sysConfig)) {
|
|
|
+ commonCacheService.updateSysConfigCache(schoolId, sysConfig.getConfigKey());
|
|
|
+ }
|
|
|
+ return ResultUtil.ok(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "字体删除")
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "字体信息", response = SysConfigResult.class)})
|
|
|
+ @RequestMapping(value = "/font/delete", method = RequestMethod.POST)
|
|
|
+ @Transactional
|
|
|
+ public Result sysadminFontDelete(@ApiParam(value = "学校ID", required = true) @RequestParam Long schoolId,
|
|
|
+ @ApiParam(value = "附件ID", required = true) @RequestParam Long attachmentId) {
|
|
|
+ SysConfig sysConfig = commonCacheService.addSysConfigCache(schoolId, SystemConstant.SCHOOL_FONT_TEMPLATE);
|
|
|
+ Objects.requireNonNull(sysConfig, "未找到字体信息");
|
|
|
+ if (attachmentId.longValue() == -1L) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("系统默认字体无法删除");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<SetFontDto> setFontDtoList = GsonUtil.fromJson(sysConfig.getConfigValue(), new TypeToken<List<SetFontDto>>() {
|
|
|
+ }.getType());
|
|
|
+ List<SetFontDto> setFontDtoDelList = setFontDtoList.stream().filter(s -> s.getAttachmentId().longValue() == attachmentId.longValue()).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isEmpty(setFontDtoDelList)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("未找到字体");
|
|
|
+ } else {
|
|
|
+ basicAttachmentService.removeById(attachmentId);
|
|
|
+ }
|
|
|
+
|
|
|
+ setFontDtoList.removeAll(setFontDtoDelList);
|
|
|
+ if (CollectionUtils.isEmpty(setFontDtoList)) {
|
|
|
+ sysConfig.setConfigValue(null);
|
|
|
+ } else {
|
|
|
+ setFontDtoList.get(0).setChoose(true);
|
|
|
+ sysConfig.setConfigValue(JSONArray.toJSONString(setFontDtoList));
|
|
|
+ }
|
|
|
+ if (sysConfigService.saveOrUpdate(sysConfig)) {
|
|
|
+ commonCacheService.updateSysConfigCache(schoolId, sysConfig.getConfigKey());
|
|
|
+ }
|
|
|
+ return ResultUtil.ok(true);
|
|
|
+ }
|
|
|
}
|