From e160ce24b5be0b5c5559ae5a44d6be2839e51b99 Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期三, 16 八月 2023 17:00:05 +0800 Subject: [PATCH] update --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java | 75 +++++++++++++++++++++++++++++++++---- 1 files changed, 66 insertions(+), 9 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 ee7f73e..08187f8 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 @@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.supersavedriving.driver.modular.system.model.DivisionRecord; import com.supersavedriving.driver.modular.system.model.Driver; import com.supersavedriving.driver.modular.system.model.Order; @@ -13,6 +14,7 @@ import com.supersavedriving.driver.modular.system.util.MallBook.model.ReceiveUser; import com.supersavedriving.driver.modular.system.util.MallBook.util.RSASignature; import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest; +import com.supersavedriving.driver.modular.system.util.PushUtil; 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.*; @@ -25,6 +27,7 @@ import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,6 +38,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; @@ -56,13 +61,13 @@ private IDriverService driverService; @Autowired - private RongYunUtil rongYunUtil; - - @Autowired private IRechargeRecordService rechargeRecordService; @Autowired private IDivisionRecordService divisionRecordService; + + @Autowired + private PushUtil pushUtil; @@ -263,9 +268,10 @@ @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"), @ApiImplicitParam(value = "原因", name = "cause", required = true, dataType = "string"), + @ApiImplicitParam(value = "phone", name = "phone", required = false, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResponseWarpper transferOrder(Long orderId, String cause){ + public ResponseWarpper transferOrder(Long orderId, String cause,String phone){ if(ToolUtil.isEmpty(orderId)){ return ResponseWarpper.success(ResultUtil.paranErr("orderId")); } @@ -277,12 +283,37 @@ if(null == uid){ return ResponseWarpper.tokenErr(); } - ResultUtil resultUtil = orderService.transferOrder(uid, orderId, cause); + ResultUtil resultUtil = orderService.transferOrder(uid, orderId, cause,phone); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } + } + @ResponseBody + @PostMapping("/api/order/transferOrderVerify") +// @ServiceLog(name = "司机转单操作", url = "/api/order/transferOrder") + @ApiOperation(value = "司机转单操作验证", tags = {"司机端-服务中"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "phone", name = "phone", required = false, dataType = "string"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper transferOrderVerify(String phone){ + if(phone!=null && !"".equals(phone)) { + List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("phone", phone)); + if (drivers.size() == 0) { + return new ResponseWarpper(500,"暂无该司机,无法转单"); + } else { + Driver driver = drivers.get(0); + if (driver.getServerStatus() != 1) { + return new ResponseWarpper(500,"司机正在服务中,无法转单。"); + } + if (driver.getStatus() != 1) { + return new ResponseWarpper(500,"该司机已被冻结,无法转单。"); + } + } + } + return ResponseWarpper.success(); } @@ -589,18 +620,31 @@ } String merOrderId = jsonObject.getString("merOrderId"); String divisionRecordId = jsonObject.getString("parameter1"); + DivisionRecord divisionRecord = divisionRecordService.selectById(divisionRecordId); + if(divisionRecord.getState() == 2){ + response.setStatus(200); + PrintWriter out = response.getWriter(); + out.print("OK"); + out.flush(); + out.close(); + return; + } + divisionRecord.setMerOrderId(merOrderId); + divisionRecord.setPayTime(new Date()); + divisionRecord.setState(2); + divisionRecordService.updateById(divisionRecord); + //确认收货 new Timer().schedule(new TimerTask() { @Override public void run() { - DivisionRecord divisionRecord = divisionRecordService.selectById(divisionRecordId); Receive receive = new Receive();//确认收货 receive.setOriginalMerOrderId(merOrderId); - receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); + receive.setRcvAmount(new BigDecimal(divisionRecord.getAmount()).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).longValue() + ""); List<ReceiveUser> splitList = new ArrayList<>(); ReceiveUser receiveUser = new ReceiveUser(); receiveUser.setSplitUserId(divisionRecord.getMerchantNumber()); - receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); + receiveUser.setRcvSplitAmount(new BigDecimal(divisionRecord.getAmount()).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).longValue() + ""); splitList.add(receiveUser); receive.setSplitList(splitList); TrhRequest<Receive> request1 = new TrhRequest(); @@ -617,7 +661,7 @@ logger.warn("确认收货处理中"); } } - }, 15000); + }, 60000); response.setStatus(200); PrintWriter out = response.getWriter(); out.print("OK"); @@ -631,4 +675,17 @@ e.printStackTrace(); } } + + + /** + * 管理后台调用推送 + * @param id + * @param type + * @param pushOrderInfoWarpper + */ + @ResponseBody + @PostMapping("/base/order/pushOrderInfo") + public void pushOrderInfo(Integer id, Integer type, PushOrderInfoWarpper pushOrderInfoWarpper){ + pushUtil.pushOrderInfo(id, type, pushOrderInfoWarpper); + } } -- Gitblit v1.7.1