对接space系统
This commit is contained in:
+24
-12
@@ -1,25 +1,26 @@
|
||||
package com.jero.modules.project.controller;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.project.entity.ProjectNameInfoEO;
|
||||
import com.jero.modules.project.service.IProjectNameInfoEOService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.project.entity.ProjectNameInfoEO;
|
||||
import com.jero.modules.project.service.IProjectNameInfoEOService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@@ -167,4 +168,15 @@ public class ProjectNameInfoEOController extends JeroController<ProjectNameInfoE
|
||||
return super.importExcel(request, response, ProjectNameInfoEO.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 接收space系统数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目名信息表-space")
|
||||
@ApiOperation(value="项目名信息表-space", notes="项目名信息表-space")
|
||||
@RequestMapping(value = "/getSign", method = RequestMethod.POST)
|
||||
public String getSign() {
|
||||
return projectNameInfoEOService.getYapiInfo();
|
||||
}
|
||||
}
|
||||
|
||||
+10
-8
@@ -1,21 +1,18 @@
|
||||
package com.jero.modules.project.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
@@ -66,4 +63,9 @@ public class ProjectNameInfoEO implements Serializable {
|
||||
@ApiModelProperty(value = "项目名称")
|
||||
private java.lang.String projectName;
|
||||
|
||||
/**年款名称*/
|
||||
@Excel(name = "年款名称", width = 15)
|
||||
@ApiModelProperty(value = "年款名称")
|
||||
private java.lang.String yearName;
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -58,4 +58,6 @@ public interface IProjectNameInfoEOService extends IService<ProjectNameInfoEO> {
|
||||
* @return
|
||||
*/
|
||||
List<ProjectNameInfoEO> queryList();
|
||||
|
||||
String getYapiInfo();
|
||||
}
|
||||
|
||||
+181
-3
@@ -1,12 +1,15 @@
|
||||
package com.jero.modules.project.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.modules.project.entity.ProjectNameInfoEO;
|
||||
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
|
||||
import com.jero.modules.project.service.IProjectNameInfoEOService;
|
||||
import com.jero.modules.space.service.SpaceServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 项目名信息表
|
||||
@@ -16,7 +19,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
*/
|
||||
@Service
|
||||
public class ProjectNameInfoEOServiceImpl extends ServiceImpl<ProjectNameInfoEOMapper, ProjectNameInfoEO> implements IProjectNameInfoEOService {
|
||||
|
||||
@Autowired
|
||||
private SpaceServiceImpl spaceService;
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -86,4 +90,178 @@ public class ProjectNameInfoEOServiceImpl extends ServiceImpl<ProjectNameInfoEOM
|
||||
public List<ProjectNameInfoEO> queryList() {
|
||||
return list();
|
||||
}
|
||||
@Override
|
||||
public String getYapiInfo(){
|
||||
String sign ="";
|
||||
try {
|
||||
// sign = spaceService.getSign();
|
||||
|
||||
String resultData = "{\n" +
|
||||
" \"resultData\": [\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"ES8_00\",\n" +
|
||||
" \"modelName\": \"ES8\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npa\",\n" +
|
||||
" \"hardwarePltName\": \"NPA\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt1\",\n" +
|
||||
" \"softwarePltName\": \"NT1\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.2\",\n" +
|
||||
" \"yearName\": \"G1.2\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.3\",\n" +
|
||||
" \"yearName\": \"G1.3\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.f\",\n" +
|
||||
" \"yearName\": \"G1.F\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.f.e\",\n" +
|
||||
" \"yearName\": \"G1.F.E\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_my2018\",\n" +
|
||||
" \"yearName\": \"MY2018\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.5\",\n" +
|
||||
" \"yearName\": \"G1.5\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"FURY_00\",\n" +
|
||||
" \"modelName\": \"FURY\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npa\",\n" +
|
||||
" \"hardwarePltName\": \"NPA\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt1\",\n" +
|
||||
" \"softwarePltName\": \"NT1\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.2\",\n" +
|
||||
" \"yearName\": \"G1.2\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.3\",\n" +
|
||||
" \"yearName\": \"G1.3\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.f\",\n" +
|
||||
" \"yearName\": \"G1.F\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.6\",\n" +
|
||||
" \"yearName\": \"G1.6\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.5\",\n" +
|
||||
" \"yearName\": \"G1.5\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1.e\",\n" +
|
||||
" \"yearName\": \"G1.1.E\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"FORCE_00\",\n" +
|
||||
" \"modelName\": \"FORCE\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npb\",\n" +
|
||||
" \"hardwarePltName\": \"NPB\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt2\",\n" +
|
||||
" \"softwarePltName\": \"NT2\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1.e\",\n" +
|
||||
" \"yearName\": \"G1.1.E\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.2\",\n" +
|
||||
" \"yearName\": \"G1.2\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.3\",\n" +
|
||||
" \"yearName\": \"G1.3\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.f\",\n" +
|
||||
" \"yearName\": \"G1.F\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.6\",\n" +
|
||||
" \"yearName\": \"G1.6\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.5\",\n" +
|
||||
" \"yearName\": \"G1.5\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"Gemini_00\",\n" +
|
||||
" \"modelName\": \"Gemini\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npa\",\n" +
|
||||
" \"hardwarePltName\": \"NPA\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt2\",\n" +
|
||||
" \"softwarePltName\": \"NT2\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1.e\",\n" +
|
||||
" \"yearName\": \"G1.1.E\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"Pegasus_00\",\n" +
|
||||
" \"modelName\": \"Pegasus\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npc\",\n" +
|
||||
" \"hardwarePltName\": \"NPC\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt2\",\n" +
|
||||
" \"softwarePltName\": \"NT2\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1.e\",\n" +
|
||||
" \"yearName\": \"G1.1.E\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_G1.1.RH\",\n" +
|
||||
" \"yearName\": \"G1.1.RH\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"resultCode\": \"WL-0000\",\n" +
|
||||
" \"resultDesc\": \"Success\"\n" +
|
||||
"}";
|
||||
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}return sign;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.jero.modules.space.service;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public interface ISpaceService {
|
||||
|
||||
/**
|
||||
* 获取token
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
// String getTenantAccessToken() throws IOException;
|
||||
|
||||
/**
|
||||
* 批量发送消息
|
||||
* @param userIds 用户域账号,对应数据库字段:third_id
|
||||
* @param message 消息内容
|
||||
* @param title 消息类型
|
||||
* @param backUrl 消息内容中的跳转链接
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
// String batchSendMessage(String[] userIds, String message, String title, String backUrl) throws IOException;
|
||||
|
||||
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
package com.jero.modules.space.service;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SpaceServiceImpl implements ISpaceService {
|
||||
@Value("${Space.appId}")
|
||||
private String appId;
|
||||
|
||||
@Value("${Space.appSecret}")
|
||||
private String appSecret;
|
||||
|
||||
@Value("${Space.domainUrl}")
|
||||
private String domainUrl;
|
||||
|
||||
|
||||
/**
|
||||
* 生成签名
|
||||
*@param map 参数
|
||||
*@param secretKey 加签密钥
|
||||
*@return String
|
||||
*@throws Exception if secretKey is Empty
|
||||
*/
|
||||
public static String sign(Map<String, Object> map, String secretKey) throws Exception {
|
||||
if (StringUtils.isEmpty(secretKey)) {
|
||||
throw new Exception("secretKey can not be empty");
|
||||
}
|
||||
StringBuilder contentBuffer = new StringBuilder();
|
||||
Object[] signParamArray = map.keySet().toArray();
|
||||
Arrays.sort(signParamArray);
|
||||
for (Object key : signParamArray) {
|
||||
Object value = map.get(key);
|
||||
if (!"digest".equals(key) && value != null && !value.equals("")) {
|
||||
contentBuffer.append(key + "=" + value + "&");
|
||||
}
|
||||
}
|
||||
String sign = contentBuffer.substring(0, contentBuffer.length() - 1) + secretKey;
|
||||
return Md5(sign, "utf-8");
|
||||
}
|
||||
|
||||
public static String Md5(String plainText, String encoding) throws Exception {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
md.update(plainText.getBytes(encoding));
|
||||
byte b[] = md.digest();
|
||||
return byte2hex(b);
|
||||
}
|
||||
|
||||
public static String byte2hex(byte[] b) {
|
||||
String hs = "";
|
||||
String stmp = "";
|
||||
for (int n = 0; n < b.length; n++) {
|
||||
stmp = (Integer.toHexString(b[n] & 0XFF));
|
||||
if (stmp.length() == 1)
|
||||
hs = hs + "0" + stmp;
|
||||
else
|
||||
hs = hs + stmp;
|
||||
}
|
||||
return hs.toUpperCase();
|
||||
}
|
||||
|
||||
public String getSign() throws Exception {
|
||||
Map<String,Object> paramMap = new HashMap<String, Object>();
|
||||
paramMap.put("bizData", "{\"module\":\"GRP\"}");//业务参数
|
||||
paramMap.put("timestamp", String.valueOf(System.currentTimeMillis()));//请求时间
|
||||
paramMap.put("appId", appId);//在Program Space中注册的appId
|
||||
String sign = sign(paramMap,appSecret);//签名字符串
|
||||
paramMap.put("sign",sign);//签名字符串
|
||||
|
||||
// String response = HttpUtil.post(domainUrl, paramMap);
|
||||
String response = HttpRequest.post(domainUrl)
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.form(paramMap)//表单内容
|
||||
.timeout(20000)//超时,毫秒
|
||||
.execute().body();
|
||||
|
||||
// String response = HttpRequestUtil.getResponseOfPOST(domainUrl, headerMap, null);
|
||||
return response;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -404,3 +404,28 @@ opensso:
|
||||
clientId: 100679
|
||||
clientSecret: CDf2D9404C6ac1B0f7c3e3845ae0282a
|
||||
redirectUri: http%3A%2F%2F139.9.235.66%3A8010
|
||||
|
||||
|
||||
---
|
||||
## space系统
|
||||
Space:
|
||||
# dev
|
||||
# appId: PMP16517425636482D4A
|
||||
# appSecret: 6a689580-bf3a-47ee-b3c5-a16d2312760d
|
||||
# domainUrl: https://api-plm-portal-dev.nioint.com/api/v1/plm-portal-middle-integration
|
||||
|
||||
# test
|
||||
appId: PMP16521484118670676
|
||||
appSecret: 4cf1b271-0c12-443d-964c-e61726b4ae0e
|
||||
domainUrl: https://api-plm-portal-test.nioint.com/api/v1/plm-portal-middle-integration
|
||||
|
||||
# stg
|
||||
# appId: PMP1652840272275F20C
|
||||
# appSecret: fbf65763-a273-4df5-8a91-ef4db6d6e315
|
||||
# domainUrl: https://api-plm-portal-stg.nioint.com/api/v1/plm-portal-middle-integration
|
||||
|
||||
# prod
|
||||
# appId: PMP1652840319523B159
|
||||
# appSecret: d3bf6e69-0726-42ee-91bd-0441a8f6ccdf
|
||||
# domainUrl: https://api-plm-portal.nioint.com/api/v1/plm-portal-middle-integration
|
||||
|
||||
|
||||
Reference in New Issue
Block a user