This commit is contained in:
quyixiao 2025-11-18 23:57:02 +08:00
parent b1421066b0
commit 10f7ac05b1
16 changed files with 175 additions and 100 deletions

View File

@ -88,6 +88,8 @@ public class ApiConstants {
public static final String MM_ADMIN_LOGIN_RUI = "/mm/admin/login"; public static final String MM_ADMIN_LOGIN_RUI = "/mm/admin/login";
public static final String get = "get"; public static final String get = "get";
public static String NOT_SIGN_RECEIPT = "not_sign_receipt";
public static String SIGN_RECEIPT = "sign_receipt";
/** /**
* 定时任务状态 * 定时任务状态

View File

@ -43,12 +43,12 @@ public interface VvPackageDao extends BaseMapper<VvPackageEntity> {
List<VvPackageEntity> selectVvPackageByTrackNumbers(@IFNullReturnEmpty @IN List<String> trackNumber); List<VvPackageEntity> selectVvPackageByTrackNumbers(@IFNullReturnEmpty @IN List<String> trackNumber);
@LIMIT @LIMIT
VvPackageEntity selectVvPackageByTrackNumber(String trackNumber); VvPackageEntity selectVvPackageByTrackNumber(String trackNumber);
List<VvPackageEntity> selectVvPackageByIsCheckNotIN(@NotIn List<String> ischeck); List<VvPackageEntity> selectVvPackageByIsCheckNotIN(@NotIn List<String> ischeck);
List<VvPackageEntity> selectVvPackageBySignReceiptStatus(String signReceiptStatus);
} }

View File

@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/** /**
*包裹表 *包裹表
* @author quyixiao * @author quyixiao
* @since 2025-10-28 * @since 2025-11-18
*/ */
@Data @Data
@ -42,6 +42,8 @@ private static final long serialVersionUID = 1L;
public final static String gmt_delivered = CLASS_NAME + "gmt_delivered"; // 已经妥投 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 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 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) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
@ -85,6 +87,10 @@ private static final long serialVersionUID = 1L;
private String deliveredBy; private String deliveredBy;
//order 正向 reverse 逆向 //order 正向 reverse 逆向
private String shippingType; private String shippingType;
//过期时间注意请控制每一单查询频率至少在半小时以上否则会造成锁单
private Long kuaidiQueryExpireTime;
//not_sign_receipt, sign_receipt
private String signReceiptStatus;
/** /**
* *
* @return * @return
@ -400,6 +406,36 @@ private static final long serialVersionUID = 1L;
this.shippingType = shippingType; 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 @Override
public String toString() { public String toString() {
return "VvPackageEntity{" + return "VvPackageEntity{" +
@ -424,6 +460,8 @@ private static final long serialVersionUID = 1L;
",gmtDelivered=" + gmtDelivered + ",gmtDelivered=" + gmtDelivered +
",deliveredBy=" + deliveredBy + ",deliveredBy=" + deliveredBy +
",shippingType=" + shippingType + ",shippingType=" + shippingType +
",kuaidiQueryExpireTime=" + kuaidiQueryExpireTime +
",signReceiptStatus=" + signReceiptStatus +
"}"; "}";
} }
} }

View File

@ -32,7 +32,7 @@ public class KuaiDi100Utils {
//queryTrackParam.setCom(LogisticsMapUtils.getCode("极兔速递")); //queryTrackParam.setCom(LogisticsMapUtils.getCode("极兔速递"));
queryTrackParam.setNum("JT3137200563019"); queryTrackParam.setNum(trackNumber);
// 添加此字段表示开通行政区域解析功能关闭默认 1开通行政区域解析功能以及物流轨迹增加物流状态名称 4: 开通行政解析功能以及物流轨迹增加物流高级状态名称状态值并且返回出发目的及当前城市信息 8在4的基础上额外返回预计到达时间和预计轨迹信息支持的快递公司见在途时效预估支持的快递公司 // 添加此字段表示开通行政区域解析功能关闭默认 1开通行政区域解析功能以及物流轨迹增加物流状态名称 4: 开通行政解析功能以及物流轨迹增加物流高级状态名称状态值并且返回出发目的及当前城市信息 8在4的基础上额外返回预计到达时间和预计轨迹信息支持的快递公司见在途时效预估支持的快递公司
queryTrackParam.setResultv2("2"); queryTrackParam.setResultv2("2");
@ -69,18 +69,17 @@ public class KuaiDi100Utils {
} }
/** /**
* 订阅接口 * 订阅接口
*/ */
public static String subscribe(String companyCode, String trackNumber, String phone) throws Exception { public static String subscribe(String companyCode, String trackNumber, String phone) {
try {
SubscribeParameters subscribeParameters = new SubscribeParameters(); SubscribeParameters subscribeParameters = new SubscribeParameters();
subscribeParameters.setCallbackurl("https://api.1024api.com/api-interface/app/kuaidi/callback"); subscribeParameters.setCallbackurl("https://api.1024api.com/api-interface/app/kuaidi/callback");
subscribeParameters.setPhone(phone); subscribeParameters.setPhone(phone);
SubscribeParam subscribeParam = new SubscribeParam(); SubscribeParam subscribeParam = new SubscribeParam();
subscribeParam.setParameters(subscribeParameters); subscribeParam.setParameters(subscribeParameters);
subscribeParam.setCompany(companyCode); subscribeParam.setCompany(companyCode);
subscribeParam.setNumber(trackNumber); subscribeParam.setNumber(trackNumber);
@ -90,11 +89,15 @@ public class KuaiDi100Utils {
subscribeReq.setParam(new Gson().toJson(subscribeParam)); subscribeReq.setParam(new Gson().toJson(subscribeParam));
IBaseClient subscribe = new Subscribe(); IBaseClient subscribe = new Subscribe();
HttpResult httpResult = subscribe.execute(subscribeReq); HttpResult httpResult = subscribe.execute(subscribeReq);
String body = httpResult.getBody(); String body = httpResult.getBody();
log.info(" subscribe query result body:{}", body); log.info(" subscribe query result body:{}", body);
return body; return body;
} catch (Exception e) {
log.error(" subscribe error:{}", e);
}
return null;
} }
} }

