juqwhnt
This commit is contained in:
parent
b1421066b0
commit
10f7ac05b1
@ -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";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 定时任务状态
|
* 定时任务状态
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
package com.heyu.api.data.dao.vv;
|
package com.heyu.api.data.dao.vv;
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 包裹表 服务类
|
* 包裹表 服务类
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author quyixiao
|
* @author quyixiao
|
||||||
* @since 2025-08-23
|
* @since 2025-08-23
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
||||||
@ -23,7 +23,7 @@ import java.util.List;
|
|||||||
public interface VvPackageDao extends BaseMapper<VvPackageEntity> {
|
public interface VvPackageDao extends BaseMapper<VvPackageEntity> {
|
||||||
|
|
||||||
|
|
||||||
VvPackageEntity selectVvPackageById(@Param("id")Long id);
|
VvPackageEntity selectVvPackageById(@Param("id") Long id);
|
||||||
|
|
||||||
|
|
||||||
Long insertVvPackage(VvPackageEntity vvPackage);
|
Long insertVvPackage(VvPackageEntity vvPackage);
|
||||||
@ -38,17 +38,17 @@ public interface VvPackageDao extends BaseMapper<VvPackageEntity> {
|
|||||||
int updateCoverVvPackageById(VvPackageEntity vvPackage);
|
int updateCoverVvPackageById(VvPackageEntity vvPackage);
|
||||||
|
|
||||||
|
|
||||||
int deleteVvPackageById(@Param("id")Long id);
|
int deleteVvPackageById(@Param("id") Long id);
|
||||||
|
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
@ -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 +
|
||||||
"}";
|
"}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,17 +150,18 @@ 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())) {
|
||||||
PackageDelivedDelayDTO dto = new PackageDelivedDelayDTO();
|
PackageDelivedDelayDTO dto = new PackageDelivedDelayDTO();
|
||||||
dto.setPackageId(vvPackageEntity.getId() );
|
dto.setPackageId(vvPackageEntity.getId());
|
||||||
dto.setRole(role);
|
dto.setRole(role);
|
||||||
dto.setSendTime(DateUtils.formatDate(new Date(), com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
|
dto.setSendTime(DateUtils.formatDate(new Date(), com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
|
||||||
dto.setDelayTime(DateUtils.formatDate(timeAfter15, com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
|
dto.setDelayTime(DateUtils.formatDate(timeAfter15, com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
|
||||||
dto.setType(DelayTypeEnums.delivered.getType());
|
dto.setType(DelayTypeEnums.delivered.getType());
|
||||||
int second = DateUtils.betweenSecond(time, timeAfter15);
|
int second = DateUtils.betweenSecond(time, timeAfter15);
|
||||||
log.info("VvPackageServiceImpl delay send :{}",JSON.toJSONString(dto));
|
log.info("VvPackageServiceImpl delay send :{}", JSON.toJSONString(dto));
|
||||||
|
|
||||||
// 通过广播模式发布延时消息 延时30分钟 持久化消息 消费后销毁 这里无需指定路由,会广播至每个绑定此交换机的队列
|
// 通过广播模式发布延时消息 延时30分钟 持久化消息 消费后销毁 这里无需指定路由,会广播至每个绑定此交换机的队列
|
||||||
rabbitTemplate.convertAndSend(delayExchangeName, "", JSON.toJSONString(dto), message -> {
|
rabbitTemplate.convertAndSend(delayExchangeName, "", JSON.toJSONString(dto), message -> {
|
||||||
@ -188,9 +196,9 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
|
|||||||
vvReverseOrderEntity.setShippedUser(RoleEnums.system.getRole());
|
vvReverseOrderEntity.setShippedUser(RoleEnums.system.getRole());
|
||||||
List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvReverseOrderEntity.getId());
|
List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvReverseOrderEntity.getId());
|
||||||
|
|
||||||
List<Long> tradeOrderLineIdList = SanUtils.getFieldList(vvReverseOrderLineEntities,VvReverseOrderLineEntity::getTradeOrderLineId );
|
List<Long> tradeOrderLineIdList = SanUtils.getFieldList(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
|
||||||
|
|
||||||
if(CollectionUtils.isNotEmpty(tradeOrderLineIdList)){
|
if (CollectionUtils.isNotEmpty(tradeOrderLineIdList)) {
|
||||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = tradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIdList);
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = tradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIdList);
|
||||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||||
tradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.shipped.getStatus());
|
tradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.shipped.getStatus());
|
||||||
|
|||||||
@ -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());
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
@ -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();
|
||||||
|
|||||||
@ -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));
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user