Selaa lähdekoodia

更新core-solar

ting.yin 3 vuotta sitten
vanhempi
commit
e285694550

+ 25 - 27
pom.xml

@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>cn.com.qmth</groupId>
@@ -36,15 +35,20 @@
 
 	<dependencies>
 		<dependency>
-            <groupId>com.qmth.boot</groupId>
-            <artifactId>starter-api</artifactId>
-            <version>${qmth-boot-version}</version>
-        </dependency>
+			<groupId>com.qmth.boot</groupId>
+			<artifactId>starter-api</artifactId>
+			<version>${qmth-boot-version}</version>
+		</dependency>
 		<dependency>
 			<groupId>com.qmth.boot</groupId>
 			<artifactId>data-mybatis-plus</artifactId>
 			<version>${qmth-boot-version}</version>
 		</dependency>
+		<dependency>
+			<groupId>com.qmth.boot</groupId>
+			<artifactId>core-solar</artifactId>
+			<version>${qmth-boot-version}</version>
+		</dependency>
 		<!-- Swagger jars start -->
 		<dependency>
 			<groupId>com.github.xiaoymin</groupId>
@@ -142,21 +146,16 @@
 			<groupId>org.quartz-scheduler</groupId>
 			<artifactId>quartz-jobs</artifactId>
 		</dependency>
- 		<dependency>
-            <groupId>net.sf.json-lib</groupId>
-            <artifactId>json-lib-ext-spring</artifactId>
-            <version>1.0.2</version>
-        </dependency>
+		<dependency>
+			<groupId>net.sf.json-lib</groupId>
+			<artifactId>json-lib-ext-spring</artifactId>
+			<version>1.0.2</version>
+		</dependency>
 
 	</dependencies>
 
 	<dependencyManagement>
 		<dependencies>
-		<dependency>
-            <groupId>com.qmth.boot</groupId>
-            <artifactId>core-solar</artifactId>
-            <version>${qmth.boot.version}</version>
-		</dependency>
 			<dependency>
 				<groupId>org.springframework.boot</groupId>
 				<artifactId>spring-boot-dependencies</artifactId>
@@ -173,18 +172,17 @@
 			<plugin>
 				<groupId>org.springframework.boot</groupId>
 				<artifactId>spring-boot-maven-plugin</artifactId>
-				<version>2.3.7.RELEASE</version>
 			</plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>${maven-surefire-version}</version>
-                <configuration>
-                    <testFailureIgnore>true</testFailureIgnore>
-                    <skipTests>true</skipTests>
-                    <skip>true</skip>
-                </configuration>
-            </plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>${maven-surefire-version}</version>
+				<configuration>
+					<testFailureIgnore>true</testFailureIgnore>
+					<skipTests>true</skipTests>
+					<skip>true</skip>
+				</configuration>
+			</plugin>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-jar-plugin</artifactId>

+ 0 - 22
src/main/java/cn/com/qmth/print/manage/config/DictionaryConfig.java

