提交修改
This commit is contained in:
parent
5f5f17761c
commit
68b96deeb6
@ -2,8 +2,7 @@
|
|||||||
package com.heyu.api.data.config;
|
package com.heyu.api.data.config;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.amqp.core.AcknowledgeMode;
|
import org.springframework.amqp.core.*;
|
||||||
import org.springframework.amqp.core.Queue;
|
|
||||||
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
|
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
|
||||||
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
|
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
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.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author wutao
|
* @author wutao
|
||||||
* @description mq配置
|
* @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.IFNullReturnEmpty;
|
||||||
import com.lz.mybatis.plugin.annotations.IN;
|
import com.lz.mybatis.plugin.annotations.IN;
|
||||||
import com.lz.mybatis.plugin.annotations.LIMIT;
|
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.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@ -49,4 +50,5 @@ public interface VvPackageDao extends BaseMapper<VvPackageEntity> {
|
|||||||
@LIMIT
|
@LIMIT
|
||||||
VvPackageEntity selectVvPackageByTrackNumber(String trackNumber);
|
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;
|
package com.heyu.api.data.entity.vv;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import com.lz.mybatis.plugin.annotations.AS;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;import java.util.Date;
|
||||||
/**
|
/**
|
||||||
*购物车
|
*购物车
|
||||||
* @author quyixiao
|
* @author quyixiao
|
||||||
* @since 2025-10-22
|
* @since 2025-10-23
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Data
|
@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_id = CLASS_NAME + "sku_id"; // skuid
|
||||||
public final static String sku_image_url = CLASS_NAME + "sku_image_url"; // sku图片
|
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 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 delivered_type = CLASS_NAME + "delivered_type"; // 1 买家手动确认收货, 2 系统自动确认收货
|
||||||
public final static String settle_status = CLASS_NAME + "settle_status"; // 0 未结算,1 已经结算
|
public final static String settle_status = CLASS_NAME + "settle_status"; // 0 未结算,1 已经结算
|
||||||
public final static String gmt_settle = CLASS_NAME + "gmt_settle"; // 结算时间
|
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 batch_num = CLASS_NAME + "batch_num"; // 批次数量
|
||||||
public final static String shipping_amount = CLASS_NAME + "shipping_amount"; // 运费
|
public final static String shipping_amount = CLASS_NAME + "shipping_amount"; // 运费
|
||||||
public final static String promotion_price = CLASS_NAME + "promotion_price"; // 当时促销价
|
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)
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
private Long id;
|
private Long id;
|
||||||
@ -100,14 +103,6 @@ private static final long serialVersionUID = 1L;
|
|||||||
private String skuImageUrl;
|
private String skuImageUrl;
|
||||||
//评论 id
|
//评论 id
|
||||||
private Long commentId;
|
private Long commentId;
|
||||||
//下单时间
|
|
||||||
private Date gmtDownOrder;
|
|
||||||
//支付时间
|
|
||||||
private Date gmtPay;
|
|
||||||
//打包时间
|
|
||||||
private Date gmtToShipping;
|
|
||||||
//妥投时间
|
|
||||||
private Date gmtDelivered;
|
|
||||||
//1 买家手动确认收货, 2 系统自动确认收货
|
//1 买家手动确认收货, 2 系统自动确认收货
|
||||||
private Integer deliveredType;
|
private Integer deliveredType;
|
||||||
//0 未结算,1 已经结算
|
//0 未结算,1 已经结算
|
||||||
@ -148,6 +143,20 @@ private static final long serialVersionUID = 1L;
|
|||||||
private BigDecimal shippingAmount;
|
private BigDecimal shippingAmount;
|
||||||
//当时促销价
|
//当时促销价
|
||||||
private BigDecimal promotionPrice;
|
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
|
* @return
|
||||||
@ -418,66 +427,6 @@ private static final long serialVersionUID = 1L;
|
|||||||
this.commentId = commentId;
|
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 系统自动确认收货
|
* 1 买家手动确认收货, 2 系统自动确认收货
|
||||||
* @return
|
* @return
|
||||||
@ -778,6 +727,111 @@ private static final long serialVersionUID = 1L;
|
|||||||
this.promotionPrice = promotionPrice;
|
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
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "VvTradeOrderLineEntity{" +
|
return "VvTradeOrderLineEntity{" +
|
||||||
@ -799,10 +853,6 @@ private static final long serialVersionUID = 1L;
|
|||||||
",skuId=" + skuId +
|
",skuId=" + skuId +
|
||||||
",skuImageUrl=" + skuImageUrl +
|
",skuImageUrl=" + skuImageUrl +
|
||||||
",commentId=" + commentId +
|
",commentId=" + commentId +
|
||||||
",gmtDownOrder=" + gmtDownOrder +
|
|
||||||
",gmtPay=" + gmtPay +
|
|
||||||
",gmtToShipping=" + gmtToShipping +
|
|
||||||
",gmtDelivered=" + gmtDelivered +
|
|
||||||
",deliveredType=" + deliveredType +
|
",deliveredType=" + deliveredType +
|
||||||
",settleStatus=" + settleStatus +
|
",settleStatus=" + settleStatus +
|
||||||
",gmtSettle=" + gmtSettle +
|
",gmtSettle=" + gmtSettle +
|
||||||
@ -823,6 +873,13 @@ private static final long serialVersionUID = 1L;
|
|||||||
",batchNum=" + batchNum +
|
",batchNum=" + batchNum +
|
||||||
",shippingAmount=" + shippingAmount +
|
",shippingAmount=" + shippingAmount +
|
||||||
",promotionPrice=" + promotionPrice +
|
",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;
|
package com.heyu.api.data.service.impl.vv;
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 包裹表 服务类
|
* 包裹表 服务类
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author quyixiao
|
* @author quyixiao
|
||||||
* @since 2025-08-23
|
* @since 2025-08-23
|
||||||
*/
|
*/
|
||||||
|
|
||||||
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.dao.vv.VvPackageDao;
|
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.dto.vv.KuaiDi100DTO;
|
||||||
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
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.enums.KuaiDi100StateEnums;
|
||||||
import com.heyu.api.data.kuaidi100.KuaiDi100Utils;
|
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.utils.DateUtils;
|
||||||
import com.heyu.api.data.utils.StringUtils;
|
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.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEntity> implements VvPackageService {
|
public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEntity> implements VvPackageService {
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private VvPackageDao vvPackageDao;
|
private VvPackageDao vvPackageDao;
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${eb.config.rabbitQueue.delayQueue}")
|
||||||
@Override
|
private String delayQueue;
|
||||||
public VvPackageEntity selectVvPackageById(Long id){
|
|
||||||
return vvPackageDao.selectVvPackageById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${eb.config.rabbitQueue.delayExchangeName}")
|
||||||
|
private String delayExchangeName;
|
||||||
|
|
||||||
@Override
|
@Autowired
|
||||||
public Long insertVvPackage(VvPackageEntity vvPackage){
|
private RabbitTemplate rabbitTemplate;
|
||||||
return vvPackageDao.insertVvPackage(vvPackage);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@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
|
@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);
|
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(trackNumber);
|
||||||
KuaiDi100DTO kuaiDi100DTO = null;
|
KuaiDi100DTO kuaiDi100DTO = null;
|
||||||
|
// 如果是已经签收状态
|
||||||
if (KuaiDi100StateEnums.sign_receipt.getState().equals(vvPackageEntity.getState())) {
|
if (KuaiDi100StateEnums.sign_receipt.getState().equals(vvPackageEntity.getState())) {
|
||||||
kuaiDi100DTO = JSONObject.parseObject(vvPackageEntity.getPackageLogisticsInfo(), KuaiDi100DTO.class);
|
kuaiDi100DTO = JSONObject.parseObject(vvPackageEntity.getPackageLogisticsInfo(), KuaiDi100DTO.class);
|
||||||
} else {
|
} else { //如果当次查到的是已经签收状态
|
||||||
kuaiDi100DTO = KuaiDi100Utils.getLogisticsInfo(trackNumber);
|
kuaiDi100DTO = KuaiDi100Utils.getLogisticsInfo(trackNumber);
|
||||||
vvPackageEntity.setIscheck(kuaiDi100DTO.getIscheck());
|
vvPackageEntity.setIscheck(kuaiDi100DTO.getIscheck());
|
||||||
vvPackageEntity.setCom(kuaiDi100DTO.getCom());
|
vvPackageEntity.setCom(kuaiDi100DTO.getCom());
|
||||||
@ -86,18 +110,60 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
|
|||||||
|
|
||||||
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()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kuaiDi100DTO.getRouteInfo() != null
|
if (kuaiDi100DTO.getRouteInfo() != null
|
||||||
&& kuaiDi100DTO.getRouteInfo().getFrom() != null
|
&& kuaiDi100DTO.getRouteInfo().getFrom() != null
|
||||||
) {
|
) {
|
||||||
vvPackageEntity.setShippingFrom(kuaiDi100DTO.getRouteInfo().getFrom().getName());
|
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);
|
vvPackageDao.updateVvPackageById(vvPackageEntity);
|
||||||
|
|
||||||
}
|
}
|
||||||
return kuaiDi100DTO;
|
return kuaiDi100DTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,5 +32,5 @@ public interface VvPackageService extends IService<VvPackageEntity> {
|
|||||||
int deleteVvPackageById(Long id);
|
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>();
|
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||||
|
|
||||||
|
|
||||||
String a = "vv_package";
|
String a = "vv_trade_order_line";
|
||||||
for (String s : a.split(",")) {
|
for (String s : a.split(",")) {
|
||||||
list.add(new TablesBean(s));
|
list.add(new TablesBean(s));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,8 +2,8 @@ package com.heyu.api.controller.vv;
|
|||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.heyu.api.common.annotation.Describe;
|
import com.heyu.api.common.annotation.Describe;
|
||||||
import com.heyu.api.data.dao.vv.VvPackageDao;
|
import com.heyu.api.data.enums.RoleEnums;
|
||||||
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
import com.heyu.api.data.service.vv.VvPackageService;
|
||||||
import com.kuaidi100.sdk.response.SubscribePushParamResp;
|
import com.kuaidi100.sdk.response.SubscribePushParamResp;
|
||||||
import com.kuaidi100.sdk.response.SubscribePushResult;
|
import com.kuaidi100.sdk.response.SubscribePushResult;
|
||||||
import com.kuaidi100.sdk.response.SubscribeResp;
|
import com.kuaidi100.sdk.response.SubscribeResp;
|
||||||
@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
public class AppKuaiDiCallBackController {
|
public class AppKuaiDiCallBackController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private VvPackageDao vvPackageDao;
|
private VvPackageService vvPackageService;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* https://api.1024api.com/api-interface/app/kuaidi/callback
|
* https://api.1024api.com/api-interface/app/kuaidi/callback
|
||||||
@ -30,7 +30,7 @@ public class AppKuaiDiCallBackController {
|
|||||||
@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("kuaidi callback param:{},sign", param, sign);
|
||||||
|
|
||||||
//建议记录一下这个回调的内容,方便出问题后双方排查问题
|
//建议记录一下这个回调的内容,方便出问题后双方排查问题
|
||||||
//log.debug("快递100订阅推送回调结果|{}|{}",param,sign);
|
//log.debug("快递100订阅推送回调结果|{}|{}",param,sign);
|
||||||
@ -42,18 +42,13 @@ public class AppKuaiDiCallBackController {
|
|||||||
subscribeResp.setReturnCode("200");
|
subscribeResp.setReturnCode("200");
|
||||||
subscribeResp.setMessage("成功");
|
subscribeResp.setMessage("成功");
|
||||||
//加密如果相等,属于快递100推送;否则可以忽略掉当前请求
|
//加密如果相等,属于快递100推送;否则可以忽略掉当前请求
|
||||||
if (ourSign.equals(sign)){
|
if (ourSign.equals(sign)) {
|
||||||
//TODO 业务处理
|
//TODO 业务处理
|
||||||
SubscribePushParamResp subscribePushParamResp = new Gson().fromJson(param, SubscribePushParamResp.class);
|
SubscribePushParamResp subscribePushParamResp = new Gson().fromJson(param, SubscribePushParamResp.class);
|
||||||
|
|
||||||
SubscribePushResult subscribePushResult = subscribePushParamResp.getLastResult();
|
SubscribePushResult subscribePushResult = subscribePushParamResp.getLastResult();
|
||||||
if(subscribePushResult !=null){
|
if (subscribePushResult != null) {
|
||||||
VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(subscribePushResult.getNu());
|
vvPackageService.selectVvKuaidiAndUpdateData(subscribePushResult.getNu(), RoleEnums.kuaidi100_callback.getRole());
|
||||||
vvPackageEntity.setIscheck(subscribePushResult.getIscheck());
|
|
||||||
vvPackageEntity.setCom(subscribePushResult.getCom());
|
|
||||||
vvPackageEntity.setStatus(subscribePushResult.getStatus());
|
|
||||||
vvPackageEntity.setState(subscribePushResult.getState());
|
|
||||||
vvPackageDao.updateVvPackageById(vvPackageEntity);
|
|
||||||
}
|
}
|
||||||
return subscribeResp;
|
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.dao.vv.VvTradeOrderLineDao;
|
||||||
import com.heyu.api.data.dto.vv.KuaiDi100DTO;
|
import com.heyu.api.data.dto.vv.KuaiDi100DTO;
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
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.service.vv.VvPackageService;
|
||||||
import com.heyu.api.data.utils.R;
|
import com.heyu.api.data.utils.R;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -38,17 +39,12 @@ public class AppLogisticsController {
|
|||||||
@Describe("物流查询")
|
@Describe("物流查询")
|
||||||
@RequestMapping("/query")
|
@RequestMapping("/query")
|
||||||
public R query(@RequestBody VvAppLogisticsRequest request) {
|
public R query(@RequestBody VvAppLogisticsRequest request) {
|
||||||
|
|
||||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntity = vvTradeOrderLineDao.selectVvTradeOrderLineByBuyerIdTrackNumber(request.getBuyerId(), request.getTrackNumber());
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntity = vvTradeOrderLineDao.selectVvTradeOrderLineByBuyerIdTrackNumber(request.getBuyerId(), request.getTrackNumber());
|
||||||
|
|
||||||
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());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return R.ok().setData(kuaiDi100DTO);
|
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.VvAllDataDao;
|
||||||
import com.heyu.api.data.dao.vv.VvChartConfigDao;
|
import com.heyu.api.data.dao.vv.VvChartConfigDao;
|
||||||
import com.heyu.api.data.dao.vv.VvCreateDataConfigDao;
|
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.dto.VvCreateDataConfigDTO;
|
||||||
import com.heyu.api.data.entity.vv.VvChartConfigEntity;
|
import com.heyu.api.data.entity.vv.VvChartConfigEntity;
|
||||||
import com.heyu.api.data.entity.vv.VvCreateDataConfigEntity;
|
import com.heyu.api.data.entity.vv.VvCreateDataConfigEntity;
|
||||||
import com.heyu.api.data.utils.ChartUtil;
|
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.data.utils.R;
|
||||||
import com.heyu.api.oss.OssFileUploadService;
|
import com.heyu.api.oss.OssFileUploadService;
|
||||||
import com.heyu.api.schedule.CronTriggerUtils;
|
import com.heyu.api.schedule.CronTriggerUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.amqp.core.MessageDeliveryMode;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -50,8 +53,6 @@ public class AppTestController {
|
|||||||
private VvChartConfigDao vvChartConfigDao;
|
private VvChartConfigDao vvChartConfigDao;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Value("${eb.config.rabbitQueue.createDataQueue}")
|
@Value("${eb.config.rabbitQueue.createDataQueue}")
|
||||||
private String createDataQueue;
|
private String createDataQueue;
|
||||||
|
|
||||||
@ -63,6 +64,14 @@ public class AppTestController {
|
|||||||
private RabbitTemplate rabbitTemplate;
|
private RabbitTemplate rabbitTemplate;
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${eb.config.rabbitQueue.delayQueue}")
|
||||||
|
private String delayQueue;
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${eb.config.rabbitQueue.delayExchangeName}")
|
||||||
|
private String delayExchangeName;
|
||||||
|
|
||||||
|
|
||||||
// /app/test/insert
|
// /app/test/insert
|
||||||
@Describe("测试数据插入")
|
@Describe("测试数据插入")
|
||||||
@RequestMapping("/insert")
|
@RequestMapping("/insert")
|
||||||
@ -94,9 +103,29 @@ public class AppTestController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
// /app/test/delay
|
||||||
System.out.println(System.currentTimeMillis() );
|
@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
|
urlStatisticQueue: URL_STATISTIC_QUEUE
|
||||||
createDataQueue: CREATE_DATA_QUEUE_TEST
|
createDataQueue: CREATE_DATA_QUEUE_TEST
|
||||||
sendDingDingQueue: SEND_DING_DING_QUEUE_TEST
|
sendDingDingQueue: SEND_DING_DING_QUEUE_TEST
|
||||||
|
delayQueue: DELAY_QUEUE_NAME
|
||||||
|
delayExchangeName: DELAY_EXCHANGE_NAME
|
||||||
|
|
||||||
|
|
||||||
tencent:
|
tencent:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user