提交 9caefb49 authored 作者: huyufan's avatar huyufan

货主取消订单解绑order_truck_bind记录

上级 6b655750
package com.clx.performance.vo.mq;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class OrderTruckBindCancelParam {
//货单编号
private String orderGoodsNo;
//订单编号
private String orderNo;
}
...@@ -2,15 +2,12 @@ package com.clx.performance.component; ...@@ -2,15 +2,12 @@ package com.clx.performance.component;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.performance.enums.OwnerAccountEnum; import com.clx.performance.enums.OwnerAccountEnum;
import com.clx.performance.param.pc.owner.ThawAccountParam; import com.clx.performance.param.pc.owner.ThawAccountParam;
import com.clx.performance.param.pc.owner.UpdateStatusParam;
import com.clx.performance.service.OwnerAccountService; import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.service.settle.SettlementOwnerDetailService; import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.service.settle.SettlementOwnerService; import com.clx.performance.service.settle.SettlementOwnerService;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -45,14 +42,12 @@ public class OwnerAccountComponent { ...@@ -45,14 +42,12 @@ public class OwnerAccountComponent {
if (OwnerAccountEnum.OrderChildTypeStatus.ORDINARY.getCode().equals(invoiceType)) { if (OwnerAccountEnum.OrderChildTypeStatus.ORDINARY.getCode().equals(invoiceType)) {
log.info("执行普通单解冻"); log.info("执行普通单解冻");
thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.ORDINARY.getCode()); thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.ORDINARY.getCode());
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam);
} else { } else {
log.info("执行网运单解冻"); log.info("执行网运单解冻");
thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.NETWORK.getCode()); thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.NETWORK.getCode());
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam);
} }
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam);
//通知结算单锁定 //通知结算单锁定
settlementOwnerService.updateStatusByOrderNo(orderNo, 1, 10, 20); settlementOwnerService.updateStatusByOrderNo(orderNo, 1, 10, 20);
......
...@@ -140,4 +140,30 @@ public class RabbitBeanConfig { ...@@ -140,4 +140,30 @@ public class RabbitBeanConfig {
public Binding orderChildSyncTransportExchangeBind() { public Binding orderChildSyncTransportExchangeBind() {
return BindingBuilder.bind(orderChildSyncTransportQueue()).to(orderChildSyncTransportExchange()).with(RabbitKeyConstants.ORDER_CHILD_SYNC_TRANSPORT_ROUTE_KEY); return BindingBuilder.bind(orderChildSyncTransportQueue()).to(orderChildSyncTransportExchange()).with(RabbitKeyConstants.ORDER_CHILD_SYNC_TRANSPORT_ROUTE_KEY);
} }
/**
* 处理延迟消息orderGoodsTruckBind
* @return
*/
@Bean
public Queue orderGoodsTruckBindQueue() {
return new Queue(RabbitKeyConstants.ORDER_TRUCK_BIND_LAZY_QUEUE, true, false, false);
}
/**
* 处理延迟消息orderGoodsTruckBind
**/
@Bean
public CustomExchange orderGoodsTruckBindExchange() {
Map<String, Object> arguments = new HashMap<>();
//设置路由模式 direct模式
arguments.put("x-delayed-type", "direct");
return new CustomExchange(RabbitKeyConstants.ORDER_TRUCK_BIND_LAZY_EXCHANGE,"x-delayed-message", true, false, arguments);
}
//绑定交换机,队列和routingKey
@Bean
public Binding orderGoodsTruckBindBindingDelayedExchange(@Qualifier("orderGoodsTruckBindQueue")Queue queue,@Qualifier("orderGoodsTruckBindExchange")CustomExchange customExchange) {
return BindingBuilder.bind(queue).to(customExchange).with(RabbitKeyConstants.ORDER_TRUCK_BIND_LAZY_ROUTE_KEY).noargs();
}
} }
...@@ -78,5 +78,9 @@ public class RabbitKeyConstants { ...@@ -78,5 +78,9 @@ public class RabbitKeyConstants {
public static final String FREEZE_TRIGGER_QUEUE = "clx-order.freeze.trigger.queue"; public static final String FREEZE_TRIGGER_QUEUE = "clx-order.freeze.trigger.queue";
public static final String FREEZE_TRIGGER_ROUTING_KEY = "clx-order.freeze.trigger.routing.key"; public static final String FREEZE_TRIGGER_ROUTING_KEY = "clx-order.freeze.trigger.routing.key";
public static final String ORDER_TRUCK_BIND_LAZY_EXCHANGE ="clx-order.truck.bind.lazy.exchange";
public static final String ORDER_TRUCK_BIND_LAZY_QUEUE ="clx-order.truck.bind.lazy.queue";
public static final String ORDER_TRUCK_BIND_LAZY_ROUTE_KEY ="clx-order.truck.bind.lazy.route.key";
} }
...@@ -31,6 +31,8 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe ...@@ -31,6 +31,8 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe
void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code); void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code);
void updateOrderGoodsBindStatus(List<String> orderGoodsList, Integer code);
void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code, List<String> truckList); void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code, List<String> truckList);
void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code, String truckNo); void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code, String truckNo);
......
...@@ -87,6 +87,15 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM ...@@ -87,6 +87,15 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM
); );
} }
@Override
public void updateOrderGoodsBindStatus(List<String> orderGoodsList, Integer code) {
update(lUdWrapper()
.in(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsList)
.eq(OrderGoodsTruckBind::getStatus, OrderGoodsTruckBindEnum.Status.NORMAL.getCode())
.set(OrderGoodsTruckBind::getStatus, code)
);
}
@Override @Override
public void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code, List<String> truckList) { public void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code, List<String> truckList) {
update(lUdWrapper() update(lUdWrapper()
......
package com.clx.performance.listener;
import cn.hutool.json.JSONUtil;
import com.clx.order.enums.VehicleUsageEnum;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.OrderGoodsTruckBindEnum;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.vo.mq.OrderTruckBindCancelParam;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
@Component
@Slf4j
@AllArgsConstructor
public class OrderGoodsDriverBindListener {
private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private final OrderGoodsDao orderGoodsDao;
@RabbitListener(queues = RabbitKeyConstants.ORDER_TRUCK_BIND_LAZY_QUEUE)
@Transactional(rollbackFor = Exception.class)
public void onMessage(String message) throws Exception {
OrderTruckBindCancelParam param = JSONUtil.toBean(message, OrderTruckBindCancelParam.class);
log.info("OrderGoodsDriverBindListener请求参数{}", JSONUtil.parse(param));
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
String orderGoodsNo = param.getOrderGoodsNo();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo).get();
if (VehicleUsageEnum.Status.OWN.getCode().equals(orderGoods.getVehicleUsage())) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
}
} else if (StringUtils.isNotBlank(param.getOrderNo())) {
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(param.getOrderNo());
List<String> orderGoodsNoList = orderGoodsList.stream().filter(i -> VehicleUsageEnum.Status.OWN.getCode().equals(i.getVehicleUsage()))
.map(OrderGoods::getOrderGoodsNo).collect(Collectors.toList());
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNoList, OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
}
}
}
...@@ -182,7 +182,13 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -182,7 +182,13 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
//进行解冻账户 //进行解冻账户
ownerAccountComponent.thawOwnerAccountByOrderNo(orderNo); ownerAccountComponent.thawOwnerAccountByOrderNo(orderNo);
//开始执行订单取消吨数回填 Message message = MessageBuilder.withBody(orderNo.getBytes()).build();
message.getMessageProperties().setHeader("x-delay", 2000);
rabbitTemplate.send(
RabbitKeyConstants.ORDER_ON_EXCHANGE, RabbitKeyConstants.ORDER_ON_ROUTE_KEY, message
); //开始执行订单取消吨数回填
this.ownerConfirmCancelProcess(orderNo); this.ownerConfirmCancelProcess(orderNo);
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论