增加测试接口

This commit is contained in:
2024-05-10 10:03:23 +08:00
parent ee0fbee3e0
commit 9a18ef2691
3 changed files with 336 additions and 4 deletions

View File

@@ -10,9 +10,9 @@ public class EncryptDemo {
public static void main(String[] args) {
// SM2的公钥
// String publicKey = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEZRdaHuSCG8U87+Cmh9LKbgC+DRBEwWpAyN31aCzoE1flWonnZezX2GqbvDdz7a0AxE6+FGEH1lxPYW39XhYupw==";
String publicKey = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEjMraf2DTr2W9DfIZDVyplPtPQw8ty1MbWnJ0emDbkXRUq/ynJSgB6NUi1D7UJnxMlo5Z+WiHSvCKBN65RN5BWQ==";
String publicKey = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEZRdaHuSCG8U87+Cmh9LKbgC+DRBEwWpAyN31aCzoE1flWonnZezX2GqbvDdz7a0AxE6+FGEH1lxPYW39XhYupw==";
// SM2的私钥
String privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgenZMgK4OLvsGmSiYKQSavKg1DbsZyUSFVP4Eg1+gZo2gCgYIKoEcz1UBgi2hRANCAAQGwB5pjmjqOFpvoDoEt9OqimkptKrz92qzkd67tPAtNMb2dBgo/Yf8vnn4EaJ0SNIeK4Opv8Tdvd1uF0M4qdOz";
String privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQg006Jj+5NK9HrtnyXNpnb131jV/8CHeo5t2T74WliktCgCgYIKoEcz1UBgi2hRANCAARPJZBDpVhCRt5bkQuYUWv9T8MAkahw0R3eG6cWbgShEdkPUxlzKqUJH+n/ogKbBlZhMArd3P3o1pvGLrIY5KQJ";
// String privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQghUZb+m/+ficnlbtoVJhkbUsw9FKQ5yF1wYcOP+tRQK+gCgYIKoEcz1UBgi2hRANCAASsJ3XVa/Udszyl0/tudSM7tUJsK190+2UQmEEZ6qLbRguzN+vaI3dsc04KllUojTRgXvE3vfaNAHOwQ6H5cjH+";
// 初始化SM2
SM2 sm2 = SmUtil.sm2(privateKey, publicKey);
@@ -23,7 +23,7 @@ public class EncryptDemo {
// System.out.println(encryptStr);
String a = "69bd19ff-8fff-400e-9aba-25e36f1f5438";
String b = "{\n" +
" \"saleId\": \"108783\",\n" +
" \"saleId\": \"108002\",\n" +
" \"name\": \"毕彦兵\",\n" +
" \"idCard\": \"230104198809293718\",\n" +
" \"contactMobile\": \"18980692055\",\n" +

View File

@@ -171,7 +171,7 @@ public class APITestController extends BaseTestController {
}
// todo 根据代理商提供的验证url验证用户
String url = requestBody.getStr("url");
if (ObjectUtils.isNotNull("url")) {
if (ObjectUtils.isNotNull(url)) {
JSONObject paramMap = new JSONObject();
paramMap.set("name", agentOrderBo.getName());
paramMap.set("idCard", agentOrderBo.getIdCard());

View File

@@ -0,0 +1,332 @@
package com.ruoyi.api.controller;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.SM2;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.ruoyi.common.core.domain.CTResponse;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.ct.domain.AgentOrder;
import com.ruoyi.ct.domain.bo.AgentOrderBo;
import com.ruoyi.ct.domain.vo.AgentAccountGoodVo;
import com.ruoyi.ct.domain.vo.AgentAccountVo;
import com.ruoyi.ct.domain.vo.AgentOrderVo;
import com.ruoyi.ct.service.CTService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@RestController
@RequestMapping("api/test/v2.0.0")
@Slf4j
public class APITestControllerV2 extends BaseTestController {
@Resource
private CTService ctService;
@GetMapping("getGoodsList")
public R<JSONObject> getGoodsList(HttpServletRequest request, Integer page, Integer pageSize) {
if (!checkAccount(request)) {
return R.fail(ERROR_CODE_LOGIN, request.getAttribute("msg").toString());
}
if (page == null || page < 1) {
page = 1;
}
if (pageSize == null || pageSize < 1 || pageSize > 50) {
pageSize = 20;
}
JSONObject resultData = new JSONObject();
JSONObject meta = new JSONObject();
meta.set("total", 2);
meta.set("page", page);
meta.set("pageSize", pageSize);
resultData.set("meta", meta);
resultData.set("objects", JSONUtil.parseArray("[{\"saleId\":\"108002\",\"title\":\"49套餐\",\"content\":\"大概的介绍\"},{\"saleId\":\"107657\",\"title\":\"59套餐\"}]"));
return R.ok(resultData);
}
@GetMapping("getNumberList")
public R<List<JSONObject>> getNumberList(HttpServletRequest request, Integer page, Integer pageSize, String saleId) {
if (!checkAccount(request)) {
return R.fail(ERROR_CODE_LOGIN, request.getAttribute("msg").toString());
}
if (page == null || page < 1) {
page = 1;
}
if (pageSize == null || pageSize < 1 || pageSize > 50) {
pageSize = 20;
}
AgentAccountVo agentAccountVo = (AgentAccountVo) request.getAttribute("agentAccount");
if (ObjectUtils.isNull(saleId) || !SALE_ID.equals(saleId)) {
log.error("参数错误");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
try {
List<JSONObject> data = ctService.selectNumber(agentAccountVo.getPersonnelId(), SALE_ID,
String.valueOf(page), String.valueOf(pageSize));
return R.ok(data);
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
return R.ok(new ArrayList<>());
}
}
@PostMapping("confirmOrderBaseInfoOffline")
public R<String> confirmOrderBaseInfoOffline(HttpServletRequest request, @RequestBody String body) {
if (!checkAccount(request)) {
return R.fail(ERROR_CODE_LOGIN, request.getAttribute("msg").toString());
}
AgentAccountVo agentAccountVo = (AgentAccountVo) request.getAttribute("agentAccount");
try {
SM2 sm2 = (SM2) request.getAttribute("sm2");
body = sm2.decryptStr(body, KeyType.PrivateKey);
} catch (Exception e) {
log.error("数据解密错误");
return R.fail(ERROR_CODE_ENCRYPT, "数据解密错误");
}
JSONObject requestBody = JSONUtil.parseObj(body);
System.out.println("requestBody = " + requestBody);
AgentOrderBo agentOrderBo = requestBody.toBean(AgentOrderBo.class);
// 填充固定数据
agentOrderBo.setAgentName(agentAccountVo.getAgentName());
agentOrderBo.setAgentId(agentAccountVo.getAgentId());
agentOrderBo.setStoreId("13");
agentOrderBo.setSerialNumber(UUID.randomUUID().toString().replace("-", ""));
agentOrderBo.setStatus("0");
agentOrderBo.setPersonnelId(agentAccountVo.getPersonnelId());
agentOrderBo.setCreateTime(new Date());
AgentAccountGoodVo agentAccountGoodVo;
{
// 校验数据
// 校验gid
String saleId = requestBody.getStr("saleId");
if (ObjectUtils.isNull(saleId)) {
log.error("saleId为空");
System.out.println("saleId为空");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
try {
if (ObjectUtils.isNull(saleId) || !SALE_ID.equals(saleId)) {
log.error("saleId无效");
System.out.println("saleId无效");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
} catch (Exception e) {
log.error("saleId格式错误");
System.out.println("saleId格式错误");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
// 校验用户信息,姓名、身份证、手机号
if (ObjectUtils.isNull(agentOrderBo.getName())) {
log.error("姓名为空");
System.out.println("姓名为空");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
if (ObjectUtils.isNull(agentOrderBo.getIdCard())) {
log.error("身份证号为空");
System.out.println("身份证号为空");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
if (ObjectUtils.isNull(agentOrderBo.getContactMobile())) {
log.error("手机号为空");
System.out.println("手机号为空");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
// todo 根据代理商提供的验证url验证用户
String url = requestBody.getStr("url");
if (ObjectUtils.isNotNull(url)) {
JSONObject paramMap = new JSONObject();
paramMap.set("name", agentOrderBo.getName());
paramMap.set("idCard", agentOrderBo.getIdCard());
paramMap.set("contactMobile", agentOrderBo.getContactMobile());
try {
SM2 sm2 = (SM2) request.getAttribute("sm2");
String verifyResult = HttpUtil.post(url, sm2.encryptBase64(paramMap.toString(), KeyType.PublicKey));
JSONObject verifyData = JSONUtil.parseObj(verifyResult);
if (verifyData.getInt("code") != 200) {
log.error("验证不通过");
System.out.println("验证不通过");
return R.fail(ERROR_CODE_VERIFY, "验证错误");
}
} catch (Exception e) {
e.printStackTrace();
log.error("验证请求错误");
System.out.println("验证请求错误");
return R.fail(ERROR_CODE_VERIFY, "验证错误");
}
}
}
return R.ok("操作成功", UUID.randomUUID().toString().replace("-", ""));
}
@PostMapping("uploadImg")
public R<String> uploadImg(HttpServletRequest request, @RequestBody String body) {
if (!checkAccount(request)) {
return R.fail(ERROR_CODE_LOGIN, request.getAttribute("msg").toString());
}
AgentAccountVo agentAccountVo = (AgentAccountVo) request.getAttribute("agentAccount");
JSONObject requestBody = JSONUtil.parseObj(body);
System.out.println("requestBody = " + requestBody);
return R.ok(requestBody.getStr("serialNumber"));
}
@PostMapping("confirmOrder")
public R<String> confirmOrder(HttpServletRequest request, @RequestBody String body) {
if (!checkAccount(request)) {
return R.fail(ERROR_CODE_LOGIN, request.getAttribute("msg").toString());
}
AgentAccountVo agentAccountVo = (AgentAccountVo) request.getAttribute("agentAccount");
try {
SM2 sm2 = (SM2) request.getAttribute("sm2");
body = sm2.decryptStr(body, KeyType.PrivateKey);
} catch (Exception e) {
log.error("数据解密错误");
return R.fail(ERROR_CODE_ENCRYPT, "数据解密错误");
}
JSONObject requestBody = JSONUtil.parseObj(body);
System.out.println("requestBody = " + requestBody);
return R.ok(requestBody.getStr("serialNumber"));
}
@GetMapping("getOrderList")
public R<JSONObject> getOrderList(HttpServletRequest request,
Integer page, Integer pageSize,
String saleId,
String name, String contactMobile, String number) {
if (!checkAccount(request)) {
return R.fail(ERROR_CODE_LOGIN, request.getAttribute("msg").toString());
}
System.out.println("saleId = " + saleId);
System.out.println("name = " + name);
System.out.println("contactMobile = " + contactMobile);
System.out.println("number = " + number);
AgentAccountVo agentAccountVo = (AgentAccountVo) request.getAttribute("agentAccount");
if (page == null || page < 1) {
page = 1;
}
if (pageSize == null || pageSize < 1 || pageSize > 50) {
pageSize = 20;
}
SM2 sm2 = (SM2) request.getAttribute("sm2");
// if (ObjectUtils.isNull(saleId) && ObjectUtils.isNull(name) && ObjectUtils.isNull(contactMobile) && ObjectUtils.isNull(number)) {
if (ObjectUtils.isNull(saleId)) {
log.error("参数错误");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
LambdaQueryWrapper<AgentOrder> lqw = new LambdaQueryWrapper<>();
lqw.eq(AgentOrder::getPersonnelId, agentAccountVo.getPersonnelId());
lqw.eq(ObjectUtils.isNotNull(saleId), AgentOrder::getSaleId, saleId);
if (ObjectUtils.isNotNull(name)) {
try {
System.out.println("name = " + sm2.decryptStr(name, KeyType.PrivateKey));
lqw.eq(ObjectUtils.isNotNull(name), AgentOrder::getName, sm2.decryptStr(name, KeyType.PrivateKey));
} catch (Exception e) {
log.error("参数错误");
System.out.println("name = " + name);
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
}
if (ObjectUtils.isNotNull(contactMobile)) {
try {
System.out.println("contactMobile = " + sm2.decryptStr(contactMobile, KeyType.PrivateKey));
lqw.eq(ObjectUtils.isNotNull(contactMobile), AgentOrder::getContactMobile, sm2.decryptStr(contactMobile, KeyType.PrivateKey));
} catch (Exception e) {
log.error("参数错误");
System.out.println("contactMobile = " + contactMobile);
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
}
if (ObjectUtils.isNotNull(number)) {
try {
System.out.println("number = " + sm2.decryptStr(number, KeyType.PrivateKey));
lqw.eq(ObjectUtils.isNotNull(number), AgentOrder::getNumber, sm2.decryptStr(number, KeyType.PrivateKey));
} catch (Exception e) {
System.out.println("number = " + number);
log.error("参数错误");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
}
JSONObject resultData = new JSONObject();
JSONObject meta = new JSONObject();
meta.set("total", 1);
meta.set("page", page);
meta.set("pageSize", pageSize);
resultData.set("meta", meta);
List<JSONObject> objects = new ArrayList<>();
JSONObject data = new JSONObject();
data.set("serialNumber", UUID.randomUUID().toString().replace("-", ""));
data.set("name", "李白");
data.set("contactMobile", "18900001234");
data.set("idCard", "310101200001011234");
data.set("number", "19112341234");
data.set("status", 0);
data.set("orderStatus", "S1005");
data.set("createTime", "2023-12-31 00:00:00");
data.set("updateTime", "2023-12-31 00:00:00");
JSONObject goods = new JSONObject();
goods.set("saleId", SALE_ID);
goods.set("title", "49套餐");
goods.set("content", "49套餐");
data.set("bookingGoods", goods);
objects.add(data);
resultData.set("objects", sm2.encryptBase64(objects.toString(), KeyType.PublicKey));
return R.ok(resultData);
}
@GetMapping("getOrderDetail")
public R<String> getOrderList(HttpServletRequest request, String serialNumber) {
if (!checkAccount(request)) {
return R.fail(ERROR_CODE_LOGIN, request.getAttribute("msg").toString());
}
AgentAccountVo agentAccountVo = (AgentAccountVo) request.getAttribute("agentAccount");
if (ObjectUtils.isNull(serialNumber)) {
log.error("参数错误:serialNumber为空");
return R.fail(ERROR_CODE_PARAMS, "参数错误");
}
JSONObject data = new JSONObject();
data.set("serialNumber", UUID.randomUUID().toString().replace("-", ""));
data.set("name", "李白");
data.set("contactMobile", "18900001234");
data.set("idCard", "310101200001011234");
data.set("number", "19112341234");
data.set("status", 1);
data.set("orderStatus", "S1013");
data.set("createTime", "2023-12-31 00:00:00");
data.set("updateTime", "2023-12-31 00:00:00");
JSONObject goods = new JSONObject();
goods.set("saleId", SALE_ID);
goods.set("title", "49套餐");
goods.set("content", "49套餐");
data.set("bookingGoods", goods);
data.set("expressNum", "SF001");
data.set("routeArr", JSONUtil.parseArray("[{\"fRouteTime\":\"2019-11-23 16:11:45\",\"fStatusName\":\"已提交\",\"fStatusId\":\"S1000\"},{\"fRouteTime\":\"2019-11-23 16:11:50\",\"fStatusName\":\"S1050\",\"fStatusId\":\"S1050\"},{\"fRouteTime\":\"2019-11-23 16:11:56\",\"fStatusName\":\"S105001\",\"fStatusId\":\"S105001\"},{\"fRouteTime\":\"2019-11-23 16:11:57\",\"fStatusName\":\"S100501\",\"fStatusId\":\"S100501\"},{\"fRouteTime\":\"2019-11-23 16:12:19\",\"fStatusName\":\"S100531\",\"fStatusId\":\"S100531\"},{\"fRouteTime\":\"2019-11-23 16:12:21\",\"fStatusName\":\"S100506\",\"fStatusId\":\"S100506\"},{\"fRouteTime\":\"2019-11-24 17:05:01\",\"fStatusName\":\"S100532\",\"fStatusId\":\"S100532\"},{\"fRouteTime\":\"2019-11-25 16:08:12\",\"fStatusName\":\"S1006\",\"fStatusId\":\"S1006\"},{\"fRouteTime\":\"2019-11-25 16:08:12\",\"fStatusName\":\"S101301\",\"fStatusId\":\"S101301\"}]"));
data.set("expressRoutes", JSONUtil.parseArray("[{\"updateDate\":\"2019-11-25 16:06:49\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100030\",\"remark\":\"订单提交补录 ICCID/串码89811111111111成功\",\"createStaff\":165124796390,\"logiOrderId\":12444255,\"logiOrderFlowId\":13119474,\"dversion\":0,\"createDate\":\"2019-11-25 16:06:41\"},{\"updateDate\":\"2019-11-25 08:30:17\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100030\",\"remark\":\"预约再送-快递员张三电话13333333333预约您 2019-11-25 09 时, 再次为您配送快件! \",\"logiOrderId\":12444255,\"logiOrderFlowId\":12973108,\"createDate\":\"2019-11-25 08:29:34\"},{\"updateDate\":\"2019-11-25 08:30:17\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100030\",\"remark\":\"已派送-正在派送途中将由快递员张三电话13333333333送达 请您准备签收。 \",\"logiOrderId\":12444255,\"logiOrderFlowId\":12973111,\"createDate\":\"2019-11-25 08:27:24\"},{\"updateDate\":\"2019-11-24 17:04:59\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100029\",\"remark\":\"快件已入库-您的快件正在运送中,已转至商海德中心仓库。\",\"logiOrderId\":12444255,\"logiOrderFlowId\":12796420,\"createDate\":\"2019-11-24 16:49:39\"},{\"updateDate\":\"2019-11-24 17:04:59\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100002\",\"remark\":\"已收件-您的快件已收取成功,我们将尽快为你派送!\",\"logiOrderId\":12444255,\"logiOrderFlowId\":12796421,\"createDate\":\"2019-11-24 16:46:22\"},{\"updateDate\":\"2019-11-24 16:34:17\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100004\",\"remark\":\"打包录入 ICCID/串码89811111111111成功\",\"createStaff\":164294780591,\"logiOrderId\":12444255,\"logiOrderFlowId\":12802391,\"dversion\":0,\"createDate\":\"2019-11-24 16:34:16\"},{\"updateDate\":\"2019-11-24 17:04:59\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100010\",\"remark\":\"待取件\",\"logiOrderId\":12444255,\"logiOrderFlowId\":12796422,\"createDate\":\"2019-11-24 16:10:12\"},{\"updateDate\":\"2019-11-24 16:10:11\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100014\",\"remark\":\"物流单分发成功\",\"logiOrderId\":12444255,\"logiOrderFlowId\":12767190,\"dversion\":0,\"createDate\":\"2019-11-24 16:10:11\"},{\"updateDate\":\"2019-11-24 16:05:54\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100021\",\"createStaff\":115060634224,\"logiOrderId\":12444255,\"logiOrderFlowId\":12793430,\"dversion\":0,\"createDate\":\"2019-11-24 16:05:54\"},{\"updateDate\":\"2019-11-24 13:46:54\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100015\",\"remark\":\"派送通知\",\"logiOrderId\":12444255,\"logiOrderFlowId\":12749286,\"dversion\":0,\"createDate\":\"2019-11-24 13:46:54\"},{\"updateDate\":\"2019-11-23 16:12:02\",\"sourceLogiOrderId\":12444255,\"statusCd\":\"100005\",\"createStaff\":236240021834,\"logiOrderId\":12444255,\"logiOrderFlowId\":12444272,\"dversion\":0,\"createDate\":\"2019-11-23 16:12:02\"}]"));
SM2 sm2 = (SM2) request.getAttribute("sm2");
return R.ok(null, sm2.encryptBase64(data.toString(), KeyType.PublicKey));
}
}