2.0版接口完成

This commit is contained in:
2024-05-09 10:48:50 +08:00
parent f25178d3bc
commit ee0fbee3e0
7 changed files with 99 additions and 19 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 = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEPWIPW8Q8OvHvDfDe3cA4ipkUvR+sDLpqA5uCDqp4BQy3iYCUO62HdNsBnB8/IplMZy8LiJeiRkt0zn740FqGtw==";
String publicKey = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEjMraf2DTr2W9DfIZDVyplPtPQw8ty1MbWnJ0emDbkXRUq/ynJSgB6NUi1D7UJnxMlo5Z+WiHSvCKBN65RN5BWQ==";
// SM2的私钥
String privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQggIODudYqK6cb2KKXtVAcoMRSoWotOAuZRKqbgixUmdmgCgYIKoEcz1UBgi2hRANCAARR6gv7bA9ZXo7nr5dnk7K2q8JrnaoyDZ3mr2GPvPVlff9BH/jc6E9j1Ua6GJLpHsjdR+DgdoHrZNF4BqgaabQL";
String privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgenZMgK4OLvsGmSiYKQSavKg1DbsZyUSFVP4Eg1+gZo2gCgYIKoEcz1UBgi2hRANCAAQGwB5pjmjqOFpvoDoEt9OqimkptKrz92qzkd67tPAtNMb2dBgo/Yf8vnn4EaJ0SNIeK4Opv8Tdvd1uF0M4qdOz";
// String privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQghUZb+m/+ficnlbtoVJhkbUsw9FKQ5yF1wYcOP+tRQK+gCgYIKoEcz1UBgi2hRANCAASsJ3XVa/Udszyl0/tudSM7tUJsK190+2UQmEEZ6qLbRguzN+vaI3dsc04KllUojTRgXvE3vfaNAHOwQ6H5cjH+";
// 初始化SM2
SM2 sm2 = SmUtil.sm2(privateKey, publicKey);
@@ -21,18 +21,19 @@ public class EncryptDemo {
// String encryptStr3 = sm2.encryptBase64("13371893748", KeyType.PublicKey);
// System.out.println(sm2.encryptBase64("e34c1951-c492-4ed5-8e02-1e44eee3df7b", KeyType.PublicKey));
// System.out.println(encryptStr);
String a = "69bd19ff-8fff-400e-9aba-25e36f1f5438";
String b = "{\n" +
" \"saleId\": \"108103\",\n" +
" \"saleId\": \"108783\",\n" +
" \"name\": \"毕彦兵\",\n" +
" \"idCard\": \"230104198809293718\",\n" +
" \"contactMobile\": \"18980692055\",\n" +
" \"province\": \"黑龙江省\",\n" +
" \"city\": \"哈尔滨市\",\n" +
" \"county\": \"松北区\",\n" +
" \"installedAddress\": \"世茂大道\",\n" +
" \"number\": \"17301750842\"\n" +
// " \"province\": \"黑龙江省\",\n" +
// " \"city\": \"哈尔滨市\",\n" +
// " \"county\": \"松北区\",\n" +
// " \"installedAddress\": \"世茂大道\",\n" +
" \"number\": \"15317740623\"\n" +
"}";
String c = "\"serialNumber\": \"5fc6023a2b7749a18c3663f27812c7cd\"";
String c = "{\"serialNumber\": \"437f78390b4c4a57b91cb804da0fe424\"}";
System.out.println(sm2.encryptBase64(c, KeyType.PublicKey));
// System.out.println(encryptStr3);
// 使用SM2解密字符串

View File

@@ -158,7 +158,7 @@ public class APIControllerV2 extends BaseController {
agentOrderBo.setAgentId(agentAccountVo.getAgentId());
agentOrderBo.setStoreId("13");
agentOrderBo.setSerialNumber(UUID.randomUUID().toString().replace("-", ""));
agentOrderBo.setStatus("0");
agentOrderBo.setStatus("2");
agentOrderBo.setPersonnelId(agentAccountVo.getPersonnelId());
agentOrderBo.setCreateTime(new Date());
AgentAccountGoodVo agentAccountGoodVo;
@@ -301,7 +301,7 @@ public class APIControllerV2 extends BaseController {
agentOrderBo.setAgentId(agentAccountVo.getAgentId());
agentOrderBo.setStoreId("13");
agentOrderBo.setSerialNumber(UUID.randomUUID().toString().replace("-", ""));
agentOrderBo.setStatus("0");
agentOrderBo.setStatus("2");
agentOrderBo.setPersonnelId(agentAccountVo.getPersonnelId());
agentOrderBo.setCreateTime(new Date());
AgentAccountGoodVo agentAccountGoodVo;
@@ -385,7 +385,7 @@ public class APIControllerV2 extends BaseController {
// saveLog(request, agentAccountVo.getPersonnelId(), 0, "区为空", null);
// return R.fail(ERROR_CODE_PARAMS, "参数错误");
// }
agentOrderBo.setCity("黄浦区");
agentOrderBo.setCounty("黄浦区");
// if (ObjectUtils.isNull(agentOrderBo.getInstalledAddress())) {
// log.error("地址为空");
// saveLog(request, agentAccountVo.getPersonnelId(), 0, "地址为空", null);
@@ -397,6 +397,7 @@ public class APIControllerV2 extends BaseController {
agentOrderBo.setInstallAddress("南京西路1号");
agentOrderBo.setInstalledAddress("南京西路1号");
agentOrderBo.setIsExpress(0);
agentOrderBo.setApiVersion("V2.0.0");
// todo 根据代理商提供的验证url验证用户
JSONObject paramMap = new JSONObject();
paramMap.set("name", agentOrderBo.getName());
@@ -455,7 +456,7 @@ public class APIControllerV2 extends BaseController {
agentOrderVo.getIdCard(), requestBody.getStr("type"), agentOrderVo.getUploadMsgId(), requestBody.getStr("img"));
if (response.isSuccess()) {
AgentOrderBo agentOrderBo = new AgentOrderBo();
agentOrderBo.setApiVersion("V2.0.0");
// agentOrderBo.setApiVersion("V2.0.0");
agentOrderBo.setId(agentOrderVo.getId());
agentOrderBo.setUploadMsgId(response.getData());
if (requestBody.getStr("type").equals("idCardFront")) {
@@ -520,7 +521,8 @@ public class APIControllerV2 extends BaseController {
agentOrderVo.getPersonnelId(), agentOrderVo.getProvince(), agentOrderVo.getCity(),
agentOrderVo.getCounty(), agentOrderVo.getSerialNumber(), agentOrderVo.getNumber(),
agentOrderVo.getLogiRemark(), agentOrderVo.getPageUrl(), agentOrderVo.getRemark(),
agentOrderVo.getInstallAddress(), "", "idCardFront,idCardBack,frontFace");
agentOrderVo.getInstallAddress(), "", "idCardFront,idCardBack,frontFace",
"2");
if (response.isSuccess()) {
AgentOrderBo agentOrderBo = new AgentOrderBo();
agentOrderBo.setId(agentOrderVo.getId());

View File

@@ -40,6 +40,15 @@ public class BaseTestController {
* 电信网络异常
*/
public final static Integer ERROR_CODE_NETWORK = 1003;
/**
* 验证错误
*/
public final static Integer ERROR_CODE_VERIFY = 1004;
/**
* H5验证错误
*/
public final static Integer CODE_ERROR = 1005;
public final static String APP_ID = "02a42036-fe1f-4ef1-945a-08660a946b38";
public final static String APP_SECRET = "ff2b4dd8-5843-475d-ac4e-c41bb77537fc";

View File

@@ -19,6 +19,11 @@ public interface CTService {
String county, String serialNumber, String number, String logiRemark, String pageUrl,
String remark, String installAddress, String ynumber2, String images) throws Exception;
CTResponse<String> saveOrder(String name, String idCard, String contactMobile, String installedAddress,
String saleId, String storeId, String personnelId, String province, String city,
String county, String serialNumber, String number, String logiRemark, String pageUrl,
String remark, String installAddress, String ynumber2, String images, String deliveryMethod) throws Exception;
CTResponse<String> uploadFile(String serialNumber, String name, String idCard, String type, String msgId, String img) throws Exception;
CTResponse<String> updateOrder(String name, String orderNum) throws Exception;

View File

@@ -112,6 +112,7 @@ public class AgentOrderServiceImpl implements IAgentOrderService {
lqw.eq(StringUtils.isNotBlank(bo.getStatusCd()), AgentOrder::getStatusCd, bo.getStatusCd());
lqw.eq(StringUtils.isNotBlank(bo.getRouteArr()), AgentOrder::getRouteArr, bo.getRouteArr());
lqw.eq(ObjectUtils.isNotNull(bo.getIsRecharge()), AgentOrder::getIsRecharge, bo.getIsRecharge());
lqw.eq(ObjectUtils.isNotNull(bo.getIsExpress()), AgentOrder::getIsExpress, bo.getIsExpress());
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
AgentOrder::getCreateTime ,params.get("beginCreateTime"), params.get("endCreateTime"));
lqw.orderByDesc(AgentOrder::getCreateTime);

View File

@@ -204,11 +204,55 @@ public class CTServiceImpl implements CTService {
body.put("province", province);
body.put("city", city);
body.put("county", county);
if (ObjectUtil.isNull(installedAddress) || ObjectUtil.isNull(province) || ObjectUtil.isNull(city) || ObjectUtil.isNull(county)) {
body.put("deliveryMethod", "2");
} else {
body.put("deliveryMethod", "1");
body.put("serialNumber", serialNumber);
body.put("number", number);
body.put("logiRemark", logiRemark);
body.put("pageUrl", pageUrl);
body.put("remark", remark);
body.put("installAddress", installAddress);
// body.put("ynumber2", ynumber2);
// body.put("images", images);
log.info("body:" + body);
requestBody.setEncryption(JSONUtil.toJsonStr(body), publicKey);
HttpResponse httpResponse = HttpRequest.post(url)
.header("token", token)
.form(requestBody.toMap())
.execute();
log.error("body:"+httpResponse.body());
if (httpResponse.isOk()) {
CTResponse<String> response = JSONUtil.toBean(httpResponse.body(), CTResponse.class);
return response;
}
log.error("response status:"+httpResponse.getStatus());
log.error("request error");
return null;
}
log.error("token error");
return null;
}
@Override
public CTResponse<String> saveOrder(String name, String idCard, String contactMobile,
String installedAddress, String saleId, String storeId,
String personnelId, String province, String city,
String county, String serialNumber, String number,
String logiRemark, String pageUrl, String remark,
String installAddress, String ynumber2, String images, String deliveryMethod) throws Exception {
if (checkToken()) {
requestBody.setInterfaceName("SaveOrder");
Map<String, Object> body = new HashMap<>();
body.put("name", name);
body.put("idCard", idCard);
body.put("contactMobile", contactMobile);
body.put("installedAddress", installedAddress);
body.put("saleId", saleId);
body.put("storeId", storeId);
body.put("personnelId", personnelId);
body.put("province", province);
body.put("city", city);
body.put("county", county);
body.put("deliveryMethod", deliveryMethod);
body.put("serialNumber", serialNumber);
body.put("number", number);
body.put("logiRemark", logiRemark);

View File

@@ -106,6 +106,16 @@
:default-time="['00:00:00', '23:59:59']"
></el-date-picker>
</el-form-item>
<el-form-item label="下单类型" prop="isExpress">
<el-select v-model="queryParams.isExpress" placeholder="请选择下单类型" clearable>
<el-option
v-for="dict in dict.type.order_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -247,6 +257,13 @@
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
</template> -->
</el-table-column>
<el-table-column label="API版本" align="center" prop="apiVersion" width="180">
</el-table-column>
<el-table-column label="下单类型" align="center" prop="isExpress" width="180">
<template slot-scope="scope">
<dict-tag :options="dict.type.order_type" :value="scope.row.isExpress"/>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@@ -371,7 +388,7 @@ import { listAgent } from "@/api/ct/agent";
import { listGood } from "@/api/ct/good";
export default {
name: "AgentOrder",
dicts: ['platform_order_status', 'is_recharge'],
dicts: ['platform_order_status', 'is_recharge', 'order_type'],
data() {
return {
// 按钮loading
@@ -425,6 +442,7 @@ export default {
expressRoutes: undefined,
statusCd: undefined,
routeArr: undefined,
isExpress: undefined
},
// 表单参数
form: {},