店铺列表增加合同的状态返回,修复顺丰同城取消订单逻辑

This commit is contained in:
Jack 2025-12-05 13:03:30 +08:00
parent def93e54fa
commit 89a326a05b
10 changed files with 146 additions and 90 deletions

View File

@ -104,55 +104,54 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
public Boolean fillDocTemplate(Integer storeId) {
// 1. 参数校验
if (CheckUtil.isEmpty(storeId)) {
log.error("商家店铺Id为空");
log.error("[合同生成] 商家店铺ID不能为空");
return false;
}
// 2. 获取平台方信息
EsignPlatformInfo esignPlatformInfo = esignPlatformInfoService.getEsignPlatformInfo(0, "");
if (ObjectUtils.isEmpty(esignPlatformInfo)) {
log.error("请添加平台方(代理商方)信息");
log.error("[合同生成] 平台方(代理商方)信息缺失,请先配置平台信息");
return false;
}
if (StrUtil.isBlank(esignPlatformInfo.getDoc_template())) {
log.error("无法获取平台方合同模版信息");
log.error("[合同生成] 平台方合同模板信息为空,无法继续生成合同");
return false;
}
// 3. 获取入驻商家(审批通过的)的信息
ShopMchEntry shopMchEntry = shopMchEntryService.getShopMerchEntryByStoreId(storeId);
if (shopMchEntry == null) {
log.error("缺少商家入驻信息, storeId: {}", storeId);
log.error("[合同生成] 找不到商家入驻信息, storeId: {}", storeId);
return false;
}
// 4. 检查商家审批状态
if (!CommonConstant.MCH_APPR_STA_PASS.equals(shopMchEntry.getApproval_status())) {
log.error("入驻商家审批未通过,当前状态: {}, storeId: {}", shopMchEntry.getApproval_status(), storeId);
log.error("[合同生成] 商家入驻审批未通过,当前状态: {}, storeId: {}", shopMchEntry.getApproval_status(), storeId);
return false;
}
ShopStoreBase shopStoreBase = shopStoreBaseService.getShopStoreBaseByStoreId(storeId);
if (ObjectUtils.isEmpty(shopStoreBase)) {
log.error("缺少商家店铺信息, storeId: {}", storeId);
log.error("[合同生成] 缺少商家店铺信息, storeId: {}", storeId);
return false;
}
BigDecimal splitRatio = shopStoreBase.getSplit_ratio();
if (CheckUtil.isEmpty(splitRatio)) {
log.error("缺少商家店铺分账比例,从入驻申请数据获取分账比例, storeId: {}", storeId);
log.warn("[合同生成] 店铺分账比例为空,将使用入驻申请时设置的比例, storeId: {}", storeId);
splitRatio = shopMchEntry.getSplit_ratio();
}
// 5. 获取代理商信息
EsignPlatformInfo distributor = esignPlatformInfoService.getDistributorInfoById(shopMchEntry.getDistributor_id());
// 6. 获取平台方合同模版信息
JSONArray templates = JSONUtil.parseArray(esignPlatformInfo.getDoc_template());
if (templates == null || templates.isEmpty()) {
log.error("缺少平台方(代理商方)合同模版信息");
log.error("[合同生成] 平台方(代理商方)合同模板信息缺失");
return false;
}
@ -179,7 +178,7 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
String contractNumber = StringUtils.genLklOrderNo(4);
int successCnt = 0;
log.info("开始为商家生成合同文件, storeId: {}, mobile: {}", storeId, shopMchEntry.getLogin_mobile());
log.info("[合同生成] 开始为商家生成入驻合同文件, storeId: {}, 商家手机号: {}", storeId, shopMchEntry.getLogin_mobile());
// 8. 遍历模版文件生成合同模版文件里有三份合同顺序排列的: 1.平台商户入驻服务框架协议 2.小发同城服务费结算 3.结算授权委托书
for (JSONObject template : templates.jsonIter()) {
@ -189,7 +188,7 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
String fileName = template.getStr("template_name");
int seq = template.getInt("seq");
log.debug("处理合同模版: templateId={}, fileName={}, seq={}", templateId, fileName, seq);
log.debug("[合同生成] 正在处理合同模板: templateId={}, 文件名={}, 序号={}", templateId, fileName, seq);
// 9. 构建填充模版的数据
JSONObject fillJson = new JSONObject();
@ -382,7 +381,7 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
put("componentValue", today);
}});
log.debug("已填充代理商信息: {}", distributor.getLicense_company());
log.debug("[合同生成] 已填充代理商信息: {}", distributor.getLicense_company());
} else {
// 无代理商时填充默认值
list.add(new HashMap<String, Object>() {{
@ -407,7 +406,7 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
put("componentValue", "");
}});
log.debug("未配置代理商信息,使用默认值");
log.debug("[合同生成] 未配置代理商信息,使用默认值");
}
fillJson.put("components", list);
@ -424,11 +423,11 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
EsignHttpResponse createByDocTemplate = EsignHttpHelper.doCommHttp(
serverUrl, apiAddr, requestType, jsonParam, header, debug);
log.info("合同生成API调用结果: status={}, body={}",
log.info("[合同生成] 调用电子签约服务生成合同文件: status={}, response={}",
createByDocTemplate.getStatus(), createByDocTemplate.getBody());
if (createByDocTemplate.getStatus() != 200) {
log.error("调用e签宝生成合同文件接口失败, status: {}", createByDocTemplate.getStatus());
log.error("[合同生成] 调用电子签约服务生成合同文件失败, HTTP状态码: {}", createByDocTemplate.getStatus());
continue; // 继续处理下一个模版
}
@ -438,7 +437,7 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
String fileId = jsonObject.getStr("fileId");
if (StrUtil.isBlank(fileDownloadUrl) || StrUtil.isBlank(fileId)) {
log.error("e签宝返回的合同文件信息不完整, fileDownloadUrl: {}, fileId: {}", fileDownloadUrl, fileId);
log.error("[合同生成] 电子签约服务返回的合同文件信息不完整, 下载地址: {}, 文件ID: {}", fileDownloadUrl, fileId);
continue;
}
@ -454,7 +453,7 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
String localFileUrl = ossService.uploadObject4OSS(fileDownloadUrl, cosFileName);
if (StrUtil.isBlank(localFileUrl)) {
log.error("上传合同文件到OSS失败, fileId: {}", fileId);
log.error("[合同生成] 合同文件上传到对象存储失败, fileId: {}", fileId);
continue;
}
@ -487,25 +486,25 @@ public class EsignContractFillingFileServiceImpl extends BaseServiceImpl<EsignCo
// 17. 保存合同填充记录并预创建签署流程
if (esignContractFillingFileService.trySaveRecord(esignContractFillingFile)) {
successCnt += 1;
log.debug("合同填充记录保存成功, fileId: {}", fileId);
log.debug("[合同生成] 合同记录保存成功, fileId: {}", fileId);
// 预新增一个签署合同记录
boolean preCreateResult = esignContractService.preCreateSignFlow(
esignContractFillingFile.getMobile(), esignContractFillingFile.getDoc_template_id());
log.debug("预创建签署流程结果: {}, mobile: {}, templateId: {}",
log.debug("[合同生成] 预创建签署流程结果: {}, 商家手机号: {}, 模板ID: {}",
preCreateResult, esignContractFillingFile.getMobile(), esignContractFillingFile.getDoc_template_id());
} else {
log.error("保存合同填充记录失败, fileId: {}", fileId);
log.error("[合同生成] 保存合同记录失败, fileId: {}", fileId);
}
} catch (Exception e) {
log.error("处理合同模版时发生异常, templateId: {}", template.getStr("template_id"), e);
log.error("[合同生成] 处理合同模板时出现异常, templateId: {}", template.getStr("template_id"), e);
// 继续处理下一个模版不中断整个流程
}
}
boolean result = successCnt > 0;
log.info("合同文件生成完成, storeId: {}, 总模版数: {}, 成功处理数: {}, 结果: {}",
log.info("[合同生成] 商家合同文件全部生成完毕, storeId: {}, 总模板数: {}, 成功处理数: {}, 最终结果: {}",
storeId, templates.size(), successCnt, result);
return result;

View File

@ -202,7 +202,7 @@ public class EsignContractServiceImpl extends BaseServiceImpl<EsignContractMappe
//发起接口请求
EsignHttpResponse createByDocTemplate = EsignHttpHelper.doCommHttp(serverUrl, apiAddr, requestType, jsonParams, header, debug);
log.debug("发起合同签署流程返回消息:{},{}", createByDocTemplate.getStatus(), createByDocTemplate.getBody());
log.info("发起合同签署流程返回消息:{},{}", createByDocTemplate.getStatus(), createByDocTemplate.getBody());
if (createByDocTemplate.getStatus() != 200) {
if (createByDocTemplate.getBody() != null) {
JSONObject resBody = JSONUtil.parseObj(createByDocTemplate.getBody());

View File

@ -120,7 +120,7 @@ public class LakalaController extends BaseControllerImpl {
}
@ApiOperation(value = "接收拉卡拉发货类交易确认收货通知", notes = "接收拉卡拉发货类交易确认收货通知 https://o.lakala.com/#/home/document/detail?id=1003")
@RequestMapping(value = "/trans/receive/completeNotify", method = RequestMethod.POST)
@RequestMapping(value = "/trans/receive/completeNotify", method = {RequestMethod.POST, RequestMethod.GET})
public ResponseEntity<JSONObject> receiveCompleteNotify(HttpServletRequest request) {
// 完整地址 https://mall.gpxscs.cn/api/mobile/shop/lakala/trans/receive/completeNotify
JSONObject resp = lakalaPayService.receiveCompleteNotify(request);

View File

@ -5022,7 +5022,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
log.info("[确认收货] 处理订单: orderId={}, currentState={}", order_row.getOrder_id(), order_row.getOrder_state_id());
} else {
not_eligible_orders.add(order_row.getOrder_id());
log.warn("[确认收货] 订单状态不满足收货条件: orderId={}, currentState={}", order_row.getOrder_id(), order_row.getOrder_state_id());
log.warn("[确认收货] 订单状态不满足确认收货条件: orderId={}, currentState={}", order_row.getOrder_id(), order_row.getOrder_state_id());
}
}
@ -5313,6 +5313,26 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
shopOrderDataService.edit(shopOrderData);
}
// 取消顺丰同城配送订单
// === 7. 特殊场景顺丰同城配送且全单退的时候才触发顺丰同城订单取消 ===
if (shopOrderInfo.getDelivery_type_id() != null
&& StateCode.DELIVERY_TYPE_SAME_CITY == shopOrderInfo.getDelivery_type_id().intValue()) {
try {
logger.info("开始取消顺丰同城配送订单orderId: {}, delivery_type_id: {}", order_id, shopOrderInfo.getDelivery_type_id());
ThirdApiRes sfResult = sfExpressApiService.cancelOrder(order_id, 313, "用户或商家取消订单。");
if (sfResult != null && !sfResult.getError_code().equals(0)) {
log.error("顺丰同城取消订单返回错误orderId: {}, errorCode: {}, errorMsg: {}",
order_id, sfResult.getError_code(), sfResult.getError_msg());
} else {
log.info("顺丰同城订单取消成功orderId: {}", order_id);
}
} catch (Exception e) {
log.error("顺丰同城取消订单异常orderId: {}", order_id, e);
// 可以考虑添加补偿机制或异步重试
}
}
// 积分退还 order_resource_ext1 默认为积分
ShopOrderData order_data_row = shopOrderDataService.get(order_id);
@ -5396,24 +5416,6 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
cancelActivity(order_id);
}
// 取消顺丰同城配送订单
// === 7. 特殊场景顺丰同城配送且全单退的时候才触发顺丰同城订单取消 ===
if (orderInfo.getDelivery_type_id() != null
&& StateCode.DELIVERY_TYPE_SAME_CITY == orderInfo.getDelivery_type_id().intValue()) {
try {
ThirdApiRes sfResult = sfExpressApiService.cancelOrder(order_id, 313, "用户或商家取消订单。");
if (sfResult != null && !sfResult.getError_code().equals(0)) {
log.error("顺丰同城取消订单返回错误orderId: {}, errorCode: {}, errorMsg: {}",
order_id, sfResult.getError_code(), sfResult.getError_msg());
} else {
log.info("顺丰同城订单取消成功orderId: {}", order_id);
}
} catch (Exception e) {
log.error("顺丰同城取消订单异常orderId: {}", order_id, e);
// 可以考虑添加补偿机制或异步重试
}
}
return true;
}