View File

@ -11,6 +11,7 @@ package com.heyu.api.data.service.impl.vv;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.VvPackageDao;
import com.heyu.api.data.dao.vv.VvReverseOrderDao; import com.heyu.api.data.dao.vv.VvReverseOrderDao;
import com.heyu.api.data.dao.vv.VvReverseOrderLineDao; 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.kuaidi100.LogisticsMapUtils;
import com.heyu.api.data.service.vv.VvPackageService; import com.heyu.api.data.service.vv.VvPackageService;
import com.heyu.api.data.service.vv.VvTradeOrderConvertService; import com.heyu.api.data.service.vv.VvTradeOrderConvertService;
import com.heyu.api.data.utils.CollectionUtils; import com.heyu.api.data.utils.*;
import com.heyu.api.data.utils.DateUtils;
import com.heyu.api.data.utils.SanUtils;
import com.heyu.api.data.utils.StringUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.MessageDeliveryMode; import org.springframework.amqp.core.MessageDeliveryMode;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
@ -110,8 +108,15 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
@Override @Override
public KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber, String role) { public KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber, String role, boolean checkExpireTime) {
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(trackNumber); VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(trackNumber);
Long kuaidiQueryExpireTimeDB = NumberUtil.objToLongDefault(vvPackageEntity.getKuaidiQueryExpireTime(), 0L);
Date kuaidiQueryExpireTime = DateUtils.addMinutes(new Date(), 40);
if (checkExpireTime && System.currentTimeMillis() < kuaidiQueryExpireTimeDB) {
return JSONObject.parseObject(vvPackageEntity.getPackageLogisticsInfo(), KuaiDi100DTO.class);
}
log.info("selectVvKuaidiAndUpdateData select packageLogisticsInfo trackNumber:{}", trackNumber);
KuaiDi100DTO kuaiDi100DTO = null; KuaiDi100DTO kuaiDi100DTO = null;
// 如果是已经签收状态 // 如果是已经签收状态
if (KuaiDi100StateEnums.sign_receipt.getState().equals(vvPackageEntity.getState())) { if (KuaiDi100StateEnums.sign_receipt.getState().equals(vvPackageEntity.getState())) {
@ -123,6 +128,8 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
vvPackageEntity.setStatus(kuaiDi100DTO.getStatus()); vvPackageEntity.setStatus(kuaiDi100DTO.getStatus());
vvPackageEntity.setState(kuaiDi100DTO.getState()); vvPackageEntity.setState(kuaiDi100DTO.getState());
vvPackageEntity.setPackageLogisticsInfo(JSON.toJSONString(kuaiDi100DTO)); vvPackageEntity.setPackageLogisticsInfo(JSON.toJSONString(kuaiDi100DTO));
vvPackageEntity.setKuaidiQueryExpireTime(kuaidiQueryExpireTime.getTime());
if (StringUtils.isBlank(vvPackageEntity.getLogisticsCompany()) if (StringUtils.isBlank(vvPackageEntity.getLogisticsCompany())
&& StringUtils.isNotEmpty(kuaiDi100DTO.getCom())) { && StringUtils.isNotEmpty(kuaiDi100DTO.getCom())) {
vvPackageEntity.setLogisticsCompany(LogisticsMapUtils.getLogisticsCompanyName(kuaiDi100DTO.getCom())); vvPackageEntity.setLogisticsCompany(LogisticsMapUtils.getLogisticsCompanyName(kuaiDi100DTO.getCom()));
@ -143,6 +150,7 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
Date timeAfter15 = DateUtils.addDays(time, 15); Date timeAfter15 = DateUtils.addDays(time, 15);
// 设置签收时间 // 设置签收时间
vvPackageEntity.setGmtSignReceipt(time); vvPackageEntity.setGmtSignReceipt(time);
vvPackageEntity.setSignReceiptStatus(ApiConstants.SIGN_RECEIPT);
// 如果是正向订单 // 如果是正向订单
if (ShippingTypeEnums.order.getType().equals(vvPackageEntity.getShippingType())) { if (ShippingTypeEnums.order.getType().equals(vvPackageEntity.getShippingType())) {

View File

@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -95,6 +96,7 @@ public class VvTradeOrderConvertServiceImpl implements VvTradeOrderConvertServic
public int addOrderLineStatusLog(Long tradeOrderLineId, Object status, String changeStatusUser, String ... reason) { public int addOrderLineStatusLog(Long tradeOrderLineId, Object status, String changeStatusUser, String ... reason) {
VvTradeOrderLineStatusLogEntity entity = new VvTradeOrderLineStatusLogEntity(); VvTradeOrderLineStatusLogEntity entity = new VvTradeOrderLineStatusLogEntity();
entity.setTradeOrderLineId(tradeOrderLineId); entity.setTradeOrderLineId(tradeOrderLineId);
entity.setCurrentTime(new Date());
if (status instanceof OrderStatusEnums) { if (status instanceof OrderStatusEnums) {
entity.setStatus(((OrderStatusEnums) status).getStatus()); entity.setStatus(((OrderStatusEnums) status).getStatus());
entity.setStatusDesc(((OrderStatusEnums) status).getDesc()); entity.setStatusDesc(((OrderStatusEnums) status).getDesc());

View File

@ -32,5 +32,5 @@ public interface VvPackageService extends IService<VvPackageEntity> {
int deleteVvPackageById(Long id); int deleteVvPackageById(Long id);
KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber,String role); KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber,String role,boolean checkExpireTime);
} }

View File

@ -48,10 +48,7 @@ public class MysqlMain_update {
} }
List<TablesBean> list = new ArrayList<TablesBean>(); List<TablesBean> list = new ArrayList<TablesBean>();
list.add(new TablesBean("vv_package"));
list.add(new TablesBean("vv_trade_order_line_status_log"));
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments(); Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();

View File

@ -37,16 +37,16 @@ public class VvToShippingDTO extends AdminBaseDTO {
VvToShippingDTO vvToPackDTO = new VvToShippingDTO(); VvToShippingDTO vvToPackDTO = new VvToShippingDTO();
List<Long> tradeOrderLineIds = new ArrayList<>(); List<Long> tradeOrderLineIds = new ArrayList<>();
tradeOrderLineIds.add(202511172477L); tradeOrderLineIds.add(202511172476L);
List<String> packageImageUrls = new ArrayList<>(); List<String> packageImageUrls = new ArrayList<>();
packageImageUrls.add("ioewoie"); packageImageUrls.add("ioewoie");
packageImageUrls.add("ioewoi2"); packageImageUrls.add("ioewoi2");
vvToPackDTO.setTrackNumber("JT3137200563019"); vvToPackDTO.setTrackNumber("78952449837174");
vvToPackDTO.setTradeOrderLineIds(tradeOrderLineIds); vvToPackDTO.setTradeOrderLineIds(tradeOrderLineIds);
vvToPackDTO.setPackageImageUrls(packageImageUrls); vvToPackDTO.setPackageImageUrls(packageImageUrls);
vvToPackDTO.setLogisticsCompany("极兔");
System.out.println(JSON.toJSONString(vvToPackDTO)); System.out.println(JSON.toJSONString(vvToPackDTO));

View File

@ -42,7 +42,7 @@ public class AdminLogisticsController {
if (CollectionUtils.isEmpty(vvTradeOrderLineEntity)) { if (CollectionUtils.isEmpty(vvTradeOrderLineEntity)) {
return R.error("trackNumber不是你的"); 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); return R.ok().setData(kuaiDi100DTO);
} }

View File

@ -5,26 +5,29 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heyu.api.alibaba.request.mm.VvUnShippingDTO; import com.heyu.api.alibaba.request.mm.VvUnShippingDTO;
import com.heyu.api.alibaba.request.mm.order.*; 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.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.common.annotation.Describe;
import com.heyu.api.data.constants.ApiConstants;
import com.heyu.api.data.dao.vv.*; import com.heyu.api.data.dao.vv.*;
import com.heyu.api.data.dto.PackageDelivedDelayDTO; import com.heyu.api.data.dto.PackageDelivedDelayDTO;
import com.heyu.api.data.entity.vv.*; import com.heyu.api.data.entity.vv.*;
import com.heyu.api.data.enums.*; 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.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.BigDecimalUtil;
import com.heyu.api.data.utils.DateUtils; import com.heyu.api.data.utils.DateUtils;
import com.heyu.api.data.utils.R; import com.heyu.api.data.utils.R;
import com.heyu.api.data.utils.SanUtils; import com.heyu.api.data.utils.SanUtils;
import com.heyu.api.jsapi.JsapiPrepay; import com.heyu.api.jsapi.JsapiPrepay;
import com.heyu.api.jsapi.dto.refund.Refund; 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.ISelect;
import com.heyu.api.utils.PPageUtils; import com.heyu.api.utils.PPageUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -93,6 +96,9 @@ public class AdminOrderController {
@Autowired @Autowired
private VvTradeOrderLineStatusLogDao vvTradeOrderLineStatusLogDao; private VvTradeOrderLineStatusLogDao vvTradeOrderLineStatusLogDao;
@Autowired
private VvPackageService vvPackageService;
/*** /***
* 列表 * 列表
* http://localhost:8888/mm/order/list * http://localhost:8888/mm/order/list
@ -221,15 +227,12 @@ public class AdminOrderController {
} }
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(vvTradeOrderLineEntityList.get(0).getTradeOrderId()); VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(vvTradeOrderLineEntityList.get(0).getTradeOrderId());
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(vvOrderRequest.getTrackNumber()); VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(vvOrderRequest.getTrackNumber());
if (vvPackageEntity == null) { if (vvPackageEntity == null) {
vvPackageEntity = new VvPackageEntity(); vvPackageEntity = new VvPackageEntity();
} }
if (CollectionUtils.isNotEmpty(vvOrderRequest.getPackageImageUrls())) { if (CollectionUtils.isNotEmpty(vvOrderRequest.getPackageImageUrls())) {
vvPackageEntity.setPackageImageUrl(JSON.toJSONString(vvOrderRequest.getPackageImageUrls())); vvPackageEntity.setPackageImageUrl(JSON.toJSONString(vvOrderRequest.getPackageImageUrls()));
} }
vvPackageEntity.setLogisticsCompany(vvOrderRequest.getLogisticsCompany()); vvPackageEntity.setLogisticsCompany(vvOrderRequest.getLogisticsCompany());
vvPackageEntity.setShippingAmount(vvOrderRequest.getShippingAmount()); vvPackageEntity.setShippingAmount(vvOrderRequest.getShippingAmount());
vvPackageEntity.setShippingFrom(vvOrderRequest.getShippingFrom()); vvPackageEntity.setShippingFrom(vvOrderRequest.getShippingFrom());
@ -241,7 +244,15 @@ public class AdminOrderController {
vvPackageEntity.setTrackNumber(vvOrderRequest.getTrackNumber()); vvPackageEntity.setTrackNumber(vvOrderRequest.getTrackNumber());
vvPackageEntity.setShippingType(ShippingTypeEnums.order.getType()); vvPackageEntity.setShippingType(ShippingTypeEnums.order.getType());
vvPackageEntity.setSignReceiptStatus(ApiConstants.NOT_SIGN_RECEIPT);
vvPackageDao.insertOrUpdateVvPackage(vvPackageEntity); 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) { for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
tradeOrderLineEntity.setTrackNumber(vvOrderRequest.getTrackNumber()); tradeOrderLineEntity.setTrackNumber(vvOrderRequest.getTrackNumber());
@ -269,7 +280,6 @@ public class AdminOrderController {
return R.error("没有Admin_Un_Shipping按钮"); return R.error("没有Admin_Un_Shipping按钮");
} }
} }
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
tradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus()); tradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus());
tradeOrderLineEntity.setTrackNumber(null); tradeOrderLineEntity.setTrackNumber(null);

View File

@ -86,6 +86,7 @@ public class AdminReverseController {
); );
} }
}); });
List<VvReverseOrderEntity> vvReverseOrderEntities = pageUtils.getRows(); List<VvReverseOrderEntity> vvReverseOrderEntities = pageUtils.getRows();
List<Long> reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId); List<Long> reverseOrderIds = SanUtils.list2listFilterNull(vvReverseOrderEntities, VvReverseOrderEntity::getId);
List<VvReverseOrderLineEntity> reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderIds(reverseOrderIds); List<VvReverseOrderLineEntity> reverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderIds(reverseOrderIds);
@ -96,9 +97,10 @@ public class AdminReverseController {
for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) { for (VvReverseOrderEntity vvReverseOrderEntity : vvReverseOrderEntities) {
if (StringUtils.isNotEmpty(vvReverseOrderEntity.getTrackNumber())) { if (StringUtils.isNotEmpty(vvReverseOrderEntity.getTrackNumber())) {
trackNumbers.add(vvReverseOrderEntity.getTrackNumber()); trackNumbers.add(vvReverseOrderEntity.getTrackNumber());
vvPackageService.selectVvKuaidiAndUpdateData(vvReverseOrderEntity.getTrackNumber(), RoleEnums.admin.getRole()); vvPackageService.selectVvKuaidiAndUpdateData(vvReverseOrderEntity.getTrackNumber(), RoleEnums.admin.getRole(),true);
} }
} }
Map<String, VvPackageEntity> vvPackageEntityMap = new HashMap<>(); Map<String, VvPackageEntity> vvPackageEntityMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(trackNumbers)) { if (CollectionUtils.isNotEmpty(trackNumbers)) {
List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers); List<VvPackageEntity> packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers);

View File

@ -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回调接口") @Describe("快递100回调接口")
@RequestMapping("/callback") @RequestMapping("/callback")
public SubscribeResp callback(String param, String sign) { 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); //log.debug("快递100订阅推送回调结果|{}|{}",param,sign);
//订阅时传的salt,没有可以忽略 //订阅时传的salt,没有可以忽略
@ -49,7 +63,7 @@ public class AppKuaiDiCallBackController {
SubscribePushResult subscribePushResult = subscribePushParamResp.getLastResult(); SubscribePushResult subscribePushResult = subscribePushParamResp.getLastResult();
if (subscribePushResult != null) { if (subscribePushResult != null) {
vvPackageService.selectVvKuaidiAndUpdateData(subscribePushResult.getNu(), RoleEnums.kuaidi100_callback.getRole()); vvPackageService.selectVvKuaidiAndUpdateData(subscribePushResult.getNu(), RoleEnums.kuaidi100_callback.getRole(), false);
} }
return subscribeResp; return subscribeResp;
} }

View File

@ -31,7 +31,6 @@ public class AppLogisticsController {
@Autowired @Autowired
private VvPackageService vvPackageService; private VvPackageService vvPackageService;
// http://localhost:8888/app/logistics/query // http://localhost:8888/app/logistics/query
@Describe("物流查询") @Describe("物流查询")
@RequestMapping("/query") @RequestMapping("/query")
@ -40,7 +39,7 @@ public class AppLogisticsController {
if (CollectionUtils.isEmpty(vvTradeOrderLineEntity)) { if (CollectionUtils.isEmpty(vvTradeOrderLineEntity)) {
return R.error("trackNumber不是你的"); 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); return R.ok().setData(kuaiDi100DTO);
} }

View File

@ -166,7 +166,7 @@ public class AppOrderController {
List<String> trackNumbers = SanUtils.field2Set2List(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTrackNumber); List<String> trackNumbers = SanUtils.field2Set2List(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTrackNumber);
if (CollectionUtils.isNotEmpty(trackNumbers)) { if (CollectionUtils.isNotEmpty(trackNumbers)) {
for (String trackNumber : trackNumbers) { for (String trackNumber : trackNumbers) {
vvPackageService.selectVvKuaidiAndUpdateData(trackNumber, RoleEnums.user.getRole()); vvPackageService.selectVvKuaidiAndUpdateData(trackNumber, RoleEnums.user.getRole(),true);
} }
} }

View File

@ -1,6 +1,7 @@
package com.heyu.api.schedule.impl; 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.dao.vv.VvPackageDao;
import com.heyu.api.data.entity.vv.VvPackageEntity; import com.heyu.api.data.entity.vv.VvPackageEntity;
import com.heyu.api.data.enums.RoleEnums; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List; import java.util.List;
@Component("packageUpdateJob") @Component("packageUpdateJob")
@ -25,10 +25,10 @@ public class PackageUpdateJob {
private VvPackageService vvPackageService; private VvPackageService vvPackageService;
public void run() { public void run() {
List<VvPackageEntity> vvPackageEntityList = vvPackageDao.selectVvPackageByIsCheckNotIN(Arrays.asList("2", "3")); List<VvPackageEntity> vvPackageEntityList = vvPackageDao.selectVvPackageBySignReceiptStatus(ApiConstants.NOT_SIGN_RECEIPT);
for (VvPackageEntity vvPackageEntity : vvPackageEntityList) { for (VvPackageEntity vvPackageEntity : vvPackageEntityList) {
vvPackageService.selectVvKuaidiAndUpdateData(vvPackageEntity.getTrackNumber(), RoleEnums.job.getRole()); vvPackageService.selectVvKuaidiAndUpdateData(vvPackageEntity.getTrackNumber(), RoleEnums.job.getRole(),false);
} }
} }
} }