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<String, String> 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<Reassign> 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<String, String> 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<Reassign> 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();
|
}
|
|
}
|