View File

@ -990,20 +990,25 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
try {
String remark = "同城配送异常自动退款!";
QueryWrapper<ShopOrderReturn> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_id", shopOrderId);
ShopOrderReturn shopOrderReturn = findOne(queryWrapper);
if (shopOrderReturn == null) {
logger.error("[顺丰超时自动退款] 订单信息异常,未找到退货单: shopOrderId={}", shopOrderId);
return false;
}
if (ObjectUtil.equal(shopOrderReturn.getReturn_state_id(), StateCode.RETURN_PROCESS_FINISH)
|| ObjectUtil.equal(shopOrderReturn.getReturn_is_paid(), CommonConstant.Enable)) {
logger.warn("[顺丰超时自动退款] 订单之前已处理完成,请勿重复处理: shopOrderId={}", shopOrderId);
return true;
}
// 对已存在部分退款的订单进行剩余商品的全部退款
CommonResult commonResult = addRemainingItems(shopOrderId, true, remark);
commonResult.checkFenResult();
logger.debug("[顺丰超时自动退款] 整单退货申请创建成功: shopOrderId={}", shopOrderId);
QueryWrapper<ShopOrderReturn> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_id", shopOrderId);
ShopOrderReturn shopOrderReturn = findOne(queryWrapper);
if (shopOrderReturn == null) {
logger.error("[顺丰超时自动退款] 订单信息异常,未找到退货单: shopOrderId={}", shopOrderId);
throw new ApiException(I18nUtil._("订单信息异常!"));
}
shopOrderReturn.setReturn_flag(0); // 0-不用退货;1-需要退货
shopOrderReturn.setReturn_buyer_message(remark);
shopOrderReturn.setReturn_store_message(remark);
@ -1886,7 +1891,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl<ShopOrderReturnM
// shopOrderReturn.setReturn_finish_time(now);
//
ShopOrderReturn updateRefundStatus = new ShopOrderReturn();
updateRefundStatus.setReturn_is_paid(1); // 0-退货未完成1-退货完成
updateRefundStatus.setReturn_is_paid(CommonConstant.Enable); // 0-退货未完成1-退货完成
updateRefundStatus.setReturn_finish_time(now);
QueryWrapper<ShopOrderReturn> updateWrapper = new QueryWrapper<>();

View File

@ -164,6 +164,14 @@ public interface SFExpressApiService {
*/
ThirdApiRes notifyProductReady(Map<String, Object> params);
/**
* 订单实时信息查询
* https://openic.sf-express.com/open/api/external/getorderstatus?sign=$sign
*
* @param sfOrderId
* @return
*/
ThirdApiRes getOrderStatus(String sfOrderId);
// *********** 顺丰同城回调相关业务 ****************
@ -194,18 +202,6 @@ public interface SFExpressApiService {
*/
ThirdApiRes receiveOrderCompleteNotify(String jsonData, String sign);
//
// /**
// * 个推推送消息到员工
// *
// * @param storeId
// * @param orderId
// * @param message
// * @param payloadJson
// * @return
// */
// void pushMessageToStoreEmployee(Integer storeId, String orderId, String message, String payloadJson);
/**
* 商家自行配送发货
*

View File

@ -675,9 +675,10 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
public ThirdApiRes cancelOrder(String orderId, Integer cancelCode, String cancelReason) {
Map<String, Object> params = buildCommonParams();
params.put("order_id", shopStoreSfOrderService.getSfOrderIdByShopOrderId(orderId)); // 商家 orderId 顺丰的订单号
params.put("cancel_type", 1); //1顺丰订单号 2商家订单号
if (StrUtil.isNotBlank(cancelReason) && cancelCode != null) {
params.put("cancel_code", orderId);
params.put("cancel_reason", orderId);
params.put("cancel_code", cancelCode);
params.put("cancel_reason", cancelReason);
}
return cancelOrder(params);
}
@ -691,18 +692,33 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
@Override
@Transactional
public ThirdApiRes cancelOrder(Map<String, Object> params) {
logger.info("[顺丰] 开始取消订单流程");
logger.info("[取消顺丰订单] 开始取消顺丰订单流程");
// 1. 参数校验
if (params == null || ObjectUtil.isEmpty(params.get("order_id"))) {
logger.warn("[顺丰] 取消订单参数校验失败: 参数为空或缺少order_id");
logger.warn("[取消顺丰订单] 取消订单参数校验失败: 参数为空或缺少order_id");
return new ThirdApiRes().fail(1003, "请求参数有误!");
}
try {
// 2. 获取顺丰订单号
String sfOrderId = params.get("order_id").toString();
logger.debug("[顺丰] 准备取消订单: sfOrderId={}", sfOrderId);
logger.debug("[取消顺丰订单] 准备取消订单: sfOrderId={}", sfOrderId);
// 先实时查询顺丰订单状态
ThirdApiRes thirdApiRes = getOrderStatus(sfOrderId);
if (thirdApiRes != null && ObjectUtil.equal(thirdApiRes.getError_code(), 0)) {
Object resultObj = thirdApiRes.getResult();
if (resultObj != null) {
JSONObject result = JSONUtil.parseObj(resultObj);
Integer orderStatus = result.getInt("order_status");
if (orderStatus != null &&
(ObjectUtil.equal(orderStatus, SFExpressConstant.Cons_CanceledOrder) ||
ObjectUtil.equal(orderStatus, SFExpressConstant.Cons_CancelingOrder))) {
return new ThirdApiRes().success("订单已取消过!");
}
}
}
// 3. 添加公共参数
params.putAll(buildCommonParams());
@ -710,34 +726,34 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
// 4. 调用顺丰取消订单接口
String sendUrl = buildUrl("cancelorder", paramJSON);
logger.debug("[顺丰] 调用取消订单接口: url={}, params={}", sendUrl, paramJSON);
logger.debug("[取消顺丰订单] 调用取消订单接口: url={}, params={}", sendUrl, paramJSON);
String responseStr = HttpUtil.post(sendUrl, paramJSON);
if (StrUtil.isBlank(responseStr)) {
logger.error("[顺丰] 取消订单接口调用失败: 无返回值, sfOrderId={}", sfOrderId);
logger.error("[取消顺丰订单] 取消订单接口调用失败: 无返回值, sfOrderId={}", sfOrderId);
return new ThirdApiRes().fail(2, "顺丰同城:无返回值!");
}
// 5. 解析接口响应
ThirdApiRes sfExpressApiRes = JsonUtil.json2object(responseStr, ThirdApiRes.class);
if (sfExpressApiRes == null) {
logger.error("[顺丰] 取消订单接口响应解析失败: {}, sfOrderId={}", responseStr, sfOrderId);
logger.error("[取消顺丰订单] 取消订单接口响应解析失败: {}, sfOrderId={}", responseStr, sfOrderId);
return new ThirdApiRes().fail(2, "顺丰同城:响应解析失败!");
}
// 6. 检查接口调用结果
if (!sfExpressApiRes.getError_code().equals(0)) {
logger.error("[顺丰] 取消订单接口调用失败: errorCode={}, errorMsg={}, sfOrderId={}",
logger.error("[取消顺丰订单] 取消订单接口调用失败: errorCode={}, errorMsg={}, sfOrderId={}",
sfExpressApiRes.getError_code(), sfExpressApiRes.getError_msg(), sfOrderId);
return new ThirdApiRes().fail(2, sfExpressApiRes.getError_msg());
}
logger.info("[顺丰] 顺丰接口取消订单成功: sfOrderId={}", sfOrderId);
logger.info("[取消顺丰订单] 顺丰接口取消订单成功: sfOrderId={}", sfOrderId);
// 7. 检查本地订单状态
ShopStoreSfOrder existingOrder = shopStoreSfOrderService.getByShopOrderId(sfOrderId);
ShopStoreSfOrder existingOrder = shopStoreSfOrderService.getBySfOrderId(sfOrderId);
if (existingOrder == null) {
logger.error("[顺丰] 本地订单不存在: sfOrderId={}", sfOrderId);
logger.error("[取消顺丰订单] 本地订单不存在: sfOrderId={}", sfOrderId);
return new ThirdApiRes().fail(2, "订单不存在!");
}
@ -745,7 +761,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
if (existingOrder.getOrder_status() != null &&
(existingOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_CANCELED) ||
existingOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_CANCELING))) {
logger.info("[顺丰] 订单已处于取消状态,无需重复操作: sfOrderId={}, status={}",
logger.info("[取消顺丰订单] 订单已处于取消状态,无需重复操作: sfOrderId={}, status={}",
sfOrderId, existingOrder.getOrder_status());
return new ThirdApiRes().success("订单已取消过!");
}
@ -758,15 +774,15 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
Boolean updateSuccess = shopStoreSfOrderService.updateShopStoreSfOrderStatus(updateOrder);
if (!updateSuccess) {
logger.error("[顺丰] 更新本地订单状态失败: sfOrderId={}", sfOrderId);
logger.error("[取消顺丰订单] 更新本地订单状态失败: sfOrderId={}", sfOrderId);
throw new ApiException(_("取消顺丰订单失败!"));
}
logger.info("[顺丰] 本地订单状态更新成功: sfOrderId={}", sfOrderId);
logger.info("[取消顺丰订单] 本地订单状态更新成功: sfOrderId={}", sfOrderId);
return sfExpressApiRes;
} catch (Exception e) {
logger.error("[顺丰] 取消订单过程中发生异常: ", e);
logger.error("[取消顺丰订单] 取消订单过程中发生异常: ", e);
return new ThirdApiRes().fail(-1, "系统异常: " + e.getMessage());
}
}
@ -974,6 +990,39 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
return JsonUtil.json2object(retRespStr, ThirdApiRes.class);
}
/**
* 订单实时信息查询
* https://openic.sf-express.com/open/api/external/getorderstatus?sign=$sign
*
* @param sfOrderId
* @return
*/
@Override
public ThirdApiRes getOrderStatus(String sfOrderId) {
if (StrUtil.isBlank(sfOrderId)) {
return new ThirdApiRes().fail(1003, "缺少必要参数!");
}
Map<String, Object> params = buildCommonParams();
params.put("order_id", sfOrderId);
params.put("order_type", 1);//查询订单ID类型1顺丰订单号 2商家订单号
// 转换 json 字符串参数
String paramJSON = JsonUtil.toJSONString(params);
logger.debug("订单实时信息查询:" + paramJSON);
// 根据参数生成请求签名
String send_url = buildUrl("getorderstatus", paramJSON);
String retRespStr = HttpUtil.post(send_url, paramJSON);
if (StrUtil.isBlank(retRespStr)) {
logger.error("顺丰同城:订单实时信息查询,无返回值!");
return new ThirdApiRes().fail(-1, "顺丰同城:无返回值!");
}
return JsonUtil.json2object(retRespStr, ThirdApiRes.class);
}
/**
* 接收顺丰原因订单取消回调

View File

@ -1538,6 +1538,7 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
// E签宝和拉卡拉的合同文件下载地址
String lkl_contract_file_url = "";
String esign_contract_file_url = "";
Integer esign_contract_flow_status = -1;//合同签署状态-1预备数据阶段0-等待签署1-已部分签署2-已完成所有签署方完成签署;3-已撤销发起方撤销签署任务;5-已过期签署截止日到期后触发;7-已拒签签署方拒绝签署
ShopMchEntry entry = shopMchEntryService.getLklContractStatusUrl(_store_id);
if (ObjectUtil.isNotEmpty(entry)) {
lkl_contract_file_url = entry.getContract_download_url();
@ -1546,10 +1547,12 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
EsignContract esignContract = esignContractService.getEsignContractStatusUrl(_store_id);
if (ObjectUtil.isNotEmpty(esignContract)) {
esign_contract_file_url = esignContract.getSigned_contract_url();
esign_contract_flow_status = esignContract.getSign_flow_status();
}
s.put("lkl_contract_file_url", lkl_contract_file_url);
s.put("esign_contract_file_url", esign_contract_file_url);
s.put("esign_contract_flow_status", esign_contract_flow_status);
});
data.put("items", accountService.fixUserAvatar((List<Map>) data.get("items"), true));
@ -1586,6 +1589,7 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
// E签宝和拉卡拉的合同文件下载地址
String lkl_contract_file_url = "";
String esign_contract_file_url = "";
Integer esign_contract_flow_status = -1; //合同签署状态-1预备数据阶段0-等待签署1-已部分签署2-已完成所有签署方完成签署;3-已撤销发起方撤销签署任务;5-已过期签署截止日到期后触发;7-已拒签签署方拒绝签署
ShopMchEntry entry = shopMchEntryService.getLklContractStatusUrl(store_id);
if (ObjectUtil.isNotEmpty(entry)) {
lkl_contract_file_url = entry.getContract_download_url();
@ -1594,9 +1598,11 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
EsignContract esignContract = esignContractService.getEsignContractStatusUrl(store_id);
if (ObjectUtil.isNotEmpty(esignContract)) {
esign_contract_file_url = esignContract.getSigned_contract_url();
esign_contract_flow_status = esignContract.getSign_flow_status();
}
row.put("lkl_contract_file_url", lkl_contract_file_url);
row.put("esign_contract_file_url", esign_contract_file_url);
row.put("esign_contract_flow_status", esign_contract_flow_status);
// 火星坐标系GCJ02经纬度 转出 百度坐标系BD09经纬度因为数据库保存的经纬度统一是GCJ02经纬度所以需要转换
gcj02ToBd09Gps(row);

View File

@ -48,9 +48,14 @@ public class ShopStoreSfOrderServiceImpl extends BaseServiceImpl<ShopStoreSfOrde
if (StrUtil.isBlank(shopOrderId)) {
return null;
}
QueryWrapper<ShopStoreSfOrder> wrapper = new QueryWrapper<>();
wrapper.eq("shop_order_id", shopOrderId);
return getOne(wrapper);
if (StrUtil.startWith(shopOrderId, "JS")) { // 顺丰同城的订单号标志
return getBySfOrderId(shopOrderId);
} else {
QueryWrapper<ShopStoreSfOrder> wrapper = new QueryWrapper<>();
wrapper.eq("shop_order_id", shopOrderId);
return getOne(wrapper);
}
}
/**

View File

@ -581,7 +581,6 @@
<pushImage>true</pushImage>
<!--推送镜像仓库校验安全证书,无安全证书无法推送-->
<dockerCertPath>${docker.ca}</dockerCertPath>
<!--定义基础镜像-->
<!-- <baseImage>java:8</baseImage>-->
<baseImage>openjdk:8-jre</baseImage>
@ -600,11 +599,6 @@
<entryPoint>["sh", "-c", "mkdir -p /tmp /app/temp /root/nacos/naming/public &amp;&amp; chmod -R 777 /tmp /app/temp /root/nacos &amp;&amp; java -Djava.io.tmpdir=/app/temp -Dnacos.naming.cache.dir=/root/nacos/naming -jar -Xms256m -Xmx512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:+UseContainerSupport -XX:MaxRAMPercentage=60.0 -XX:+UseSerialGC -XX:MinHeapFreeRatio=40 -XX:MaxHeapFreeRatio=60 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:./gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M -Dspring.profiles.active=${spring.profile} -Duser.timezone=Asia/Shanghai /${project.build.finalName}.jar"]
</entryPoint>
<!-- 添加额外的Dockerfile指令来清理不必要的文件 -->
<!-- <runs>-->
<!-- <run>rm -rf /root/.m2 &amp;&amp; rm -rf /tmp/* &amp;&amp; rm -rf /var/cache/*</run>-->
<!-- </runs>-->
<resources>
<resource>
<targetPath>/</targetPath>