فهرست منبع

教研分析超管设置

caozixuan 2 سال پیش
والد
کامیت
1dc0d3e6f3

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

@@ -74,6 +74,7 @@ public class SystemConstant {
     public static final String PREFIX_URL_REPORT_ANALYZE = "/report/analyze";
     public static final String PREFIX_URL_REPORT_OPEN = "/report/open";
     public static final String PREFIX_URL_REPORT_SSO = "/report/sso";
+    public static final String PREFIX_URL_REPORT_SET = "/report/set";
 
     /**
      * 云阅卷api

+ 56 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/params/SysAdminSetParam.java

@@ -0,0 +1,56 @@
+package com.qmth.teachcloud.report.business.bean.params;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.bean.result.SysConfigResult;
+import com.qmth.teachcloud.common.entity.TSchoolPrivilege;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @Description: 学校自定义菜单 param
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/10/30
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysAdminSetParam extends TSchoolPrivilege {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "权限id数组")
+    private Long[] privilegeIds;
+
+    @ApiModelProperty(value = "参数")
+    List<SysConfigResult> param;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "角色id数组")
+    private Long[] roleIds;
+
+    public List<SysConfigResult> getParam() {
+        return param;
+    }
+
+    public void setParam(List<SysConfigResult> param) {
+        this.param = param;
+    }
+
+    public Long[] getRoleIds() {
+        return roleIds;
+    }
+
+    public void setRoleIds(Long[] roleIds) {
+        this.roleIds = roleIds;
+    }
+
+    public Long[] getPrivilegeIds() {
+        return privilegeIds;
+    }
+
+    public void setPrivilegeIds(Long[] privilegeIds) {
+        this.privilegeIds = privilegeIds;
+    }
+}

+ 79 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SysAdminSetResult.java

@@ -0,0 +1,79 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.bean.result.SysConfigResult;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 自定义菜单result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/8/24
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysAdminSetResult implements Serializable {
+
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long schoolId;
+
+    @ApiModelProperty(value = "自定义菜单id")
+    List<String> privilegeIdList;
+
+    @ApiModelProperty(value = "返回结果")
+    List<SysConfigResult> result;
+
+    @ApiModelProperty(value = "自定义角色id")
+    List<String> roleIdList;
+
+    public SysAdminSetResult() {
+
+    }
+
+    public SysAdminSetResult(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public SysAdminSetResult(Long schoolId, List<SysConfigResult> result) {
+        this.schoolId = schoolId;
+        this.result = result;
+    }
+
+    public List<String> getRoleIdList() {
+        return roleIdList;
+    }
+
+    public void setRoleIdList(List<String> roleIdList) {
+        this.roleIdList = roleIdList;
+    }
+
+    public List<String> getPrivilegeIdList() {
+        return privilegeIdList;
+    }
+
+    public void setPrivilegeIdList(List<String> privilegeIdList) {
+        this.privilegeIdList = privilegeIdList;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public List<SysConfigResult> getResult() {
+        return result;
+    }
+
+    public void setResult(List<SysConfigResult> result) {
+        this.result = result;
+    }
+}

+ 81 - 0
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysAdminSetController.java

@@ -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);
+    }
+}