| package com.matrix.system.shopXcx.mqTask; | 
|   | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.matrix.component.asyncmessage.MessageHandler; | 
| import com.matrix.core.tools.LogUtil; | 
| import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao; | 
| import com.matrix.system.fenxiao.entity.ShopSalesmanOrder; | 
| import com.matrix.system.score.entity.ScoreVipDetail; | 
| import com.matrix.system.score.service.ScoreVipDetailService; | 
| import com.matrix.system.shopXcx.bean.ShopOrder; | 
| import com.matrix.system.shopXcx.dao.ShopOrderDao; | 
| import com.matrix.system.shopXcx.dao.ShopOrderDetailsDao; | 
| import com.rabbitmq.client.DeliverCallback; | 
| import com.rabbitmq.client.Delivery; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Component; | 
|   | 
| import java.io.IOException; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * 分销订单退款 | 
|  */ | 
| @Component | 
| public class SalesOrderRefundTask implements MessageHandler { | 
|   | 
|   | 
|     @Autowired | 
|     private ShopSalesmanOrderDao shopSalesmanOrderDao; | 
|   | 
|     @Autowired | 
|         private ShopOrderDao shopOrderDao; | 
|   | 
|     @Autowired | 
|     private ScoreVipDetailService scoreVipDetailService; | 
|   | 
|     @Autowired | 
|     ShopOrderDetailsDao shopOrderDetailsDao; | 
|   | 
|   | 
|     @Override | 
|     public String getName() { | 
|         return "分销订单退款"; | 
|     } | 
|   | 
|     @Override | 
|     public String getRouteKey() { | 
|         return AsyncMessageRouting.SHOP_ORDER_REFUND; | 
|     } | 
|   | 
|     @Override | 
|     public void handle(Map<String,Object> param){ | 
|   | 
|         String orderId = (String) param.get("orderId"); | 
|         LogUtil.debug("收到分销订单退款任务orderId={}", orderId); | 
|         QueryWrapper queryWrapper=new QueryWrapper(); | 
|         queryWrapper.eq("order_id",orderId); | 
|         List<ShopSalesmanOrder> list = shopSalesmanOrderDao.selectList(queryWrapper); | 
|   | 
|         list.forEach(shopSalesmanOrder->{ | 
|   | 
|             if(shopSalesmanOrder!=null){ | 
|                 shopSalesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_YTK); | 
|                 shopSalesmanOrderDao.updateById(shopSalesmanOrder); | 
|             }else{ | 
|                 LogUtil.debug("改订单为生成分销订单={}", orderId); | 
|             } | 
|   | 
|   | 
|         }); | 
|         ShopOrder order=shopOrderDao.selectById(Integer.parseInt(orderId)); | 
|   | 
|         //如果是积分支付则需要返还积分 | 
|         if(order.getScorePay()!=null && order.getScorePay()>0){ | 
|             LogUtil.debug("处理积分退款={}", orderId); | 
|             scoreVipDetailService.refundScore(order.getUserId(),order.getScorePay(),Long.parseLong(order.getId()+""), ScoreVipDetail.SCORE_VIP_TYPE_CASH); | 
|         } | 
|   | 
|         //消费获得积分返还,如果本订单获得了积分则要扣除获得积分 | 
|         scoreVipDetailService.removeByBusinessId(order.getUserId(),Long.parseLong(order.getId()+"")); | 
|   | 
|   | 
|     } | 
|   | 
| } |