package com.stylefeng.guns.modular.system.controller.specialTrain; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.common.constant.factory.PageFactory; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ExcelExportUtil; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.controller.util.PushUtil; import com.stylefeng.guns.modular.system.dao.OrderCancelMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.HttpRequestUtil; import com.stylefeng.guns.modular.system.util.PushMinistryOfTransportUtil; import com.stylefeng.guns.modular.system.util.PushURL; import com.stylefeng.guns.modular.system.util.ResultUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.math.BigDecimal; import java.util.*; /** * 专车订单控制器 * * @author fengshuonan * @Date 2020-09-02 17:28:59 */ @Controller @RequestMapping("/tOrderPrivateCarConfirm") public class TOrderPrivateCarConfirmController extends BaseController { private String PREFIXCONFIRM = "/system/tOrderPrivateCarConfirm/"; @Autowired private ITOrderPrivateCarService tOrderPrivateCarService; @Autowired private ITServerCarmodelService tServerCarmodelService; @Autowired private ITOrderPositionService tOrderPositionService; @Autowired private ITDriverService tDriverService; @Autowired private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; @Resource private OrderCancelMapper orderCancelMapper; @Value("${pushMinistryOfTransport}") private boolean pushMinistryOfTransport; @Value("${filePath}") private String filePath; /** * 跳转到修改专车订单 */ @RequestMapping("/tOrderPrivateCar_orderDetail/{tOrderPrivateCarId}") public String tOrderPrivateCarUpdate(@PathVariable Integer tOrderPrivateCarId, Model model) { Map item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCarId); model.addAttribute("item",item); return PREFIXCONFIRM + "tOrderPrivateCar_orderDetail.html"; } /** * 跳转到专车订单首页 */ @RequestMapping("") public String confirmIndex(Model model) { //服务专车车型 List carmodelList = tServerCarmodelService.selectList(new EntityWrapper().eq("type", 1).eq("state", 1) ); model.addAttribute("carmodelList",carmodelList); return PREFIXCONFIRM + "tOrderPrivateCar.html"; } /** * 跳转到确认金额页面 */ @RequestMapping("/toConfirmMoney/{tOrderPrivateCarId}") public String toConfirmMoney(@PathVariable Integer tOrderPrivateCarId, Model model) { Map item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCarId); model.addAttribute("item",item); return PREFIXCONFIRM + "toConfirmMoney.html"; } /** * 获取专车订单列表 */ @RequestMapping(value = "/listConfirm") @ResponseBody public Object listConfirm(String insertTime, String orderNum, Integer orderSource, String userName, String userPhone, String passengers, String passengersPhone, Integer serverCarModelId, String driver, Integer state, Integer smsNumber) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(insertTime)){ String[] timeArray = insertTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } Page> page = new PageFactory>().defaultPage(); page.setRecords(tOrderPrivateCarService.getPrivateCarOrderListConfirm(page,beginTime,endTime,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),orderNum,orderSource,userName,userPhone,passengers,passengersPhone,serverCarModelId,driver,state,smsNumber)); return super.packForBT(page); } private ResultUtil resultUtil; /** * 获取订单轨迹 * @param orderDetailId * @return */ @ResponseBody @RequestMapping(value = "/getOrderTrack", method = RequestMethod.POST) public ResultUtil getOrderTrack(String orderDetailId){ if(ToolUtil.isNotEmpty(orderDetailId)){ try { // List list = tOrderPositionService.selectList(new EntityWrapper().eq("orderType", 1).eq("orderId", orderDetailId).orderBy("insertTime")); /*if(list.size() == 0){ return ResultUtil.error("该订单没有运行轨迹"); }*/ //将数据存储到文件中 File file = new File(filePath + orderDetailId + "_1.txt"); if(!file.exists()){ return ResultUtil.success(new ArrayList<>()); } //读取文件(字符流) BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); //循环取出数据 String str = null; StringBuffer sb = new StringBuffer(); while ((str = in.readLine()) != null) { sb.append(str); } List list = JSONArray.parseArray(sb.toString(), TOrderPosition.class); resultUtil = ResultUtil.success(list); }catch (Exception e){ e.printStackTrace(); resultUtil = ResultUtil.runErr(); } }else { resultUtil = ResultUtil.paranErr(); } return resultUtil; } @Autowired private ITCompanyService companyService; @Autowired private ITDriverService driverService; @Autowired private IIncomeService incomeService; @Autowired private PushUtil pushUtil; /** * 支付专车订单 */ @RequestMapping(value = "/confirmMoney") @ResponseBody public Object confirmMoney(Integer id,BigDecimal money) { TOrderPrivateCar orderPrivateCar = tOrderPrivateCarService.selectById(id); orderPrivateCar.setAbnormalMoney(orderPrivateCar.getOrderMoney()); orderPrivateCar.setOrderMoney(money); orderPrivateCar.setIsException(0); orderPrivateCar.setPriceAuditState(2); orderPrivateCar.setState(7); orderPrivateCar.updateById(); // 推送消息 TOrderPrivateCar finalOrderPrivateCar = orderPrivateCar; new Thread(new Runnable() { @Override public void run() { pushUtil.pushOrderState(1, finalOrderPrivateCar.getUserId(), finalOrderPrivateCar.getId(), 1, finalOrderPrivateCar.getState()); pushUtil.pushOrderState(2, finalOrderPrivateCar.getDriverId(), finalOrderPrivateCar.getId(), 1, finalOrderPrivateCar.getState()); } }).start(); return SUCCESS_TIP; } }