提交修改
This commit is contained in:
parent
e78cce35f2
commit
3949ac0375
@ -0,0 +1,10 @@
|
|||||||
|
package com.heyu.api.data.dto;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class WeiXinPayDelayDTO extends DelayDTO{
|
||||||
|
|
||||||
|
private Long tradeOrderId;
|
||||||
|
}
|
||||||
@ -74,6 +74,8 @@ private static final long serialVersionUID = 1L;
|
|||||||
public final static String activity_award_count = CLASS_NAME + "activity_award_count"; // 这次活动的奖励次数
|
public final static String activity_award_count = CLASS_NAME + "activity_award_count"; // 这次活动的奖励次数
|
||||||
public final static String transaction_id = CLASS_NAME + "transaction_id"; // 支付事务id
|
public final static String transaction_id = CLASS_NAME + "transaction_id"; // 支付事务id
|
||||||
public final static String pay_type = CLASS_NAME + "pay_type"; // 支付方式,weixin
|
public final static String pay_type = CLASS_NAME + "pay_type"; // 支付方式,weixin
|
||||||
|
public final static String gmt_pre_pay = CLASS_NAME + "gmt_pre_pay"; // 预支付时间
|
||||||
|
public final static String gmt_close = CLASS_NAME + "gmt_close"; // 订单关闭时间
|
||||||
//
|
//
|
||||||
@TableId(value = "id", type = IdType.AUTO)
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
private Long id;
|
private Long id;
|
||||||
@ -181,6 +183,10 @@ private static final long serialVersionUID = 1L;
|
|||||||
private String transactionId;
|
private String transactionId;
|
||||||
//支付方式,weixin
|
//支付方式,weixin
|
||||||
private String payType;
|
private String payType;
|
||||||
|
//预支付时间
|
||||||
|
private Date gmtPrePay;
|
||||||
|
//订单关闭时间
|
||||||
|
private Date gmtClose;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
@ -976,6 +982,36 @@ private static final long serialVersionUID = 1L;
|
|||||||
this.payType = payType;
|
this.payType = payType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预支付时间
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Date getGmtPrePay() {
|
||||||
|
return gmtPrePay;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 预支付时间
|
||||||
|
* @param gmtPrePay
|
||||||
|
*/
|
||||||
|
public void setGmtPrePay(Date gmtPrePay) {
|
||||||
|
this.gmtPrePay = gmtPrePay;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单关闭时间
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Date getGmtClose() {
|
||||||
|
return gmtClose;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 订单关闭时间
|
||||||
|
* @param gmtClose
|
||||||
|
*/
|
||||||
|
public void setGmtClose(Date gmtClose) {
|
||||||
|
this.gmtClose = gmtClose;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "VvTradeOrderLineEntity{" +
|
return "VvTradeOrderLineEntity{" +
|
||||||
@ -1032,6 +1068,8 @@ private static final long serialVersionUID = 1L;
|
|||||||
",activityAwardCount=" + activityAwardCount +
|
",activityAwardCount=" + activityAwardCount +
|
||||||
",transactionId=" + transactionId +
|
",transactionId=" + transactionId +
|
||||||
",payType=" + payType +
|
",payType=" + payType +
|
||||||
|
",gmtPrePay=" + gmtPrePay +
|
||||||
|
",gmtClose=" + gmtClose +
|
||||||
"}";
|
"}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
package com.heyu.api.data.enums;
|
||||||
|
|
||||||
|
public enum DelayTypeEnums {
|
||||||
|
delivered("delivered", "妥投","deliveredHandler"),
|
||||||
|
|
||||||
|
weixinPayClose("weixinPayClose", "微信支付关闭","weiXinPayCloseHandler");
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
private String desc;
|
||||||
|
|
||||||
|
private String handler;
|
||||||
|
|
||||||
|
|
||||||
|
DelayTypeEnums(String type, String desc,String handler) {
|
||||||
|
this.type = type;
|
||||||
|
this.desc = desc;
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DelayTypeEnums getDelayTypeByType(String type) {
|
||||||
|
for (DelayTypeEnums value : DelayTypeEnums.values()) {
|
||||||
|
if (value.getType().equals(type)) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDesc() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDesc(String desc) {
|
||||||
|
this.desc = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHandler() {
|
||||||
|
return handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHandler(String handler) {
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -17,6 +17,7 @@ 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.entity.vv.VvTradeOrderLineEntity;
|
||||||
|
import com.heyu.api.data.enums.DelayTypeEnums;
|
||||||
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;
|
||||||
@ -117,6 +118,8 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
|
|||||||
) {
|
) {
|
||||||
vvPackageEntity.setShippingFrom(kuaiDi100DTO.getRouteInfo().getFrom().getName());
|
vvPackageEntity.setShippingFrom(kuaiDi100DTO.getRouteInfo().getFrom().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 如果查询出来包裹状态已经签收
|
// 如果查询出来包裹状态已经签收
|
||||||
if (KuaiDi100StateEnums.sign_receipt.getState().equals(kuaiDi100DTO.getState())) {
|
if (KuaiDi100StateEnums.sign_receipt.getState().equals(kuaiDi100DTO.getState())) {
|
||||||
List<KuaiDi100DTO.DataDTO> dataDTOS = kuaiDi100DTO.getData();
|
List<KuaiDi100DTO.DataDTO> dataDTOS = kuaiDi100DTO.getData();
|
||||||
@ -135,7 +138,7 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
|
|||||||
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());
|
||||||
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分钟 持久化消息 消费后销毁 这里无需指定路由,会广播至每个绑定此交换机的队列
|
||||||
@ -149,8 +152,6 @@ public class VvPackageServiceImpl extends ServiceImpl<VvPackageDao, VvPackageEnt
|
|||||||
vvPackageEntity.setIscheck("2");
|
vvPackageEntity.setIscheck("2");
|
||||||
vvPackageEntity.setGmtSendMqDelivered(new Date());
|
vvPackageEntity.setGmtSendMqDelivered(new Date());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<VvTradeOrderLineEntity> tradeOrderLineEntities = tradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(trackNumber);
|
List<VvTradeOrderLineEntity> tradeOrderLineEntities = tradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(trackNumber);
|
||||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : tradeOrderLineEntities) {
|
for (VvTradeOrderLineEntity tradeOrderLineEntity : tradeOrderLineEntities) {
|
||||||
tradeOrderLineEntity.setGmtSignReceipt(time);
|
tradeOrderLineEntity.setGmtSignReceipt(time);
|
||||||
|
|||||||
@ -1,30 +0,0 @@
|
|||||||
package com.heyu.api.alibaba.request.mm.enums;
|
|
||||||
|
|
||||||
public enum DelayTypeEnums {
|
|
||||||
delivered("delivered", "妥投");
|
|
||||||
|
|
||||||
private String type;
|
|
||||||
|
|
||||||
private String desc;
|
|
||||||
|
|
||||||
DelayTypeEnums(String type, String desc) {
|
|
||||||
this.type = type;
|
|
||||||
this.desc = desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDesc() {
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDesc(String desc) {
|
|
||||||
this.desc = desc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -10,18 +10,21 @@ import com.heyu.api.alibaba.request.mm.order.resp.*;
|
|||||||
import com.heyu.api.alibaba.request.vv.AppOrderRequest;
|
import com.heyu.api.alibaba.request.vv.AppOrderRequest;
|
||||||
import com.heyu.api.common.annotation.Describe;
|
import com.heyu.api.common.annotation.Describe;
|
||||||
import com.heyu.api.data.dao.vv.*;
|
import com.heyu.api.data.dao.vv.*;
|
||||||
|
import com.heyu.api.data.dto.WeiXinPayDelayDTO;
|
||||||
import com.heyu.api.data.entity.vv.*;
|
import com.heyu.api.data.entity.vv.*;
|
||||||
import com.heyu.api.data.utils.BigDecimalUtil;
|
import com.heyu.api.data.enums.DelayTypeEnums;
|
||||||
import com.heyu.api.data.utils.R;
|
import com.heyu.api.data.enums.RoleEnums;
|
||||||
import com.heyu.api.data.utils.SanUtils;
|
import com.heyu.api.data.utils.*;
|
||||||
import com.heyu.api.data.utils.StringUtils;
|
|
||||||
import com.heyu.api.jsapi.JsapiPrepay;
|
import com.heyu.api.jsapi.JsapiPrepay;
|
||||||
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayResponse;
|
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayResponse;
|
||||||
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;
|
||||||
|
import org.springframework.amqp.core.MessageDeliveryMode;
|
||||||
|
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;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@ -68,6 +71,14 @@ public class AppOrderController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private JsapiPrepay jsapiPrepay;
|
private JsapiPrepay jsapiPrepay;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RabbitTemplate rabbitTemplate;
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${eb.config.rabbitQueue.delayExchangeName}")
|
||||||
|
private String delayExchangeName;
|
||||||
|
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* https://api.1024api.com/api-interface/app/order/list
|
* https://api.1024api.com/api-interface/app/order/list
|
||||||
*
|
*
|
||||||
@ -312,8 +323,27 @@ public class AppOrderController {
|
|||||||
vvTradeOrderLineEntity.setPayType("weixin");
|
vvTradeOrderLineEntity.setPayType("weixin");
|
||||||
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_pay.getStatus());
|
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_pay.getStatus());
|
||||||
vvTradeOrderLineEntity.setTransactionId(jsapiPrepayResponse.getPrepayId());
|
vvTradeOrderLineEntity.setTransactionId(jsapiPrepayResponse.getPrepayId());
|
||||||
|
vvTradeOrderLineEntity.setGmtPrePay(new Date());
|
||||||
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 发送订单关单的消息
|
||||||
|
Date currentTime= new Date();
|
||||||
|
Date after30 = DateUtils.addMinutes(currentTime,30);
|
||||||
|
Integer second = DateUtils.betweenSecond(currentTime, after30);
|
||||||
|
WeiXinPayDelayDTO weiXinPayDelayDTO = new WeiXinPayDelayDTO();
|
||||||
|
weiXinPayDelayDTO.setSendTime(DateUtils.formatDate(currentTime, com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
|
||||||
|
weiXinPayDelayDTO.setDelayTime(DateUtils.formatDate(after30, com.heyu.api.data.utils.DateUtils.YYYY_MM_DD_HH_MM_SS));
|
||||||
|
weiXinPayDelayDTO.setType(DelayTypeEnums.weixinPayClose.getType());
|
||||||
|
weiXinPayDelayDTO.setRole( RoleEnums.user.getRole());
|
||||||
|
|
||||||
|
weiXinPayDelayDTO.setTradeOrderId(vvTradeOrderEntity.getId());
|
||||||
|
rabbitTemplate.convertAndSend(delayExchangeName, "", JSON.toJSONString(weiXinPayDelayDTO), message -> {
|
||||||
|
message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);
|
||||||
|
message.getMessageProperties().setDelay((second) * 1000); // 毫秒为单位,指定此消息的延时时长 ,+ 1 尽量保证机器人跑完了,再发送消息
|
||||||
|
return message;
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
return R.ok("订单创建成功");
|
return R.ok("订单创建成功");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,10 @@
|
|||||||
|
package com.heyu.api.listener;
|
||||||
|
|
||||||
|
import com.heyu.api.data.utils.R;
|
||||||
|
|
||||||
|
public abstract class BaseDelayedHandler {
|
||||||
|
|
||||||
|
public abstract R handler(String message);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,14 +1,10 @@
|
|||||||
package com.heyu.api.listener;
|
package com.heyu.api.listener;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.heyu.api.alibaba.request.mm.enums.DelayTypeEnums;
|
import com.heyu.api.data.enums.DelayTypeEnums;
|
||||||
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
|
|
||||||
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.dao.vv.VvTradeOrderLineDao;
|
||||||
import com.heyu.api.data.dto.PackageDelivedDelayDTO;
|
import com.heyu.api.data.utils.SpringContextUtils;
|
||||||
import com.heyu.api.data.entity.vv.VvPackageEntity;
|
|
||||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
|
||||||
import com.heyu.api.data.enums.RoleEnums;
|
|
||||||
import com.rabbitmq.client.Channel;
|
import com.rabbitmq.client.Channel;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
||||||
@ -21,8 +17,6 @@ import org.springframework.messaging.handler.annotation.Payload;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@ -48,27 +42,16 @@ public class DelaySimpleRabbitListener {
|
|||||||
log.info("DeliveredDelaySimpleRabbitListener delayQueue :{} message:{}", delayQueue, message);
|
log.info("DeliveredDelaySimpleRabbitListener delayQueue :{} message:{}", delayQueue, message);
|
||||||
Map<String, Object> map = JSONObject.parseObject(message, Map.class);
|
Map<String, Object> map = JSONObject.parseObject(message, Map.class);
|
||||||
String type = map.get("type") + "";
|
String type = map.get("type") + "";
|
||||||
if (DelayTypeEnums.delivered.getType().equals(type)) {
|
|
||||||
PackageDelivedDelayDTO packageDelivedDelayDTO = JSONObject.parseObject(message, PackageDelivedDelayDTO.class);
|
|
||||||
|
|
||||||
// 更新包信息
|
DelayTypeEnums delayTypeEnums = DelayTypeEnums.getDelayTypeByType(type);
|
||||||
VvPackageEntity vvPackage = vvPackageDao.selectVvPackageById(packageDelivedDelayDTO.getPackageId());
|
|
||||||
vvPackage.setIscheck("3");
|
|
||||||
vvPackage.setGmtDelivered(new Date());
|
|
||||||
vvPackage.setDeliveredBy(RoleEnums.job.getRole());
|
|
||||||
|
|
||||||
vvPackageDao.insertOrUpdateVvPackage(vvPackage);
|
if (delayTypeEnums == null) {
|
||||||
|
log.info("DelaySimpleRabbitListener type is :{}", type);
|
||||||
|
return;
|
||||||
// 更新子单信息
|
|
||||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(vvPackage.getTrackNumber());
|
|
||||||
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
|
||||||
vvTradeOrderLineEntity.setDeliveredBy(RoleEnums.job.getRole());
|
|
||||||
vvTradeOrderLineEntity.setGmtDelivered(new Date());
|
|
||||||
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.delivered.getStatus());
|
|
||||||
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BaseDelayedHandler baseDelayedHandler = SpringContextUtils.getBean(delayTypeEnums.getHandler());
|
||||||
|
baseDelayedHandler.handler(message);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("DeliveredDelaySimpleRabbitListener handle", e);
|
log.error("DeliveredDelaySimpleRabbitListener handle", e);
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@ -0,0 +1,51 @@
|
|||||||
|
package com.heyu.api.listener.delay.handler;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
|
||||||
|
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.entity.vv.VvPackageEntity;
|
||||||
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
|
import com.heyu.api.data.enums.RoleEnums;
|
||||||
|
import com.heyu.api.data.utils.R;
|
||||||
|
import com.heyu.api.listener.BaseDelayedHandler;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Component("deliveredHandler")
|
||||||
|
public class DeliveredHandler extends BaseDelayedHandler {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VvPackageDao vvPackageDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VvTradeOrderLineDao vvTradeOrderLineDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R handler(String message) {
|
||||||
|
PackageDelivedDelayDTO packageDelivedDelayDTO = JSONObject.parseObject(message, PackageDelivedDelayDTO.class);
|
||||||
|
// 更新包信息
|
||||||
|
VvPackageEntity vvPackage = vvPackageDao.selectVvPackageById(packageDelivedDelayDTO.getPackageId());
|
||||||
|
vvPackage.setIscheck("3");
|
||||||
|
vvPackage.setGmtDelivered(new Date());
|
||||||
|
vvPackage.setDeliveredBy(RoleEnums.job.getRole());
|
||||||
|
|
||||||
|
vvPackageDao.insertOrUpdateVvPackage(vvPackage);
|
||||||
|
|
||||||
|
// 更新子单信息
|
||||||
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTrackNumber(vvPackage.getTrackNumber());
|
||||||
|
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||||
|
vvTradeOrderLineEntity.setDeliveredBy(RoleEnums.job.getRole());
|
||||||
|
vvTradeOrderLineEntity.setGmtDelivered(new Date());
|
||||||
|
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.delivered.getStatus());
|
||||||
|
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
||||||
|
}
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
package com.heyu.api.listener.delay.handler;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
|
||||||
|
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
|
||||||
|
import com.heyu.api.data.dto.WeiXinPayDelayDTO;
|
||||||
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
|
import com.heyu.api.data.utils.R;
|
||||||
|
import com.heyu.api.listener.BaseDelayedHandler;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Component("weiXinPayCloseHandler")
|
||||||
|
public class WeiXinPayCloseHandler extends BaseDelayedHandler {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VvTradeOrderLineDao vvTradeOrderLineDao;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R handler(String message) {
|
||||||
|
|
||||||
|
|
||||||
|
WeiXinPayDelayDTO weiXinPayDelayDTO = JSONObject.parseObject(message, WeiXinPayDelayDTO.class);
|
||||||
|
|
||||||
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(weiXinPayDelayDTO.getTradeOrderId());
|
||||||
|
|
||||||
|
|
||||||
|
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
|
||||||
|
if(OrderStatusEnums.wait_pay.getStatus().equals(vvTradeOrderLineEntity.getStatus())){
|
||||||
|
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.close.getStatus());
|
||||||
|
vvTradeOrderLineEntity.setGmtClose(new Date());
|
||||||
|
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user