提交 856b4d9b authored 作者: inroi's avatar inroi

微调

上级 89c440f1
package com.system.api;
import com.system.constants.Constants;
import com.system.transfer.form.FormFieldMappingDetailOutVoRecords;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @author Inori
*/
public class CommonApi {
public static Map<String, Object> purchaseData(Map<String, String> config, List<Map<String, Object>> dataList, List<FormFieldMappingDetailOutVoRecords> fieldList) {
Map<String, Object> request = new LinkedHashMap<>(2);
List<Map<String, Object>> tempList = new ArrayList<>();
for (Map<String, Object> data : dataList) {
Map<String, Object> temp = new LinkedHashMap<>();
for (FormFieldMappingDetailOutVoRecords records : fieldList) {
if (Constants.IS_ENTRY_CODE.equals(records.getIsEntryField())) {
purchaseFieldData(data, temp, records);
} else {
purchaseFieldData(data, request, records);
}
}
if (!CollectionUtils.isEmpty(temp)) {
tempList.add(temp);
}
}
if (!CollectionUtils.isEmpty(tempList)) {
request.put("children", tempList);
}
return request;
}
private static void purchaseFieldData(Map<String, Object> temp, Map<String, Object> data, FormFieldMappingDetailOutVoRecords records) {
String fieldType = records.getFieldType();
String fieldBeforeMapping = records.getFieldBeforeMapping();
String fieldAfterMapping = records.getFieldAfterMapping();
if (Constants.INT_NAME.equals(fieldType)) {
try {
data.put(fieldAfterMapping, Integer.valueOf(String.valueOf(temp.get(fieldBeforeMapping))));
} catch (NumberFormatException e) {
data.put(fieldAfterMapping, temp.get(fieldBeforeMapping));
}
} else if (Constants.BIG_DECIMAL_NAME.equals(fieldType)) {
try {
data.put(fieldAfterMapping, new BigDecimal(String.valueOf(temp.get(fieldBeforeMapping))));
} catch (NumberFormatException e) {
data.put(fieldAfterMapping, temp.get(fieldBeforeMapping));
}
} else {
data.put(fieldAfterMapping, temp.get(fieldBeforeMapping));
}
}
}
package com.system.api;
import com.system.constants.Constants;
import com.system.transfer.form.FormFieldMappingDetailOutVoRecords;
import com.system.utils.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author Inori
*/
@Component
public class CommonGetApi {
@Autowired
private ThirdPartyLogUtil thirdPartyLogUtil;
public String commonGet(Map<String, String> config, String json, String queueId) {
String result = "";
try {
if (StringUtil.isNotBlank(json)) {
result = HttpUtil.httpPost(config.get("requestAddress"), json).getBody();
} else {
result = HttpUtil.httpGet(config.get("requestAddress")).getBody();
}
} catch (Exception e) {
e.printStackTrace();
}
int flag = 0;
Map<String, Object> response = new HashMap<>(3);
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(map)) {
if (Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
List<Object> objectList = JsonUtil.toList(JsonUtil.toString(map.get("data")), Object.class);
List<Map<String, Object>> dataList = objectList.stream().map(m -> JsonUtil.toMap(JsonUtil.toString(m), String.class, Object.class)).collect(Collectors.toList());
List<FormFieldMappingDetailOutVoRecords> fieldList = FormFieldMappingUtil.purchaseMapping(config.get("formFieldMappingDetail"));
response.put("data", CommonApi.purchaseData(config, dataList, fieldList));
response.put("success", true);
flag = 1;
}
} else if (!Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME))) && map.containsKey(Constants.ERROR_MESSAGE)) {
response.put("message", map.get(Constants.ERROR_MESSAGE));
response.put("success", false);
} else {
response.put("message", "");
response.put("success", false);
}
System.out.println(response);
thirdPartyLogUtil.thirdPartyLogCreate(config.get("name"), config.get("docType"), queueId, config.get("configureDirection"), StringUtil.isNotBlank(json) ? json : config.get("requestAddress"), result, flag);
return JsonUtil.toString(response);
}
public String commonSync(String responseAddress, String queueId, Map<String, String> config, String json) {
try {
String result = HttpUtil.httpPost(responseAddress, json).getBody();
thirdPartyLogUtil.thirdPartyLogCreate(config.get("name"), config.get("docType"), queueId, config.get("configureDirection"), json, result);
return result;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
}
package com.system.api;
import com.system.constants.Constants;
import com.system.transfer.form.FormFieldMappingDetailOutVoRecords;
import com.system.utils.FormFieldMappingUtil;
import com.system.utils.HttpUtil;
import com.system.utils.JsonUtil;
import com.system.utils.ThirdPartyLogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Inori
*/
@Component
public class CommonPostApi {
@Autowired
private ThirdPartyLogUtil thirdPartyLogUtil;
public String commonPost(Map<String, String> config, List<Map<String, Object>> dataList, String queueId) {
int flag = 0;
Map<String, Object> response = new HashMap<>(3);
try {
List<FormFieldMappingDetailOutVoRecords> fieldList = FormFieldMappingUtil.purchaseMapping(config.get("formFieldMappingDetail"));
Map<String, Object> data = CommonApi.purchaseData(config, dataList, fieldList);
String result = HttpUtil.httpPost(config.get(""), JsonUtil.toString(data)).getBody();
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(map)) {
if (Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
flag = 1;
response.put("success", true);
}
} else if (!Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME))) && map.containsKey(Constants.ERROR_MESSAGE)) {
response.put("success", false);
response.put("message", map.get(Constants.ERROR_MESSAGE));
} else {
response.put("message", "");
response.put("success", false);
}
thirdPartyLogUtil.thirdPartyLogCreate(config.get("name"), config.get("docType"), queueId, config.get("configureDirection"), JsonUtil.toString(data), result, flag);
return JsonUtil.toString(response);
} catch (Exception e) {
response.put("message", e.getMessage());
response.put("success", false);
return JsonUtil.toString(response);
}
}
}
package com.system.constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.system.dao.CustomFormConfigMapper;
import com.system.transfer.form.CustomFormConfigListInVo;
import com.system.transfer.form.CustomFormConfigListOutVoRecords;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author Inori
*/
@Component
public class CommonGetConstants {
private Map<String, Map<String, String>> map = new ConcurrentHashMap<>();
@Autowired
private CustomFormConfigMapper customFormConfigMapper;
@PostConstruct
public void init() {
List<CustomFormConfigListOutVoRecords> recordsList = customFormConfigMapper.customFormConfigList(new Page<>(0, 10000), new CustomFormConfigListInVo(1));
for (CustomFormConfigListOutVoRecords records : recordsList) {
this.map.put(records.getDocType(), this.purchaseCustomFormConfig(records));
}
}
public Map<String, String> get(String docType) {
if (CollectionUtils.isEmpty(this.map)) {
return new HashMap<>(1);
}
return this.map.get(docType);
}
/**
* 封装自定义表单配置
*/
private Map<String, String> purchaseCustomFormConfig(CustomFormConfigListOutVoRecords records) {
Map<String, String> result = new HashMap<>(10);
result.put("docType", records.getDocType());
result.put("name", records.getName());
result.put("configureDirection", records.getConfigureDirection());
result.put("operation", records.getOperation() == 1 ? "Get" : "Post");
result.put("requestAddress", records.getRequestAddress());
result.put("customSql", records.getCustomSql());
result.put("formFieldMappingDetail", records.getFormFieldMappingDetail());
return result;
}
}
package com.system.constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.system.dao.CustomFormConfigMapper;
import com.system.transfer.form.CustomFormConfigListInVo;
import com.system.transfer.form.CustomFormConfigListOutVoRecords;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author Inori
*/
@Component
public class CommonPostConstants {
private Map<String, Map<String, String>> map = new ConcurrentHashMap<>();
@Autowired
private CustomFormConfigMapper customFormConfigMapper;
@PostConstruct
public void init() {
List<CustomFormConfigListOutVoRecords> recordsList = customFormConfigMapper.customFormConfigList(new Page<>(0, 10000), new CustomFormConfigListInVo(2));
for (CustomFormConfigListOutVoRecords records : recordsList) {
this.map.put(records.getDocType(), this.purchaseCustomFormConfig(records));
}
}
public Map<String, String> get(String docType) {
if (CollectionUtils.isEmpty(this.map)) {
return new HashMap<>(1);
}
return this.map.get(docType);
}
/**
* 封装自定义表单配置
*/
private Map<String, String> purchaseCustomFormConfig(CustomFormConfigListOutVoRecords records) {
Map<String, String> result = new HashMap<>(10);
result.put("docType", records.getDocType());
result.put("name", records.getName());
result.put("operation", records.getOperation() == 1 ? "Get" : "Post");
result.put("configureDirection", records.getConfigureDirection());
result.put("customSql", records.getCustomSql());
result.put("formFieldMappingDetail", records.getFormFieldMappingDetail());
return result;
}
}
package com.system.controller;
import com.system.serivce.ICommonHttpService;
import com.system.transfer.platform.PlatformDockingShoppingMallCommodityInVo;
import com.system.transfer.response.RestResponse;
import com.system.utils.HttpUtil;
import com.system.utils.JsonUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author Inori
*/
......@@ -21,6 +14,9 @@ import java.util.stream.Stream;
@RequestMapping("/api")
public class CommonHttpController {
@Autowired
private ICommonHttpService commonHttpService;
@ApiOperation("触发平台对接商城会员")
@GetMapping("/docking/shopping/mall/member")
public RestResponse dockingShoppingMallMember() {
......@@ -30,19 +26,7 @@ public class CommonHttpController {
@ApiOperation("触发平台对接商品")
@PostMapping("/docking/shopping/mall/commodity")
public RestResponse dockingShoppingMallCommodity(@RequestBody PlatformDockingShoppingMallCommodityInVo inVo) {
System.out.println(inVo);
ResponseEntity<String> responseEntity = HttpUtil.httpPost("http://192.168.0.9:8089/api/dataSyn/getSyn", JsonUtil.toString(Stream.of(20).collect(Collectors.toList())));
System.out.println(responseEntity.getBody());
List<Object> tempList = JsonUtil.toList(JsonUtil.toString(responseEntity.getBody()), Object.class);
Map<String, Object> map = JsonUtil.toMap(JsonUtil.toString(tempList.get(0)), String.class, Object.class);
Map<String, Object> request = new HashMap<>(3);
request.put("dataId", map.get("dataId"));
request.put("form", map.get("form"));
request.put("operation", map.get("operation"));
ResponseEntity<String> result = HttpUtil.httpPost("http://192.168.0.9:8089/api/dataSyn/synData", JsonUtil.toString(request));
System.out.println(result.getBody());
commonHttpService.dockingShoppingMallCommodity(inVo);
return RestResponse.success();
}
......
......@@ -2,7 +2,6 @@ package com.system.controller;
import com.system.serivce.IDockingService;
import com.system.transfer.docking.*;
import com.system.transfer.response.RestResponse;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -23,31 +22,31 @@ public class DockingController {
@ApiOperation("分销会员创建")
@PostMapping("/docking/distribution/member/create")
public RestResponse dockingDistributionMemberCreate(@RequestBody DockingDistributionMemberCreateInVo inVo) {
public Object dockingDistributionMemberCreate(@RequestBody DockingDistributionMemberCreateInVo inVo) {
return dockingService.dockingDistributionMemberCreate(inVo);
}
@ApiOperation("分销交易创建")
@PostMapping("/docking/distribution/transaction/create")
public RestResponse dockingDistributionTransactionCreate(@RequestBody DockingDistributionTransactionCreateInVo inVo) {
public Object dockingDistributionTransactionCreate(@RequestBody DockingDistributionTransactionCreateInVo inVo) {
return dockingService.dockingDistributionTransactionCreate(inVo);
}
@ApiOperation("分销会员下级查询")
@PostMapping("/docking/distribution/member/subordinate/list")
public RestResponse dockingDistributionMemberSubordinateList(@RequestBody DockingDistributionMemberSubordinateListInVo inVo) {
public Object dockingDistributionMemberSubordinateList(@RequestBody DockingDistributionMemberSubordinateListInVo inVo) {
return dockingService.dockingDistributionMemberSubordinateList(inVo);
}
@ApiOperation("分销会员余额")
@PostMapping("/docking/distribution/member/balance")
public RestResponse dockingDistributionMemberBalance(@RequestBody DockingDistributionMemberBalanceInVo inVo) {
public Object dockingDistributionMemberBalance(@RequestBody DockingDistributionMemberBalanceInVo inVo) {
return dockingService.dockingDistributionMemberBalance(inVo);
}
@ApiOperation("分销会员收益")
@PostMapping("/docking/distribution/member/profit")
public RestResponse dockingDistributionMemberProfit(@RequestBody DockingDistributionMemberProfitInVo inVo) {
public Object dockingDistributionMemberProfit(@RequestBody DockingDistributionMemberProfitInVo inVo) {
return dockingService.dockingDistributionMemberProfit(inVo);
}
......
package com.system.scheduler;
import com.system.serivce.impl.DockingDistributionServiceImpl;
import com.system.utils.HttpUtil;
import com.system.utils.JsonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import java.util.Map;
/**
* @author Inori
*/
@Configuration
@EnableScheduling
public class SecretScheduler {
private static final Logger log = LoggerFactory.getLogger(SecretScheduler.class);
@Autowired
private DockingDistributionServiceImpl dockingDistributionServiceImpl;
@Scheduled(fixedRate = 1000 * 60 * 15)
public void configureTasks() {
String result = HttpUtil.httpGet("http://192.168.0.34:8080/api/v1/getSign").getBody();
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
dockingDistributionServiceImpl.setSecret(String.valueOf(map.get("data")));
}
}
package com.system.serivce;
import com.system.transfer.platform.PlatformDockingShoppingMallCommodityInVo;
/**
* @author Inori
*/
public interface ICommonHttpService {
/**
* 触发平台对接商品
*
* @param inVo 条件
*/
void dockingShoppingMallCommodity(PlatformDockingShoppingMallCommodityInVo inVo);
}
package com.system.serivce;
import com.system.transfer.response.RestResponse;
import java.util.Map;
/**
* @author Inori
*/
public interface IDockingDistributionService {
/**
* 对接分销会员创建
*
* @param queueId 唯一标识
* @param data 参数
* @return 结果
*/
String dockingDistributionMemberCreate(String queueId, Map<String, Object> data);
/**
* 对接订单交易创建
*
* @param queueId 唯一标识
* @param data 参数
* @return 结果
*/
String dockingDistributionTransactionCreate(String queueId, Map<String, Object> data);
/**
* 对接订单提现创建
*
* @return 结果
*/
RestResponse dockingDistributionWithdrawalCreate();
/**
* 查询分销会员下级列表
*
* @param memberId 会员标识
* @param queueId 唯一标识
* @return 结果
*/
String dockingDistributionMemberSubordinateList(String queueId, String memberId);
/**
* 会员余额
*
* @param memberId 会员标识
* @param queueId 唯一标识
* @return 结果
*/
String dockingDistributionMemberBalance(String queueId, String memberId);
/**
* 会员收益
*
* @param memberId 会员标识
* @param queueId 唯一标识
* @return 结果
*/
String dockingDistributionMemberProfit(String queueId, String memberId);
}
package com.system.serivce;
import com.system.transfer.docking.*;
import com.system.transfer.response.RestResponse;
/**
* @author Inori
......@@ -14,7 +13,7 @@ public interface IDockingService {
* @param inVo 条件
* @return 结果
*/
RestResponse dockingDistributionMemberCreate(DockingDistributionMemberCreateInVo inVo);
Object dockingDistributionMemberCreate(DockingDistributionMemberCreateInVo inVo);
/**
* 对接分销交易创建
......@@ -22,7 +21,7 @@ public interface IDockingService {
* @param inVo 条件
* @return 结果
*/
RestResponse dockingDistributionTransactionCreate(DockingDistributionTransactionCreateInVo inVo);
Object dockingDistributionTransactionCreate(DockingDistributionTransactionCreateInVo inVo);
/**
* 查询分销会员下级列表
......@@ -30,7 +29,7 @@ public interface IDockingService {
* @param inVo 条件
* @return 结果
*/
RestResponse dockingDistributionMemberSubordinateList(DockingDistributionMemberSubordinateListInVo inVo);
Object dockingDistributionMemberSubordinateList(DockingDistributionMemberSubordinateListInVo inVo);
/**
* 分销会员余额
......@@ -38,7 +37,7 @@ public interface IDockingService {
* @param inVo 条件
* @return 结果
*/
RestResponse dockingDistributionMemberBalance(DockingDistributionMemberBalanceInVo inVo);
Object dockingDistributionMemberBalance(DockingDistributionMemberBalanceInVo inVo);
/**
* 分销会员余额
......@@ -46,7 +45,7 @@ public interface IDockingService {
* @param inVo 条件
* @return 结果
*/
RestResponse dockingDistributionMemberProfit(DockingDistributionMemberProfitInVo inVo);
Object dockingDistributionMemberProfit(DockingDistributionMemberProfitInVo inVo);
}
package com.system.serivce;
/**
* @author Inori
*/
public interface IDockingShoppingMallService {
/**
* 查询商城订单列表
*
* @return 列表
*/
String shoppingMallOrderList();
/**
* 查询商城产品列表
*/
void shoppingMallProductList();
/**
* 查询商城会员列表
*
* @param queueId 唯一标识
* @return 列表
*/
String shoppingMallMemberList(String queueId);
}
package com.system.serivce.impl;
import com.system.constants.Constants;
import com.system.serivce.IDockingDistributionService;
import com.system.transfer.response.RestResponse;
import com.system.utils.HttpUtil;
import com.system.utils.JsonUtil;
import com.system.utils.StringUtil;
import com.system.utils.ThirdPartyLogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.Map;
/**
* @author Inori
*/
@Service
public class DockingDistributionServiceImpl implements IDockingDistributionService {
public String secret;
@Autowired
private ThirdPartyLogUtil thirdPartyLogUtil;
public void setSecret(String secret) {
this.secret = secret;
}
@Override
public String dockingDistributionMemberCreate(String queueId, Map<String, Object> data) {
try {
data.put("secret", secret);
String result = HttpUtil.httpPost("http://192.168.0.34:8080/api/v1/memberAdd", JsonUtil.toString(data)).getBody();
thirdPartyLogUtil.thirdPartyLogCreate("分销会员创建", "0002", queueId, "平台->分销", JsonUtil.toString(data), StringUtil.replaceBlank(result));
return result;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
@Override
public String dockingDistributionTransactionCreate(String queueId, Map<String, Object> data) {
try {
data.put("secret", secret);
String result = HttpUtil.httpPost("http://192.168.0.34:8080/api/v1/trade", JsonUtil.toString(data)).getBody();
thirdPartyLogUtil.thirdPartyLogCreate("分销交易创建", "0001", queueId, "平台->分销", JsonUtil.toString(data), StringUtil.replaceBlank(result));
return result;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
@Override
public RestResponse dockingDistributionWithdrawalCreate() {
try {
Map<String, Object> data = new HashMap<>();
data.put("secret", secret);
data.put("userId", "admin");
data.put("amount", "1");
data.put("accountType", "2");
String result = HttpUtil.httpPost("http://192.168.0.34:8080/api/v1/withdraw", JsonUtil.toString(data)).getBody();
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (CollectionUtils.isEmpty(map) || !Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
return RestResponse.fail("新增提现失败");
}
return RestResponse.success();
} catch (Exception e) {
e.printStackTrace();
return RestResponse.fail("新增提现失败");
}
}
@Override
public String dockingDistributionMemberSubordinateList(String queueId, String memberId) {
try {
Map<String, Object> data = new HashMap<>(2);
data.put("secret", secret);
data.put("memberId", memberId);
String result = HttpUtil.httpPost("http://192.168.0.34:8080/api/v1/subordinate", JsonUtil.toString(data)).getBody();
thirdPartyLogUtil.thirdPartyLogCreate("分销会员下级查询", "0001", queueId, "平台->分销", JsonUtil.toString(data), StringUtil.replaceBlank(result));
return result;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
@Override
public String dockingDistributionMemberBalance(String queueId, String memberId) {
try {
Map<String, Object> data = new HashMap<>(2);
data.put("secret", secret);
data.put("memberId", memberId);
String result = HttpUtil.httpPost("http://192.168.0.34:8080/api/v1/member/balance", JsonUtil.toString(data)).getBody();
thirdPartyLogUtil.thirdPartyLogCreate("分销会员余额查询", "0001", queueId, "平台->分销", JsonUtil.toString(data), StringUtil.replaceBlank(result));
return result;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
@Override
public String dockingDistributionMemberProfit(String queueId, String memberId) {
try {
Map<String, Object> data = new HashMap<>(2);
data.put("secret", secret);
data.put("memberId", memberId);
data.put("offset", 0);
data.put("limit", 10000);
String result = HttpUtil.httpPost("http://192.168.0.34:8080/api/v1/member/profit", JsonUtil.toString(data)).getBody();
thirdPartyLogUtil.thirdPartyLogCreate("分销会员收益查询", "0001", queueId, "平台->分销", JsonUtil.toString(data), StringUtil.replaceBlank(result));
return result;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
}
package com.system.serivce.impl;
import com.system.constants.Constants;
import com.system.serivce.IDockingDistributionService;
import com.system.serivce.IDockingService;
import com.system.transfer.docking.*;
import com.system.transfer.response.RestResponse;
import com.system.utils.HttpUtil;
import com.system.utils.JsonUtil;
import com.system.utils.StringUtil;
import com.system.utils.ThirdPartyLogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author Inori
......@@ -24,113 +12,34 @@ import java.util.stream.Collectors;
@Service
public class DockingServiceImpl implements IDockingService {
@Autowired
private IDockingDistributionService dockingDistributionService;
@Autowired
private ThirdPartyLogUtil thirdPartyLogUtil;
@Override
public RestResponse dockingDistributionMemberCreate(DockingDistributionMemberCreateInVo inVo) {
if (thirdPartyLogUtil.isExist(inVo.getQueueId()) != 0) {
return RestResponse.fail("操作失败! QUEUE_ID为: " + inVo.getQueueId() + "的唯一标识已存在");
}
Map<String, Object> data = new HashMap<>();
data.put("disUserId", inVo.getMemberId());
data.put("disUserName", inVo.getMemberName());
data.put("disParentId", inVo.getReferrerId());
if (StringUtil.isBlank(inVo.getReferrerId())) {
data.put("disPlatformId", "test");
} else {
data.put("disPlatformId", "");
}
data.put("disNote", inVo.getRemark());
System.out.println(JsonUtil.toString(data));
String result = dockingDistributionService.dockingDistributionMemberCreate(inVo.getQueueId(), data);
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (CollectionUtils.isEmpty(map) || !Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
return RestResponse.fail("新增会员失败!" + map.get("errorMessage"));
}
return RestResponse.success();
public Object dockingDistributionMemberCreate(DockingDistributionMemberCreateInVo inVo) {
String result = HttpUtil.httpPost("http://127.0.0.1:12002/mall/api/docking/distribution/member/create", JsonUtil.toString(inVo)).getBody();
return JsonUtil.toMap(result, String.class, Object.class);
}
@Override
public RestResponse dockingDistributionTransactionCreate(DockingDistributionTransactionCreateInVo inVo) {
if (thirdPartyLogUtil.isExist(inVo.getQueueId()) != 0) {
return RestResponse.fail("操作失败! QUEUE_ID为: " + inVo.getQueueId() + "的唯一标识已存在");
}
Map<String, Object> data = new HashMap<>();
data.put("disSetUserId", inVo.getMemberId());
data.put("orderId", inVo.getOrderId());
data.put("disNote", inVo.getRemark());
data.put("disAmount", inVo.getAmount());
String result = dockingDistributionService.dockingDistributionTransactionCreate(inVo.getQueueId(), data);
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (CollectionUtils.isEmpty(map) || !Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
return RestResponse.fail("新增交易失败! " + map.get("errorMessage"));
}
return RestResponse.success();
public Object dockingDistributionTransactionCreate(DockingDistributionTransactionCreateInVo inVo) {
String result = HttpUtil.httpPost("http://127.0.0.1:12002/mall/api/docking/distribution/transaction/create", JsonUtil.toString(inVo)).getBody();
return JsonUtil.toMap(result, String.class, Object.class);
}
@Override
public RestResponse dockingDistributionMemberSubordinateList(DockingDistributionMemberSubordinateListInVo inVo) {
if (thirdPartyLogUtil.isExist(inVo.getQueueId()) != 0) {
return RestResponse.fail("操作失败! QUEUE_ID为: " + inVo.getQueueId() + "的唯一标识已存在");
}
String result = dockingDistributionService.dockingDistributionMemberSubordinateList(inVo.getQueueId(), inVo.getMemberId());
List<Map<String, Object>> recordsList = new ArrayList<>();
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(map) && Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
List<Object> objectList = JsonUtil.toList(JsonUtil.toString(map.get("data")), Object.class);
List<Map<String, Object>> tempList = objectList.stream().map(m -> JsonUtil.toMap(JsonUtil.toString(m), String.class, Object.class)).collect(Collectors.toList());
List<Map<String, Object>> temp01List = tempList.stream().filter(m -> inVo.getMemberId().equals(m.get("parentId"))).collect(Collectors.toList());
for (Map<String, Object> temp : temp01List) {
List<Map<String, Object>> temp02List = tempList.stream().filter(m -> temp.get("memberId").equals(m.get("parentId"))).collect(Collectors.toList());
recordsList.add(temp);
recordsList.addAll(temp02List);
}
return RestResponse.success(recordsList);
}
return RestResponse.success();
public Object dockingDistributionMemberSubordinateList(DockingDistributionMemberSubordinateListInVo inVo) {
String result = HttpUtil.httpPost("http://127.0.0.1:12002/mall/api/docking/distribution/member/subordinate/list", JsonUtil.toString(inVo)).getBody();
return JsonUtil.toMap(result, String.class, Object.class);
}
@Override
public RestResponse dockingDistributionMemberBalance(DockingDistributionMemberBalanceInVo inVo) {
if (thirdPartyLogUtil.isExist(inVo.getQueueId()) != 0) {
return RestResponse.fail("操作失败! QUEUE_ID为: " + inVo.getQueueId() + "的唯一标识已存在");
}
String result = dockingDistributionService.dockingDistributionMemberBalance(inVo.getQueueId(), inVo.getMemberId());
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(map) && Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
return RestResponse.success(map.get("data"));
}
return RestResponse.success();
public Object dockingDistributionMemberBalance(DockingDistributionMemberBalanceInVo inVo) {
String result = HttpUtil.httpPost("http://127.0.0.1:12002/mall/api/docking/distribution/member/balance", JsonUtil.toString(inVo)).getBody();
return JsonUtil.toMap(result, String.class, Object.class);
}
@Override
public RestResponse dockingDistributionMemberProfit(DockingDistributionMemberProfitInVo inVo) {
if (thirdPartyLogUtil.isExist(inVo.getQueueId()) != 0) {
return RestResponse.fail("操作失败! QUEUE_ID为: " + inVo.getQueueId() + "的唯一标识已存在");
}
String result = dockingDistributionService.dockingDistributionMemberProfit(inVo.getQueueId(), inVo.getMemberId());
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(map) && Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
return RestResponse.success(map.get("data"));
}
return RestResponse.success();
public Object dockingDistributionMemberProfit(DockingDistributionMemberProfitInVo inVo) {
String result = HttpUtil.httpPost("http://127.0.0.1:12002/mall/api/docking/distribution/member/profit", JsonUtil.toString(inVo)).getBody();
return JsonUtil.toMap(result, String.class, Object.class);
}
......
package com.system.serivce.impl;
import com.system.serivce.IDockingShoppingMallService;
import com.system.utils.HttpUtil;
import com.system.utils.JsonUtil;
import com.system.utils.ThirdPartyLogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* @author Inori
*/
@Service
public class DockingShoppingMallServiceImpl implements IDockingShoppingMallService {
@Autowired
private ThirdPartyLogUtil thirdPartyLogUtil;
@Override
public String shoppingMallOrderList() {
Map<String, Object> data = new HashMap<>(2);
data.put("startTime", "2019-01-01+00:00:00");
data.put("endTime", "2022-10-12+23:59:59");
String result = HttpUtil.httpGet("http://192.168.2.212:81/apis/order/order/page?current=1&size=100", data).getBody();
System.out.println(result);
return result;
}
@Override
public void shoppingMallProductList() {
Map<String, Object> data = new HashMap<>(2);
data.put("startTime", "2019-01-01+00:00:00");
data.put("endTime", "2022-10-12+23:59:59");
String result = HttpUtil.httpGet("http://192.168.2.212:81/apis/prod/prod/page?current=1&size=100", data).getBody();
System.out.println(result);
}
@Override
public String shoppingMallMemberList(String queueId) {
Map<String, Object> data = new HashMap<>(2);
data.put("startTime", "2019-01-01+00:00:00");
data.put("endTime", "2022-10-12+23:59:59");
StringBuilder param = new StringBuilder();
for (Map.Entry<String, Object> entry : data.entrySet()) {
if (param.length() > 0) {
param.append("&").append(entry.getKey()).append("=").append(entry.getValue());
} else {
param.append(entry.getKey()).append("=").append(entry.getValue());
}
}
String result = HttpUtil.httpGet("https://console-mock.apipost.cn/app/mock/project/a0605054-5c08-47a3-e61e-76782a1bc5aa/member/list").getBody();
thirdPartyLogUtil.thirdPartyLogCreate("商城会员查询", "0000", queueId, "商城->平台", JsonUtil.toString(data), result);
return result;
}
}
package com.system.serivce.impl;
import com.system.serivce.ICommonHttpService;
import com.system.transfer.platform.PlatformDockingShoppingMallCommodityInVo;
import com.system.utils.HttpUtil;
import com.system.utils.JsonUtil;
import org.springframework.stereotype.Service;
/**
......@@ -8,4 +11,11 @@ import org.springframework.stereotype.Service;
*/
@Service
public class ICommonHttpServiceImpl implements ICommonHttpService {
@Override
public void dockingShoppingMallCommodity(PlatformDockingShoppingMallCommodityInVo inVo) {
HttpUtil.httpPost("", JsonUtil.toString(inVo));
}
}
package com.system.serivce.impl;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.system.api.CommonGetApi;
import com.system.constants.CommonGetConstants;
import com.system.constants.Constants;
import com.system.dao.SynchronizationOperationMapper;
import com.system.serivce.ISynchronizationService;
import com.system.utils.HttpUtil;
import com.system.utils.JsonUtil;
import com.system.utils.SnowFlakeIdUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* @author Inori
......@@ -27,43 +10,9 @@ import java.util.concurrent.TimeUnit;
@Service
public class SynchronizationServiceImpl implements ISynchronizationService {
private ExecutorService threadPool = new ThreadPoolExecutor(10, 10,
0L,
TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024),
new ThreadFactoryBuilder().setNameFormat("syn-pool-%d").build(),
new ThreadPoolExecutor.AbortPolicy());
@Autowired
private SynchronizationOperationMapper synchronizationOperationMapper;
@Autowired
private CommonGetConstants commonGetConstants;
@Autowired
private CommonGetApi commonGetApi;
@Override
public void synchronization() {
ResponseEntity<String> responseEntity = HttpUtil.httpPost("http://192.168.0.9:8089/api/dataSyn/getSyn", "");
List<Object> objectList = JsonUtil.toList(responseEntity.getBody(), Object.class);
for (Object object : objectList) {
Map<String, Object> temp = JsonUtil.toMap(JsonUtil.toString(object), String.class, Object.class);
Map<String, String> config = commonGetConstants.get(String.valueOf(temp.get("form")));
if (!CollectionUtils.isEmpty(config)) {
continue;
}
String queueId = SnowFlakeIdUtil.generateId().toString();
String result = commonGetApi.commonGet(config, "", queueId);
Map<String, Object> map = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(map) && Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
Map<String, Object> data = JsonUtil.toMap(JsonUtil.toString(map.get("data")), String.class, Object.class);
commonGetApi.commonSync(String.valueOf(temp.get("response_address")), queueId, config, JsonUtil.toString(data));
}
}
HttpUtil.httpGet("http://192.168.0.21:12002/mall/api/synchronization");
}
......
package com.system.utils;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
import java.nio.charset.Charset;
/**
* @author Inori
*/
public class DesHelperUtil {
/**
* 加密
*/
public static String encrypt(String srcStr, Charset charset, String sKey) {
byte[] src = srcStr.getBytes(charset);
byte[] buf = encrypt(src, sKey);
return parseByte2HexStr(buf);
}
/**
* 解密
*/
public static String decrypt(String hexStr, Charset charset, String sKey) throws Exception {
byte[] src = parseHexStr2Byte(hexStr);
byte[] buf = decrypt(src, sKey);
return new String(buf, charset);
}
/**
* 加密
*/
public static byte[] encrypt(byte[] data, String sKey) {
try {
byte[] key = sKey.getBytes();
// 初始化向量
IvParameterSpec iv = new IvParameterSpec(key);
DESKeySpec desKey = new DESKeySpec(key);
// 创建一个密匙工厂,然后用它把DESKeySpec转换成securekey
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(desKey);
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
// 用密匙初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey, iv);
// 现在,获取数据并加密
// 正式执行加密操作
return cipher.doFinal(data);
} catch (Throwable e) {
e.printStackTrace();
}
return null;
}
/**
* 解密
*/
public static byte[] decrypt(byte[] src, String sKey) throws Exception {
byte[] key = sKey.getBytes();
// 初始化向量
IvParameterSpec iv = new IvParameterSpec(key);
// 创建一个DESKeySpec对象
DESKeySpec desKey = new DESKeySpec(key);
// 创建一个密匙工厂
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
// 将DESKeySpec对象转换成SecretKey对象
SecretKey securekey = keyFactory.generateSecret(desKey);
// Cipher对象实际完成解密操作
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
// 用密匙初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE, securekey, iv);
// 真正开始解密操作
return cipher.doFinal(src);
}
/**
* 将二进制转换成16进制
*/
public static String parseByte2HexStr(byte buf[]) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < buf.length; i++) {
String hex = Integer.toHexString(buf[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
sb.append(hex.toUpperCase());
}
return sb.toString();
}
/**
* 将16进制转换为二进制
*/
public static byte[] parseHexStr2Byte(String hexStr) {
if (hexStr.length() < 1) return null;
byte[] result = new byte[hexStr.length() / 2];
for (int i = 0; i < hexStr.length() / 2; i++) {
int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
result[i] = (byte) (high * 16 + low);
}
return result;
}
}
\ No newline at end of file
package com.system.utils;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
/**
* @author Inori
*/
public class LocalMacUtil {
public static String getLocalMac(InetAddress inetAddress) throws SocketException {
//获取网卡,获取地址
byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();
StringBuilder stringBuilder = new StringBuilder("");
for (int i = 0; i < mac.length; i++) {
if (i != 0) {
stringBuilder.append("-");
}
//字节转换为整数
int temp = mac[i] & 0xff;
String str = Integer.toHexString(temp);
if (str.length() == 1) {
stringBuilder.append("0").append(str);
} else {
stringBuilder.append(str);
}
}
return stringBuilder.toString().toUpperCase();
}
}
\ No newline at end of file
package com.system.utils;
import javax.crypto.Cipher;
import java.io.ByteArrayOutputStream;
import java.nio.charset.StandardCharsets;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;
/**
* Java RSA 加密工具类
*
* @author Inori
*/
public class RsaUtil {
/**
* 加密算法RSA
*/
public static final String KEY_ALGORITHM = "RSA";
/**
* 签名算法
*/
public static final String SIGNATURE_ALGORITHM = "SHA256withRSA";
/**
* RSA最大加密明文大小
*/
private static final int MAX_ENCRYPT_BLOCK = 117;
/**
* RSA最大解密密文大小
*/
private static final int MAX_DECRYPT_BLOCK = 128;
/**
* 私钥加密
*/
public static String encryptByPrivateKey(String data, String privateKey) throws Exception {
//base64编码的私钥
byte[] decoded = Base64.getDecoder().decode(privateKey);
PrivateKey priKey = KeyFactory.getInstance(KEY_ALGORITHM).generatePrivate(new PKCS8EncodedKeySpec(decoded));
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, priKey);
return Base64.getEncoder().encodeToString(cipher.doFinal(data.getBytes(StandardCharsets.UTF_8)));
}
/**
* 公钥解密
*/
public static String decryptByPublicKey(String data, String publicKey) throws Exception {
//base64编码的公钥
byte[] decoded = Base64.getDecoder().decode(publicKey);
PublicKey pubKey = KeyFactory.getInstance(KEY_ALGORITHM).generatePublic(new X509EncodedKeySpec(decoded));
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, pubKey);
return new String(cipher.doFinal(Base64.getDecoder().decode(data)));
}
/**
* 公钥加密
*/
public static String encryptByPublicKey(String data, String publicKey) throws Exception {
//base64编码的公钥
byte[] decoded = Base64.getDecoder().decode(publicKey);
PublicKey pubKey = KeyFactory.getInstance(KEY_ALGORITHM).generatePublic(new X509EncodedKeySpec(decoded));
//RSA加密
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
return Base64.getEncoder().encodeToString(cipher.doFinal(data.getBytes(StandardCharsets.UTF_8)));
}
/**
* 私钥解密
*/
public static String decryptByPrivateKey(String data, String privateKey) throws Exception {
//base64编码的私钥
byte[] decoded = Base64.getDecoder().decode(privateKey);
PrivateKey priKey = KeyFactory.getInstance(KEY_ALGORITHM).generatePrivate(new PKCS8EncodedKeySpec(decoded));
//RSA解密
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, priKey);
return new String(cipher.doFinal(Base64.getDecoder().decode(data)));
}
/**
* 私钥加密
*/
public static String encryptByPrivateKeyToLong(String data, String privateKey) throws Exception {
//base64编码的私钥
byte[] decoded = Base64.getDecoder().decode(privateKey);
PrivateKey priKey = KeyFactory.getInstance(KEY_ALGORITHM).generatePrivate(new PKCS8EncodedKeySpec(decoded));
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, priKey);
return purchaseToEncryption(cipher, data);
}
/**
* 公钥加密
*/
public static String encryptByPublicKeyToLong(String data, String publicKey) throws Exception {
//base64编码的公钥
byte[] decoded = Base64.getDecoder().decode(publicKey);
PublicKey pubKey = KeyFactory.getInstance(KEY_ALGORITHM).generatePublic(new X509EncodedKeySpec(decoded));
//RSA加密
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
return purchaseToEncryption(cipher, data);
}
private static String purchaseToEncryption(Cipher cipher, String data) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
int inputLen = data.getBytes(StandardCharsets.UTF_8).length;
int offSet = 0;
byte[] cache;
int i = 0;
// 对数据分段加密
try {
while (inputLen - offSet > 0) {
if (inputLen - offSet > MAX_ENCRYPT_BLOCK) {
cache = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8), offSet, MAX_ENCRYPT_BLOCK);
} else {
cache = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8), offSet, inputLen - offSet);
}
outputStream.write(cache, 0, cache.length);
i++;
offSet = i * MAX_ENCRYPT_BLOCK;
}
} finally {
outputStream.close();
}
return Base64.getEncoder().encodeToString(outputStream.toByteArray());
}
/**
* 公钥解密
*/
public static String decryptByPublicKeyToLong(String data, String publicKey) throws Exception {
//base64编码的公钥
byte[] decoded = Base64.getDecoder().decode(publicKey);
PublicKey pubKey = KeyFactory.getInstance(KEY_ALGORITHM).generatePublic(new X509EncodedKeySpec(decoded));
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, pubKey);
return purchaseToDecrypt(cipher, data);
}
/**
* 私钥解密
*/
public static String decryptByPrivateKeyToLong(String data, String privateKey) throws Exception {
//base64编码的私钥
byte[] decoded = Base64.getDecoder().decode(privateKey);
PrivateKey priKey = KeyFactory.getInstance(KEY_ALGORITHM).generatePrivate(new PKCS8EncodedKeySpec(decoded));
//RSA解密
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, priKey);
return purchaseToDecrypt(cipher, data);
}
private static String purchaseToDecrypt(Cipher cipher, String data) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//64位解码加密后的字符串
byte[] inputByte = Base64.getMimeDecoder().decode(data);
int inputLen = inputByte.length;
int offSet = 0;
byte[] cache;
int i = 0;
// 对数据分段解密
try {
while (inputLen - offSet > 0) {
if (inputLen - offSet > MAX_DECRYPT_BLOCK) {
cache = cipher.doFinal(inputByte, offSet, MAX_DECRYPT_BLOCK);
} else {
cache = cipher.doFinal(inputByte, offSet, inputLen - offSet);
}
outputStream.write(cache, 0, cache.length);
i++;
offSet = i * MAX_DECRYPT_BLOCK;
}
} finally {
outputStream.close();
}
return new String(outputStream.toByteArray());
}
/**
* 私钥签名
*/
public static String sign(String privateKey, String plainText) throws Exception {
//64位解码加密后的字符串
byte[] byteKey = Base64.getDecoder().decode(privateKey);
PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(byteKey);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
//签名
PrivateKey key = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
signature.initSign(key);
signature.update(plainText.getBytes());
return Base64.getEncoder().encodeToString(signature.sign());
}
/**
* 公钥验签
*/
public static boolean verifySign(String publicKey, String plainText, String sign) throws Exception {
//64位解码加密后的字符串
byte[] byteKey = Base64.getDecoder().decode(publicKey);
X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(byteKey);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
//验签
PublicKey key = keyFactory.generatePublic(x509EncodedKeySpec);
Signature verifySign = Signature.getInstance(SIGNATURE_ALGORITHM);
verifySign.initVerify(key);
verifySign.update(plainText.getBytes());
return verifySign.verify(Base64.getDecoder().decode(sign));
}
}
package com.system.utils;
import com.system.constants.Constants;
import com.system.dao.ThirdPartyLogMapper;
import com.system.transfer.log.ThirdPartyLogCreateInVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Map;
/**
* @author Inori
*/
@Component
public class ThirdPartyLogUtil {
@Autowired
private ThirdPartyLogMapper thirdPartyLogMapper;
public Integer isExist(String queueId) {
return thirdPartyLogMapper.getThirdPartyLogByQueueId(queueId);
}
public void thirdPartyLogCreate(String name, String docType, String queueId, String direction, String request, String response) {
ThirdPartyLogCreateInVo inVo = new ThirdPartyLogCreateInVo();
inVo.setName(name);
inVo.setCode(docType);
inVo.setQueueId(queueId);
inVo.setDirection(direction);
inVo.setRequest(request);
inVo.setResponse(response);
Map<String, Object> map = JsonUtil.toMap(response, String.class, Object.class);
if (!CollectionUtils.isEmpty(map) && Constants.SUCCESS_CODE.equals(String.valueOf(map.get(Constants.SUCCESS_NAME)))) {
inVo.setFlag(1);
} else {
inVo.setFlag(0);
}
thirdPartyLogMapper.thirdPartyLogCreate(inVo);
}
public void thirdPartyLogCreate(String name, String docType, String queueId, String direction, String request, String response, Integer flag) {
ThirdPartyLogCreateInVo inVo = new ThirdPartyLogCreateInVo();
inVo.setName(name);
inVo.setCode(docType);
inVo.setQueueId(queueId);
inVo.setDirection(direction);
inVo.setRequest(request);
inVo.setResponse(response);
inVo.setFlag(flag);
thirdPartyLogMapper.thirdPartyLogCreate(inVo);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论