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

View File

@@ -158,7 +158,7 @@ public class APIControllerV2 extends BaseController {
agentOrderBo.setAgentId(agentAccountVo.getAgentId()); agentOrderBo.setAgentId(agentAccountVo.getAgentId());
agentOrderBo.setStoreId("13"); agentOrderBo.setStoreId("13");
agentOrderBo.setSerialNumber(UUID.randomUUID().toString().replace("-", "")); agentOrderBo.setSerialNumber(UUID.randomUUID().toString().replace("-", ""));
agentOrderBo.setStatus("0"); agentOrderBo.setStatus("2");
agentOrderBo.setPersonnelId(agentAccountVo.getPersonnelId()); agentOrderBo.setPersonnelId(agentAccountVo.getPersonnelId());
agentOrderBo.setCreateTime(new Date()); agentOrderBo.setCreateTime(new Date());
AgentAccountGoodVo agentAccountGoodVo; AgentAccountGoodVo agentAccountGoodVo;
@@ -301,7 +301,7 @@ public class APIControllerV2 extends BaseController {
agentOrderBo.setAgentId(agentAccountVo.getAgentId()); agentOrderBo.setAgentId(agentAccountVo.getAgentId());
agentOrderBo.setStoreId("13"); agentOrderBo.setStoreId("13");
agentOrderBo.setSerialNumber(UUID.randomUUID().toString().replace("-", "")); agentOrderBo.setSerialNumber(UUID.randomUUID().toString().replace("-", ""));
agentOrderBo.setStatus("0"); agentOrderBo.setStatus("2");
agentOrderBo.setPersonnelId(agentAccountVo.getPersonnelId()); agentOrderBo.setPersonnelId(agentAccountVo.getPersonnelId());
agentOrderBo.setCreateTime(new Date()); agentOrderBo.setCreateTime(new Date());
AgentAccountGoodVo agentAccountGoodVo; AgentAccountGoodVo agentAccountGoodVo;
@@ -385,7 +385,7 @@ public class APIControllerV2 extends BaseController {
// saveLog(request, agentAccountVo.getPersonnelId(), 0, "区为空", null); // saveLog(request, agentAccountVo.getPersonnelId(), 0, "区为空", null);
// return R.fail(ERROR_CODE_PARAMS, "参数错误"); // return R.fail(ERROR_CODE_PARAMS, "参数错误");
// } // }
agentOrderBo.setCity("黄浦区"); agentOrderBo.setCounty("黄浦区");
// if (ObjectUtils.isNull(agentOrderBo.getInstalledAddress())) { // if (ObjectUtils.isNull(agentOrderBo.getInstalledAddress())) {
// log.error("地址为空"); // log.error("地址为空");
// saveLog(request, agentAccountVo.getPersonnelId(), 0, "地址为空", null); // saveLog(request, agentAccountVo.getPersonnelId(), 0, "地址为空", null);
@@ -397,6 +397,7 @@ public class APIControllerV2 extends BaseController {
agentOrderBo.setInstallAddress("南京西路1号"); agentOrderBo.setInstallAddress("南京西路1号");
agentOrderBo.setInstalledAddress("南京西路1号"); agentOrderBo.setInstalledAddress("南京西路1号");
agentOrderBo.setIsExpress(0); agentOrderBo.setIsExpress(0);
agentOrderBo.setApiVersion("V2.0.0");
// todo 根据代理商提供的验证url验证用户 // todo 根据代理商提供的验证url验证用户
JSONObject paramMap = new JSONObject(); JSONObject paramMap = new JSONObject();
paramMap.set("name", agentOrderBo.getName()); paramMap.set("name", agentOrderBo.getName());
@@ -455,7 +456,7 @@ public class APIControllerV2 extends BaseController {
agentOrderVo.getIdCard(), requestBody.getStr("type"), agentOrderVo.getUploadMsgId(), requestBody.getStr("img")); agentOrderVo.getIdCard(), requestBody.getStr("type"), agentOrderVo.getUploadMsgId(), requestBody.getStr("img"));
if (response.isSuccess()) { if (response.isSuccess()) {
AgentOrderBo agentOrderBo = new AgentOrderBo(); AgentOrderBo agentOrderBo = new AgentOrderBo();
agentOrderBo.setApiVersion("V2.0.0"); // agentOrderBo.setApiVersion("V2.0.0");
agentOrderBo.setId(agentOrderVo.getId()); agentOrderBo.setId(agentOrderVo.getId());
agentOrderBo.setUploadMsgId(response.getData()); agentOrderBo.setUploadMsgId(response.getData());
if (requestBody.getStr("type").equals("idCardFront")) { if (requestBody.getStr("type").equals("idCardFront")) {
@@ -520,7 +521,8 @@ public class APIControllerV2 extends BaseController {
agentOrderVo.getPersonnelId(), agentOrderVo.getProvince(), agentOrderVo.getCity(), agentOrderVo.getPersonnelId(), agentOrderVo.getProvince(), agentOrderVo.getCity(),
agentOrderVo.getCounty(), agentOrderVo.getSerialNumber(), agentOrderVo.getNumber(), agentOrderVo.getCounty(), agentOrderVo.getSerialNumber(), agentOrderVo.getNumber(),
agentOrderVo.getLogiRemark(), agentOrderVo.getPageUrl(), agentOrderVo.getRemark(), agentOrderVo.getLogiRemark(), agentOrderVo.getPageUrl(), agentOrderVo.getRemark(),
agentOrderVo.getInstallAddress(), "", "idCardFront,idCardBack,frontFace"); agentOrderVo.getInstallAddress(), "", "idCardFront,idCardBack,frontFace",
"2");
if (response.isSuccess()) { if (response.isSuccess()) {
AgentOrderBo agentOrderBo = new AgentOrderBo(); AgentOrderBo agentOrderBo = new AgentOrderBo();
agentOrderBo.setId(agentOrderVo.getId()); 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_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_ID = "02a42036-fe1f-4ef1-945a-08660a946b38";
public final static String APP_SECRET = "ff2b4dd8-5843-475d-ac4e-c41bb77537fc"; 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 county, String serialNumber, String number, String logiRemark, String pageUrl,
String remark, String installAddress, String ynumber2, String images) throws Exception; 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> uploadFile(String serialNumber, String name, String idCard, String type, String msgId, String img) throws Exception;
CTResponse<String> updateOrder(String name, String orderNum) 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.getStatusCd()), AgentOrder::getStatusCd, bo.getStatusCd());
lqw.eq(StringUtils.isNotBlank(bo.getRouteArr()), AgentOrder::getRouteArr, bo.getRouteArr()); 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.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, lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
AgentOrder::getCreateTime ,params.get("beginCreateTime"), params.get("endCreateTime")); AgentOrder::getCreateTime ,params.get("beginCreateTime"), params.get("endCreateTime"));
lqw.orderByDesc(AgentOrder::getCreateTime); lqw.orderByDesc(AgentOrder::getCreateTime);

View File

@@ -204,11 +204,55 @@ public class CTServiceImpl implements CTService {
body.put("province", province); body.put("province", province);
body.put("city", city); body.put("city", city);
body.put("county", county); body.put("county", county);
if (ObjectUtil.isNull(installedAddress) || ObjectUtil.isNull(province) || ObjectUtil.isNull(city) || ObjectUtil.isNull(county)) { body.put("serialNumber", serialNumber);
body.put("deliveryMethod", "2"); body.put("number", number);
} else { body.put("logiRemark", logiRemark);
body.put("deliveryMethod", "1"); 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("serialNumber", serialNumber);
body.put("number", number); body.put("number", number);
body.put("logiRemark", logiRemark); body.put("logiRemark", logiRemark);

View File

@@ -106,6 +106,16 @@
:default-time="['00:00:00', '23:59:59']" :default-time="['00:00:00', '23:59:59']"
></el-date-picker> ></el-date-picker>
</el-form-item> </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-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <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> <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> <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
</template> --> </template> -->
</el-table-column> </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"> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@@ -371,7 +388,7 @@ import { listAgent } from "@/api/ct/agent";
import { listGood } from "@/api/ct/good"; import { listGood } from "@/api/ct/good";
export default { export default {
name: "AgentOrder", name: "AgentOrder",
dicts: ['platform_order_status', 'is_recharge'], dicts: ['platform_order_status', 'is_recharge', 'order_type'],
data() { data() {
return { return {
// 按钮loading // 按钮loading
@@ -425,6 +442,7 @@ export default {
expressRoutes: undefined, expressRoutes: undefined,
statusCd: undefined, statusCd: undefined,
routeArr: undefined, routeArr: undefined,
isExpress: undefined
}, },
// 表单参数 // 表单参数
form: {}, form: {},