From 92e00dafd06ec748b51f565c7a4c98986a618de9 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期六, 03 六月 2023 02:01:40 +0800 Subject: [PATCH] 新增加分账功能 --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java | 154 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 141 insertions(+), 13 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java index bcc54e8..2844803 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java @@ -1,13 +1,19 @@ package com.supersavedriving.driver.modular.system.api; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.supersavedriving.driver.modular.system.model.Driver; import com.supersavedriving.driver.modular.system.model.Order; +import com.supersavedriving.driver.modular.system.model.RechargeRecord; +import com.supersavedriving.driver.modular.system.service.IRechargeRecordService; +import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse; +import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil; +import com.supersavedriving.driver.modular.system.util.rongyun.model.CloudRecordingCallback; import com.supersavedriving.driver.modular.system.warpper.*; -import com.supersavedriving.driver.core.common.annotion.ServiceLog; import com.supersavedriving.driver.core.util.ToolUtil; import com.supersavedriving.driver.modular.system.service.IDriverService; import com.supersavedriving.driver.modular.system.service.IOrderService; import com.supersavedriving.driver.modular.system.util.ResultUtil; -import com.supersavedriving.driver.modular.system.warpper.*; import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper; import com.supersavedriving.driver.modular.system.warpper.HallOrderList; import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper; @@ -15,13 +21,16 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; 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 org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.Map; /** * 订单控制器 @@ -38,6 +47,12 @@ @Autowired private IDriverService driverService; + @Autowired + private RongYunUtil rongYunUtil; + + @Autowired + private IRechargeRecordService rechargeRecordService; + @@ -48,14 +63,14 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResponseWarpper<Long> queryDriverServerOrder(){ + public ResponseWarpper<Map<String, Object>> queryDriverServerOrder(){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ return ResponseWarpper.tokenErr(); } - Long id = orderService.queryDriverServerOrder(uid); - return ResponseWarpper.success(id); + Map<String, Object> map = orderService.queryDriverServerOrder(uid); + return ResponseWarpper.success(map); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); @@ -71,7 +86,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResponseWarpper driverAddOrder(AddOrderWarpper addOrderWarpper){ + public ResponseWarpper<Integer> driverAddOrder(AddOrderWarpper addOrderWarpper){ try { Integer uid = driverService.getUserByRequest(); if(null == uid){ @@ -373,10 +388,11 @@ @ApiOperation(value = "服务完成后修改订单状态", tags = {"司机端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), - @ApiImplicitParam(value = "107(线上支付),108(完成线下支付)", name = "state", required = true, dataType = "int"), + @ApiImplicitParam(value = "支付方式(1=线上,2=线下)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "107(待支付),108(已完成)", name = "state", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResponseWarpper setOrderStatus(Long orderId, Integer state){ + public ResponseWarpper setOrderStatus(Long orderId, Integer payType, Integer state){ if(ToolUtil.isEmpty(orderId)){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } @@ -388,7 +404,7 @@ if(null == uid){ return ResponseWarpper.tokenErr(); } - ResultUtil resultUtil = orderService.setOrderStatus(uid, orderId, state); + ResultUtil resultUtil = orderService.setOrderStatus(uid, orderId, payType, state); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); @@ -397,7 +413,39 @@ } + /** + * 转账回调 + * @param execute + * @param response + */ + @ResponseBody + @PostMapping("/base/order/zhaunzhangCallback") + public void zhaunzhangCallback(@RequestBody InterfaceResponse execute, HttpServletResponse response){ + try { + if("0000".equals(execute.getCode())){ + JSONObject jsonObject = JSON.parseObject(execute.getResult()); + Integer status = jsonObject.getInteger("status");//0:待处理;1:成功;2:失败 + if(2 == status){ + System.err.println("转账失败"); + return; + } + String parameter1 = jsonObject.getString("parameter1"); + RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1); + + response.setStatus(200); + PrintWriter out = response.getWriter(); + out.print("OK"); + out.flush(); + out.close(); + }else{ + System.err.println("转账失败:" + execute.getMsg()); + return; + } + }catch (Exception e){ + e.printStackTrace(); + } + } @ResponseBody @PostMapping("/api/order/queryDriverOrderList") @@ -428,4 +476,84 @@ return new ResponseWarpper(500, e.getMessage()); } } + + + /** + * 服务录音回调 + * @param request + */ + @ResponseBody + @PostMapping("/base/order/cloudRecordingCallback") + public void cloudRecordingCallback(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(); + Order order = orderService.selectById(roomId); + order.setRouteRecord(fileUrl); + orderService.updateById(order); + } + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (IOException e) { + e.printStackTrace(); + } + out.print("OK"); + out.flush(); + out.close(); + } + + + @ResponseBody + @PostMapping("/api/order/openOrderQRCode") +// @ServiceLog(name = "打开下单二维码操作", url = "/api/order/openOrderQRCode") + @ApiOperation(value = "打开下单二维码操作", tags = {"司机端-首页"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper openOrderQRCode(){ + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + ResultUtil resultUtil = driverService.openOrderQRCode(uid); + return ResponseWarpper.success(resultUtil); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + @ResponseBody + @PostMapping("/api/order/closeOrderQRCode") +// @ServiceLog(name = "关闭下单二维码操作", url = "/api/order/closeOrderQRCode") + @ApiOperation(value = "关闭下单二维码操作", tags = {"司机端-首页"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper closeOrderQRCode(){ + try { + Integer uid = driverService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.tokenErr(); + } + ResultUtil resultUtil = driverService.closeOrderQRCode(uid); + return ResponseWarpper.success(resultUtil); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } } -- Gitblit v1.7.1