|
@@ -0,0 +1,81 @@
|
|
|
+package com.qmth.teachcloud.report.api;
|
|
|
+
|
|
|
+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;
|
|
|
+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.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.validation.BindingResult;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.validation.Valid;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Optional;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description: 超管设置
|
|
|
+ * @Author: CaoZixuan
|
|
|
+ * @Date: 2022-12-22
|
|
|
+ */
|
|
|
+@Api(tags = "超管设置Controller")
|
|
|
+@RestController
|
|
|
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_REPORT_SET)
|
|
|
+public class SysAdminSetController {
|
|
|
+ @Resource
|
|
|
+ CommonCacheService commonCacheService;
|
|
|
+ @Resource
|
|
|
+ SysConfigService sysConfigService;
|
|
|
+
|
|
|
+ @ApiOperation(value = "同步配置查询")
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "同步配置信息", response = SysAdminSetResult.class)})
|
|
|
+ @RequestMapping(value = "/sync/select", method = RequestMethod.POST)
|
|
|
+ @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
|
|
|
+ public Result sysadminSyncSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
|
|
|
+ SysConfig sysConfigTeachCloudPrintHostUrl = commonCacheService.addSysConfigCache(schoolId, SystemConstant.TEACHCLOUD_PRINT_HOST_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));
|
|
|
+ }
|
|
|
+ return ResultUtil.ok(new SysAdminSetResult(schoolId, sysConfigResultList));
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "同步配置保存")
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "同步配置信息", response = ResultUtil.class)})
|
|
|
+ @RequestMapping(value = "/sync/save", method = RequestMethod.POST)
|
|
|
+ @Transactional
|
|
|
+ @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
|
|
|
+ public Result sysadminSyncSave(@Valid @RequestBody SysAdminSetParam sysAdminSetParam, BindingResult bindingResult) {
|
|
|
+ if (bindingResult.hasErrors()) {
|
|
|
+ return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
|
|
|
+ }
|
|
|
+ Optional.ofNullable(sysAdminSetParam.getParam()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("同步配置地址不能为空"));
|
|
|
+
|
|
|
+ List<SysConfigResult> sysConfigResultList = sysAdminSetParam.getParam();
|
|
|
+ List<SysConfig> sysConfigList = new ArrayList<>();
|
|
|
+ for (SysConfigResult s : sysConfigResultList) {
|
|
|
+ sysConfigList.add(new SysConfig(sysAdminSetParam.getSchoolId(), s));
|
|
|
+ }
|
|
|
+ sysConfigService.saveOrUpdateBatch(sysConfigList);
|
|
|
+
|
|
|
+ for (SysConfigResult s : sysConfigResultList) {
|
|
|
+ commonCacheService.updateSysConfigCache(sysAdminSetParam.getSchoolId(), s.getCode());
|
|
|
+ }
|
|
|
+ return ResultUtil.ok(true);
|
|
|
+ }
|
|
|
+}
|