对接space系统

This commit is contained in:
xiejunyu
2022-05-19 18:10:23 +08:00
parent 96ccd0ffda
commit cb7174189b
7 changed files with 359 additions and 23 deletions
@@ -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();
}
}
@@ -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;
}
@@ -58,4 +58,6 @@ public interface IProjectNameInfoEOService extends IService<ProjectNameInfoEO> {
* @return
*/
List<ProjectNameInfoEO> queryList();
String getYapiInfo();
}
@@ -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;
}
}
@@ -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;
}
@@ -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