Pu Zhibing
4 天以前 8522e469e00e1cf6c0410165b0f76c806c13ca83
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java
@@ -1,5 +1,6 @@
package com.stylefeng.guns.modular.system.controller.specialTrain;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
@@ -10,9 +11,13 @@
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
import com.stylefeng.guns.modular.system.dao.TCompanyMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Sort;
@@ -35,6 +40,7 @@
 * @author fengshuonan
 * @Date 2020-09-02 17:28:59
 */
@Slf4j
@Controller
@RequestMapping("/abnormal")
public class TAbnormalOrderCarController extends BaseController {
@@ -80,8 +86,14 @@
    @Autowired
    private TAbnormalPayOrderService tAbnormalPayOrderService;
    @Autowired
    private ITSystemNoticeService systemNoticeService;
    @Autowired
    private TCompanyMapper tCompanyMapper;
    /**
     * 跳转到快车订单首页
     */
@@ -673,8 +685,10 @@
    @RequestMapping(value = "/save")
    @ResponseBody
    public Object save(Integer responsibilityTypeVal,String remark,String money,Integer type,String orderNum) {
        Integer userId =null;
        if(type==1){
            TOrderPrivateCar tOrderPrivateCar = tOrderPrivateCarService.selectOne(new EntityWrapper<TOrderPrivateCar>().eq("orderNum",orderNum));
            TOrderPrivateCar tOrderPrivateCar = tOrderPrivateCarService.selectOne(new EntityWrapper<TOrderPrivateCar>().eq("id",orderNum));
            userId = tOrderPrivateCar.getUserId();
            tOrderPrivateCar.setResponsibilityType(responsibilityTypeVal);
            tOrderPrivateCar.setAbnormalStatus(2);
            if(responsibilityTypeVal>3){
@@ -685,6 +699,7 @@
                // 追偿订单记录表
                TAbnormalPayOrder tAbnormalPayOrder = new TAbnormalPayOrder();
                tAbnormalPayOrder.setOrderNum(orderNum);
                tAbnormalPayOrder.setOrderNo(tOrderPrivateCar.getOrderNum());
                tAbnormalPayOrder.setType(1);
                tAbnormalPayOrder.setUserId(tOrderPrivateCar.getUserId());
                tAbnormalPayOrder.setPayStatus(1);
@@ -703,10 +718,81 @@
            }
            tOrderPrivateCar.setAbnormalRemark(remark);
            tOrderPrivateCarService.updateById(tOrderPrivateCar);
        }
            //平台全责和司机全责需要调起备付金支付
            if(9 == tOrderPrivateCar.getState()){
                TDriver driver = tDriverService.selectById(tOrderPrivateCar.getDriverId());
                TCompany company = tCompanyMapper.selectById(driver.getCompanyId());
                TUser userInfo = userService.selectById(tOrderPrivateCar.getUserId());
                if(null == tOrderPrivateCar.getIsCreated()){
                    //先调中台创建订单
                    CreateOrderRequest createOrderRequest = new CreateOrderRequest();
                    createOrderRequest.setTreatShopId(driver.getEmpId().toString());
                    createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (tOrderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
                    createOrderRequest.setCharge(tOrderPrivateCar.getOrderMoney());
                    createOrderRequest.setOrderNo("PR" + tOrderPrivateCar.getId());
                    createOrderRequest.setOrderId(tOrderPrivateCar.getTravelId());
                    createOrderRequest.setCustomerId(userInfo.getOnconUUID());
                    OrderInfo orderInfo = com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil.tradeOrderCreate(createOrderRequest);
                    tOrderPrivateCar.setIsCreated(1);
                    tOrderPrivateCar.setTravelId(orderInfo.getOrderId());
                    tOrderPrivateCarService.updateById(tOrderPrivateCar);
                }
                //使用备付金进行支付订单
                TradePayOffData tradePayOffData = new TradePayOffData();
                tradePayOffData.setPartnerPayId(tOrderPrivateCar.getTravelId());
                tradePayOffData.setTotalFee(tOrderPrivateCar.getOrderMoney().multiply(new BigDecimal(100)).toString());
                tradePayOffData.setOrderDesc("完成订单");
                PayInfo payInfo = com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil.tradePayOff(tradePayOffData);
                String retCode = payInfo.getRetCode();
                if (!"000000".equals(retCode)) {
                    log.error("备付金支付失败:{}", payInfo.getRetMsg());
                    return "备付金支付失败:" + payInfo.getRetMsg();
                }
                PayInfoData data = payInfo.getData();
                String status = data.getStatus();
                if ("3".equals(status)) {
                    log.error("备付金支付失败:{}", payInfo.getRetMsg());
                    return "备付金支付失败:" + payInfo.getRetMsg();
                }
                if("0".equals(status)){
                    //查询支付信息
                    GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
                    getPaymentInfoDataRequest.setPartnerPayId(tOrderPrivateCar.getTravelId());
                    GetPaymentInfo getPaymentInfo = com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil.paymentInfo(getPaymentInfoDataRequest);
                    status = getPaymentInfo.getStatus();
                }
                PayInfoData payInfoData = payInfo.getData();
                PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
                if(!"0".equals(status)) {
                    //支付成功,通知三方
                    PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
                    paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
                    paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
                    paymentOrderRequest.setOrderId(tOrderPrivateCar.getTravelId());
                    paymentOrderRequest.setCharge(tOrderPrivateCar.getOrderMoney());
                    paymentOrderRequest.setPayTime(data.getPayTime());
                    paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
                    OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
                    //中台修改订单状态
                    ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                    request1.setOrderId(tOrderPrivateCar.getTravelId());
                    request1.setStatus(9);
                    if (null != tOrderPrivateCar.getDriverId()) {
                        request1.setDriverId(driver.getEmpId().toString());
                        request1.setSupplierShopId(company.getEnterCode());
                    }
                    if (2 == tOrderPrivateCar.getPromotion()) {
                        TDriver driver2 = tDriverService.selectById(tOrderPrivateCar.getPromotionDriverId());
                        request1.setPromoterId(driver2.getEmpId().toString());
                    }
                    OrderUtil.modifyTravelItinerary(request1);
                }
            }
        }
        if(type==2){
            TOrderCrossCity tOrderCrossCity = tOrderCrossCityService.selectOne(new EntityWrapper<TOrderCrossCity>().eq("orderNum", orderNum));
            TOrderCrossCity tOrderCrossCity = tOrderCrossCityService.selectOne(new EntityWrapper<TOrderCrossCity>().eq("id", orderNum));
            userId = tOrderCrossCity.getUserId();
            tOrderCrossCity.setResponsibilityType(responsibilityTypeVal);
            tOrderCrossCity.setAbnormalStatus(2);
            if(responsibilityTypeVal>3) {
@@ -717,6 +803,8 @@
                // 追偿订单记录表
                TAbnormalPayOrder tAbnormalPayOrder = new TAbnormalPayOrder();
                tAbnormalPayOrder.setOrderNum(orderNum);
                tAbnormalPayOrder.setOrderNo(tOrderCrossCity.getOrderNum());
                tAbnormalPayOrder.setType(2);
                tAbnormalPayOrder.setUserId(tOrderCrossCity.getUserId());
                tAbnormalPayOrder.setPayStatus(1);
@@ -737,7 +825,8 @@
        }
        if(type==3){
            TOrderTaxi tOrderTaxi = tOrderTaxiService.selectOne(new EntityWrapper<TOrderTaxi>().eq("orderNum", orderNum));
            TOrderTaxi tOrderTaxi = tOrderTaxiService.selectOne(new EntityWrapper<TOrderTaxi>().eq("id", orderNum));
            userId = tOrderTaxi.getUserId();
            tOrderTaxi.setResponsibilityType(responsibilityTypeVal);
            tOrderTaxi.setAbnormalStatus(2);
            if(responsibilityTypeVal>3) {
@@ -748,6 +837,7 @@
                // 追偿订单记录表
                TAbnormalPayOrder tAbnormalPayOrder = new TAbnormalPayOrder();
                tAbnormalPayOrder.setOrderNum(orderNum);
                tAbnormalPayOrder.setOrderNo(tOrderTaxi.getOrderNum());
                tAbnormalPayOrder.setType(3);
                tAbnormalPayOrder.setUserId(tOrderTaxi.getUserId());
                tAbnormalPayOrder.setPayStatus(1);
@@ -767,7 +857,19 @@
            tOrderTaxi.setAbnormalRemark(remark);
            tOrderTaxiService.updateById(tOrderTaxi);
        }
        TSystemNotice tSystemNotice = new TSystemNotice();
        tSystemNotice.setType(2);
        tSystemNotice.setNoticeType(1);
        tSystemNotice.setUserType(1);
        tSystemNotice.setUserId(userId);
        tSystemNotice.setContent("您提交的申诉平台已处理");
        tSystemNotice.setRead(1);
        tSystemNotice.setInsertTime(new Date());
        systemNoticeService.insert(tSystemNotice);
        return SUCCESS_TIP;
    }