From 10f7ac05b13bacdf63e37e2a6d84dac5415cb86e Mon Sep 17 00:00:00 2001
From: quyixiao <2621048238@qq.com>
Date: Tue, 18 Nov 2025 23:57:02 +0800
Subject: [PATCH] juqwhnt
---
.../heyu/api/data/constants/ApiConstants.java | 2 +
.../heyu/api/data/dao/vv/VvPackageDao.java | 34 ++++----
.../api/data/entity/vv/VvPackageEntity.java | 82 ++++++++++++++-----
.../api/data/kuaidi100/KuaiDi100Utils.java | 45 +++++-----
.../service/impl/vv/VvPackageServiceImpl.java | 28 ++++---
.../vv/VvTradeOrderConvertServiceImpl.java | 2 +
.../api/data/service/vv/VvPackageService.java | 2 +-
.../java/com/test/xxx/MysqlMain_update.java | 5 +-
.../request/mm/order/VvToShippingDTO.java | 6 +-
.../mm/AdminLogisticsController.java | 2 +-
.../controller/mm/AdminOrderController.java | 32 +++++---
.../controller/mm/AdminReverseController.java | 4 +-
.../vv/AppKuaiDiCallBackController.java | 20 ++++-
.../controller/vv/AppLogisticsController.java | 3 +-
.../api/controller/vv/AppOrderController.java | 2 +-
.../api/schedule/impl/PackageUpdateJob.java | 6 +-
16 files changed, 175 insertions(+), 100 deletions(-)
diff --git a/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java b/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java
index cc80349..4b63e72 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java
@@ -88,6 +88,8 @@ public class ApiConstants {
public static final String MM_ADMIN_LOGIN_RUI = "/mm/admin/login";
public static final String get = "get";
+ public static String NOT_SIGN_RECEIPT = "not_sign_receipt";
+ public static String SIGN_RECEIPT = "sign_receipt";
/**
* 定时任务状态
diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPackageDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPackageDao.java
index d643aa7..0fff22a 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPackageDao.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPackageDao.java
@@ -1,12 +1,12 @@
package com.heyu.api.data.dao.vv;
/**
-*
-* 包裹表 服务类
-*
-*
-* @author quyixiao
-* @since 2025-08-23
-*/
+ *
+ * 包裹表 服务类
+ *
+ *
+ * @author quyixiao
+ * @since 2025-08-23
+ */
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.heyu.api.data.entity.vv.VvPackageEntity;
@@ -23,32 +23,32 @@ import java.util.List;
public interface VvPackageDao extends BaseMapper {
- VvPackageEntity selectVvPackageById(@Param("id")Long id);
+ VvPackageEntity selectVvPackageById(@Param("id") Long id);
- Long insertVvPackage(VvPackageEntity vvPackage);
+ Long insertVvPackage(VvPackageEntity vvPackage);
- Long insertOrUpdateVvPackage(VvPackageEntity vvPackage);
+ Long insertOrUpdateVvPackage(VvPackageEntity vvPackage);
- int updateVvPackageById(VvPackageEntity vvPackage);
+ int updateVvPackageById(VvPackageEntity vvPackage);
- int updateCoverVvPackageById(VvPackageEntity vvPackage);
+ int updateCoverVvPackageById(VvPackageEntity vvPackage);
- int deleteVvPackageById(@Param("id")Long id);
+ int deleteVvPackageById(@Param("id") Long id);
List selectVvPackageByTrackNumbers(@IFNullReturnEmpty @IN List trackNumber);
-
-
-
-
@LIMIT
VvPackageEntity selectVvPackageByTrackNumber(String trackNumber);
List selectVvPackageByIsCheckNotIN(@NotIn List ischeck);
+
+
+
+ List selectVvPackageBySignReceiptStatus(String signReceiptStatus);
}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPackageEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPackageEntity.java
index c97ef2f..6846fa2 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPackageEntity.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPackageEntity.java
@@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/**
*包裹表
* @author quyixiao
-* @since 2025-10-28
+* @since 2025-11-18
*/
@Data
@@ -21,27 +21,29 @@ private static final long serialVersionUID = 1L;
public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvPackageEntity:";
public final static String all = CLASS_NAME + "*";
- public final static String id_ = CLASS_NAME + "id"; //
- public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除
- public final static String create_time = CLASS_NAME + "create_time"; // 创建时间
- public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间
- public final static String package_image_url = CLASS_NAME + "package_image_url"; // 包裹图片url
- public final static String package_logistics_info = CLASS_NAME + "package_logistics_info"; // 包裹物流信息
- public final static String track_number = CLASS_NAME + "track_number"; // 订单追踪号
- public final static String logistics_company = CLASS_NAME + "logistics_company"; // 物流公司
- public final static String shipping_from = CLASS_NAME + "shipping_from"; // 发货地址
- public final static String shipping_to = CLASS_NAME + "shipping_to"; // 收货地址
- public final static String shipping_amount = CLASS_NAME + "shipping_amount"; // 运费
- public final static String ischeck_ = CLASS_NAME + "ischeck"; // 是否签收标记,0未签收,1已签收,2 已经发送妥投消息,3 已妥投,请忽略,明细状态请参考state字段
- public final static String com_ = CLASS_NAME + "com"; // 快递公司编码,一律用小写字母
- public final static String status_ = CLASS_NAME + "status"; // 通讯状态,请忽略
- public final static String state_ = CLASS_NAME + "state"; // 快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值
- public final static String gmt_sign_receipt = CLASS_NAME + "gmt_sign_receipt"; // 签收日期
- public final static String gmt_shipping = CLASS_NAME + "gmt_shipping"; // 发货日期
- public final static String gmt_send_mq_delivered = CLASS_NAME + "gmt_send_mq_delivered"; // 发送消息mq,确认妥投
- public final static String gmt_delivered = CLASS_NAME + "gmt_delivered"; // 已经妥投
- public final static String delivered_by = CLASS_NAME + "delivered_by"; // system:系统,user:用户 ,admin 后台确认
- public final static String shipping_type = CLASS_NAME + "shipping_type"; // order 正向 , reverse 逆向
+ public final static String id_ = CLASS_NAME + "id"; //
+ public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除
+ public final static String create_time = CLASS_NAME + "create_time"; // 创建时间
+ public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间
+ public final static String package_image_url = CLASS_NAME + "package_image_url"; // 包裹图片url
+ public final static String package_logistics_info = CLASS_NAME + "package_logistics_info"; // 包裹物流信息
+ public final static String track_number = CLASS_NAME + "track_number"; // 订单追踪号
+ public final static String logistics_company = CLASS_NAME + "logistics_company"; // 物流公司
+ public final static String shipping_from = CLASS_NAME + "shipping_from"; // 发货地址
+ public final static String shipping_to = CLASS_NAME + "shipping_to"; // 收货地址
+ public final static String shipping_amount = CLASS_NAME + "shipping_amount"; // 运费
+ public final static String ischeck_ = CLASS_NAME + "ischeck"; // 是否签收标记,0未签收,1已签收,2 已经发送妥投消息,3 已妥投,请忽略,明细状态请参考state字段
+ public final static String com_ = CLASS_NAME + "com"; // 快递公司编码,一律用小写字母
+ public final static String status_ = CLASS_NAME + "status"; // 通讯状态,请忽略
+ public final static String state_ = CLASS_NAME + "state"; // 快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值
+ public final static String gmt_sign_receipt = CLASS_NAME + "gmt_sign_receipt"; // 签收日期
+ public final static String gmt_shipping = CLASS_NAME + "gmt_shipping"; // 发货日期
+ public final static String gmt_send_mq_delivered = CLASS_NAME + "gmt_send_mq_delivered"; // 发送消息mq,确认妥投
+ public final static String gmt_delivered = CLASS_NAME + "gmt_delivered"; // 已经妥投
+ public final static String delivered_by = CLASS_NAME + "delivered_by"; // system:系统,user:用户 ,admin 后台确认
+ public final static String shipping_type = CLASS_NAME + "shipping_type"; // order 正向 , reverse 逆向
+ public final static String kuaidi_query_expire_time = CLASS_NAME + "kuaidi_query_expire_time"; // 过期时间,注意:请控制每一单查询频率至少在半小时以上,否则会造成锁单。
+ public final static String sign_receipt_status = CLASS_NAME + "sign_receipt_status"; // not_sign_receipt, sign_receipt
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@@ -85,6 +87,10 @@ private static final long serialVersionUID = 1L;
private String deliveredBy;
//order 正向 , reverse 逆向
private String shippingType;
+ //过期时间,注意:请控制每一单查询频率至少在半小时以上,否则会造成锁单。
+ private Long kuaidiQueryExpireTime;
+ //not_sign_receipt, sign_receipt
+ private String signReceiptStatus;
/**
*
* @return
@@ -400,6 +406,36 @@ private static final long serialVersionUID = 1L;
this.shippingType = shippingType;
}
+ /**
+ * 过期时间,注意:请控制每一单查询频率至少在半小时以上,否则会造成锁单。
+ * @return
+ */
+ public Long getKuaidiQueryExpireTime() {
+ return kuaidiQueryExpireTime;
+ }
+ /**
+ * 过期时间,注意:请控制每一单查询频率至少在半小时以上,否则会造成锁单。
+ * @param kuaidiQueryExpireTime
+ */
+ public void setKuaidiQueryExpireTime(Long kuaidiQueryExpireTime) {
+ this.kuaidiQueryExpireTime = kuaidiQueryExpireTime;
+ }
+
+ /**
+ * not_sign_receipt, sign_receipt
+ * @return
+ */
+ public String getSignReceiptStatus() {
+ return signReceiptStatus;
+ }
+ /**
+ * not_sign_receipt, sign_receipt
+ * @param signReceiptStatus
+ */
+ public void setSignReceiptStatus(String signReceiptStatus) {
+ this.signReceiptStatus = signReceiptStatus;
+ }
+
@Override
public String toString() {
return "VvPackageEntity{" +
@@ -424,6 +460,8 @@ private static final long serialVersionUID = 1L;
",gmtDelivered=" + gmtDelivered +
",deliveredBy=" + deliveredBy +
",shippingType=" + shippingType +
+ ",kuaidiQueryExpireTime=" + kuaidiQueryExpireTime +
+ ",signReceiptStatus=" + signReceiptStatus +
"}";
}
}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/kuaidi100/KuaiDi100Utils.java b/api-mapper/src/main/java/com/heyu/api/data/kuaidi100/KuaiDi100Utils.java
index 0a5e123..ed0c4e6 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/kuaidi100/KuaiDi100Utils.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/kuaidi100/KuaiDi100Utils.java
@@ -32,7 +32,7 @@ public class KuaiDi100Utils {
//queryTrackParam.setCom(LogisticsMapUtils.getCode("极兔速递"));
- queryTrackParam.setNum("JT3137200563019");
+ queryTrackParam.setNum(trackNumber);
// 添加此字段表示开通行政区域解析功能。空:关闭(默认); 1:开通行政区域解析功能以及物流轨迹增加物流状态名称; 4: 开通行政解析功能以及物流轨迹增加物流高级状态名称、状态值并且返回出发、目的及当前城市信息; 8:在4的基础上额外返回预计到达时间和预计轨迹信息,支持的快递公司见在途时效预估支持的快递公司
queryTrackParam.setResultv2("2");
@@ -69,32 +69,35 @@ public class KuaiDi100Utils {
}
-
/**
* 订阅接口
*/
- public static String subscribe(String companyCode, String trackNumber, String phone) throws Exception {
- SubscribeParameters subscribeParameters = new SubscribeParameters();
- subscribeParameters.setCallbackurl("https://api.1024api.com/api-interface/app/kuaidi/callback");
- subscribeParameters.setPhone(phone);
+ public static String subscribe(String companyCode, String trackNumber, String phone) {
+ try {
+ SubscribeParameters subscribeParameters = new SubscribeParameters();
+ subscribeParameters.setCallbackurl("https://api.1024api.com/api-interface/app/kuaidi/callback");
+ subscribeParameters.setPhone(phone);
- SubscribeParam subscribeParam = new SubscribeParam();
- subscribeParam.setParameters(subscribeParameters);
+ SubscribeParam subscribeParam = new SubscribeParam();
+ subscribeParam.setParameters(subscribeParameters);
+ subscribeParam.setCompany(companyCode);
+ subscribeParam.setNumber(trackNumber);
- subscribeParam.setCompany(companyCode);
- subscribeParam.setNumber(trackNumber);
+ subscribeParam.setKey(key);
+ SubscribeReq subscribeReq = new SubscribeReq();
+ subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA);
+ subscribeReq.setParam(new Gson().toJson(subscribeParam));
- subscribeParam.setKey(key);
- SubscribeReq subscribeReq = new SubscribeReq();
- subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA);
- subscribeReq.setParam(new Gson().toJson(subscribeParam));
+ IBaseClient subscribe = new Subscribe();
- IBaseClient subscribe = new Subscribe();
- HttpResult httpResult = subscribe.execute(subscribeReq);
- String body = httpResult.getBody();
- log.info(" subscribe query result body:{}", body);
- return body;
+ HttpResult httpResult = subscribe.execute(subscribeReq);
+
+ String body = httpResult.getBody();
+ log.info(" subscribe query result body:{}", body);
+ return body;
+ } catch (Exception e) {
+ log.error(" subscribe error:{}", e);
+ }
+ return null;
}
-
-
}
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPackageServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPackageServiceImpl.java
index 80e1afb..194a101 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPackageServiceImpl.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPackageServiceImpl.java
@@ -11,6 +11,7 @@ package com.heyu.api.data.service.impl.vv;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.heyu.api.data.constants.ApiConstants;
import com.heyu.api.data.dao.vv.VvPackageDao;
import com.heyu.api.data.dao.vv.VvReverseOrderDao;
import com.heyu.api.data.dao.vv.VvReverseOrderLineDao;
@@ -26,10 +27,7 @@ import com.heyu.api.data.kuaidi100.KuaiDi100Utils;
import com.heyu.api.data.kuaidi100.LogisticsMapUtils;
import com.heyu.api.data.service.vv.VvPackageService;
import com.heyu.api.data.service.vv.VvTradeOrderConvertService;
-import com.heyu.api.data.utils.CollectionUtils;
-import com.heyu.api.data.utils.DateUtils;
-import com.heyu.api.data.utils.SanUtils;
-import com.heyu.api.data.utils.StringUtils;
+import com.heyu.api.data.utils.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.MessageDeliveryMode;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@@ -110,8 +108,15 @@ public class VvPackageServiceImpl extends ServiceImpl {
@@ -188,9 +196,9 @@ public class VvPackageServiceImpl extends ServiceImpl vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvReverseOrderEntity.getId());
- List tradeOrderLineIdList = SanUtils.getFieldList(vvReverseOrderLineEntities,VvReverseOrderLineEntity::getTradeOrderLineId );
+ List tradeOrderLineIdList = SanUtils.getFieldList(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
- if(CollectionUtils.isNotEmpty(tradeOrderLineIdList)){
+ if (CollectionUtils.isNotEmpty(tradeOrderLineIdList)) {
List vvTradeOrderLineEntityList = tradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIdList);
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
tradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.shipped.getStatus());
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvTradeOrderConvertServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvTradeOrderConvertServiceImpl.java
index 4df150a..d0a2f98 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvTradeOrderConvertServiceImpl.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvTradeOrderConvertServiceImpl.java
@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -95,6 +96,7 @@ public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertServic
public int addOrderLineStatusLog(Long tradeOrderLineId, Object status, String changeStatusUser, String ... reason) {
VvTradeOrderLineStatusLogEntity entity = new VvTradeOrderLineStatusLogEntity();
entity.setTradeOrderLineId(tradeOrderLineId);
+ entity.setCurrentTime(new Date());
if (status instanceof OrderStatusEnums) {
entity.setStatus(((OrderStatusEnums) status).getStatus());
entity.setStatusDesc(((OrderStatusEnums) status).getDesc());
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPackageService.java b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPackageService.java
index 2b97dfa..b7b0031 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPackageService.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPackageService.java
@@ -32,5 +32,5 @@ public interface VvPackageService extends IService {
int deleteVvPackageById(Long id);
- KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber,String role);
+ KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber,String role,boolean checkExpireTime);
}
\ No newline at end of file
diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
index b95ef82..418e709 100644
--- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
+++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
@@ -48,10 +48,7 @@ public class MysqlMain_update {
}
List list = new ArrayList();
-
-
-
- list.add(new TablesBean("vv_trade_order_line_status_log"));
+ list.add(new TablesBean("vv_package"));
Map map = MysqlUtil2ShowCreateTable.getComments();
diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvToShippingDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvToShippingDTO.java
index 900c8d4..7fdd0cf 100644
--- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvToShippingDTO.java
+++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvToShippingDTO.java
@@ -37,16 +37,16 @@ public class VvToShippingDTO extends AdminBaseDTO {
VvToShippingDTO vvToPackDTO = new VvToShippingDTO();
List tradeOrderLineIds = new ArrayList<>();
- tradeOrderLineIds.add(202511172477L);
+ tradeOrderLineIds.add(202511172476L);
List packageImageUrls = new ArrayList<>();
packageImageUrls.add("ioewoie");
packageImageUrls.add("ioewoi2");
- vvToPackDTO.setTrackNumber("JT3137200563019");
+ vvToPackDTO.setTrackNumber("78952449837174");
vvToPackDTO.setTradeOrderLineIds(tradeOrderLineIds);
vvToPackDTO.setPackageImageUrls(packageImageUrls);
- vvToPackDTO.setLogisticsCompany("极兔");
+
System.out.println(JSON.toJSONString(vvToPackDTO));
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminLogisticsController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminLogisticsController.java
index d3c276e..e97b9cf 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminLogisticsController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminLogisticsController.java
@@ -42,7 +42,7 @@ public class AdminLogisticsController {
if (CollectionUtils.isEmpty(vvTradeOrderLineEntity)) {
return R.error("trackNumber不是你的");
}
- KuaiDi100DTO kuaiDi100DTO = vvPackageService.selectVvKuaidiAndUpdateData(request.getTrackNumber(), RoleEnums.user.getRole());
+ KuaiDi100DTO kuaiDi100DTO = vvPackageService.selectVvKuaidiAndUpdateData(request.getTrackNumber(), RoleEnums.user.getRole(),false);
return R.ok().setData(kuaiDi100DTO);
}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java
index fd1646f..9de7d32 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java
@@ -5,26 +5,29 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.VvUnShippingDTO;
import com.heyu.api.alibaba.request.mm.order.*;
-import com.heyu.api.data.kuaidi100.AdminPackageDTO;
import com.heyu.api.alibaba.request.mm.order.resp.VVOrderDetailResp;
-import com.heyu.api.data.kuaidi100.VVOrderListResp;
-import com.heyu.api.data.kuaidi100.VvTradeOrderLineDO;
-import com.heyu.api.data.service.impl.AppliyReverseRequest;
import com.heyu.api.common.annotation.Describe;
+import com.heyu.api.data.constants.ApiConstants;
import com.heyu.api.data.dao.vv.*;
import com.heyu.api.data.dto.PackageDelivedDelayDTO;
import com.heyu.api.data.entity.vv.*;
import com.heyu.api.data.enums.*;
+import com.heyu.api.data.kuaidi100.AdminPackageDTO;
+import com.heyu.api.data.kuaidi100.KuaiDi100Utils;
+import com.heyu.api.data.kuaidi100.VVOrderListResp;
+import com.heyu.api.data.kuaidi100.VvTradeOrderLineDO;
+import com.heyu.api.data.service.impl.AbstractOrderAction;
+import com.heyu.api.data.service.impl.AppliyReverseRequest;
import com.heyu.api.data.service.impl.ResourceDTO;
+import com.heyu.api.data.service.impl.ReverseOrderService;
+import com.heyu.api.data.service.vv.VvPackageService;
+import com.heyu.api.data.service.vv.VvTradeOrderConvertService;
import com.heyu.api.data.utils.BigDecimalUtil;
import com.heyu.api.data.utils.DateUtils;
import com.heyu.api.data.utils.R;
import com.heyu.api.data.utils.SanUtils;
import com.heyu.api.jsapi.JsapiPrepay;
import com.heyu.api.jsapi.dto.refund.Refund;
-import com.heyu.api.data.service.impl.ReverseOrderService;
-import com.heyu.api.data.service.vv.VvTradeOrderConvertService;
-import com.heyu.api.data.service.impl.AbstractOrderAction;
import com.heyu.api.utils.ISelect;
import com.heyu.api.utils.PPageUtils;
import lombok.extern.slf4j.Slf4j;
@@ -93,6 +96,9 @@ public class AdminOrderController {
@Autowired
private VvTradeOrderLineStatusLogDao vvTradeOrderLineStatusLogDao;
+ @Autowired
+ private VvPackageService vvPackageService;
+
/***
* 列表
* http://localhost:8888/mm/order/list
@@ -221,15 +227,12 @@ public class AdminOrderController {
}
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(vvTradeOrderLineEntityList.get(0).getTradeOrderId());
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(vvOrderRequest.getTrackNumber());
-
if (vvPackageEntity == null) {
vvPackageEntity = new VvPackageEntity();
}
-
if (CollectionUtils.isNotEmpty(vvOrderRequest.getPackageImageUrls())) {
vvPackageEntity.setPackageImageUrl(JSON.toJSONString(vvOrderRequest.getPackageImageUrls()));
}
-
vvPackageEntity.setLogisticsCompany(vvOrderRequest.getLogisticsCompany());
vvPackageEntity.setShippingAmount(vvOrderRequest.getShippingAmount());
vvPackageEntity.setShippingFrom(vvOrderRequest.getShippingFrom());
@@ -241,7 +244,15 @@ public class AdminOrderController {
vvPackageEntity.setTrackNumber(vvOrderRequest.getTrackNumber());
vvPackageEntity.setShippingType(ShippingTypeEnums.order.getType());
+ vvPackageEntity.setSignReceiptStatus(ApiConstants.NOT_SIGN_RECEIPT);
+
vvPackageDao.insertOrUpdateVvPackage(vvPackageEntity);
+ vvPackageService.selectVvKuaidiAndUpdateData(vvPackageEntity.getTrackNumber(), RoleEnums.admin.getRole(), false);
+
+ VvPackageEntity vvPackageEntityNew = vvPackageDao.selectVvPackageByTrackNumber(vvPackageEntity.getTrackNumber());
+
+ // 创建订阅
+ KuaiDi100Utils.subscribe(vvPackageEntityNew.getCom(), vvPackageEntityNew.getTrackNumber(), vvTradeOrderLineEntityList.get(0).getBuyerPhone());
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
tradeOrderLineEntity.setTrackNumber(vvOrderRequest.getTrackNumber());
@@ -269,7 +280,6 @@ public class AdminOrderController {
return R.error("没有Admin_Un_Shipping按钮");
}
}
-
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
tradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus());
tradeOrderLineEntity.setTrackNumber(null);
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java
index 26e76bb..ab4fc78 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminReverseController.java
@@ -86,6 +86,7 @@ public class AdminReverseController {
);
}
});
+
List vvReverseOrderEntities = pageUtils.getRows();
List reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId);
List reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderIds(reverseOrderIds);
@@ -96,9 +97,10 @@ public class AdminReverseController {
for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) {
if (StringUtils.isNotEmpty(vvReverseOrderEntity.getTrackNumber())) {
trackNumbers.add(vvReverseOrderEntity.getTrackNumber());
- vvPackageService.selectVvKuaidiAndUpdateData(vvReverseOrderEntity.getTrackNumber(), RoleEnums.admin.getRole());
+ vvPackageService.selectVvKuaidiAndUpdateData(vvReverseOrderEntity.getTrackNumber(), RoleEnums.admin.getRole(),true);
}
}
+
Map vvPackageEntityMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(trackNumbers)) {
List packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppKuaiDiCallBackController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppKuaiDiCallBackController.java
index 09a710c..6fed76c 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppKuaiDiCallBackController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppKuaiDiCallBackController.java
@@ -28,11 +28,25 @@ public class AppKuaiDiCallBackController {
*
* 列表
*/
+ /**
+ * 订阅推送处理(参照) - 重构版本,不依赖servlet-api
+ * 订阅成功后,如果该快递单号有轨迹(包括已经签收的单),快递100将会在15分钟-4个小时推送;后面将会4个小时跟踪一次,跟踪到有轨迹变化则推送;
+ * 如果订阅成功后,3天查无结果(录错单/快递公司错了/揽收比较晚),快递100将会推送3天查无结果,可以继续重新订阅。
+ *
+ * 返回值必须是下面这样的格式,否则快递100将认为该推送失败,快递100将会重试3次该推送,时间间隔35分钟;
+ * 成功结果返回例子: {"result":true,"returnCode":"200","message":"提交成功"}
+ *
+ * @param param 快递100推送的参数内容
+ * @param sign 快递100推送的签名
+ * @return: com.kuaidi100.sdk.response.SubscribeResp
+ * @author: api.kuaidi100.com
+ * @time: 2020/7/16 19:48
+ */
+
@Describe("快递100回调接口")
@RequestMapping("/callback")
public SubscribeResp callback(String param, String sign) {
- log.info("kuaidi callback param:{},sign", param, sign);
-
+ log.info("AppKuaiDiCallBackController callback param:{},sign", param, sign);
//建议记录一下这个回调的内容,方便出问题后双方排查问题
//log.debug("快递100订阅推送回调结果|{}|{}",param,sign);
//订阅时传的salt,没有可以忽略
@@ -49,7 +63,7 @@ public class AppKuaiDiCallBackController {
SubscribePushResult subscribePushResult = subscribePushParamResp.getLastResult();
if (subscribePushResult != null) {
- vvPackageService.selectVvKuaidiAndUpdateData(subscribePushResult.getNu(), RoleEnums.kuaidi100_callback.getRole());
+ vvPackageService.selectVvKuaidiAndUpdateData(subscribePushResult.getNu(), RoleEnums.kuaidi100_callback.getRole(), false);
}
return subscribeResp;
}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppLogisticsController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppLogisticsController.java
index 8e3187d..3b07f67 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppLogisticsController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppLogisticsController.java
@@ -31,7 +31,6 @@ public class AppLogisticsController {
@Autowired
private VvPackageService vvPackageService;
-
// http://localhost:8888/app/logistics/query
@Describe("物流查询")
@RequestMapping("/query")
@@ -40,7 +39,7 @@ public class AppLogisticsController {
if (CollectionUtils.isEmpty(vvTradeOrderLineEntity)) {
return R.error("trackNumber不是你的");
}
- KuaiDi100DTO kuaiDi100DTO = vvPackageService.selectVvKuaidiAndUpdateData(request.getTrackNumber(), RoleEnums.user.getRole());
+ KuaiDi100DTO kuaiDi100DTO = vvPackageService.selectVvKuaidiAndUpdateData(request.getTrackNumber(), RoleEnums.user.getRole(), true);
return R.ok().setData(kuaiDi100DTO);
}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java
index 32b1258..b27683f 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java
@@ -166,7 +166,7 @@ public class AppOrderController {
List trackNumbers = SanUtils.field2Set2List(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTrackNumber);
if (CollectionUtils.isNotEmpty(trackNumbers)) {
for (String trackNumber : trackNumbers) {
- vvPackageService.selectVvKuaidiAndUpdateData(trackNumber, RoleEnums.user.getRole());
+ vvPackageService.selectVvKuaidiAndUpdateData(trackNumber, RoleEnums.user.getRole(),true);
}
}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/schedule/impl/PackageUpdateJob.java b/api-web/api-interface/src/main/java/com/heyu/api/schedule/impl/PackageUpdateJob.java
index 86edf3f..56ac7c0 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/schedule/impl/PackageUpdateJob.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/schedule/impl/PackageUpdateJob.java
@@ -1,6 +1,7 @@
package com.heyu.api.schedule.impl;
+import com.heyu.api.data.constants.ApiConstants;
import com.heyu.api.data.dao.vv.VvPackageDao;
import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.enums.RoleEnums;
@@ -9,7 +10,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import java.util.Arrays;
import java.util.List;
@Component("packageUpdateJob")
@@ -25,10 +25,10 @@ public class PackageUpdateJob {
private VvPackageService vvPackageService;
public void run() {
- List vvPackageEntityList = vvPackageDao.selectVvPackageByIsCheckNotIN(Arrays.asList("2", "3"));
+ List vvPackageEntityList = vvPackageDao.selectVvPackageBySignReceiptStatus(ApiConstants.NOT_SIGN_RECEIPT);
for (VvPackageEntity vvPackageEntity : vvPackageEntityList) {
- vvPackageService.selectVvKuaidiAndUpdateData(vvPackageEntity.getTrackNumber(), RoleEnums.job.getRole());
+ vvPackageService.selectVvKuaidiAndUpdateData(vvPackageEntity.getTrackNumber(), RoleEnums.job.getRole(),false);
}
}
}