Эх сурвалжийг харах

新增根据学校代码查询学校信息接口

wangliang 4 жил өмнө
parent
commit
36e885a9db

+ 4 - 59
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/LoginResult.java

@@ -40,7 +40,7 @@ public class LoginResult implements Serializable {
     String accessToken;
 
     @ApiModelProperty(value = "学校信息")
-    SchoolNativeBean schoolInfo;
+    SchoolResult schoolInfo;
 
     @ApiModelProperty(value = "机构信息")
     OrgNativeBean orgInfo;
@@ -62,7 +62,7 @@ public class LoginResult implements Serializable {
         this.roleList = roleList;
     }
 
-    public LoginResult(SysUser sysUser, String sessionId, String accessToken, SchoolNativeBean schoolInfo, OrgNativeBean orgInfo) {
+    public LoginResult(SysUser sysUser, String sessionId, String accessToken, SchoolResult schoolInfo, OrgNativeBean orgInfo) {
         this.loginName = sysUser.getLoginName();
         this.realName = sysUser.getRealName();
         this.sessionId = sessionId;
@@ -127,69 +127,14 @@ public class LoginResult implements Serializable {
         this.accessToken = accessToken;
     }
 
-    public SchoolNativeBean getSchoolInfo() {
+    public SchoolResult getSchoolInfo() {
         return schoolInfo;
     }
 
-    public void setSchoolInfo(SchoolNativeBean schoolInfo) {
+    public void setSchoolInfo(SchoolResult schoolInfo) {
         this.schoolInfo = schoolInfo;
     }
 
-    public class SchoolNativeBean implements Serializable {
-
-        @ApiModelProperty(value = "id")
-        @JsonSerialize(using = ToStringSerializer.class)
-        Long id;
-
-        @ApiModelProperty(value = "代码")
-        String code;
-
-        @ApiModelProperty(value = "名称")
-        String name;
-
-        public SchoolNativeBean() {
-
-        }
-
-        public SchoolNativeBean(BasicSchool tbSchool) {
-            this.id = tbSchool.getId();
-            this.code = tbSchool.getCode();
-            this.name = tbSchool.getName();
-            schoolInfo = this;
-        }
-
-        public SchoolNativeBean(Long id, String code, String name) {
-            this.id = id;
-            this.code = code;
-            this.name = name;
-            schoolInfo = this;
-        }
-
-        public Long getId() {
-            return id;
-        }
-
-        public void setId(Long id) {
-            this.id = id;
-        }
-
-        public String getCode() {
-            return code;
-        }
-
-        public void setCode(String code) {
-            this.code = code;
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-    }
-
     public class OrgNativeBean implements Serializable {
 
         @ApiModelProperty(value = "id")

+ 68 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/SchoolResult.java

@@ -0,0 +1,68 @@
+package com.qmth.distributed.print.business.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.entity.BasicSchool;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 学校result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/4/6
+ */
+public class SchoolResult implements Serializable {
+
+    @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long id;
+
+    @ApiModelProperty(value = "代码")
+    String code;
+
+    @ApiModelProperty(value = "名称")
+    String name;
+
+    public SchoolResult() {
+
+    }
+
+    public SchoolResult(BasicSchool tbSchool) {
+        this.id = tbSchool.getId();
+        this.code = tbSchool.getCode();
+        this.name = tbSchool.getName();
+    }
+
+    public SchoolResult(Long id, String code, String name) {
+        this.id = id;
+        this.code = code;
+        this.name = name;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 8 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CacheService.java

@@ -69,6 +69,14 @@ public interface CacheService {
      */
     public BasicSchool schoolCache(Long schoolId);
 
+    /**
+     * 添加学校缓存
+     *
+     * @param code
+     * @return
+     */
+    public BasicSchool schoolCache(String code);
+
     /**
      * 添加机构缓存
      *

+ 15 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CacheServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.distributed.print.business.bean.auth.AuthBean;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.PrivilegePropertyEnum;
@@ -120,6 +121,20 @@ public class CacheServiceImpl implements CacheService {
         return basicSchoolService.getById(schoolId);
     }
 
+    /**
+     * 添加学校缓存
+     *
+     * @param code
+     * @return
+     */
+    @Override
+    @Cacheable(value = SystemConstant.SCHOOL_CODE_CACHE, key = "#p0")
+    public BasicSchool schoolCache(String code) {
+        QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
+        basicSchoolQueryWrapper.lambda().eq(BasicSchool::getCode, code);
+        return basicSchoolService.getOne(basicSchoolQueryWrapper);
+    }
+
     /**
      * 添加机构缓存
      *

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

@@ -58,6 +58,7 @@ public class SystemConstant {
     public static final String USER_OAUTH_CACHE = "user:oauth:cache";
     public static final String USER_ACCOUNT_CACHE = "user:account:cache";
     public static final String SCHOOL_CACHE = "school:cache";
+    public static final String SCHOOL_CODE_CACHE = "school:code:cache";
     public static final String ORG_CACHE = "org:cache";
     public static final String PRIVILEGE_URL_CACHE = "privilege:url:cache";
     public static final String ROLE_PRIVILEGE_CACHE = "role:privilege:cache";

+ 2 - 0
distributed-print-common/src/main/java/com/qmth/distributed/print/common/enums/ExceptionResultEnum.java

@@ -57,6 +57,8 @@ public enum ExceptionResultEnum {
 
     PATH_NO_DATA(HttpStatus.INTERNAL_SERVER_ERROR, 5000019, "文件地址不存在"),
 
+    SCHOOL_NO_DATA(HttpStatus.INTERNAL_SERVER_ERROR, 5000020, "学校信息不存在"),
+
     /**
      * 401
      */

+ 15 - 7
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -11,8 +11,9 @@ import com.qmth.distributed.print.business.bean.auth.ExpireTimeBean;
 import com.qmth.distributed.print.business.bean.query.LoginParam;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.LoginResult;
+import com.qmth.distributed.print.business.bean.result.SchoolResult;
 import com.qmth.distributed.print.business.config.DictionaryConfig;
-import com.qmth.distributed.print.business.entity.BasicVerifyCode;
+import com.qmth.distributed.print.business.entity.BasicSchool;
 import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.entity.TBSession;
 import com.qmth.distributed.print.business.enums.RoleTypeEnum;
@@ -30,15 +31,11 @@ import com.qmth.distributed.print.common.util.SessionUtil;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.security.NoSuchAlgorithmException;
-import java.util.Date;
 import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -146,7 +143,7 @@ public class SysController {
         redisUtil.setUserSession(sessionId, tbSession, expireTime.getExpireSeconds());
 
         LoginResult loginResult = new LoginResult(sysUser, sessionId, test, roleType);
-        loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? loginResult.new SchoolNativeBean(authBean.getSchool()) : null);
+        loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? new SchoolResult(authBean.getSchool()) : null);
         loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
         return ResultUtil.ok(loginResult);
     }
@@ -202,4 +199,15 @@ public class SysController {
         return ResultUtil.ok(true);
     }
 
+    @ApiOperation(value = "根据机构代码查询机构信息接口")
+    @RequestMapping(value = "/school/query_by_school_code", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "学校信息", response = SchoolResult.class)})
+    public Result queryBySchoolCode(@ApiParam(value = "机构code", required = true) @RequestParam String code) {
+        BasicSchool basicSchool = cacheService.schoolCache(code);
+        if (Objects.isNull(basicSchool)) {
+            throw ExceptionResultEnum.SCHOOL_NO_DATA.exception();
+        }
+        SchoolResult schoolResult = new SchoolResult(basicSchool);
+        return ResultUtil.ok(schoolResult);
+    }
 }