package com.stylefeng.guns.modular.api; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.service.ITEnterpriseWithdrawalService; import com.stylefeng.guns.modular.account.service.UserWithdrawalService; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.service.ICompanyService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IReassignService; import com.stylefeng.guns.modular.system.util.PayMoneyUtil; import com.stylefeng.guns.modular.system.util.rongyun.RongYunUtil; import com.stylefeng.guns.modular.system.util.rongyun.model.CloudRecordingCallback; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * 第三方支付回调控制器 */ @RestController @RequestMapping("/base") public class CallbackController { @Autowired private IReassignService reassignService; @Autowired private PayMoneyUtil payMoneyUtil; @Autowired private IOrderPrivateCarService orderPrivateCarService; @Autowired private IOrderTaxiService orderTaxiService; @Autowired private IOrderCrossCityService orderCrossCityService; /** * 订单改派微信回调 * @param request */ @ResponseBody @PostMapping("/wxReassign") public void wxReassign(HttpServletRequest request, HttpServletResponse response){ try { Map map = payMoneyUtil.weixinpayCallback(request); if(null != map){ String id = map.get("out_trade_no"); String order_id = map.get("transaction_id"); String result = map.get("result"); if(ToolUtil.isNotEmpty(id) && ToolUtil.isNotEmpty(order_id)){ // TODO 司机云闪付 改派微信回调支付充值 System.out.println("订单改派支付宝回调"+map); // String[] s = id.split("_"); // if(Integer.valueOf(s[1]) == 3) {//跨城订单 // System.out.println("跨城订单"); // String[] split1 = s[0].split(","); // List reassigns = reassignService.selectBatchIds(Arrays.asList(split1)); // cloudPay(reassigns.get(0).getOriginalDriverId(),map.get("total_fee"),map.get("transaction_id"),1); // }else { // Reassign reassign = reassignService.selectById(s[0]); // cloudPay(reassign.getOriginalDriverId(),map.get("total_fee"),map.get("transaction_id"),1); // } PrintWriter out = response.getWriter(); out.write(result); out.flush(); out.close(); reassignService.payReassign(id, order_id, 1); } } }catch (Exception e){ e.printStackTrace(); } } /** * 订单改派支付宝回调 * @param request */ @ResponseBody @PostMapping("/aliReassign") public void aliReassign(HttpServletRequest request, HttpServletResponse response){ try { Map map = payMoneyUtil.alipayCallback(request); if(null != map){ String id = map.get("out_trade_no"); String order_id = map.get("trade_no"); if(ToolUtil.isNotEmpty(id) && ToolUtil.isNotEmpty(order_id)){ reassignService.payReassign(id, order_id, 2); } System.out.println("订单改派支付宝回调"+map); // TODO 司机云闪付 改派支付宝回调支付充值 // String[] s = id.split("_"); // if(Integer.valueOf(s[1]) == 3) {//跨城订单 // System.out.println("跨城订单"); // String[] split1 = s[0].split(","); // List reassigns = reassignService.selectBatchIds(Arrays.asList(split1)); // cloudPay(reassigns.get(0).getOriginalDriverId(),map.get("total_amount"),map.get("trade_no"),0); // }else { // Reassign reassign = reassignService.selectById(s[0]); // cloudPay(reassign.getOriginalDriverId(),map.get("total_amount"),map.get("trade_no"),0); // } PrintWriter out = response.getWriter(); out.print("success"); out.flush(); out.close(); } }catch (Exception e){ e.printStackTrace(); } } @ResponseBody @PostMapping("/rongYunCallBack") public void rongYunCallBack(HttpServletRequest request, HttpServletResponse response){ CloudRecordingCallback cloudRecordingCallback = RongYunUtil.cloudRecordingCallback(request); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.err.println(sdf.format(new Date()) + "-------------------云端录制状态回调!-------------------"); System.err.println(JSON.toJSONString(cloudRecordingCallback)); if(null == cloudRecordingCallback){ System.err.println("云端录制状态回调解析出错!"); return; } Integer type = cloudRecordingCallback.getType(); if(4 == type){//文件上传 String fileUrl = cloudRecordingCallback.getOutput().getFileUrl(); String roomId = cloudRecordingCallback.getRoomId(); String[] split = roomId.split("_"); String orderType = split[0]; String orderId = split[1]; if("1".equals(orderType)){ OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); orderPrivateCar.setVoice(fileUrl); orderPrivateCar.setVoiceTime(new Date()); orderPrivateCarService.updateById(orderPrivateCar); } if("2".equals(orderType)){ OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); orderTaxi.setVoice(fileUrl); orderTaxi.setVoiceTime(new Date()); orderTaxiService.updateById(orderTaxi); } if("3".equals(orderType)){ OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId); orderCrossCity.setVoice(fileUrl); orderCrossCity.setVoiceTime(new Date()); orderCrossCityService.updateById(orderCrossCity); } } PrintWriter out = null; try { out = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } out.print("OK"); out.flush(); out.close(); } }