Pu Zhibing
昨天 1c40baaf9ca0183945b9881d11ceed5aeebc8290
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
@@ -13,9 +13,8 @@
import com.stylefeng.guns.modular.shunfeng.util.OrdersUtil;
import com.stylefeng.guns.modular.shunfeng.util.SensitiveWordUtil;
import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
import com.stylefeng.guns.modular.system.model.SensitiveWords;
import com.stylefeng.guns.modular.system.model.TCarBrand;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.ICompanyService;
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
import com.stylefeng.guns.modular.system.service.ITCarBrandService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
@@ -23,7 +22,9 @@
import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
import com.stylefeng.guns.modular.system.util.PushUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import io.swagger.annotations.*;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +36,7 @@
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
/**
@@ -88,6 +90,12 @@
        
        @Autowired
        private IFinancialService financialService;
        @Autowired
        private ICompanyService companyService;
        @Autowired
        private IOrderInvitationService orderInvitationService;
        
@@ -647,6 +655,7 @@
            driverRide.setBrandId(brandId);
            driverRide.setUserId(userId);
            driverRide.setByInviteCode(inviteCodeRide);
            driverRide.setCompanyId(1);
            driverRide.setCarType(carType);
            driverRide.setCarNum(carNum);
            driverRide.setLicense(license);
@@ -847,6 +856,25 @@
    }
    private Integer getState(Integer state){
        switch (state){
            case 1:
                return 7;
            case 2:
                return 1;
            case 3:
                return 4;
            case 4:
                return 5;
            case 5:
                return 8;
            case 6:
                return 10;
        }
        return null;
    }
    //用户取消退款
    public void userCancelTuik(OrderRide orderRide){
@@ -864,8 +892,40 @@
            }else if(orderRide.getPayType()==2){
                //微信
                Integer money = new Double(orderRide.getMoney() * 100).intValue();
                Integer tMoney_ = new Double(orderRide.getTuiMoney()* 100).intValue();
                PayUtil.refundForWxpay(1, financial.getLsType(), orderRide.getOrderNum(), finNum, money,tMoney_ , "2");
//                Integer tMoney_ = new Double(orderRide.getTuiMoney()* 100).intValue();
//                PayUtil.refundForWxpay(1, financial.getLsType(), orderRide.getOrderNum(), finNum, money,tMoney_ , "2");
                //中台订单退款操作
                if(ToolUtil.isNotEmpty(orderRide.getZttravelId())){
                    UserInfo userInfo = userInfoService.selectById(orderRide.getUserId());
                    TradeOrderRefundRequest request = new TradeOrderRefundRequest();
                    request.setPartnerPayId(orderRide.getZttravelId());
                    request.setPayId(financial.getLsType());
                    request.setRefundTotalFee(money + "");
                    request.setRemark("顺风车订单取消退款");
                    request.setRefundType("RF");
                    RefundInfoRequest refundInfo = new RefundInfoRequest();
                    refundInfo.setPayItemId(orderRide.getZttravelId());
                    refundInfo.setPayId(financial.getLsType());
                    refundInfo.setTradeFee(money + "");
                    request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{
                        add(refundInfo);
                    }});
                    TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
                    //退款通知
                    OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest();
                    request2.setOrderId(orderRide.getZttravelId());
                    request2.setRefundPayNum(tradeOrderRefund.getRefundId());
                    request2.setRefundType("5");
                    request2.setApplyRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
                    request2.setActualRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
                    request2.setRefundAccount(userInfo.getOnconUUID());
                    request2.setRemark("顺风车订单取消退款");
                    OrderUtil.orderRefundNotice(request2);
                }
            }else if(orderRide.getPayType()==3){
            
            }
@@ -881,6 +941,11 @@
            f.setOrderType(4);
            f.setLx(1);
            financialService.insert(f);
        }else{
            //未支付的情况取消订单
            if(ToolUtil.isNotEmpty(orderRide.getZttravelId())){
                OrderUtil.tradeOrderCancel(orderRide.getZttravelId());
            }
        }
        /*添加系统消息*/
        try {
@@ -1006,6 +1071,7 @@
            if(orderRide!=null && orderRide.getState()==6){
                return  ResultUtil.error("用户已取消该行程");
            }
            UserInfo userInfo=userInfoService.selectById(driverRide.getUserId());
            if(orderTravel!=null){
                if(type==1){//1确认同行 一个行程只能匹配一个订单
                    if(orderTravel.getState()==3){
@@ -1026,7 +1092,7 @@
                    driverRide.setTotalOrders(driverRide.getTotalOrders()+1);
                    driverRideService.updateById(driverRide);
                    /*修改用户接单数和司机提成*/
                    UserInfo userInfo=userInfoService.selectById(driverRide.getUserId());
                    userInfo.setBalance(userInfo.getBalance()+(orderRide.getMoney()-orderRide.getPlatformMoney()));
                    userInfo.setTotalOrders(userInfo.getTotalOrders() + 1);
                    userInfoService.updateById(userInfo);
@@ -1074,6 +1140,18 @@
                    throw new RuntimeException(e);
                }
            }
            if(null != orderRide.getZttravelId()){
                //中台修改订单状态
                ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
                request.setOrderId(orderRide.getZttravelId());
                request.setStatus(getState(orderRide.getState()));
                if (null != orderRide.getDriverId()) {
                    request.setDriverId(driverRide.getEmpId().toString());
                }
                OrderUtil.modifyTravelItinerary(request);
            }
            pushUtil.pushOrderState(1, orderRide.getUserId(), orderRide.getId(), 8, orderRide.getState(), null);
            return ResultUtil.success("");
        } catch (Exception e) {
@@ -1268,6 +1346,11 @@
            OrderRide orderRide=orderRideService.selectOne(new EntityWrapper<OrderRide>().eq("userId",userId)
                    .eq("state",2));
            if(orderRide!=null){
                OrderInvitation orderInvitation = new OrderInvitation();
                orderInvitation.setOrderRideId(orderRide.getId());
                orderInvitation.setOrderTravelId(orderTravel.getId());
                orderInvitation.setInsertTime(new Date());
                orderInvitationService.insert(orderInvitation);
                String message="您发布的"+DateUtil.getDateToString(orderTravel.getStartTime(),"MM月dd日")+"的行程有乘客邀请您同行";
                /*添加系统消息*/
                try {
@@ -1282,6 +1365,8 @@
        }
        return ResultUtil.error("异常");
    }
    /**
     * 用户订单匹配列表页面,用户订单去匹配司机的行程
     * @param  type  搜索条件:1默认排序(根据线路、时间,人数综合匹配排序721),2时间最早,3距离最近
@@ -1316,6 +1401,7 @@
            orderRideVo.setLon(orderRide.getStartLon());
            orderRideVo.setLat(orderRide.getStartLat());
            orderRideVo.setNum(orderRide.getNum());
            orderRideVo.setId(orderId);
            orderRideVo.setType(type+1);//搜索条件:1默认排序(根据线路、时间,人数综合匹配排序721),2时间最早,3距离最近
            List<OrderRideVo> orderRides=orderTravelService.getOrderTravel(orderRideVo);
            return ResultUtil.success(orderRides);