记得上下班打卡 | git大法好,push需谨慎

Commit 8a894822 authored by jiangxiulong's avatar jiangxiulong

快递入库redis队列

parent 1565a4b8
...@@ -18,8 +18,9 @@ import java.util.LinkedList; ...@@ -18,8 +18,9 @@ import java.util.LinkedList;
@Data @Data
@ApiModel @ApiModel
public class KylinOrderExpressVo implements Serializable { public class KylinOrderExpressVo implements Serializable , Cloneable{
private static final long serialVersionUID = 1626827142646063350L;
@ApiModelProperty(value = "orderExpressId") @ApiModelProperty(value = "orderExpressId")
private String orderExpressId; private String orderExpressId;
@ApiModelProperty(value = "orderTicketsId") @ApiModelProperty(value = "orderTicketsId")
...@@ -33,4 +34,14 @@ public class KylinOrderExpressVo implements Serializable { ...@@ -33,4 +34,14 @@ public class KylinOrderExpressVo implements Serializable {
@ApiModelProperty(value = "物流数据") @ApiModelProperty(value = "物流数据")
LinkedList<KylinOrderExpressRouteVo> routeList; LinkedList<KylinOrderExpressRouteVo> routeList;
private static final KylinOrderExpressVo obj = new KylinOrderExpressVo();
public static KylinOrderExpressVo getNew() {
try {
return (KylinOrderExpressVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new KylinOrderExpressVo();
}
}
} }
...@@ -46,7 +46,7 @@ public interface IKylinOrderTicketsService { ...@@ -46,7 +46,7 @@ public interface IKylinOrderTicketsService {
* @param picList 证据截图 * @param picList 证据截图
* @return 是否成功 * @return 是否成功
*/ */
String sendOrderRefund(String orderId, String orderTicketEntitiesId, String reason, String picList, Integer sendExpressType, String sendExpressAddress, String appointmentTime, String expressNumber); String sendOrderRefund(String orderId, String orderTicketEntitiesId, String reason, String picList, Integer sendExpressType, String expressNumber, String expressContacts, String expressPhone, String sendExpressAddress, String appointmentTime);
//退款撤回 //退款撤回
ResponseDto<Boolean> orderRefundWithdraw(String orderRefundsId); ResponseDto<Boolean> orderRefundWithdraw(String orderRefundsId);
......
...@@ -42,6 +42,7 @@ public class MQConst { ...@@ -42,6 +42,7 @@ public class MQConst {
SQL_ORDER_CLOSE("kylin:stream:rk.order.close", "group.order.close", "订单关闭"), SQL_ORDER_CLOSE("kylin:stream:rk.order.close", "group.order.close", "订单关闭"),
SQL_ORDER_PAY("kylin:stream:rk.order.pay", "group.order.pay", "订单支付"), SQL_ORDER_PAY("kylin:stream:rk.order.pay", "group.order.pay", "订单支付"),
SQL_ORDER_REFUND("kylin:stream:rk.order.refund", "group.order.refund", "订单申请退款"), SQL_ORDER_REFUND("kylin:stream:rk.order.refund", "group.order.refund", "订单申请退款"),
SQL_ORDER_REFUND_EXPRESS("kylin:stream:rk.refundOrderExpress", "group.refundOrderExpress", "用户退款发快递"),
SQL_ORDER_WITHDRAW("kylin:stream:rk.order.withdraw", "group.order.withdraw", "订单申请撤回"), SQL_ORDER_WITHDRAW("kylin:stream:rk.order.withdraw", "group.order.withdraw", "订单申请撤回"),
SQL_ORDER_OVERTIME_REFUND("kylin:stream:rk.order.overtime.refund", "group.order.overtime.refund", "超时支付申请退款"), SQL_ORDER_OVERTIME_REFUND("kylin:stream:rk.order.overtime.refund", "group.order.overtime.refund", "超时支付申请退款"),
SQL_STATION("kylin:stream:rk.station", "group.station", "验票更新"), SQL_STATION("kylin:stream:rk.station", "group.station", "验票更新"),
......
...@@ -143,10 +143,10 @@ liquidnet: ...@@ -143,10 +143,10 @@ liquidnet:
client-secret: YXA6olr2qaW65xlkFixS81kiWnplrW4 client-secret: YXA6olr2qaW65xlkFixS81kiWnplrW4
express: express:
shunfeng: shunfeng:
url: ${liquidnet.client.admin.shunfeng.url} url: "https://butler-dev-ms.sf-express.com"
sk: ${liquidnet.client.admin.shunfeng.sk} sk: 21e9a70f677a2bf29dfa2b3bead4f018
appid: ${liquidnet.client.admin.shunfeng.appid} appid: 557104628450889728
custid: ${liquidnet.client.admin.shunfeng.custid} custid: 7551234567
jCompany: 北京正在映画互联网有限公司 jCompany: 北京正在映画互联网有限公司
jContact: 摩登天空票务部 jContact: 摩登天空票务部
jTel: 4001680650 jTel: 4001680650
......
...@@ -145,10 +145,10 @@ liquidnet: ...@@ -145,10 +145,10 @@ liquidnet:
client-secret: YXA6olr2qaW65xlkFixS81kiWnplrW4 client-secret: YXA6olr2qaW65xlkFixS81kiWnplrW4
express: express:
shunfeng: shunfeng:
url: ${liquidnet.client.admin.shunfeng.url} url: "https://butler-dev-ms.sf-express.com"
sk: ${liquidnet.client.admin.shunfeng.sk} sk: 21e9a70f677a2bf29dfa2b3bead4f018
appid: ${liquidnet.client.admin.shunfeng.appid} appid: 557104628450889728
custid: ${liquidnet.client.admin.shunfeng.custid} custid: 7551234567
jCompany: 北京正在映画互联网有限公司 jCompany: 北京正在映画互联网有限公司
jContact: 摩登天空票务部 jContact: 摩登天空票务部
jTel: 4001680650 jTel: 4001680650
......
...@@ -18,9 +18,9 @@ import java.math.BigDecimal; ...@@ -18,9 +18,9 @@ import java.math.BigDecimal;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class KylinOrderExpress implements Serializable ,Cloneable{ public class KylinOrderExpress implements Serializable, Cloneable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = -2070614388666759280L;
@TableId(value = "mid", type = IdType.AUTO) @TableId(value = "mid", type = IdType.AUTO)
private Integer mid; private Integer mid;
...@@ -41,6 +41,13 @@ public class KylinOrderExpress implements Serializable ,Cloneable{ ...@@ -41,6 +41,13 @@ public class KylinOrderExpress implements Serializable ,Cloneable{
private String printFlag; private String printFlag;
private BigDecimal freightPrice; private BigDecimal freightPrice;
private Integer sendType;
private Integer sendExpressType;
private String expressContacts;
private String expressPhone;
private String sendExpressAddress;
private String appointmentTime;
private String return_tracking_no; private String return_tracking_no;
private String sourceTransferCode; private String sourceTransferCode;
private String sourceCityCode; private String sourceCityCode;
...@@ -86,6 +93,7 @@ public class KylinOrderExpress implements Serializable ,Cloneable{ ...@@ -86,6 +93,7 @@ public class KylinOrderExpress implements Serializable ,Cloneable{
private String updatedAt; private String updatedAt;
private static final KylinOrderExpress obj = new KylinOrderExpress(); private static final KylinOrderExpress obj = new KylinOrderExpress();
public static KylinOrderExpress getNew() { public static KylinOrderExpress getNew() {
try { try {
return (KylinOrderExpress) obj.clone(); return (KylinOrderExpress) obj.clone();
......
package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerKylinOrderRefundExpressRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription;
import java.time.Duration;
import static com.liquidnet.service.base.constant.MQConst.KylinQueue.SQL_ORDER_REFUND_EXPRESS;
@Configuration
public class ConsumerKylinOrderRefundExpressRedisStreamConfig {
@Autowired
ConsumerKylinOrderRefundExpressRdsReceiver consumerKylinOrderRefundExpressRdsReceiver;
private StreamMessageListenerContainer<String, MapRecord<String, String, String>> buildStreamMessageListenerContainer(RedisConnectionFactory factory) {
var options = StreamMessageListenerContainer
.StreamMessageListenerContainerOptions
.builder()
.pollTimeout(Duration.ofMillis(1))
.build();
return StreamMessageListenerContainer.create(factory, options);
}
/**
* 用户退款发快递
*
* @param listenerContainer
* @param t
* @return
*/
private Subscription receiveSqlOrderRefundExpress(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(
Consumer.from(SQL_ORDER_REFUND_EXPRESS.getGroup(), SQL_ORDER_REFUND_EXPRESS.name() + t),
StreamOffset.create(SQL_ORDER_REFUND_EXPRESS.getKey(), ReadOffset.lastConsumed()), consumerKylinOrderRefundExpressRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
@Bean
public Subscription subscriptionOrderRefundExpress(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderRefundExpress(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionOrderRefundExpress2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderRefundExpress(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
@Bean
public Subscription subscriptionOrderRefundExpress3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlOrderRefundExpress(listenerContainer, 1);
listenerContainer.start();
return subscription;
}
/* -------------------------------------------------------- | */
}
\ No newline at end of file
package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.service.base.constant.MQConst;
import org.springframework.stereotype.Component;
@Component
public class ConsumerKylinOrderRefundExpressRdsReceiver extends AbstractSqlRedisReceiver {
@Override
protected String getRedisStreamKey() {
return MQConst.KylinQueue.SQL_ORDER_REFUND_EXPRESS.getKey();
}
@Override
protected String getRedisStreamGroup() {
return MQConst.KylinQueue.SQL_ORDER_REFUND_EXPRESS.getGroup();
}
}
\ No newline at end of file
...@@ -860,6 +860,13 @@ CREATE TABLE `kylin_order_express` ...@@ -860,6 +860,13 @@ CREATE TABLE `kylin_order_express`
DEFAULT CHARSET utf8mb4 DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci COMMENT '订单快递表'; COLLATE utf8mb4_unicode_ci COMMENT '订单快递表';
alter table kylin_order_express add send_type tinyint not null default 1 comment '发货类型 1发出 2用户退款发货' after freight_price;
alter table kylin_order_express add send_express_type tinyint not null default 0 comment '退票发货快递类型 1上门取件 2自主发货' after send_type;
alter table kylin_order_express add express_contacts varchar(255) not null default '' comment '退票发货快递人' after send_express_type;
alter table kylin_order_express add express_phone varchar(255) not null default '' comment '退票发货快递联系方式' after express_contacts;
alter table kylin_order_express add send_express_address varchar(255) not null default '' comment '退票发货快递地址' after express_phone;
alter table kylin_order_express add appointment_time varchar(255) not null default '' comment '退票发货快递预约取件时间' after send_express_address;
drop TABLE if exists `kylin_order_express_fee_info`; drop TABLE if exists `kylin_order_express_fee_info`;
CREATE TABLE `kylin_order_express_fee_info` CREATE TABLE `kylin_order_express_fee_info`
( (
......
...@@ -34,5 +34,9 @@ XGROUP CREATE kylin:stream:rk.transfer.result group.transfer.result 0 ...@@ -34,5 +34,9 @@ XGROUP CREATE kylin:stream:rk.transfer.result group.transfer.result 0
XADD kylin:stream:rk.transfer.overtime * 0 0 XADD kylin:stream:rk.transfer.overtime * 0 0
XGROUP CREATE kylin:stream:rk.transfer.overtime group.transfer.overtime 0 XGROUP CREATE kylin:stream:rk.transfer.overtime group.transfer.overtime 0
-- 用户退款发快递 --
XADD kylin:stream:rk.refundOrderExpress * 0 0
XGROUP CREATE kylin:stream:rk.refundOrderExpress group.refundOrderExpress 0
# ================================================== # ==================================================
# XGROUP DESTROY adam:stream:rk.sms.notice group.sms.sender 0 # XGROUP DESTROY adam:stream:rk.sms.notice group.sms.sender 0
...@@ -104,9 +104,11 @@ public class KylinOrderTicketsController { ...@@ -104,9 +104,11 @@ public class KylinOrderTicketsController {
@ApiImplicitParam(type = "form", dataType = "String", name = "reason", value = "退款申请备注", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "reason", value = "退款申请备注", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "picList", value = "图片"), @ApiImplicitParam(type = "form", dataType = "String", name = "picList", value = "图片"),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "sendExpressType", value = "快递方式 1上门取件 2自主发货"), @ApiImplicitParam(type = "form", dataType = "Integer", name = "sendExpressType", value = "快递方式 1上门取件 2自主发货"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressNumber", value = "自主发货的顺丰订单号"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressContacts", value = "发货人姓名"),
@ApiImplicitParam(type = "form", dataType = "String", name = "expressPhone", value = "发货人联系方式"),
@ApiImplicitParam(type = "form", dataType = "String", name = "sendExpressAddress", value = "取件地址"), @ApiImplicitParam(type = "form", dataType = "String", name = "sendExpressAddress", value = "取件地址"),
@ApiImplicitParam(type = "form", dataType = "String", name = "appointmentTime", value = "预约取件时间"), @ApiImplicitParam(type = "form", dataType = "String", name = "appointmentTime", value = "预约取件时间")
@ApiImplicitParam(type = "form", dataType = "String", name = "expressNumber", value = "自主发货的顺丰订单号")
}) })
public ResponseDto<HashMap<String, String>> sendOrderRefund( public ResponseDto<HashMap<String, String>> sendOrderRefund(
@RequestParam(value = "orderId", required = true) @NotNull(message = "订单ID不能为空") String orderId, @RequestParam(value = "orderId", required = true) @NotNull(message = "订单ID不能为空") String orderId,
...@@ -115,14 +117,17 @@ public class KylinOrderTicketsController { ...@@ -115,14 +117,17 @@ public class KylinOrderTicketsController {
@RequestParam(value = "picList", required = false) String picList, @RequestParam(value = "picList", required = false) String picList,
@RequestParam(value = "sendExpressType", required = false) Integer sendExpressType, @RequestParam(value = "sendExpressType", required = false) Integer sendExpressType,
@RequestParam(value = "expressNumber", required = false) String expressNumber,
@RequestParam(value = "expressContacts", required = false) String expressContacts,
@RequestParam(value = "expressPhone", required = false) String expressPhone,
@RequestParam(value = "sendExpressAddress", required = false) String sendExpressAddress, @RequestParam(value = "sendExpressAddress", required = false) String sendExpressAddress,
@RequestParam(value = "appointmentTime", required = false) String appointmentTime, @RequestParam(value = "appointmentTime", required = false) String appointmentTime
@RequestParam(value = "expressNumber", required = false) String expressNumber
) { ) {
// 退款 // 退款
String orderRefundId = orderTicketsService.sendOrderRefund( String orderRefundId = orderTicketsService.sendOrderRefund(
orderId, orderTicketEntitiesId, reason, picList, orderId, orderTicketEntitiesId, reason, picList,
sendExpressType, sendExpressAddress, appointmentTime, expressNumber sendExpressType, expressNumber, expressContacts, expressPhone, sendExpressAddress, appointmentTime
); );
if (orderRefundId.length() > 10) { if (orderRefundId.length() > 10) {
HashMap<String, String> map = CollectionUtil.mapStringString(); HashMap<String, String> map = CollectionUtil.mapStringString();
......
...@@ -31,6 +31,7 @@ kylin_order_ticket_entities.refund=UPDATE kylin_order_ticket_entities SET is_pay ...@@ -31,6 +31,7 @@ kylin_order_ticket_entities.refund=UPDATE kylin_order_ticket_entities SET is_pay
kylin_order_refund.refund=INSERT INTO kylin_order_refunds (order_refunds_id,order_tickets_id,order_refund_code,price,price_express,status,type,applicant_id,applicant_name,applicant_at,reason,refund_cate,created_at) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) kylin_order_refund.refund=INSERT INTO kylin_order_refunds (order_refunds_id,order_tickets_id,order_refund_code,price,price_express,status,type,applicant_id,applicant_name,applicant_at,reason,refund_cate,created_at) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)
kylin_order_refund_entities.refund=INSERT INTO kylin_order_refund_entities (order_refunds_entities_id,order_refunds_id,refund_price,order_ticket_entities_id,created_at) VALUES(?,?,?,?,?) kylin_order_refund_entities.refund=INSERT INTO kylin_order_refund_entities (order_refunds_entities_id,order_refunds_id,refund_price,order_ticket_entities_id,created_at) VALUES(?,?,?,?,?)
kylin_order_refund_pic.refund=INSERT INTO kylin_order_refund_pic (refund_pic_id,order_refunds_id,pic_url,created_at) VALUES (?,?,?,?) kylin_order_refund_pic.refund=INSERT INTO kylin_order_refund_pic (refund_pic_id,order_refunds_id,pic_url,created_at) VALUES (?,?,?,?)
kylin_order_refund.refundOrderExpress=INSERT INTO kylin_order_express (order_express_id,performances_id,order_tickets_id,order_express_code,mailno,express_type,filter_result,remark,express_status,send_type,send_express_type,express_contacts,express_phone,send_express_address,appointment_time,pro_name,cargo_type_code,limit_type_code,express_type_code,goods_value_total,goods_number,created_at) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
# ------------------------用户发起订单退款撤回---------------------------- # ------------------------用户发起订单退款撤回----------------------------
kylin_order_ticket_status.withDraw=UPDATE kylin_order_ticket_status SET status = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null) kylin_order_ticket_status.withDraw=UPDATE kylin_order_ticket_status SET status = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment