Pu Zhibing
4 天以前 0c41f99c7f1a0d7deeeef23a5b3b890aed32ce63
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;
    /**
     * 跳转到快车订单首页
     */
@@ -113,12 +125,13 @@
            Object o2 = item.get("responsibilityType");
            if(o2!=null){
                if(Integer.valueOf(o2.toString())>2){
                    TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper<TAbnormalPayOrder>().eq("type", 1).eq("orderNum", item.get("orderNum")));
                    TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper<TAbnormalPayOrder>().eq("type", 1).eq("orderNum",tOrderPrivateCarId));
                    model.addAttribute("money",tAbnormalPayOrder.getPayMoney());
                }
            }
            model.addAttribute("item",item);
            model.addAttribute("type",1);
            model.addAttribute("show",0);
            List<TOrderPrivateCar> tOrderPrivateCars = tOrderPrivateCarService.selectList(new EntityWrapper<TOrderPrivateCar>().eq("pid", tOrderPrivateCarId).eq("isDelete", 1));
            List<Map<String, Object>> maps = new ArrayList<>();
@@ -140,6 +153,85 @@
            }
            Object o2 = item.get("responsibilityType");
            model.addAttribute("money",0);
            model.addAttribute("show",0);
            if(o2!=null){
                if(Integer.valueOf(o2.toString())>2){
                    TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper<TAbnormalPayOrder>().eq("type", 2).eq("orderNum",tOrderPrivateCarId));
                    model.addAttribute("money",tAbnormalPayOrder.getPayMoney());
                }
            }
            model.addAttribute("type",2);
            model.addAttribute("item",item);
        }else if(type==3){
            Map<String, Object> item = tOrderTaxiService.getTaxiOrderDetailById(tOrderPrivateCarId);
            Object o1 = item.get("abnormalImg");
            if(o1!=null){
                String[] split = o1.toString().split(",");
                model.addAttribute("abnormalImg",split);
            }else {
                model.addAttribute("abnormalImg",new String[]{});
            }
            model.addAttribute("money",0);
            model.addAttribute("show",0);
            Object o2 = item.get("responsibilityType");
            if(o2!=null){
                if(Integer.valueOf(o2.toString())>2){
                    TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper<TAbnormalPayOrder>().eq("type", 3).eq("orderNum",tOrderPrivateCarId));
                    model.addAttribute("money",tAbnormalPayOrder.getPayMoney());
                }
            }
            model.addAttribute("type",3);
            model.addAttribute("item",item);
        }
        return PREFIX + "tAbnormalOrder_orderDetail.html";
    }
    @RequestMapping("/tOrderPrivateCar_orderDetail1")
    public String tOrderPrivateCarUpdate1(Integer tOrderPrivateCarId,Integer type, Model model) {
        if(type==1){
            Map<String, Object> item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCarId);
            Object o1 = item.get("abnormalImg");
            if(o1!=null){
                String[] split = o1.toString().split(",");
                model.addAttribute("abnormalImg",split);
            }else {
                model.addAttribute("abnormalImg",new String[]{});
            }
            // money是修改后的金额
            model.addAttribute("money",0);
            Object o2 = item.get("responsibilityType");
            if(o2!=null){
                if(Integer.valueOf(o2.toString())>2){
                    TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper<TAbnormalPayOrder>().eq("type", 1).eq("orderNum", item.get("orderNum")));
                    model.addAttribute("money",tAbnormalPayOrder.getPayMoney());
                }
            }
            model.addAttribute("item",item);
            model.addAttribute("type",1);
            model.addAttribute("show",1);
            List<TOrderPrivateCar> tOrderPrivateCars = tOrderPrivateCarService.selectList(new EntityWrapper<TOrderPrivateCar>().eq("pid", tOrderPrivateCarId).eq("isDelete", 1));
            List<Map<String, Object>> maps = new ArrayList<>();
            for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
                item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCar.getId());
                String phone = item.get("userPhone").toString();
                item.put("userPhone1", phone.substring(phone.length() - 4));
                maps.add(item);
            }
            model.addAttribute("maps",maps);
        }else if(type==2){
            Map<String, Object> item = tOrderCrossCityService.getCrossCityOrderDetailById(tOrderPrivateCarId);
            Object o1 = item.get("abnormalImg");
            if(o1!=null){
                String[] split = o1.toString().split(",");
                model.addAttribute("abnormalImg",split);
            }else {
                model.addAttribute("abnormalImg",new String[]{});
            }
            Object o2 = item.get("responsibilityType");
            model.addAttribute("money",0);
            model.addAttribute("show",1);
            if(o2!=null){
                if(Integer.valueOf(o2.toString())>2){
                    TAbnormalPayOrder tAbnormalPayOrder = tAbnormalPayOrderService.selectOne(new EntityWrapper<TAbnormalPayOrder>().eq("type", 2).eq("orderNum", item.get("orderNum")));
@@ -158,6 +250,7 @@
                model.addAttribute("abnormalImg",new String[]{});
            }
            model.addAttribute("money",0);
            model.addAttribute("show",1);
            Object o2 = item.get("responsibilityType");
            if(o2!=null){
                if(Integer.valueOf(o2.toString())>2){
@@ -210,6 +303,9 @@
        }
        abnormal = 2;
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        if(type==null){
            type=1;
        }
        // 快车
        if(type==1){
            page.setRecords(tOrderPrivateCarService.getPrivateCarOrderList(page, beginTime, endTime, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(),
@@ -589,39 +685,191 @@
    @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){
                tOrderPrivateCar.setResponsibilityMoney(new BigDecimal(money));
                tOrderPrivateCar.setResponsibilityMoney(tOrderPrivateCar.getPayMoney());
                tOrderPrivateCar.setOrderMoney(new BigDecimal(money));
            }
            if(responsibilityTypeVal>2){
                // 追偿订单记录表
                TAbnormalPayOrder tAbnormalPayOrder = new TAbnormalPayOrder();
                tAbnormalPayOrder.setOrderNum(orderNum);
                tAbnormalPayOrder.setOrderNo(tOrderPrivateCar.getOrderNum());
                tAbnormalPayOrder.setType(1);
                tAbnormalPayOrder.setUserId(tOrderPrivateCar.getUserId());
                tAbnormalPayOrder.setPayStatus(1);
                tAbnormalPayOrder.setPayTime(new Date());
                if(responsibilityTypeVal==3){
                    tAbnormalPayOrder.setPayMoney(tOrderPrivateCar.getPayMoney());
                }else {
                    tAbnormalPayOrder.setPayMoney(new BigDecimal( money));
                }
                tAbnormalPayOrder.setCompanyId(tOrderPrivateCar.getCompanyId());
                tAbnormalPayOrderService.insert(tAbnormalPayOrder);
            }
            if(responsibilityTypeVal<3){
                tOrderPrivateCar.setState(9);
            }
            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) {
                tOrderCrossCity.setResponsibilityMoney(new BigDecimal(money));
                tOrderCrossCity.setResponsibilityMoney(tOrderCrossCity.getPayMoney());
                tOrderCrossCity.setOrderMoney(new BigDecimal(money));
            }
            if(responsibilityTypeVal>2){
                // 追偿订单记录表
                TAbnormalPayOrder tAbnormalPayOrder = new TAbnormalPayOrder();
                tAbnormalPayOrder.setOrderNum(orderNum);
                tAbnormalPayOrder.setOrderNo(tOrderCrossCity.getOrderNum());
                tAbnormalPayOrder.setType(2);
                tAbnormalPayOrder.setUserId(tOrderCrossCity.getUserId());
                tAbnormalPayOrder.setPayStatus(1);
                tAbnormalPayOrder.setPayTime(new Date());
                if(responsibilityTypeVal==3){
                    tAbnormalPayOrder.setPayMoney(tOrderCrossCity.getPayMoney());
                }else {
                    tAbnormalPayOrder.setPayMoney(new BigDecimal(money));
                }
                tAbnormalPayOrder.setCompanyId(tOrderCrossCity.getCompanyId());
                tAbnormalPayOrderService.insert(tAbnormalPayOrder);
            }
            if(responsibilityTypeVal<3){
                tOrderCrossCity.setState(9);
            }
            tOrderCrossCity.setAbnormalRemark(remark);
            tOrderCrossCityService.updateById(tOrderCrossCity);
        }
        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) {
                tOrderTaxi.setResponsibilityMoney(new BigDecimal(money));
                tOrderTaxi.setResponsibilityMoney(tOrderTaxi.getPayMoney());
                tOrderTaxi.setOrderMoney(new BigDecimal(money));
            }
            if(responsibilityTypeVal>2){
                // 追偿订单记录表
                TAbnormalPayOrder tAbnormalPayOrder = new TAbnormalPayOrder();
                tAbnormalPayOrder.setOrderNum(orderNum);
                tAbnormalPayOrder.setOrderNo(tOrderTaxi.getOrderNum());
                tAbnormalPayOrder.setType(3);
                tAbnormalPayOrder.setUserId(tOrderTaxi.getUserId());
                tAbnormalPayOrder.setPayStatus(1);
                tAbnormalPayOrder.setPayTime(new Date());
                if(responsibilityTypeVal==3){
                    tAbnormalPayOrder.setPayMoney(tOrderTaxi.getPayMoney());
                }else {
                    tAbnormalPayOrder.setPayMoney(new BigDecimal( money));
                }
                tAbnormalPayOrder.setCompanyId(tOrderTaxi.getCompanyId());
                tAbnormalPayOrderService.insert(tAbnormalPayOrder);
            }
            if(responsibilityTypeVal<3){
                tOrderTaxi.setState(9);
            }
            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;
    }