提交修改
This commit is contained in:
parent
5f5f17761c
commit
68b96deeb6
@ -2,8 +2,7 @@
|
||||
package com.heyu.api.data.config;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.core.AcknowledgeMode;
|
||||
import org.springframework.amqp.core.Queue;
|
||||
import org.springframework.amqp.core.*;
|
||||
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
|
||||
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
@ -12,6 +11,9 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author wutao
|
||||
* @description mq配置
|
||||
@ -63,6 +65,30 @@ public class RabbitConfig {
|
||||
|
||||
|
||||
|
||||
@Bean
|
||||
public Queue delayQueue(@Value("${eb.config.rabbitQueue.delayQueue}") String queueName) {
|
||||
return new Queue(queueName,true);
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------- 定义exchange ---------------------------------
|
||||
// 定义广播模式的延时交换机 无需绑定路由
|
||||
@Bean
|
||||
FanoutExchange delayExchange(@Value("${eb.config.rabbitQueue.delayExchangeName}") String delay_exchange_name){
|
||||
Map<String, Object> args = new HashMap<String, Object>();
|
||||
args.put("x-delayed-type", "direct");
|
||||
FanoutExchange topicExchange = new FanoutExchange(delay_exchange_name, true, false, args);
|
||||
topicExchange.setDelayed(true);
|
||||
return topicExchange;
|
||||
}
|
||||
|
||||
// 绑定延时队列与交换机
|
||||
@Bean
|
||||
public Binding delayPayBind(@Value("${eb.config.rabbitQueue.delayQueue}") String delay_queue_name,
|
||||
@Value("${eb.config.rabbitQueue.delayExchangeName}") String delay_exchange_name ) {
|
||||
return BindingBuilder.bind(delayQueue(delay_queue_name)).to(delayExchange(delay_exchange_name));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@ import com.heyu.api.data.entity.vv.VvPackageEntity;
|
||||
import com.lz.mybatis.plugin.annotations.IFNullReturnEmpty;
|
||||
import com.lz.mybatis.plugin.annotations.IN;
|
||||
import com.lz.mybatis.plugin.annotations.LIMIT;
|
||||
import com.lz.mybatis.plugin.annotations.NotIn;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@ -49,4 +50,5 @@ public interface VvPackageDao extends BaseMapper<VvPackageEntity> {
|
||||
@LIMIT
|
||||
VvPackageEntity selectVvPackageByTrackNumber(String trackNumber);
|
||||
|
||||
List<VvPackageEntity> selectVvPackageByIsCheckNotIN(@NotIn List<String> ischeck);
|
||||
}
|
||||
23
api-mapper/src/main/java/com/heyu/api/data/dto/DelayDTO.java
Normal file
23
api-mapper/src/main/java/com/heyu/api/data/dto/DelayDTO.java
Normal file
@ -0,0 +1,23 @@
|
||||
package com.heyu.api.data.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DelayDTO {
|
||||
|
||||
private String sendTime;
|
||||
/***
|
||||
*
|
||||
*/
|
||||
private String delayTime;
|
||||
|
||||
/***
|
||||
* 谁调用的
|
||||
*/
|
||||
private String role;
|
||||
|
||||
/***
|
||||
* 当前类型
|
||||
*/
|
||||
private String type;
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package com.heyu.api.data.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PackageDelivedDelayDTO extends DelayDTO{
|
||||
|
||||
private String packageId;
|
||||
|
||||
}
|
||||
@ -1,16 +1,16 @@
|
||||
package com.heyu.api.data.entity.vv;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.lz.mybatis.plugin.annotations.AS;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.Date;import java.util.Date;
|
||||
/**
|
||||
*购物车
|
||||
* @author quyixiao
|
||||
* @since 2025-10-22
|
||||
* @since 2025-10-23
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ -39,10 +39,6 @@ private static final long serialVersionUID = 1L;
|
||||
public final static String sku_id = CLASS_NAME + "sku_id"; // skuid
|
||||
public final static String sku_image_url = CLASS_NAME + "sku_image_url"; // sku图片
|
||||
public final static String comment_id = CLASS_NAME + "comment_id"; // 评论 id
|
||||
public final static String gmt_down_order = CLASS_NAME + "gmt_down_order"; // 下单时间
|
||||
public final static String gmt_pay = CLASS_NAME + "gmt_pay"; // 支付时间
|
||||
public final static String gmt_to_shipping = CLASS_NAME + "gmt_to_shipping"; // 打包时间
|
||||
public final static String gmt_delivered = CLASS_NAME + "gmt_delivered"; // 妥投时间
|
||||
public final static String delivered_type = CLASS_NAME + "delivered_type"; // 1 买家手动确认收货, 2 系统自动确认收货
|
||||
public final static String settle_status = CLASS_NAME + "settle_status"; // 0 未结算,1 已经结算
|
||||
public final static String gmt_settle = CLASS_NAME + "gmt_settle"; // 结算时间
|
||||
@ -63,6 +59,13 @@ private static final long serialVersionUID = 1L;
|
||||
public final static String batch_num = CLASS_NAME + "batch_num"; // 批次数量
|
||||
public final static String shipping_amount = CLASS_NAME + "shipping_amount"; // 运费
|
||||
public final static String promotion_price = CLASS_NAME + "promotion_price"; // 当时促销价
|
||||
public final static String state_ = CLASS_NAME + "state"; // 快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值
|
||||
public final static String gmt_down_order = CLASS_NAME + "gmt_down_order"; // 下单时间
|
||||
public final static String gmt_pay = CLASS_NAME + "gmt_pay"; // 支付时间
|
||||
public final static String gmt_to_shipping = CLASS_NAME + "gmt_to_shipping"; // 打包时间
|
||||
public final static String gmt_sign_receipt = CLASS_NAME + "gmt_sign_receipt"; // 签收日期
|
||||
public final static String gmt_delivered = CLASS_NAME + "gmt_delivered"; // 妥投时间
|
||||
public final static String delivered_by = CLASS_NAME + "delivered_by"; // system:系统,user:用户 ,admin 后台确认
|
||||
//
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
@ -100,14 +103,6 @@ private static final long serialVersionUID = 1L;
|
||||
private String skuImageUrl;
|
||||
//评论 id
|
||||
private Long commentId;
|
||||
//下单时间
|
||||
private Date gmtDownOrder;
|
||||
//支付时间
|
||||
private Date gmtPay;
|
||||
//打包时间
|
||||
private Date gmtToShipping;
|
||||
//妥投时间
|
||||
private Date gmtDelivered;
|
||||
//1 买家手动确认收货, 2 系统自动确认收货
|
||||
private Integer deliveredType;
|
||||
//0 未结算,1 已经结算
|
||||
@ -148,6 +143,20 @@ private static final long serialVersionUID = 1L;
|
||||
private BigDecimal shippingAmount;
|
||||
//当时促销价
|
||||
private BigDecimal promotionPrice;
|
||||
//快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值
|
||||
private String state;
|
||||
//下单时间
|
||||
private Date gmtDownOrder;
|
||||
//支付时间
|
||||
private Date gmtPay;
|
||||
//打包时间
|
||||
private Date gmtToShipping;
|
||||
//签收日期
|
||||
private Date gmtSignReceipt;
|
||||
//妥投时间
|
||||
private Date gmtDelivered;
|
||||
//system:系统,user:用户 ,admin 后台确认
|
||||
private String deliveredBy;
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
@ -418,66 +427,6 @@ private static final long serialVersionUID = 1L;
|
||||
this.commentId = commentId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 下单时间
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtDownOrder() {
|
||||
return gmtDownOrder;
|
||||
}
|
||||
/**
|
||||
* 下单时间
|
||||
* @param gmtDownOrder
|
||||
*/
|
||||
public void setGmtDownOrder(Date gmtDownOrder) {
|
||||
this.gmtDownOrder = gmtDownOrder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtPay() {
|
||||
return gmtPay;
|
||||
}
|
||||
/**
|
||||
* 支付时间
|
||||
* @param gmtPay
|
||||
*/
|
||||
public void setGmtPay(Date gmtPay) {
|
||||
this.gmtPay = gmtPay;
|
||||
}
|
||||
|
||||
/**
|
||||
* 打包时间
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtToShipping() {
|
||||
return gmtToShipping;
|
||||
}
|
||||
/**
|
||||
* 打包时间
|
||||
* @param gmtToShipping
|
||||
*/
|
||||
public void setGmtToShipping(Date gmtToShipping) {
|
||||
this.gmtToShipping = gmtToShipping;
|
||||
}
|
||||
|
||||
/**
|
||||
* 妥投时间
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtDelivered() {
|
||||
return gmtDelivered;
|
||||
}
|
||||
/**
|
||||
* 妥投时间
|
||||
* @param gmtDelivered
|
||||
*/
|
||||
public void setGmtDelivered(Date gmtDelivered) {
|
||||
this.gmtDelivered = gmtDelivered;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1 买家手动确认收货, 2 系统自动确认收货
|
||||
* @return
|
||||
@ -778,6 +727,111 @@ private static final long serialVersionUID = 1L;
|
||||
this.promotionPrice = promotionPrice;
|
||||
}
|
||||
|
||||
/**
|
||||
* 快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值
|
||||
* @return
|
||||
*/
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
/**
|
||||
* 快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值
|
||||
* @param state
|
||||
*/
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
/**
|
||||
* 下单时间
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtDownOrder() {
|
||||
return gmtDownOrder;
|
||||
}
|
||||
/**
|
||||
* 下单时间
|
||||
* @param gmtDownOrder
|
||||
*/
|
||||
public void setGmtDownOrder(Date gmtDownOrder) {
|
||||
this.gmtDownOrder = gmtDownOrder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtPay() {
|
||||
return gmtPay;
|
||||
}
|
||||
/**
|
||||
* 支付时间
|
||||
* @param gmtPay
|
||||
*/
|
||||
public void setGmtPay(Date gmtPay) {
|
||||
this.gmtPay = gmtPay;
|
||||
}
|
||||
|
||||
/**
|
||||
* 打包时间
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtToShipping() {
|
||||
return gmtToShipping;
|
||||
}
|
||||
/**
|
||||
* 打包时间
|
||||
* @param gmtToShipping
|
||||
*/
|
||||
public void setGmtToShipping(Date gmtToShipping) {
|
||||
this.gmtToShipping = gmtToShipping;
|
||||
}
|
||||
|
||||
/**
|
||||
* 签收日期
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtSignReceipt() {
|
||||
return gmtSignReceipt;
|
||||
}
|
||||
/**
|
||||
* 签收日期
|
||||
* @param gmtSignReceipt
|
||||
*/
|
||||
public void setGmtSignReceipt(Date gmtSignReceipt) {
|
||||
this.gmtSignReceipt = gmtSignReceipt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 妥投时间
|
||||
* @return
|
||||
*/
|
||||
public Date getGmtDelivered() {
|
||||
return gmtDelivered;
|
||||
}
|
||||
/**
|
||||
* 妥投时间
|
||||
* @param gmtDelivered
|
||||
*/
|
||||
public void setGmtDelivered(Date gmtDelivered) {
|
||||
this.gmtDelivered = gmtDelivered;
|
||||
}
|
||||
|
||||
/**
|
||||
* system:系统,user:用户 ,admin 后台确认
|
||||
* @return
|
||||
*/
|
||||
public String getDeliveredBy() {
|
||||
return deliveredBy;
|
||||
}
|
||||
/**
|
||||
* system:系统,user:用户 ,admin 后台确认
|
||||
* @param deliveredBy
|
||||
*/
|
||||
public void setDeliveredBy(String deliveredBy) {
|
||||
this.deliveredBy = deliveredBy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VvTradeOrderLineEntity{" +
|
||||
@ -799,10 +853,6 @@ private static final long serialVersionUID = 1L;
|
||||
",skuId=" + skuId +
|
||||
",skuImageUrl=" + skuImageUrl +
|
||||
",commentId=" + commentId +
|
||||
",gmtDownOrder=" + gmtDownOrder +
|
||||
",gmtPay=" + gmtPay +
|
||||
",gmtToShipping=" + gmtToShipping +
|
||||
",gmtDelivered=" + gmtDelivered +
|
||||
",deliveredType=" + deliveredType +
|
||||
",settleStatus=" + settleStatus +
|
||||
",gmtSettle=" + gmtSettle +
|
||||
@ -823,6 +873,13 @@ private static final long serialVersionUID = 1L;
|
||||
",batchNum=" + batchNum +
|
||||
",shippingAmount=" + shippingAmount +
|
||||
",promotionPrice=" + promotionPrice +
|
||||
",state=" + state +
|
||||
",gmtDownOrder=" + gmtDownOrder +
|
||||
",gmtPay=" + gmtPay +
|
||||
",gmtToShipping=" + gmtToShipping +
|
||||
",gmtSignReceipt=" + gmtSignReceipt +
|
||||
",gmtDelivered=" + gmtDelivered +
|
||||
",deliveredBy=" + deliveredBy +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.heyu.api.data.enums;
|
||||
|
||||
|
||||
public enum RoleEnums {
|
||||
system("system","系统"),
|
||||
user("user","用户"),
|
||||
admin("admin","后台"),
|
||||
job("job","定时任务"),
|
||||
kuaidi100_callback("kuaidi100_callback","快递100回调"),
|
||||
;
|
||||
|
||||
RoleEnums(String role, String desc) {
|
||||
this.role = role;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public String getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public void setRole(String role) {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
private String role;
|
||||
|
||||
private String desc;
|
||||
}
|
||||
@ -1,82 +1,106 @@
|
||||
package com.heyu.api.data.service.impl.vv;
|
||||
/**
|
||||
* <p>
|
||||
* 包裹表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author quyixiao
|
||||
* @since 2025-08-23
|
||||
*/
|
||||
* <p>
|
||||
* 包裹表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author quyixiao
|
||||
* @since 2025-08-23
|
||||
*/
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.heyu.api.data.dao.vv.VvPackageDao;
|
||||
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
|
||||
import com.heyu.api.data.dto.PackageDelivedDelayDTO;
|
||||
import com.heyu.api.data.dto.vv.KuaiDi100DTO;
|
||||
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||
import com.heyu.api.data.enums.KuaiDi100StateEnums;
|
||||
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.utils.DateUtils;
|
||||
import com.heyu.api.data.utils.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.core.MessageDeliveryMode;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEntity> implements VvPackageService {
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPackageDao vvPackageDao;
|
||||
private VvPackageDao vvPackageDao;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public VvPackageEntity selectVvPackageById(Long id){
|
||||
return vvPackageDao.selectVvPackageById(id);
|
||||
}
|
||||
@Value("${eb.config.rabbitQueue.delayQueue}")
|
||||
private String delayQueue;
|
||||
|
||||
|
||||
@Value("${eb.config.rabbitQueue.delayExchangeName}")
|
||||
private String delayExchangeName;
|
||||
|
||||
@Override
|
||||
public Long insertVvPackage(VvPackageEntity vvPackage){
|
||||
return vvPackageDao.insertVvPackage(vvPackage);
|
||||
}
|
||||
@Autowired
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvTradeOrderLineDao tradeOrderLineDao;
|
||||
|
||||
@Override
|
||||
public Long insertOrUpdateVvPackage(VvPackageEntity vvPackage){
|
||||
return vvPackageDao.insertOrUpdateVvPackage(vvPackage);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public int updateVvPackageById(VvPackageEntity vvPackage){
|
||||
return vvPackageDao.updateVvPackageById(vvPackage);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public int updateCoverVvPackageById(VvPackageEntity vvPackage){
|
||||
return vvPackageDao.updateCoverVvPackageById(vvPackage);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public int deleteVvPackageById(Long id){
|
||||
return vvPackageDao.deleteVvPackageById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber) {
|
||||
public VvPackageEntity selectVvPackageById(Long id) {
|
||||
return vvPackageDao.selectVvPackageById(id);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Long insertVvPackage(VvPackageEntity vvPackage) {
|
||||
return vvPackageDao.insertVvPackage(vvPackage);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Long insertOrUpdateVvPackage(VvPackageEntity vvPackage) {
|
||||
return vvPackageDao.insertOrUpdateVvPackage(vvPackage);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int updateVvPackageById(VvPackageEntity vvPackage) {
|
||||
return vvPackageDao.updateVvPackageById(vvPackage);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int updateCoverVvPackageById(VvPackageEntity vvPackage) {
|
||||
return vvPackageDao.updateCoverVvPackageById(vvPackage);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int deleteVvPackageById(Long id) {
|
||||
return vvPackageDao.deleteVvPackageById(id);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber, String role) {
|
||||
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(trackNumber);
|
||||
KuaiDi100DTO kuaiDi100DTO = null;
|
||||
// 如果是已经签收状态
|
||||
if (KuaiDi100StateEnums.sign_receipt.getState().equals(vvPackageEntity.getState())) {
|
||||
kuaiDi100DTO = JSONObject.parseObject(vvPackageEntity.getPackageLogisticsInfo(), KuaiDi100DTO.class);
|
||||
} else {
|
||||
} else { //如果当次查到的是已经签收状态
|
||||
kuaiDi100DTO = KuaiDi100Utils.getLogisticsInfo(trackNumber);
|
||||
vvPackageEntity.setIscheck(kuaiDi100DTO.getIscheck());
|
||||
vvPackageEntity.setCom(kuaiDi100DTO.getCom());
|
||||
@ -86,18 +110,60 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
|
||||
|
||||
if (StringUtils.isBlank(vvPackageEntity.getLogisticsCompany())
|
||||
&& StringUtils.isNotEmpty(kuaiDi100DTO.getCom())) {
|
||||
|
||||
vvPackageEntity.setLogisticsCompany(LogisticsMapUtils.getLogisticsCompanyName(kuaiDi100DTO.getCom()));
|
||||
}
|
||||
|
||||
if (kuaiDi100DTO.getRouteInfo() != null
|
||||
&& kuaiDi100DTO.getRouteInfo().getFrom() != null
|
||||
) {
|
||||
vvPackageEntity.setShippingFrom(kuaiDi100DTO.getRouteInfo().getFrom().getName());
|
||||
}
|
||||
// 如果查询出来包裹状态已经签收
|
||||
if (KuaiDi100StateEnums.sign_receipt.getState().equals(kuaiDi100DTO.getState())) {
|
||||
List<KuaiDi100DTO.DataDTO> dataDTOS = kuaiDi100DTO.getData();
|
||||
if (dataDTOS != null && dataDTOS.size() > 0) {
|
||||
for (KuaiDi100DTO.DataDTO dataDTO : dataDTOS) {
|
||||
String status = dataDTO.getStatus();
|
||||
if (KuaiDi100StateEnums.sign_receipt.getDesc().equals(status)) {
|
||||
String fTime = dataDTO.getFtime();
|
||||
Date time = DateUtils.parseDate(fTime);
|
||||
Date timeAfter15 = DateUtils.addDays(time, 15);
|
||||
|
||||
// 设置签收时间
|
||||
vvPackageEntity.setGmtSignReceipt(time);
|
||||
PackageDelivedDelayDTO dto = new PackageDelivedDelayDTO();
|
||||
dto.setPackageId(vvPackageEntity.getId() + "");
|
||||
dto.setRole(role);
|
||||
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));
|
||||
|
||||
int second = DateUtils.betweenSecond(time, timeAfter15);
|
||||
log.info("VvPackageServiceImpl delay send :{}",JSON.toJSONString(dto));
|
||||
// 通过广播模式发布延时消息 延时30分钟 持久化消息 消费后销毁 这里无需指定路由,会广播至每个绑定此交换机的队列
|
||||
rabbitTemplate.convertAndSend(delayExchangeName, "", JSON.toJSONString(dto), message -> {
|
||||
message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);
|
||||
message.getMessageProperties().setDelay((second) * 1000); // 毫秒为单位,指定此消息的延时时长 ,+ 1 尽量保证机器人跑完了,再发送消息
|
||||
return message;
|
||||
});
|
||||
|
||||
// 设置已经发送消息了
|
||||
vvPackageEntity.setIscheck("2");
|
||||
vvPackageEntity.setGmtSendMqDelivered(new Date());
|
||||
|
||||
|
||||
|
||||
List<VvTradeOrderLineEntity> tradeOrderLineEntities = tradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(trackNumber);
|
||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : tradeOrderLineEntities) {
|
||||
tradeOrderLineEntity.setGmtSignReceipt(time);
|
||||
tradeOrderLineEntity.setState(kuaiDi100DTO.getState());
|
||||
|
||||
tradeOrderLineDao.updateVvTradeOrderLineById(tradeOrderLineEntity);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
vvPackageDao.updateVvPackageById(vvPackageEntity);
|
||||
|
||||
}
|
||||
return kuaiDi100DTO;
|
||||
}
|
||||
|
||||
@ -32,5 +32,5 @@ public interface VvPackageService extends IService<VvPackageEntity> {
|
||||
int deleteVvPackageById(Long id);
|
||||
|
||||
|
||||
KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber);
|
||||
KuaiDi100DTO selectVvKuaidiAndUpdateData(String trackNumber,String role);
|
||||
}
|
||||
@ -49,7 +49,7 @@ public class MysqlMain_update {
|
||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||
|
||||
|
||||
String a = "vv_package";
|
||||
String a = "vv_trade_order_line";
|
||||
for (String s : a.split(",")) {
|
||||
list.add(new TablesBean(s));
|
||||
}
|
||||
|
||||
@ -2,8 +2,8 @@ package com.heyu.api.controller.vv;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.heyu.api.common.annotation.Describe;
|
||||
import com.heyu.api.data.dao.vv.VvPackageDao;
|
||||
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
||||
import com.heyu.api.data.enums.RoleEnums;
|
||||
import com.heyu.api.data.service.vv.VvPackageService;
|
||||
import com.kuaidi100.sdk.response.SubscribePushParamResp;
|
||||
import com.kuaidi100.sdk.response.SubscribePushResult;
|
||||
import com.kuaidi100.sdk.response.SubscribeResp;
|
||||
@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
public class AppKuaiDiCallBackController {
|
||||
|
||||
@Autowired
|
||||
private VvPackageDao vvPackageDao;
|
||||
private VvPackageService vvPackageService;
|
||||
|
||||
/***
|
||||
* https://api.1024api.com/api-interface/app/kuaidi/callback
|
||||
@ -30,7 +30,7 @@ public class AppKuaiDiCallBackController {
|
||||
@RequestMapping("/callback")
|
||||
public SubscribeResp callback(String param, String sign) {
|
||||
|
||||
log.info("kuaidi callback param:{},sign", param,sign);
|
||||
log.info("kuaidi callback param:{},sign", param, sign);
|
||||
|
||||
//建议记录一下这个回调的内容,方便出问题后双方排查问题
|
||||
//log.debug("快递100订阅推送回调结果|{}|{}",param,sign);
|
||||
@ -42,18 +42,13 @@ public class AppKuaiDiCallBackController {
|
||||
subscribeResp.setReturnCode("200");
|
||||
subscribeResp.setMessage("成功");
|
||||
//加密如果相等,属于快递100推送;否则可以忽略掉当前请求
|
||||
if (ourSign.equals(sign)){
|
||||
if (ourSign.equals(sign)) {
|
||||
//TODO 业务处理
|
||||
SubscribePushParamResp subscribePushParamResp = new Gson().fromJson(param, SubscribePushParamResp.class);
|
||||
|
||||
SubscribePushResult subscribePushResult = subscribePushParamResp.getLastResult();
|
||||
if(subscribePushResult !=null){
|
||||
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(subscribePushResult.getNu());
|
||||
vvPackageEntity.setIscheck(subscribePushResult.getIscheck());
|
||||
vvPackageEntity.setCom(subscribePushResult.getCom());
|
||||
vvPackageEntity.setStatus(subscribePushResult.getStatus());
|
||||
vvPackageEntity.setState(subscribePushResult.getState());
|
||||
vvPackageDao.updateVvPackageById(vvPackageEntity);
|
||||
if (subscribePushResult != null) {
|
||||
vvPackageService.selectVvKuaidiAndUpdateData(subscribePushResult.getNu(), RoleEnums.kuaidi100_callback.getRole());
|
||||
}
|
||||
return subscribeResp;
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ import com.heyu.api.data.dao.vv.VvPackageDao;
|
||||
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
|
||||
import com.heyu.api.data.dto.vv.KuaiDi100DTO;
|
||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||
import com.heyu.api.data.enums.RoleEnums;
|
||||
import com.heyu.api.data.service.vv.VvPackageService;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -38,17 +39,12 @@ public class AppLogisticsController {
|
||||
@Describe("物流查询")
|
||||
@RequestMapping("/query")
|
||||
public R query(@RequestBody VvAppLogisticsRequest request) {
|
||||
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntity = vvTradeOrderLineDao.selectVvTradeOrderLineByBuyerIdTrackNumber(request.getBuyerId(), request.getTrackNumber());
|
||||
|
||||
if (CollectionUtils.isEmpty(vvTradeOrderLineEntity)) {
|
||||
return R.error("trackNumber不是你的");
|
||||
}
|
||||
|
||||
|
||||
KuaiDi100DTO kuaiDi100DTO = vvPackageService.selectVvKuaidiAndUpdateData(request.getTrackNumber());
|
||||
|
||||
|
||||
KuaiDi100DTO kuaiDi100DTO = vvPackageService.selectVvKuaidiAndUpdateData(request.getTrackNumber(), RoleEnums.user.getRole());
|
||||
|
||||
|
||||
return R.ok().setData(kuaiDi100DTO);
|
||||
|
||||
@ -6,14 +6,17 @@ import com.heyu.api.common.annotation.Describe;
|
||||
import com.heyu.api.data.dao.vv.VvAllDataDao;
|
||||
import com.heyu.api.data.dao.vv.VvChartConfigDao;
|
||||
import com.heyu.api.data.dao.vv.VvCreateDataConfigDao;
|
||||
import com.heyu.api.data.dto.PackageDelivedDelayDTO;
|
||||
import com.heyu.api.data.dto.VvCreateDataConfigDTO;
|
||||
import com.heyu.api.data.entity.vv.VvChartConfigEntity;
|
||||
import com.heyu.api.data.entity.vv.VvCreateDataConfigEntity;
|
||||
import com.heyu.api.data.utils.ChartUtil;
|
||||
import com.heyu.api.data.utils.DateUtils;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.oss.OssFileUploadService;
|
||||
import com.heyu.api.schedule.CronTriggerUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.core.MessageDeliveryMode;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -50,8 +53,6 @@ public class AppTestController {
|
||||
private VvChartConfigDao vvChartConfigDao;
|
||||
|
||||
|
||||
|
||||
|
||||
@Value("${eb.config.rabbitQueue.createDataQueue}")
|
||||
private String createDataQueue;
|
||||
|
||||
@ -63,6 +64,14 @@ public class AppTestController {
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
|
||||
|
||||
@Value("${eb.config.rabbitQueue.delayQueue}")
|
||||
private String delayQueue;
|
||||
|
||||
|
||||
@Value("${eb.config.rabbitQueue.delayExchangeName}")
|
||||
private String delayExchangeName;
|
||||
|
||||
|
||||
// /app/test/insert
|
||||
@Describe("测试数据插入")
|
||||
@RequestMapping("/insert")
|
||||
@ -94,9 +103,29 @@ public class AppTestController {
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(System.currentTimeMillis() );
|
||||
// /app/test/delay
|
||||
@Describe("测试延迟队列")
|
||||
@RequestMapping("/delay")
|
||||
public R delay(@RequestBody AppOrderRequest vvOrderRequest) throws Exception {
|
||||
PackageDelivedDelayDTO dto = new PackageDelivedDelayDTO();
|
||||
dto.setPackageId("10");
|
||||
dto.setRole("test");
|
||||
Date time = new Date();
|
||||
Date timeAfter15 = DateUtils.addSeconds(time, 10);
|
||||
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));
|
||||
|
||||
int second = DateUtils.betweenSecond(time, timeAfter15);
|
||||
// 通过广播模式发布延时消息 延时30分钟 持久化消息 消费后销毁 这里无需指定路由,会广播至每个绑定此交换机的队列
|
||||
rabbitTemplate.convertAndSend(delayExchangeName, "", JSON.toJSONString(dto), message -> {
|
||||
message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);
|
||||
message.getMessageProperties().setDelay((second) * 1000); // 毫秒为单位,指定此消息的延时时长 ,+ 1 尽量保证机器人跑完了,再发送消息
|
||||
return message;
|
||||
});
|
||||
return R.ok();
|
||||
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
System.out.println(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,49 @@
|
||||
package com.heyu.api.listener;
|
||||
|
||||
import com.rabbitmq.client.Channel;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.amqp.support.AmqpHeaders;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.messaging.handler.annotation.Header;
|
||||
import org.springframework.messaging.handler.annotation.Payload;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class DelaySimpleRabbitListener {
|
||||
|
||||
@Value("${eb.config.rabbitQueue.delayQueue}")
|
||||
private String delayQueue;
|
||||
|
||||
|
||||
@RabbitHandler
|
||||
@RabbitListener(queues = "#{delayQueue.name}", containerFactory = "accountAmountQueueSimpleRabbitListenerContainerFactory")
|
||||
public void consumeMessage(@Payload String message, @Header(AmqpHeaders.DELIVERY_TAG) long delivertTag, Channel channel) {
|
||||
try {
|
||||
log.info("DeliveredDelaySimpleRabbitListener delayQueue :{} message:{}", delayQueue, message);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("DeliveredDelaySimpleRabbitListener handle", e);
|
||||
} finally {
|
||||
try {
|
||||
log.info("DeliveredDelaySimpleRabbitListener 消息{},消息确认完成", message);
|
||||
channel.basicAck(delivertTag, true);
|
||||
} catch (IOException e) {
|
||||
log.error("DeliveredDelaySimpleRabbitListener 消息确认异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package com.heyu.api.schedule.impl;
|
||||
|
||||
|
||||
import com.heyu.api.data.dao.vv.VvPackageDao;
|
||||
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
||||
import com.heyu.api.data.enums.RoleEnums;
|
||||
import com.heyu.api.data.service.vv.VvPackageService;
|
||||
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")
|
||||
@Slf4j
|
||||
public class PackageUpdateJob {
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPackageDao vvPackageDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPackageService vvPackageService;
|
||||
|
||||
public void run() {
|
||||
|
||||
|
||||
List<VvPackageEntity> vvPackageEntityList = vvPackageDao.selectVvPackageByIsCheckNotIN(Arrays.asList("2", "3"));
|
||||
|
||||
for (VvPackageEntity vvPackageEntity : vvPackageEntityList) {
|
||||
|
||||
vvPackageService.selectVvKuaidiAndUpdateData(vvPackageEntity.getTrackNumber(), RoleEnums.job.getRole());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -60,6 +60,8 @@ eb:
|
||||
urlStatisticQueue: URL_STATISTIC_QUEUE
|
||||
createDataQueue: CREATE_DATA_QUEUE_TEST
|
||||
sendDingDingQueue: SEND_DING_DING_QUEUE_TEST
|
||||
delayQueue: DELAY_QUEUE_NAME
|
||||
delayExchangeName: DELAY_EXCHANGE_NAME
|
||||
|
||||
|
||||
tencent:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user