@@ -1,22 +0,0 @@
-package cn.com.qmth.print.manage.config;
-
-import cn.com.qmth.print.manage.config.domain.SolarDomain;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class DictionaryConfig {
-
-    /**
-     * 中心配置
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "qmth.solar")
-    public SolarDomain solarDomain() {
-        return new SolarDomain();
-    }
-
-}

+ 0 - 46
src/main/java/cn/com/qmth/print/manage/config/domain/SolarDomain.java

@@ -1,46 +0,0 @@
-package cn.com.qmth.print.manage.config.domain;
-
-import java.io.Serializable;
-
-public class SolarDomain implements Serializable {
-
-    String accessKey;
-
-    String accessSecret;
-
-    String host;
-
-    String uri;
-
-    public String getAccessKey() {
-        return accessKey;
-    }
-
-    public void setAccessKey(String accessKey) {
-        this.accessKey = accessKey;
-    }
-
-    public String getAccessSecret() {
-        return accessSecret;
-    }
-
-    public void setAccessSecret(String accessSecret) {
-        this.accessSecret = accessSecret;
-    }
-
-    public String getHost() {
-        return host;
-    }
-
-    public void setHost(String host) {
-        this.host = host;
-    }
-
-    public String getUri() {
-        return uri;
-    }
-
-    public void setUri(String uri) {
-        this.uri = uri;
-    }
-}

+ 27 - 30
src/main/java/cn/com/qmth/print/manage/service/impl/OrgServiceImpl.java

@@ -1,29 +1,32 @@
 package cn.com.qmth.print.manage.service.impl;
 
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
 import cn.com.qmth.print.manage.dao.OrgDao;
 import cn.com.qmth.print.manage.entity.OrgEntity;
 import cn.com.qmth.print.manage.service.OrgService;
 import cn.com.qmth.print.manage.service.query.OrgQuery;
-import cn.com.qmth.print.manage.utils.SolarUtils;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import com.qmth.boot.core.solar.model.OrgInfo;
+import com.qmth.boot.core.solar.service.SolarService;
 
 @Service
 public class OrgServiceImpl extends ServiceImpl<OrgDao, OrgEntity> implements OrgService {
 
-    @Autowired
-    private SolarUtils solarUtils;
+    @Resource
+    private SolarService solarService;
 
     @Override
     public IPage<OrgEntity> pageQuery(OrgQuery query) {
@@ -49,7 +52,7 @@ public class OrgServiceImpl extends ServiceImpl<OrgDao, OrgEntity> implements Or
     @Transactional
     @Override
     public void pull() {
-        List<Map> mapList = solarUtils.pullSchool();
+        List<OrgInfo> orglist = solarService.getOrgList();
         List<OrgEntity> orgEntities = this.list();
         // 不在中心的学校,本地全部禁用
         if (!CollectionUtils.isEmpty(orgEntities)) {
@@ -58,32 +61,26 @@ public class OrgServiceImpl extends ServiceImpl<OrgDao, OrgEntity> implements Or
                 this.updateById(orgEntity);
             }
         }
-        if (!CollectionUtils.isEmpty(mapList)) {
-            for (Map map : mapList) {
-                Long orgId = Long.valueOf(String.valueOf(map.get("id"))); // 机构中心的id
-                String code = String.valueOf(map.get("code"));
-                String name = String.valueOf(map.get("name"));
-                String logo = String.valueOf(map.get("logo"));
-                String accessKey = String.valueOf(map.get("accessKey"));
-                String accessSecret = String.valueOf(map.get("accessSecret"));
-
+        if (!orglist.isEmpty()) {
+            for (OrgInfo org : orglist) {
                 OrgEntity entity = null;
                 if (!CollectionUtils.isEmpty(orgEntities)) {
-                    entity = orgEntities.stream().filter(m -> m.getCode().equals(code)).findFirst().orElse(null);
+                    entity = orgEntities.stream().filter(m -> m.getCode().equals(org.getCode())).findFirst()
+                            .orElse(null);
                 }
                 if (entity == null) {
                     entity = new OrgEntity();
                     // 中心的学校ID被占用,则使用自增ID
-                    OrgEntity orgById = this.getById(orgId);
+                    OrgEntity orgById = this.getById(org.getId());
                     if (orgById == null) {
-                        entity.setId(orgId);
+                        entity.setId(org.getId());
                     }
                 }
-                entity.setCode(code);
-                entity.setName(name);
-                entity.setAccessKey(accessKey);
-                entity.setAccessSecret(accessSecret);
-                entity.setLogoUrl(logo);
+                entity.setCode(org.getCode());
+                entity.setName(org.getName());
+                entity.setAccessKey(org.getAccessKey());
+                entity.setAccessSecret(org.getAccessSecret());
+                entity.setLogoUrl(org.getLogoUrl());
                 entity.setEnable(true);
                 entity.setCreateTime(new Date());
                 entity.setUpdateTime(new Date());

+ 0 - 111
src/main/java/cn/com/qmth/print/manage/utils/SolarUtils.java

@@ -1,111 +0,0 @@
-package cn.com.qmth.print.manage.utils;
-
-import cn.com.qmth.print.manage.config.DictionaryConfig;
-import com.qmth.boot.tools.signature.SignatureEntity;
-import com.qmth.boot.tools.signature.SignatureType;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * 同步云阅卷接口工具类
- * <p>
- * Date: 2021/10/29.
- */
-@Component
-public class SolarUtils {
-    private final static Logger log = LoggerFactory.getLogger(SolarUtils.class);
-
-    // 所有请求方法默认为"POST"
-    private static final String POST_METHOD = "POST";
-    private static final String HEADER_AUTHORIZATION = "Authorization";
-    private static final String HEADER_TIME = "time";
-
-    private final int DEFAULT_PAGE_NUMBER = 1;
-    private final int DEFAULT_PAGE_SIZE = 100;
-
-    @Autowired
-    private DictionaryConfig dictionaryConfig;
-
-    /**
-     * 同步学校
-     *
-     * @return
-     */
-    public List<Map> pullSchool() {
-        String host = dictionaryConfig.solarDomain().getHost();
-        String uri = dictionaryConfig.solarDomain().getUri();
-        validUrl(host, uri);
-        String postUrl = host.concat(uri);
-        List<Map> finalList = new ArrayList<>();
-        try {
-            AtomicInteger integer = new AtomicInteger(DEFAULT_PAGE_NUMBER);
-            while (true) {
-                //参数
-                Map<String, String> map = new HashMap<>();
-                map.put("pageNumber", String.valueOf(integer.getAndIncrement()));
-                map.put("pageSize", String.valueOf(DEFAULT_PAGE_SIZE));
-
-                String result = HttpUtils.sendPost(postUrl, map, getHeaders(uri));
-                JSONArray jsonArray = JSONArray.fromObject(result);
-                if (jsonArray.size() == 0) {
-                    break;
-                }
-                finalList.addAll(jsonArray);
-            }
-        } catch (Exception e) {
-            throw new RuntimeException("请求异常:" + e.getMessage());
-        }
-        return finalList;
-    }
-
-    /**
-     * http请求头
-     *
-     * @param url 请求URL
-     */
-    private Map<String, String> getHeaders(String url) {
-        long time = System.currentTimeMillis();
-        Map<String, String> header = new HashMap<>();
-        header.put(HEADER_AUTHORIZATION, createSign(time, url));
-        header.put(HEADER_TIME, String.valueOf(time));
-        return header;
-    }
-
-    /**
-     * 签名
-     *
-     * @param time 时间戳
-     * @param url  请求URL
-     */
-    private String createSign(long time, String url) {
-        String accessKey = dictionaryConfig.solarDomain().getAccessKey();
-        String accessSecret = dictionaryConfig.solarDomain().getAccessSecret();
-        if (StringUtils.isAnyBlank(accessKey, accessSecret)) {
-            throw new RuntimeException("accessKey或者accessSecret未配置");
-        }
-        return SignatureEntity.build(SignatureType.SECRET, POST_METHOD, url, time, accessKey, accessSecret);
-    }
-
-    /**
-     * 校验url是否配置
-     *
-     * @param urls URL数组
-     */
-    private void validUrl(String... urls) {
-        if (StringUtils.isAnyBlank(urls)) {
-            throw new RuntimeException("请求URL未配置");
-        }
-    }
-
-}

+ 3 - 4
src/main/resources/application.properties

@@ -29,7 +29,6 @@ spring.datasource.hikari.maximum-pool-size=10
 #
 # ********** sys config **********
 #
-qmth.solar.accessKey=274f823e5f59410f8b3bb6edcd8e2b6e
-qmth.solar.accessSecret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
-qmth.solar.host=https://solar.qmth.com.cn
-qmth.solar.uri=/api/open/org/query
+com.qmth.solar.server=https://solar.qmth.com.cn
+com.qmth.solar.accessKey=274f823e5f59410f8b3bb6edcd8e2b6e
+com.qmth.solar.accessSecret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr

+ 0 - 6
src/main/resources/mapper/OrgDao.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.com.qmth.print.manage.dao.OrgDao">
-
-	
-</mapper>

+ 0 - 27
src/test/java/cn/com/qmth/print/manage/test/OrgServiceTest.java

@@ -1,27 +0,0 @@
-package cn.com.qmth.print.manage.test;
-
-import java.util.List;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import cn.com.qmth.print.manage.entity.OrgEntity;
-import cn.com.qmth.print.manage.service.OrgService;
-
-@SpringBootTest
-@RunWith(SpringRunner.class)
-public class OrgServiceTest {
-
-    @Autowired
-    private OrgService orgService;
-
-    @Test
-    public void test() throws Exception {
-        List<OrgEntity> list = orgService.list();
-        list.forEach(e -> System.out.println(e.getName()));
-    }
-
-}