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); } } }