|
|
|
@ -1,20 +1,43 @@
|
|
|
|
|
package com.sztzjy.forex.trading_trading.util;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.json.JSONArray;
|
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
|
import cn.hutool.http.HttpStatus;
|
|
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
|
import com.nimbusds.jose.shaded.gson.JsonObject;
|
|
|
|
|
import com.sztzjy.forex.trading_trading.config.security.JwtUser;
|
|
|
|
|
import com.sztzjy.forex.trading_trading.config.security.TokenProvider;
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class TzApi {
|
|
|
|
|
|
|
|
|
|
private final static String API_URL = "http://Cloud.sztzjy.com";
|
|
|
|
|
|
|
|
|
|
private final static String LOGIN_URL = API_URL + "/Account/FireignExchangeTradingLogin";
|
|
|
|
|
private final static String LOGIN_URL = API_URL + "/Account/ForeignExchangeTradingLogin";
|
|
|
|
|
|
|
|
|
|
private final static String GET_CLASS = API_URL + "/Account/GetClassBySchoolIdForForeignExchangeTrading";
|
|
|
|
|
|
|
|
|
|
private final static String GET_MAJOR = API_URL + "/Account/GetMajorIdForForeignExchangeTrading";
|
|
|
|
|
|
|
|
|
|
private final static String GET_CLASS_BY_MAJOR = API_URL + "/Account/GetClassByMajorIdForForeignExchangeTrading";
|
|
|
|
|
|
|
|
|
|
private final static String GET_STUDENT_BY_ClALL = API_URL + "/Account/GetStudentInfoByClassIdForForeignExchangeTrading";
|
|
|
|
|
|
|
|
|
|
private final static String GET_STUDENT_BY_KEYWORD = API_URL + "/Account/GetStudentInfoByKeywordForForeignExchangeTrading";
|
|
|
|
|
private final static String PAGE_STUDENT_BY_KEYWORD = API_URL + "/Account/PagedListStudentInfoByClassIdForForeignExchangeTrading";
|
|
|
|
|
|
|
|
|
|
// 智云接口调用token加入缓存,默认1小时过期
|
|
|
|
|
private static CacheProvider cacheProvider = new CacheProvider(2400, 6000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static JwtUser foreignExchangeTradingLogin(String userName, String password) {
|
|
|
|
@ -34,7 +57,7 @@ public class TzApi {
|
|
|
|
|
JSONObject jsonObject = object.getJSONObject("respString");
|
|
|
|
|
JSONObject resultObject = jsonObject.getJSONObject("result");
|
|
|
|
|
int code = resultObject.getInt("code");
|
|
|
|
|
if(code!= HttpStatus.HTTP_OK){
|
|
|
|
|
if (code != HttpStatus.HTTP_OK) {
|
|
|
|
|
throw new IllegalArgumentException("登录失败");
|
|
|
|
|
}
|
|
|
|
|
JSONObject dataObject = resultObject.getJSONObject("data");
|
|
|
|
@ -45,6 +68,12 @@ public class TzApi {
|
|
|
|
|
user.setRoleId(dataObject.getInt("roleId"));
|
|
|
|
|
user.setSchoolId(dataObject.getInt("schoolId"));
|
|
|
|
|
user.setClassId(dataObject.getInt("classId"));
|
|
|
|
|
user.setMajorId(dataObject.getInt("majorId"));
|
|
|
|
|
user.setClassName(dataObject.getStr("className"));
|
|
|
|
|
user.setMajorName(dataObject.getStr("majorName"));
|
|
|
|
|
user.setSchoolName(dataObject.getStr("schoolName"));
|
|
|
|
|
user.setCollegeId(dataObject.getInt("collegeId"));
|
|
|
|
|
user.setCollegeName(dataObject.getStr("collegeName"));
|
|
|
|
|
user.setUsername(userName);
|
|
|
|
|
user.setPassword(password);
|
|
|
|
|
return user;
|
|
|
|
@ -54,4 +83,138 @@ public class TzApi {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static List<Map<String, Object>> GetClassBySchoolIdForForeignExchangeTrading(JwtUser user) {
|
|
|
|
|
String token = getToken(user);
|
|
|
|
|
String url = GET_CLASS;
|
|
|
|
|
return getDataFromApi(url, token);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static List<Map<String, Object>> GetMajorIdForForeignExchangeTrading(JwtUser user) {
|
|
|
|
|
String token = getToken(user);
|
|
|
|
|
String url = GET_MAJOR;
|
|
|
|
|
return getDataFromApi(url, token);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static List<Map<String, Object>> GetClassByMajorIdForForeignExchangeTrading(JwtUser user, int majorId) {
|
|
|
|
|
String token = getToken(user);
|
|
|
|
|
String url = GET_CLASS_BY_MAJOR + "?majorId=" + majorId;
|
|
|
|
|
return getDataFromApi(url, token);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static List<Map<String, Object>> GetStudentInfoByClassIdForForeignExchangeTrading(String classIds, JwtUser user) {
|
|
|
|
|
String token = getToken(user);
|
|
|
|
|
String url = GET_STUDENT_BY_ClALL + "?classList=" + classIds;
|
|
|
|
|
return getDataFromApi(url, token);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static List<Map<String, Object>> GetStudentInfoByKeywordForForeignExchangeTrading(JwtUser user, String keyword) {
|
|
|
|
|
String token = getToken(user);
|
|
|
|
|
String url = GET_STUDENT_BY_KEYWORD + "?keyword=" + keyword;
|
|
|
|
|
return getDataFromApi(url, token);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static PageInfo<Map<String, Object>> PagedListStudentInfoByClassIdForForeignExchangeTrading(JwtUser user, String classIds, int page, int size) {
|
|
|
|
|
String token = getToken(user);
|
|
|
|
|
String url = PAGE_STUDENT_BY_KEYWORD + "?classList=" + classIds + "&page=" + page + "&size=" + size;
|
|
|
|
|
return getPageDataFromApi(url, token);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static List<Map<String, Object>> getDataFromApi(String url, String token) {
|
|
|
|
|
List<Map<String, Object>> dataList = new ArrayList<>();
|
|
|
|
|
try {
|
|
|
|
|
String responseBody = HttpUtils.sendGet(url, token);
|
|
|
|
|
|
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
JsonNode jsonNode = objectMapper.readTree(responseBody);
|
|
|
|
|
|
|
|
|
|
JsonNode resultNode = jsonNode.get("result");
|
|
|
|
|
JsonNode dataNode = resultNode.get("data");
|
|
|
|
|
if (dataNode.isArray()) {
|
|
|
|
|
for (JsonNode node : dataNode) {
|
|
|
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
|
|
|
dataMap.put("id", node.get("id").asText());
|
|
|
|
|
dataMap.put("name", node.get("name").asText());
|
|
|
|
|
|
|
|
|
|
dataList.add(dataMap);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw new IllegalArgumentException("获取数据异常");
|
|
|
|
|
}
|
|
|
|
|
return dataList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static PageInfo<Map<String, Object>> getPageDataFromApi(String url, String token) {
|
|
|
|
|
PageInfo pageInfo = new PageInfo();
|
|
|
|
|
try {
|
|
|
|
|
String responseBody = HttpUtils.sendGet(url, token);
|
|
|
|
|
|
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
JsonNode jsonNode = objectMapper.readTree(responseBody);
|
|
|
|
|
|
|
|
|
|
JsonNode resultNode = jsonNode.get("result");
|
|
|
|
|
JsonNode dataNode = resultNode.get("data");
|
|
|
|
|
if (dataNode != null) {
|
|
|
|
|
pageInfo.setPages(resultNode.get("totalPages").asInt());
|
|
|
|
|
pageInfo.setHasPreviousPage(resultNode.get("hasPreviousPage").asBoolean());
|
|
|
|
|
pageInfo.setHasNextPage(resultNode.get("hasNextPage").asBoolean());
|
|
|
|
|
pageInfo.setTotal(resultNode.get("totalCount").asInt());
|
|
|
|
|
JsonNode retNode = dataNode.get("data");
|
|
|
|
|
List<Map<String,Object>> dataList = new ArrayList<>();
|
|
|
|
|
if(retNode.isArray()){
|
|
|
|
|
for(JsonNode node: retNode){
|
|
|
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
|
|
|
dataMap.put("id", node.get("id").asText());
|
|
|
|
|
dataMap.put("name", node.get("name").asText());
|
|
|
|
|
dataMap.put("studentNo", node.get("studentNo").asText());
|
|
|
|
|
dataMap.put("className", node.get("className").asText());
|
|
|
|
|
dataMap.put("majorName", node.get("majorName").asText());
|
|
|
|
|
dataList.add(dataMap);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pageInfo.setList(dataList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw new IllegalArgumentException("获取数据异常");
|
|
|
|
|
}
|
|
|
|
|
return pageInfo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static String getToken(JwtUser user) {
|
|
|
|
|
try {
|
|
|
|
|
String access_token;
|
|
|
|
|
|
|
|
|
|
access_token = (String) cacheProvider.get(user.getUserId() + user.getUsername());
|
|
|
|
|
if (StringUtils.hasText(access_token)) {
|
|
|
|
|
System.out.println("-------->>> 从缓存中获取 access_token【成功】");
|
|
|
|
|
} else {
|
|
|
|
|
access_token = TokenProvider.createZHIYUNToken(user);
|
|
|
|
|
cacheProvider.put(user.getUserId() + user.getUsername(), access_token);
|
|
|
|
|
System.out.println("-------->>> 从远程获取 access_token【成功】");
|
|
|
|
|
}
|
|
|
|
|
return access_token;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw new IllegalArgumentException(e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
JwtUser user = new JwtUser();
|
|
|
|
|
user.setUserId("486");
|
|
|
|
|
user.setRoleId(3);
|
|
|
|
|
user.setUsername("tzt006");
|
|
|
|
|
user.setSchoolId(1);
|
|
|
|
|
user.setSchoolName("天择大学");
|
|
|
|
|
user.setCollegeId(1);
|
|
|
|
|
user.setCollegeName("演示学院");
|
|
|
|
|
user.setMajorId(1);
|
|
|
|
|
user.setMajorName("产品演示专业");
|
|
|
|
|
PagedListStudentInfoByClassIdForForeignExchangeTrading(user, "7", 1, 10);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|