liujie
2 天以前 3d398aeed6ba633acc8398b173f5b10561b3427e
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -43,6 +43,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -150,6 +151,9 @@
    private IMerchantCouponService merchantCouponService;
    @Autowired
    private QrCodeConfiguration qrCodeConfiguration;
    @Autowired
    private TDriverPromotionActivityService driverPromotionActivityService;
    @Value("${pushMinistryOfTransport}")
    private boolean pushMinistryOfTransport;
@@ -370,6 +374,7 @@
                pushUtil.removeTask(orderId, 3);//删除定时任务,结束推送数据
                systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderCrossCity.getUserId(), 1);
                promotion(orderId);
                break;
        }
        this.updateById(orderCrossCity);
@@ -385,7 +390,23 @@
        return ResultUtil.success();
    }
    public void promotion(Integer orderId) {
        OrderCrossCity orderCrossCity = this.baseMapper.selectById(orderId);
        UserInfo userInfo = userInfoMapper.selectById(orderCrossCity.getUserId());
        if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
            String registAreaCode = userInfo.getRegistAreaCode();
            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 3 + ", bizType) limit 1"));
            if(tDriverPromotionActivity!=null){
                Double payMoney = orderCrossCity.getPayMoney();
                BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP);
                orderCrossCity.setPromotionDriverId(userInfo.getBindDriverId());
                orderCrossCity.setPromotionMoney(bigDecimal);
                orderCrossCity.setPromotionActivityId(tDriverPromotionActivity.getId());
                this.baseMapper.updateById(orderCrossCity);
            }
        }
    }
    /**
     * 获取订单明细
     * @param orderId