From a075cdd2f76fae321ecf95dce363141ade30f0f1 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期五, 12 四月 2024 22:37:58 +0800 Subject: [PATCH] 新增加功能 --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 476 ++++++++--- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml | 16 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java | 5 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java | 585 -------------- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 68 + UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java | 12 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java | 2 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java | 695 ---------------- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java | 13 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java | 46 + UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java | 6 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml | 10 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java | 74 + UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 285 +++++-- UserIGOTravel/guns-admin/src/main/resources/application.yml | 2 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java | 83 - UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java | 4 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java | 14 18 files changed, 819 insertions(+), 1,577 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 835bc67..fb8e8bc 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -81,9 +81,6 @@ @Autowired private IOrderCrossCityService orderCrossCityService; - /*@Autowired - private ICBCPayUtil icbcPayUtil;*/ - @Autowired private IOrderLogisticsService orderLogisticsService; @@ -558,7 +555,7 @@ @ApiOperation(value = "获取订单取消支付页面详情", tags = {"用户端-服务中"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=同城小件物流)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil<OrderInfoWarpper> queryCancelPage(Integer orderId, Integer orderType, Integer language){ @@ -580,16 +577,13 @@ ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId); map.put("cancelPayMoney", r.getData().getAmount()); break; + case 4://同城小件物流 + map = orderLogisticsService.queryOrderInfo(language, orderId); + ResultUtil<BaseWarpper> r1 = orderLogisticsService.queryCancleAmount(orderId, language); + map.put("cancelPayMoney", r1.getData().getAmount()); + break; } OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map); -// String driverName = orderInfoWarpper.getDriverName(); -// if(language == 2){ -// driverName = "Master " + driverName.replace("师傅", ""); -// } -// if(language == 3){ -// driverName = "Maître " + driverName.replace("师傅", ""); -// } -// orderInfoWarpper.setDriverName(driverName); return ResultUtil.success(orderInfoWarpper); }catch (Exception e){ e.printStackTrace(); @@ -836,7 +830,7 @@ @ApiOperation(value = "获取取消订单需要支付的费用金额", tags = {"用户端-出租车", "用户端-专车"}, notes = "返回金额为0则不需要支付") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城, 4=同城小件物流)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType, Integer language){ @@ -848,6 +842,8 @@ return orderTaxiService.queryCancleAmount(id); case 3: return orderCrossCityService.queryCancleAmount(id); + case 4: + return orderLogisticsService.queryCancleAmount(id, language); } return ResultUtil.success(); }catch (Exception e){ @@ -869,16 +865,19 @@ */ @ResponseBody @PostMapping("/api/taxi/addCancle") - @ApiOperation(value = "添加取消记录", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiOperation(value = "添加取消记录【2.0】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "取消原因", name = "reason", required = true, dataType = "string"), + @ApiImplicitParam(value = "当前经度", name = "lon", required = true, dataType = "Double"), + @ApiImplicitParam(value = "当前纬度", name = "lat", required = true, dataType = "Double"), + @ApiImplicitParam(value = "详细地址", name = "address", required = true, dataType = "string"), @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"), @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, Integer language, HttpServletRequest request){ + public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, Double lon, Double lat, String address, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ @@ -886,13 +885,13 @@ } switch (orderType){ case 1: - return orderPrivateCarService.addCancle(id, reason, remark, uid, language); + return orderPrivateCarService.addCancle(id, reason, remark, uid, lon, lat, address, language); // case 2: // return orderTaxiService.addCancle(id, reason, remark, uid); // case 3: // return orderCrossCityService.addCancle(id, reason, remark, uid); case 4: - return orderLogisticsService.addCancle(id, reason, remark, uid, language); + return orderLogisticsService.addCancle(id, reason, remark, uid, lon, lat, address, language); // case 5: // return orderLogisticsService.addCancle(id, reason, remark, uid); // case 6: @@ -956,10 +955,10 @@ */ @ResponseBody @PostMapping("/api/taxi/cancleOrderTaxi") - @ApiOperation(value = "取消操作支付【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiOperation(value = "取消操作支付【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额)", name = "payType", required = true, dataType = "int"), @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"), @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"), @@ -979,6 +978,8 @@ // return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type); // case 3: // return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type); + case 4: + return orderLogisticsService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language); } return ResultUtil.success(); }catch (Exception e){ @@ -1321,6 +1322,9 @@ // case 3: // orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1); // break; + case 4: + orderLogisticsService.payCancelOrderPrivateCar(id, order_id, language); + break; } callbackResponse.setCheckout_request_id(order_id); callbackResponse.setMerchant_transaction_id(out_trade_no); @@ -1595,4 +1599,30 @@ payoutCallbackResponse.setResults(results); return payoutCallbackResponse; } + + + + @ResponseBody + @PostMapping("/api/taxi/updateEndAddress") + @ApiOperation(value = "修改目的地【2.0】", tags = {"用户端-专车", "用户端-小件物流"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "终点经度", name = "endLon", required = true, dataType = "String"), + @ApiImplicitParam(value = "终点纬度", name = "endLat", required = true, dataType = "String"), + @ApiImplicitParam(value = "终点地址", name = "endAddress", required = true, dataType = "String"), + @ApiImplicitParam(value = "语言", name = "language", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil updateEndAddress(Integer orderId, Integer orderType, String endLon, String endLat, String endAddress){ + switch (orderType){ + case 1: + orderPrivateCarService.updateEndAddress(orderId, endLon, endLat, endAddress); + break; + case 4: + orderLogisticsService.updateEndAddress(orderId, endLon, endLat, endAddress); + break; + } + return ResultUtil.success(); + } } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java index 1b301d3..5891323 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java @@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; import java.util.Date; /** * 小件物流订单 */ +@Data @TableName("t_order_logistics") public class OrderLogistics { /** @@ -234,7 +236,7 @@ @TableField("payMoney") private Double payMoney; /** - * 状态(1=待接单,2=待出发,3=待到达预约地点,4=待取货,5=送货中,6=已送达,7=待支付,8=需补差价,9=已取货,10=已取消,11=已支付差价) + * 状态(1=待接单,2=待出发,3=待到达预约地点,4=待取货,5=送货中,6=已送达,7=待支付,8=需补差价,9=已取货,10=已取消,11=改派中,12=已支付差价,13=取消待支付) */ @TableField("state") private Integer state; @@ -329,564 +331,25 @@ */ @TableField("driverPay") private Integer driverPay; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public Integer getUserId() { - return userId; - } - - public void setUserId(Integer userId) { - this.userId = userId; - } - - public Integer getDriverId() { - return driverId; - } - - public void setDriverId(Integer driverId) { - this.driverId = driverId; - } - - public Integer getCarId() { - return carId; - } - - public void setCarId(Integer carId) { - this.carId = carId; - } - - public String getOrderNum() { - return orderNum; - } - - public void setOrderNum(String orderNum) { - this.orderNum = orderNum; - } - - public Integer getCargoType() { - return cargoType; - } - - public void setCargoType(Integer cargoType) { - this.cargoType = cargoType; - } - - public Integer getUrgent() { - return urgent; - } - - public void setUrgent(Integer urgent) { - this.urgent = urgent; - } - - public Integer getCargoNumber() { - return cargoNumber; - } - - public void setCargoNumber(Integer cargoNumber) { - this.cargoNumber = cargoNumber; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } - - public Double getPlacementLon() { - return placementLon; - } - - public void setPlacementLon(Double placementLon) { - this.placementLon = placementLon; - } - - public Double getPlacementLat() { - return placementLat; - } - - public void setPlacementLat(Double placementLat) { - this.placementLat = placementLat; - } - - public String getPlacementAddress() { - return placementAddress; - } - - public void setPlacementAddress(String placementAddress) { - this.placementAddress = placementAddress; - } - - public Double getStartLon() { - return startLon; - } - - public void setStartLon(Double startLon) { - this.startLon = startLon; - } - - public Double getStartLat() { - return startLat; - } - - public void setStartLat(Double startLat) { - this.startLat = startLat; - } - - public String getStartAddress() { - return startAddress; - } - - public void setStartAddress(String startAddress) { - this.startAddress = startAddress; - } - - public Double getEndLon() { - return endLon; - } - - public void setEndLon(Double endLon) { - this.endLon = endLon; - } - - public Double getEndLat() { - return endLat; - } - - public void setEndLat(Double endLat) { - this.endLat = endLat; - } - - public String getEndAddress() { - return endAddress; - } - - public void setEndAddress(String endAddress) { - this.endAddress = endAddress; - } - - public String getRecipient() { - return recipient; - } - - public void setRecipient(String recipient) { - this.recipient = recipient; - } - - public String getRecipientPhone() { - return recipientPhone; - } - - public void setRecipientPhone(String recipientPhone) { - this.recipientPhone = recipientPhone; - } - - public Double getBoardingLon() { - return boardingLon; - } - - public void setBoardingLon(Double boardingLon) { - this.boardingLon = boardingLon; - } - - public Double getBoardingLat() { - return boardingLat; - } - - public void setBoardingLat(Double boardingLat) { - this.boardingLat = boardingLat; - } - - public String getBoardingAddress() { - return boardingAddress; - } - - public void setBoardingAddress(String boardingAddress) { - this.boardingAddress = boardingAddress; - } - - public Date getBoardingTime() { - return boardingTime; - } - - public void setBoardingTime(Date boardingTime) { - this.boardingTime = boardingTime; - } - - public Double getGetoffLon() { - return getoffLon; - } - - public void setGetoffLon(Double getoffLon) { - this.getoffLon = getoffLon; - } - - public Double getGetoffLat() { - return getoffLat; - } - - public void setGetoffLat(Double getoffLat) { - this.getoffLat = getoffLat; - } - - public String getGetoffAddress() { - return getoffAddress; - } - - public void setGetoffAddress(String getoffAddress) { - this.getoffAddress = getoffAddress; - } - - public Date getGetoffTime() { - return getoffTime; - } - - public void setGetoffTime(Date getoffTime) { - this.getoffTime = getoffTime; - } - - public Double getMileage() { - return mileage; - } - - public void setMileage(Double mileage) { - this.mileage = mileage; - } - - public Integer getPayType() { - return payType; - } - - public void setPayType(Integer payType) { - this.payType = payType; - } - - public Double getOrderMoney() { - return orderMoney; - } - - public void setOrderMoney(Double orderMoney) { - this.orderMoney = orderMoney; - } - - public Double getTravelMoney() { - return travelMoney; - } - - public void setTravelMoney(Double travelMoney) { - this.travelMoney = travelMoney; - } - - public Double getTipMoney() { - return tipMoney; - } - - public void setTipMoney(Double tipMoney) { - this.tipMoney = tipMoney; - } - - public Double getRedPacketMoney() { - return redPacketMoney; - } - - public void setRedPacketMoney(Double redPacketMoney) { - this.redPacketMoney = redPacketMoney; - } - - public Double getCouponMoney() { - return couponMoney; - } - - public void setCouponMoney(Double couponMoney) { - this.couponMoney = couponMoney; - } - - public Integer getRedPacketId() { - return redPacketId; - } - - public void setRedPacketId(Integer redPacketId) { - this.redPacketId = redPacketId; - } - - public Integer getCouponId() { - return couponId; - } - - public void setCouponId(Integer couponId) { - this.couponId = couponId; - } - - public Integer getCompanyId() { - return companyId; - } - - public void setCompanyId(Integer companyId) { - this.companyId = companyId; - } - - public Double getPayMoney() { - return payMoney; - } - - public void setPayMoney(Double payMoney) { - this.payMoney = payMoney; - } - - public Integer getState() { - return state; - } - - public void setState(Integer state) { - this.state = state; - } - - public Date getInsertTime() { - return insertTime; - } - - public void setInsertTime(Date insertTime) { - this.insertTime = insertTime; - } - - public Date getTravelTime() { - return travelTime; - } - - public void setTravelTime(Date travelTime) { - this.travelTime = travelTime; - } - - public Date getSnatchOrderTime() { - return snatchOrderTime; - } - - public void setSnatchOrderTime(Date snatchOrderTime) { - this.snatchOrderTime = snatchOrderTime; - } - - public Date getSetOutTime() { - return setOutTime; - } - - public void setSetOutTime(Date setOutTime) { - this.setOutTime = setOutTime; - } - - public Date getArriveTime() { - return arriveTime; - } - - public void setArriveTime(Date arriveTime) { - this.arriveTime = arriveTime; - } - - public Date getStartServiceTime() { - return startServiceTime; - } - - public void setStartServiceTime(Date startServiceTime) { - this.startServiceTime = startServiceTime; - } - - public Date getEndServiceTime() { - return endServiceTime; - } - - public void setEndServiceTime(Date endServiceTime) { - this.endServiceTime = endServiceTime; - } - - public Integer getOrderSource() { - return orderSource; - } - - public void setOrderSource(Integer orderSource) { - this.orderSource = orderSource; - } - - - public Integer getInvoiceId() { - return invoiceId; - } - - public void setInvoiceId(Integer invoiceId) { - this.invoiceId = invoiceId; - } - - public Integer getPayManner() { - return payManner; - } - - public void setPayManner(Integer payManner) { - this.payManner = payManner; - } - - public String getTrackId() { - return trackId; - } - - public void setTrackId(String trackId) { - this.trackId = trackId; - } - - public Double getDiscount() { - return discount; - } - - public void setDiscount(Double discount) { - this.discount = discount; - } - - public Double getDiscountMoney() { - return discountMoney; - } - - public void setDiscountMoney(Double discountMoney) { - this.discountMoney = discountMoney; - } - - public Integer getActivityId() { - return activityId; - } - - public void setActivityId(Integer activityId) { - this.activityId = activityId; - } - - public Integer getIsDelete() { - return isDelete; - } - - public void setIsDelete(Integer isDelete) { - this.isDelete = isDelete; - } - - public String getTelX() { - return telX; - } - - public void setTelX(String telX) { - this.telX = telX; - } - - public String getBindId() { - return bindId; - } - - public void setBindId(String bindId) { - this.bindId = bindId; - } - - public String getPickUpCode() { - return pickUpCode; - } - - public void setPickUpCode(String pickUpCode) { - this.pickUpCode = pickUpCode; - } - - public Integer getIsReassign() { - return isReassign; - } - - public void setIsReassign(Integer isReassign) { - this.isReassign = isReassign; - } - - public Integer getReassignNotice() { - return reassignNotice; - } - - public void setReassignNotice(Integer reassignNotice) { - this.reassignNotice = reassignNotice; - } - - public Integer getDriverPay() { - return driverPay; - } - - public void setDriverPay(Integer driverPay) { - this.driverPay = driverPay; - } - - @Override - public String toString() { - return "OrderLogistics{" + - "id=" + id + - ", type=" + type + - ", userId=" + userId + - ", driverId=" + driverId + - ", carId=" + carId + - ", orderNum='" + orderNum + '\'' + - ", cargoType=" + cargoType + - ", cargoNumber=" + cargoNumber + - ", remark=" + remark + - ", placementLon=" + placementLon + - ", placementLat=" + placementLat + - ", placementAddress='" + placementAddress + '\'' + - ", startLon=" + startLon + - ", startLat=" + startLat + - ", startAddress='" + startAddress + '\'' + - ", endLon=" + endLon + - ", endLat=" + endLat + - ", endAddress='" + endAddress + '\'' + - ", recipient='" + recipient + '\'' + - ", recipientPhone='" + recipientPhone + '\'' + - ", boardingLon=" + boardingLon + - ", boardingLat=" + boardingLat + - ", boardingAddress='" + boardingAddress + '\'' + - ", boardingTime=" + boardingTime + - ", getoffLon=" + getoffLon + - ", getoffLat=" + getoffLat + - ", getoffAddress='" + getoffAddress + '\'' + - ", getoffTime=" + getoffTime + - ", mileage=" + mileage + - ", payManner=" + payManner + - ", payType=" + payType + - ", orderMoney=" + orderMoney + - ", travelMoney=" + travelMoney + - ", tipMoney=" + tipMoney + - ", redPacketMoney=" + redPacketMoney + - ", couponMoney=" + couponMoney + - ", redPacketId=" + redPacketId + - ", couponId=" + couponId + - ", discount=" + discount + - ", discountMoney=" + discountMoney + - ", activityId=" + activityId + - ", companyId=" + companyId + - ", payMoney=" + payMoney + - ", state=" + state + - ", insertTime=" + insertTime + - ", travelTime=" + travelTime + - ", snatchOrderTime=" + snatchOrderTime + - ", setOutTime=" + setOutTime + - ", arriveTime=" + arriveTime + - ", startServiceTime=" + startServiceTime + - ", endServiceTime=" + endServiceTime + - ", orderSource=" + orderSource + - ", invoiceId=" + invoiceId + - ", trackId='" + trackId + '\'' + - ", isDelete=" + isDelete + - ", telX='" + telX + '\'' + - ", bindId='" + bindId + '\'' + - '}'; - } + /** + * 改派之前的订单状态 + * @return + */ + @TableField("oldState") + private Integer oldState; + /** + * 修改目的地经度 + */ + @TableField("destinationLon") + private String destinationLon; + /** + * 修改目的地纬度 + */ + @TableField("destinationLat") + private String destinationLat; + /** + * 修改目的地地址 + */ + @TableField("destination") + private String destination; } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java index 9d87fc1..e7016f5 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java @@ -4,6 +4,7 @@ import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.system.model.Region; import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -166,7 +167,7 @@ * @param uid * @throws Exception */ - ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Integer language) throws Exception; + ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Double lon, Double lat, String address, Integer language) throws Exception; /** @@ -211,4 +212,47 @@ * @throws Exception */ List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception; + + + /** + * 获取取消订单需要支付的金额 + * @param id + * @return + * @throws Exception + */ + ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer language) throws Exception; + + /** + * 删除服务中推送定时任务 + * @param orderId + */ + void deleteTask(Integer orderId); + + + /** + * 取消订单操作 + * @param id + * @return + * @throws Exception + */ + ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language) throws Exception; + + + /** + * 取消订单支付后的处理 + * @param id 订单=id + * @param order_id 工行支付单号 + * @throws Exception + */ + void payCancelOrderPrivateCar(Integer id, String order_id, Integer language) throws Exception; + + + /** + * 修改目的地 + * @param orderId + * @param endLon + * @param endLat + * @param endAddress + */ + void updateEndAddress(Integer orderId, String endLon, String endLat, String endAddress); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index 8ef0fa6..cd0ef18 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; +import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl; import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread; @@ -25,6 +26,7 @@ import com.stylefeng.guns.modular.system.util.Tingg.model.Results; import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; +import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; @@ -35,7 +37,13 @@ import org.jsoup.select.Elements; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.stereotype.Service; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import java.io.File; @@ -141,6 +149,12 @@ @Autowired private IPhoneService phoneService; + + @Autowired + private ICancleOrderService cancleOrderService; + + @Autowired + private RestTemplate internalRestTemplate; @@ -1091,7 +1105,7 @@ @Override - public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Integer language) throws Exception { + public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Double lon, Double lat, String address, Integer language) throws Exception { if(ToolUtil.isNotEmpty(remark)){ if(ToolUtil.isNotEmpty(remark)){ List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null); @@ -1107,133 +1121,57 @@ if(null == orderLogistics){ return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande."); } - if(orderLogistics.getState() > 5 && orderLogistics.getState() != 7 && orderLogistics.getState() != 11){ + if(orderLogistics.getState() > 5 && orderLogistics.getState() != 11){ return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale."); } - - if(orderLogistics.getState() == 7){ - OrderCancel orderCancel = new OrderCancel(); - orderCancel.setOrderId(id); - orderCancel.setOrderType(orderLogistics.getType()); - orderCancel.setReason(reason); - orderCancel.setRemark(remark); - orderCancel.setState(2); - orderCancel.setInsertTime(new Date()); - orderCancel.setUserType(1); - orderCancelService.insert(orderCancel); + + if(null == orderLogistics.getDriverId()){//没有接单的情况 + integer = orderCancelService.saveData(id, 4, language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", language == 1 ? "无司机接单" : language == 2 ? "No driver to take orders" : "Pas de chauffeur pour prendre les commandes", null, null, 2, 1, uid); orderLogistics.setState(10); this.updateById(orderLogistics); - return ResultUtil.success(); - } - - - //回退支付金额 - if(null != orderLogistics.getPayType() && orderLogistics.getPayType() == 1) {//微信 - OrderCancel orderCancel = new OrderCancel(); - orderCancel.setOrderId(id); - orderCancel.setOrderType(orderLogistics.getType()); - orderCancel.setReason(reason); - orderCancel.setRemark(remark); - orderCancel.setState(1); - orderCancel.setInsertTime(new Date()); - orderCancel.setUserType(1); - orderCancelService.insert(orderCancel); - orderLogistics.setState(10); - this.updateById(orderLogistics); - //调用回退接口 - PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), 1, 2); - if(null == query){ - return ResultUtil.error("支付数据异常,无法完成退款"); + }else { + BaseWarpper data = queryCancleAmount(id, language).getData(); + Double amount = data.getAmount(); + if(0 == amount){ + integer = orderCancelService.saveData(id, 4, reason, remark, null, null, 2, 1, uid); + if(5 == orderLogistics.getState()){ + orderLogistics.setState(6); + orderLogistics.setGetoffLon(lon); + orderLogistics.setGetoffLat(lat); + orderLogistics.setGetoffAddress(address); + orderLogistics.setGetoffTime(new Date()); + orderLogistics.setEndServiceTime(new Date()); + }else{ + orderLogistics.setState(10); + } + this.updateById(orderLogistics); + }else{ + if(5 == orderLogistics.getState()){ + orderLogistics.setGetoffLon(lon); + orderLogistics.setGetoffLat(lat); + orderLogistics.setGetoffAddress(address); + orderLogistics.setGetoffTime(new Date()); + orderLogistics.setEndServiceTime(new Date()); + } + orderLogistics.setOldState(orderLogistics.getState()); + orderLogistics.setState(12); + this.updateById(orderLogistics); + integer = orderCancelService.saveData(id, 4, reason, remark, null, amount, 1, 1, uid); } - UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - String payerTransactionID = sdf.format(new Date()) + orderCancel.getId(); - PayoutResponse payoutResponse = tinggPayoutUtil.sendPayout(userInfo.getPhoneOperator(), "+" + userInfo.getPhone(), payerTransactionID, query.getAmount().doubleValue(), callbackPath + "/base/orderCancelRefundCallback", "取消订单退款"); - AuthStatus authStatus = payoutResponse.getAuthStatus(); - Results results = payoutResponse.getResults().get(0); - String statusCode = results.getStatusCode(); - if(!"131".equals(authStatus.getAuthStatusCode())){ - return ResultUtil.error(authStatus.getAuthStatusDescription()); - } - if(!"139".equals(statusCode)){ - return ResultUtil.error(results.getStatusDescription()); - } - } - if(null != orderLogistics.getPayType() && orderLogistics.getPayType() == 2){//支付宝 - OrderCancel orderCancel = new OrderCancel(); - orderCancel.setOrderId(id); - orderCancel.setOrderType(orderLogistics.getType()); - orderCancel.setReason(reason); - orderCancel.setRemark(remark); - orderCancel.setState(1); - orderCancel.setInsertTime(new Date()); - orderCancel.setUserType(1); - orderCancelService.insert(orderCancel); - orderLogistics.setState(10); - this.updateById(orderLogistics); - integer = orderCancel.getId(); - //调用回退接口 - PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), 2, 2); - if(null == query){ - return ResultUtil.error("支付数据异常,无法完成退款"); - } - UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - String payerTransactionID = sdf.format(new Date()) + orderCancel.getId(); - PayoutResponse payoutResponse = tinggPayoutUtil.sendPayout(userInfo.getPhoneOperator(), "+" + userInfo.getPhone(), payerTransactionID, query.getAmount().doubleValue(), callbackPath + "/base/orderCancelRefundCallback", "取消订单退款"); - AuthStatus authStatus = payoutResponse.getAuthStatus(); - Results results = payoutResponse.getResults().get(0); - String statusCode = results.getStatusCode(); - if(!"131".equals(authStatus.getAuthStatusCode())){ - return ResultUtil.error(authStatus.getAuthStatusDescription()); - } - if(!"139".equals(statusCode)){ - return ResultUtil.error(results.getStatusDescription()); - } - } - if(null != orderLogistics.getPayType() && orderLogistics.getPayType() == 3){//余额 - UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); - userInfo.setBalance(userInfo.getBalance() + orderLogistics.getPayMoney()); - - OrderCancel orderCancel = new OrderCancel(); - orderCancel.setOrderId(id); - orderCancel.setOrderType(orderLogistics.getType()); - orderCancel.setReason(reason); - orderCancel.setRemark(remark); - orderCancel.setState(2); - orderCancel.setInsertTime(new Date()); - orderCancel.setUserType(1); - orderCancelService.insert(orderCancel); - userInfoService.updateById(userInfo); - orderLogistics.setState(10); - this.updateById(orderLogistics); - integer = orderCancel.getId(); - - //添加交易明细 - transactionDetailsService.saveData(orderLogistics.getUserId(), "包裹取消退款", orderLogistics.getPayMoney(), 1, 1, 1, 4, orderLogistics.getId()); - } - - - if(null != orderLogistics.getPayType() && orderLogistics.getPayType() == 4){//现金 -// UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); -// userInfo.setBalance(userInfo.getBalance() + orderLogistics.getPayMoney()); -// userInfoService.updateById(userInfo); - OrderCancel orderCancel = new OrderCancel(); - orderCancel.setOrderId(id); - orderCancel.setOrderType(orderLogistics.getType()); - orderCancel.setReason(reason); - orderCancel.setRemark(remark); - orderCancel.setState(2); - orderCancel.setInsertTime(new Date()); - orderCancel.setUserType(1); - orderCancelService.insert(orderCancel); - - orderLogistics.setState(10); - this.updateById(orderLogistics); - integer = orderCancel.getId(); - - //添加交易明细 - transactionDetailsService.saveData(orderLogistics.getUserId(), "包裹取消退款", orderLogistics.getPayMoney(), 1, 1, 1, 4, orderLogistics.getId()); + this.deleteTask(id);//删除定时任务 + + new Thread(new Runnable() { + @Override + public void run() { + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0); + System.err.println("推送取消操作---------------------"); + } + }).start(); + + //修改司机为空闲 + Driver driver = driverService.selectById(orderLogistics.getDriverId()); + driver.setState(2); + driverService.updateById(driver); } if(null != orderLogistics.getDriverId()){ @@ -1366,4 +1304,296 @@ list.addAll(list1); return list; } + + + + /** + * 获取取消需要支付的金额 + * @param id + * @param language + * @return + * @throws Exception + */ + @Override + public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer language) throws Exception { + OrderLogistics orderLogistics = this.selectById(id); + if(null == orderLogistics){ + return ResultUtil.error(language == 1 ? "获取数据失败,订单信息有误" : language == 2 ? "Failed to obtain data, order-information error." : "Impossible d’obtenir les données, erreur d’information de commande. "); + } + BaseWarpper baseWarpper = new BaseWarpper(); + double amount = 0; + CancleOrder query = cancleOrderService.query(orderLogistics.getCompanyId()); + if(null == query || null == orderLogistics.getDriverId()){ + baseWarpper.setAmount(amount); + return ResultUtil.success(baseWarpper); + } + JSONObject object = JSON.parseObject(query.getContent()); + long t = object.getInteger("driverTimeout") * 60000L; + //司机超时未到达起点,免费取消 + if(orderLogistics.getState() < 3 && orderLogistics.getSnatchOrderTime().getTime() + t < System.currentTimeMillis()){ + baseWarpper.setAmount(amount); + return ResultUtil.success(baseWarpper); + } + + JSONObject order = object.getJSONObject("order"); + long m = order.getInteger("orderAcceptanceTime") * 60000L; + //超过免费时间,计算费用 + if(orderLogistics.getSnatchOrderTime().getTime() + m < System.currentTimeMillis()){ + BigDecimal money = order.getBigDecimal("money"); + if(null != orderLogistics.getSetOutTime()){ + //里程费 + BigDecimal mileageFee = order.getBigDecimal("mileageFee").multiply(new BigDecimal(orderLogistics.getMileage() / 1000)); + //时长费 + int s = Double.valueOf((System.currentTimeMillis() - orderLogistics.getSetOutTime().getTime()) / 60000).intValue(); + BigDecimal durationFee = order.getBigDecimal("durationFee").multiply(new BigDecimal(s)); + money = money.add(durationFee).add(mileageFee); + } + amount = money.setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + } + baseWarpper.setAmount(amount); + return ResultUtil.success(baseWarpper); + } + + + /** + * 删除定时任务 + * @param orderId + */ + @Override + public void deleteTask(Integer orderId){ + //发送验证码短信 + HttpHeaders headers = new HttpHeaders(); + // 以表单的方式提交 + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + //将请求头部和参数合成一个请求 + MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); + params.add("orderId", orderId + ""); + params.add("orderType", "4"); + HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); + String s = internalRestTemplate.postForObject("http://driver-server/base/netty/deleteTask", requestEntity, String.class); + JSONObject jsonObject = JSON.parseObject(s, JSONObject.class); + if(jsonObject.getIntValue("code") != 200){ + System.err.println("调用driver-server出错了"); + } + } + + + + + /** + * 取消订单操作 + * @param id + * @return + * @throws Exception + */ + @Override + public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language) throws Exception { + OrderLogistics orderLogistics = this.selectById(id); + Integer uid = orderLogistics.getUserId(); + UserInfo userInfo = userInfoService.selectById(uid); + ResultUtil resultUtil = ResultUtil.success(""); + + if(null == orderLogistics){ + return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande.", ""); + } + if(orderLogistics.getState() != 13){ + return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale.", ""); + } + OrderCancel orderCancel = null; + if(null == cancleId || cancleId==0){ + orderCancel = orderCancelService.query(id, 4, null, null, 1); + }else{ + orderCancel = orderCancelService.selectById(cancleId); + } + + Double amount = queryCancleAmount(id, language).getData().getAmount(); + if(0 < amount){ + if(payType == 1){//手机支付 + orderCancel.setPayType(1); + orderCancelService.updateById(orderCancel); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String merchantTransactionId = sdf.format(new Date()) + "4" + language + id; + CheckoutRequest checkoutRequest = new CheckoutRequest(); + checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone())); + checkoutRequest.setCustomerEmail(userInfo.getEmail()); + checkoutRequest.setAccountNumber(userInfo.getPhone()); + checkoutRequest.setCustomerFirstName(userInfo.getFirstName()); + checkoutRequest.setCustomerLastName(userInfo.getLastName()); + checkoutRequest.setRequestAmount(amount); + checkoutRequest.setMerchantTransactionId(merchantTransactionId); + checkoutRequest.setRequestDescription("Cancel a trip"); + checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi"); + checkoutRequest.setPendingRedirectUrl(""); + checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html"); + checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html"); + resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, null, null, id, 4, 1, amount, null, 1);//添加预支付数据 + } + + } + if(payType == 2){//银行卡支付 + orderCancel.setPayType(2); + orderCancelService.updateById(orderCancel); + BankCard bankCard = bankCardService.selectById(bankCardId); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String merchantTransactionId = sdf.format(new Date()) + "4" + id; + CheckoutRequest checkoutRequest = new CheckoutRequest(); + checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode())); + checkoutRequest.setCustomerEmail(userInfo.getEmail()); + checkoutRequest.setAccountNumber(bankCard.getCode()); + checkoutRequest.setCustomerFirstName(bankCard.getFirstName()); + checkoutRequest.setCustomerLastName(bankCard.getLastName()); + checkoutRequest.setRequestAmount(amount); + checkoutRequest.setMerchantTransactionId(merchantTransactionId); + checkoutRequest.setRequestDescription("Cancel a trip"); + checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi"); + checkoutRequest.setPendingRedirectUrl(""); + checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html"); + checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html"); + resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, null, null, id, 4, 2, amount, null, 1);//添加预支付数据 + } + + } + if(payType == 3){//余额支付 + if(userInfo.getBalance() != null && userInfo.getBalance() < amount){ + return ResultUtil.error((language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant"), ""); + } + + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(amount)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + //添加交易明细 + transactionDetailsService.saveData(uid, "取消订单", amount, 2, 1, 1, 4, id); + userInfoService.updateById(userInfo); + + //解除小号绑定 + if(orderLogistics.getBindId() != null){ + ChinaMobileUtil.midAxbUnBindSend(orderLogistics.getBindId(),orderLogistics.getTelX()); + } + + if(5 == orderLogistics.getOldState()){ + orderLogistics.setState(6); + }else{ + orderLogistics.setState(10); + } + orderLogistics.setTelX(""); + orderLogistics.setBindId(""); + this.updateById(orderLogistics); + + orderCancel.setState(2); + orderCancel.setPayType(3); + orderCancelService.updateById(orderCancel); + + if(null != orderLogistics.getDriverId()){ + BigDecimal c =new BigDecimal(amount);//司机收入 + incomeService.saveData(2, orderLogistics.getDriverId(), 3, orderLogistics.getId(), 4, c.doubleValue()); + Driver driver = driverService.selectById(orderLogistics.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); + + this.deleteTask(id);//删除定时任务 + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0); + } + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0); + + + //添加消息 + systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 + ? "You've paid for cancellation fee with the balance successfully, thank you for using I-GO" + : "Vous avez utilisé avec succès votre solde pour payer les frais d’annulation, merci d’utiliser I-GO", orderLogistics.getUserId(), 1); + } + } + return resultUtil; + } + + + + /** + * 取消订单支付后的处理 + * @param id 订单=id + * @param order_id 工行支付单号 + * @throws Exception + */ + @Override + public void payCancelOrderPrivateCar(Integer id, String order_id, Integer language) throws Exception { + OrderLogistics orderLogistics = this.selectById(id); + PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 4, null, 1); + if(null != query){ + //添加交易明细 + transactionDetailsService.saveData(orderLogistics.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 4, query.getOrderId()); + + //解除小号绑定 + if(orderLogistics.getBindId() != null){ + ChinaMobileUtil.midAxbUnBindSend(orderLogistics.getBindId(),orderLogistics.getTelX()); + } + if(5 == orderLogistics.getOldState()){ + orderLogistics.setState(6); + }else{ + orderLogistics.setState(10); + } + orderLogistics.setBindId(""); + orderLogistics.setTelX(""); + this.updateById(orderLogistics); + + query.setState(2); + query.setCode(order_id); + paymentRecordService.updateById(query); + + OrderCancel query1 = orderCancelService.query(query.getOrderId(), query.getOrderType(), query.getAmount(), query.getPayType(), 1); + if (null != query1){ + query1.setState(2); + orderCancelService.updateById(query1); + } + + + if(null != orderLogistics.getDriverId()){ + BigDecimal c =new BigDecimal(query.getAmount());//司机收入 + incomeService.saveData(2, orderLogistics.getDriverId(), 3, orderLogistics.getId(), 4, c.doubleValue()); + Driver driver = driverService.selectById(orderLogistics.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); + this.deleteTask(orderLogistics.getId());//删除定时任务 + + pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0); + } + pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), 4, orderLogistics.getState(), 0); + + //添加消息 + systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 + ? "You've paid for cancellation fee with the balance successfully, thank you for using I-GO" + : "Vous avez utilisé avec succès votre solde pour payer les frais d’annulation, merci d’utiliser I-GO", orderLogistics.getUserId(), 1); + }else{ + System.err.println("预支付数据异常(orderId = " + id + ")"); + } + } + + + /** + * 修改目的地 + * @param orderId + * @param endLon + * @param endLat + * @param endAddress + */ + @Override + public void updateEndAddress(Integer orderId, String endLon, String endLat, String endAddress) { + OrderLogistics orderLogistics = this.selectById(orderId); + if(null != orderLogistics.getDriverId()){ + orderLogistics.setDestination(endAddress); + orderLogistics.setDestinationLat(endLat); + orderLogistics.setDestinationLon(endLon); + this.updateById(orderLogistics); + pushUtil.pushModifyAddress(2, orderLogistics.getDriverId(), orderId, 1, 1); + }else{ + orderLogistics.setEndAddress(endAddress); + orderLogistics.setEndLat(Double.valueOf(endLat)); + orderLogistics.setEndLon(Double.valueOf(endLon)); + this.updateById(orderLogistics); + } + } } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml index 0121710..34b76b9 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml @@ -153,7 +153,7 @@ oldState as oldState, telX as telX, bindId as bindId - from t_order_private_car where isDelete = 1 and userId = #{uid} + from t_order_private_car where isDelete = 1 and isFrozen = 1 and userId = #{uid} <if test="null != orderType"> and orderType = #{orderType} </if> @@ -343,7 +343,8 @@ driverId as driverId, (1) as orderType, state as state, - oldState as oldState + oldState as oldState, + isFrozen from t_order_private_car where userId = #{uid} and isDelete = 1 order by insertTime desc limit #{pageNum}, #{size} </select> @@ -441,7 +442,10 @@ h.money as cancelMoney, h.reason as cancelReason, h.remark as cancelRemark, - a.isFree,a.moneyType,a.moneyTime + a.isFree, + a.moneyType, + a.moneyTime, + a.isFrozen from t_order_private_car a left join t_driver b on (a.driverId = b.id) left join t_car c on (a.carId = c.id) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java index b2dd8d6..46acfc7 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; import java.math.BigDecimal; import java.util.Date; @@ -11,6 +12,7 @@ /** * 专车车订单 */ +@Data @TableName("t_order_private_car") public class OrderPrivateCar { /** @@ -388,681 +390,20 @@ */ @TableField("driverPay") private Integer driverPay; - - public Integer getIsplatPay() { - return isplatPay; - } - - public void setIsplatPay(Integer isplatPay) { - this.isplatPay = isplatPay; - } - - public BigDecimal getFreeMoney() { - return freeMoney; - } - public void setFreeMoney(BigDecimal freeMoney) { - this.freeMoney = freeMoney; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public Integer getCrossCityOrderId() { - return crossCityOrderId; - } - - public void setCrossCityOrderId(Integer crossCityOrderId) { - this.crossCityOrderId = crossCityOrderId; - } - - public Integer getPlace() { - return place; - } - - public void setPlace(Integer place) { - this.place = place; - } - - public Integer getUserId() { - return userId; - } - - public void setUserId(Integer userId) { - this.userId = userId; - } - - public Integer getServerCarModelId() { - return serverCarModelId; - } - - public void setServerCarModelId(Integer serverCarModelId) { - this.serverCarModelId = serverCarModelId; - } - - public Integer getDriverId() { - return driverId; - } - - public void setDriverId(Integer driverId) { - this.driverId = driverId; - } - - public Integer getCarId() { - return carId; - } - - public void setCarId(Integer carId) { - this.carId = carId; - } - - public String getOrderNum() { - return orderNum; - } - - public void setOrderNum(String orderNum) { - this.orderNum = orderNum; - } - - public Double getPlacementLon() { - return placementLon; - } - - public void setPlacementLon(Double placementLon) { - this.placementLon = placementLon; - } - - public Double getPlacementLat() { - return placementLat; - } - - public void setPlacementLat(Double placementLat) { - this.placementLat = placementLat; - } - - public String getPlacementAddress() { - return placementAddress; - } - - public void setPlacementAddress(String placementAddress) { - this.placementAddress = placementAddress; - } - - public Double getStartLon() { - return startLon; - } - - public void setStartLon(Double startLon) { - this.startLon = startLon; - } - - public Double getStartLat() { - return startLat; - } - - public void setStartLat(Double startLat) { - this.startLat = startLat; - } - - public String getStartAddress() { - return startAddress; - } - - public void setStartAddress(String startAddress) { - this.startAddress = startAddress; - } - - public Double getEndLon() { - return endLon; - } - - public void setEndLon(Double endLon) { - this.endLon = endLon; - } - - public Double getEndLat() { - return endLat; - } - - public void setEndLat(Double endLat) { - this.endLat = endLat; - } - - public String getEndAddress() { - return endAddress; - } - - public void setEndAddress(String endAddress) { - this.endAddress = endAddress; - } - - public Double getBoardingLon() { - return boardingLon; - } - - public void setBoardingLon(Double boardingLon) { - this.boardingLon = boardingLon; - } - - public Double getBoardingLat() { - return boardingLat; - } - - public void setBoardingLat(Double boardingLat) { - this.boardingLat = boardingLat; - } - - public String getBoardingAddress() { - return boardingAddress; - } - - public void setBoardingAddress(String boardingAddress) { - this.boardingAddress = boardingAddress; - } - - public Date getBoardingTime() { - return boardingTime; - } - - public void setBoardingTime(Date boardingTime) { - this.boardingTime = boardingTime; - } - - public Double getGetoffLon() { - return getoffLon; - } - - public void setGetoffLon(Double getoffLon) { - this.getoffLon = getoffLon; - } - - public Double getGetoffLat() { - return getoffLat; - } - - public void setGetoffLat(Double getoffLat) { - this.getoffLat = getoffLat; - } - - public String getGetoffAddress() { - return getoffAddress; - } - - public void setGetoffAddress(String getoffAddress) { - this.getoffAddress = getoffAddress; - } - - public Date getGetoffTime() { - return getoffTime; - } - - public void setGetoffTime(Date getoffTime) { - this.getoffTime = getoffTime; - } - - public Double getMileage() { - return mileage; - } - - public void setMileage(Double mileage) { - this.mileage = mileage; - } - - public Integer getPayManner() { - return payManner; - } - - public void setPayManner(Integer payManner) { - this.payManner = payManner; - } - - public Integer getPayType() { - return payType; - } - - public void setPayType(Integer payType) { - this.payType = payType; - } - - public Double getOrderMoney() { - return orderMoney; - } - - public void setOrderMoney(Double orderMoney) { - this.orderMoney = orderMoney; - } - - public Double getStartMileage() { - return startMileage; - } - - public void setStartMileage(Double startMileage) { - this.startMileage = startMileage; - } - - public Double getStartMoney() { - return startMoney; - } - - public void setStartMoney(Double startMoney) { - this.startMoney = startMoney; - } - - public Double getMileageKilometers() { - return mileageKilometers; - } - - public void setMileageKilometers(Double mileageKilometers) { - this.mileageKilometers = mileageKilometers; - } - - public Double getMileageMoney() { - return mileageMoney; - } - - public void setMileageMoney(Double mileageMoney) { - this.mileageMoney = mileageMoney; - } - - public Double getDuration() { - return duration; - } - - public void setDuration(Double duration) { - this.duration = duration; - } - - public Double getDurationMoney() { - return durationMoney; - } - - public void setDurationMoney(Double durationMoney) { - this.durationMoney = durationMoney; - } - - public Double getWait() { - return wait; - } - - public void setWait(Double wait) { - this.wait = wait; - } - - public Double getWaitMoney() { - return waitMoney; - } - - public void setWaitMoney(Double waitMoney) { - this.waitMoney = waitMoney; - } - - public Double getLongDistance() { - return longDistance; - } - - public void setLongDistance(Double longDistance) { - this.longDistance = longDistance; - } - - public Double getLongDistanceMoney() { - return longDistanceMoney; - } - - public void setLongDistanceMoney(Double longDistanceMoney) { - this.longDistanceMoney = longDistanceMoney; - } - - public Double getParkMoney() { - return parkMoney; - } - - public void setParkMoney(Double parkMoney) { - this.parkMoney = parkMoney; - } - - public Double getRoadTollMoney() { - return roadTollMoney; - } - - public void setRoadTollMoney(Double roadTollMoney) { - this.roadTollMoney = roadTollMoney; - } - - public Double getRedPacketMoney() { - return redPacketMoney; - } - - public void setRedPacketMoney(Double redPacketMoney) { - this.redPacketMoney = redPacketMoney; - } - - public Double getCouponMoney() { - return couponMoney; - } - - public void setCouponMoney(Double couponMoney) { - this.couponMoney = couponMoney; - } - - public Integer getRedPacketId() { - return redPacketId; - } - - public void setRedPacketId(Integer redPacketId) { - this.redPacketId = redPacketId; - } - - public Integer getCouponId() { - return couponId; - } - - public void setCouponId(Integer couponId) { - this.couponId = couponId; - } - - public Double getDiscount() { - return discount; - } - - public void setDiscount(Double discount) { - this.discount = discount; - } - - public Double getDiscountMoney() { - return discountMoney; - } - - public void setDiscountMoney(Double discountMoney) { - this.discountMoney = discountMoney; - } - - public Integer getActivityId() { - return activityId; - } - - public void setActivityId(Integer activityId) { - this.activityId = activityId; - } - - public Integer getCompanyId() { - return companyId; - } - - public void setCompanyId(Integer companyId) { - this.companyId = companyId; - } - - public Double getPayMoney() { - return payMoney; - } - - public void setPayMoney(Double payMoney) { - this.payMoney = payMoney; - } - - public Integer getSubstitute() { - return substitute; - } - - public void setSubstitute(Integer substitute) { - this.substitute = substitute; - } - - public String getPassengers() { - return passengers; - } - - public void setPassengers(String passengers) { - this.passengers = passengers; - } - - public String getPassengersPhone() { - return passengersPhone; - } - - public void setPassengersPhone(String passengersPhone) { - this.passengersPhone = passengersPhone; - } - - public Integer getState() { - return state; - } - - public void setState(Integer state) { - this.state = state; - } - - public Date getInsertTime() { - return insertTime; - } - - public void setInsertTime(Date insertTime) { - this.insertTime = insertTime; - } - - public Date getTravelTime() { - return travelTime; - } - - public void setTravelTime(Date travelTime) { - this.travelTime = travelTime; - } - - public Date getSnatchOrderTime() { - return snatchOrderTime; - } - - public void setSnatchOrderTime(Date snatchOrderTime) { - this.snatchOrderTime = snatchOrderTime; - } - - public Date getSetOutTime() { - return setOutTime; - } - - public void setSetOutTime(Date setOutTime) { - this.setOutTime = setOutTime; - } - - public Date getArriveTime() { - return arriveTime; - } - - public void setArriveTime(Date arriveTime) { - this.arriveTime = arriveTime; - } - - public Date getStartServiceTime() { - return startServiceTime; - } - - public void setStartServiceTime(Date startServiceTime) { - this.startServiceTime = startServiceTime; - } - - public Date getEndServiceTime() { - return endServiceTime; - } - - public void setEndServiceTime(Date endServiceTime) { - this.endServiceTime = endServiceTime; - } - - public Integer getOrderType() { - return orderType; - } - - public void setOrderType(Integer orderType) { - this.orderType = orderType; - } - - public Integer getOrderSource() { - return orderSource; - } - - public void setOrderSource(Integer orderSource) { - this.orderSource = orderSource; - } - - public Integer getInvoiceId() { - return invoiceId; - } - - public void setInvoiceId(Integer invoiceId) { - this.invoiceId = invoiceId; - } - - public Integer getIsReassign() { - return isReassign; - } - - public void setIsReassign(Integer isReassign) { - this.isReassign = isReassign; - } - - public Integer getReassignNotice() { - return reassignNotice; - } - - public void setReassignNotice(Integer reassignNotice) { - this.reassignNotice = reassignNotice; - } - - public String getTrackId() { - return trackId; - } - - public void setTrackId(String trackId) { - this.trackId = trackId; - } - - public Integer getIsDelete() { - return isDelete; - } - - public void setIsDelete(Integer isDelete) { - this.isDelete = isDelete; - } - - public Integer getOldState() { - return oldState; - } - - public void setOldState(Integer oldState) { - this.oldState = oldState; - } - - public String getTelX() { - return telX; - } - - public void setTelX(String telX) { - this.telX = telX; - } - - public String getBindId() { - return bindId; - } - - public void setBindId(String bindId) { - this.bindId = bindId; - } - - public Integer getDriverPay() { - return driverPay; - } - - public void setDriverPay(Integer driverPay) { - this.driverPay = driverPay; - } - - @Override - public String toString() { - return "OrderPrivateCar{" + - "id=" + id + - ", type=" + type + - ", crossCityOrderId=" + crossCityOrderId + - ", place=" + place + - ", userId=" + userId + - ", serverCarModelId=" + serverCarModelId + - ", driverId=" + driverId + - ", carId=" + carId + - ", orderNum='" + orderNum + '\'' + - ", placementLon=" + placementLon + - ", placementLat=" + placementLat + - ", placementAddress='" + placementAddress + '\'' + - ", startLon=" + startLon + - ", startLat=" + startLat + - ", startAddress='" + startAddress + '\'' + - ", endLon=" + endLon + - ", endLat=" + endLat + - ", endAddress='" + endAddress + '\'' + - ", boardingLon=" + boardingLon + - ", boardingLat=" + boardingLat + - ", boardingAddress='" + boardingAddress + '\'' + - ", boardingTime=" + boardingTime + - ", getoffLon=" + getoffLon + - ", getoffLat=" + getoffLat + - ", getoffAddress='" + getoffAddress + '\'' + - ", getoffTime=" + getoffTime + - ", mileage=" + mileage + - ", payManner=" + payManner + - ", payType=" + payType + - ", orderMoney=" + orderMoney + - ", startMileage=" + startMileage + - ", startMoney=" + startMoney + - ", mileageKilometers=" + mileageKilometers + - ", mileageMoney=" + mileageMoney + - ", duration=" + duration + - ", durationMoney=" + durationMoney + - ", wait=" + wait + - ", waitMoney=" + waitMoney + - ", longDistance=" + longDistance + - ", longDistanceMoney=" + longDistanceMoney + - ", parkMoney=" + parkMoney + - ", roadTollMoney=" + roadTollMoney + - ", redPacketMoney=" + redPacketMoney + - ", couponMoney=" + couponMoney + - ", redPacketId=" + redPacketId + - ", couponId=" + couponId + - ", discount=" + discount + - ", discountMoney=" + discountMoney + - ", activityId=" + activityId + - ", companyId=" + companyId + - ", payMoney=" + payMoney + - ", substitute=" + substitute + - ", passengers='" + passengers + '\'' + - ", passengersPhone='" + passengersPhone + '\'' + - ", state=" + state + - ", insertTime=" + insertTime + - ", travelTime=" + travelTime + - ", snatchOrderTime=" + snatchOrderTime + - ", setOutTime=" + setOutTime + - ", arriveTime=" + arriveTime + - ", startServiceTime=" + startServiceTime + - ", endServiceTime=" + endServiceTime + - ", orderType=" + orderType + - ", orderSource=" + orderSource + - ", invoiceId=" + invoiceId + - ", isReassign=" + isReassign + - ", reassignNotice=" + reassignNotice + - ", trackId='" + trackId + '\'' + - ", isDelete=" + isDelete + - ", oldState=" + oldState + - ", telX='" + telX + '\'' + - ", bindId='" + bindId + '\'' + - '}'; - } + /** + * 修改目的地经度 + */ + @TableField("destinationLon") + private String destinationLon; + /** + * 修改目的地纬度 + */ + @TableField("destinationLat") + private String destinationLat; + /** + * 修改目的地地址 + */ + @TableField("destination") + private String destination; + } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java index 63ef460..4e4db22 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java @@ -66,7 +66,7 @@ * @param uid * @throws Exception */ - ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Integer language) throws Exception; + ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Double lon, Double lat, String address, Integer language) throws Exception; /** @@ -248,4 +248,14 @@ * @throws Exception */ List<Map<String, Object>> queryRedEnvelope(Integer language, Integer uid) throws Exception; + + + /** + * 修改目的地 + * @param orderId + * @param endLon + * @param endLat + * @param endAddress + */ + void updateEndAddress(Integer orderId, String endLon, String endLat, String endAddress); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 722b037..d9f38a1 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -437,6 +437,22 @@ //推单操作 if(orderPrivateCar.getState() == 1){ this.pushOrder(orderPrivateCar); + }else{ + //接单后定时任务判断司机是否去接乘客,没有则推送提醒 + CancleOrder cancleOrder = cancleOrderService.query(orderPrivateCar.getCompanyId()); + if(null != cancleOrder){ + JSONObject object = JSON.parseObject(cancleOrder.getContent()); + long time = object.getInteger("driverTimeout") * 60000L; + new Timer().schedule(new TimerTask() { + @Override + public void run() { + OrderPrivateCar orderPrivateCar1 = OrderPrivateCarServiceImpl.this.selectById(orderPrivateCar.getId()); + if(orderPrivateCar1.getState() == 2){ + pushUtil.pushDriverTimeOut(1, orderPrivateCar1.getUserId(), orderPrivateCar1.getId(), 1); + } + } + }, time); + } } @@ -500,28 +516,89 @@ } return ResultUtil.success(); } - + + /** + * 获取取消需要支付的金额 + * @param id + * @param language + * @return + * @throws Exception + */ @Override public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer language) throws Exception { OrderPrivateCar orderPrivateCar = this.selectById(id); if(null == orderPrivateCar){ return ResultUtil.error(language == 1 ? "获取数据失败,订单信息有误" : language == 2 ? "Failed to obtain data, order-information error." : "Impossible d’obtenir les données, erreur d’information de commande. "); } + BaseWarpper baseWarpper = new BaseWarpper(); double amount = 0; - CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); - if(null != orderPrivateCar.getDriverId() && orderPrivateCar.getSnatchOrderTime()!=null && - (orderPrivateCar.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < new Date().getTime()){//收费的情况 - if(null != query){ - amount += query.getMoney(); + CancleOrder query = cancleOrderService.query(orderPrivateCar.getCompanyId()); + if(null == query || null == orderPrivateCar.getDriverId()){ + baseWarpper.setAmount(amount); + return ResultUtil.success(baseWarpper); + } + JSONObject object = JSON.parseObject(query.getContent()); + long t = object.getInteger("driverTimeout") * 60000L; + //司机超时未到达起点,免费取消 + if(orderPrivateCar.getState() < 3 && orderPrivateCar.getSnatchOrderTime().getTime() + t < System.currentTimeMillis()){ + baseWarpper.setAmount(amount); + return ResultUtil.success(baseWarpper); + } + //普通单 + if(1 == orderPrivateCar.getOrderType()){ + JSONObject order = object.getJSONObject("order"); + long m = order.getInteger("orderAcceptanceTime") * 60000L; + //超过免费时间,计算费用 + if(orderPrivateCar.getSnatchOrderTime().getTime() + m < System.currentTimeMillis()){ + BigDecimal money = order.getBigDecimal("money"); + if(null != orderPrivateCar.getSetOutTime()){ + //里程费 + BigDecimal mileageFee = order.getBigDecimal("mileageFee").multiply(new BigDecimal(orderPrivateCar.getMileage() / 1000)); + //时长费 + int s = Double.valueOf((System.currentTimeMillis() - orderPrivateCar.getSetOutTime().getTime()) / 60000).intValue(); + BigDecimal durationFee = order.getBigDecimal("durationFee").multiply(new BigDecimal(s)); + money = money.add(durationFee).add(mileageFee); + } + amount = money.setScale(2, RoundingMode.HALF_EVEN).doubleValue(); } } - BaseWarpper baseWarpper = new BaseWarpper(); + //预约单 + if(2 == orderPrivateCar.getOrderType()){ + JSONObject order = object.getJSONObject("reservationOrder"); + long m = order.getInteger("orderAcceptanceTime") * 60000L; + //超过免费时间,计算费用 + if(System.currentTimeMillis() + m > orderPrivateCar.getTravelTime().getTime()){ + BigDecimal money = order.getBigDecimal("money"); + if(null != orderPrivateCar.getSetOutTime()){ + //里程费 + BigDecimal mileageFee = order.getBigDecimal("mileageFee").multiply(new BigDecimal(orderPrivateCar.getMileage() / 1000)); + //时长费 + int s = Double.valueOf((System.currentTimeMillis() - orderPrivateCar.getSetOutTime().getTime()) / 60000).intValue(); + BigDecimal durationFee = order.getBigDecimal("durationFee").multiply(new BigDecimal(s)); + //预定费用 + BigDecimal reservationFee = order.getBigDecimal("reservationFee"); + money = money.add(durationFee).add(mileageFee).add(reservationFee); + } + amount = money.setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + } + } baseWarpper.setAmount(amount); return ResultUtil.success(baseWarpper); } - + + + /** + * 添加取消操作 + * @param id + * @param reason + * @param remark + * @param uid + * @param language + * @return + * @throws Exception + */ @Override - public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Integer language) throws Exception { + public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Double lon, Double lat, String address, Integer language) throws Exception { if(ToolUtil.isNotEmpty(remark)){ if(ToolUtil.isNotEmpty(remark)){ List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null); @@ -540,6 +617,8 @@ if(orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){ return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale."); } + + //服务中也可以取消订单,所以取消订单时需要计算订单费用 if(null == orderPrivateCar.getDriverId()){//没有接单的情况 if(orderPrivateCar.getType() == 2){//摆渡车 OrderCrossCityServiceImpl.pushEndMap.remove(orderPrivateCar.getCrossCityOrderId());//删除标识数据 @@ -561,36 +640,48 @@ this.updateById(orderPrivateCar); } }else { - CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); - if (null != query) { - if ((orderPrivateCar.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < System.currentTimeMillis() && query.getMoney().compareTo(0D) > 0) {//收费的情况 - orderPrivateCar.setState(12); - this.updateById(orderPrivateCar); - integer = orderCancelService.saveData(id, 1, reason, remark, null, query.getMoney(), 1, 1, uid); - } else { - integer = orderCancelService.saveData(id, 1, reason, remark, null, null, 2, 1, uid); - + BaseWarpper data = queryCancleAmount(id, language).getData(); + Double amount = data.getAmount(); + if(0 == amount){ + integer = orderCancelService.saveData(id, 1, reason, remark, null, null, 2, 1, uid); + if(5 == orderPrivateCar.getState()){ + orderPrivateCar.setState(6); + orderPrivateCar.setGetoffLon(lon); + orderPrivateCar.setGetoffLat(lat); + orderPrivateCar.setGetoffAddress(address); + orderPrivateCar.setGetoffTime(new Date()); + orderPrivateCar.setEndServiceTime(new Date()); + }else{ orderPrivateCar.setState(10); - this.updateById(orderPrivateCar); } - this.deleteTask(id);//删除定时任务 - - new Thread(new Runnable() { - @Override - public void run() { - pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); - System.err.println("推送取消操作---------------------"); - } - }).start(); - - //修改司机为空闲 - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); - driver.setState(2); - driverService.updateById(driver); + this.updateById(orderPrivateCar); }else{ - return ResultUtil.error(language == 1 ? "请完善后台取消规则设置" : language == 2 ? "Please complete the setting of cancellation rules from the background." : "Veuillez compléter le réglage des règles d’annulation à partir de l’arrière-plan."); + if(5 == orderPrivateCar.getState()){ + orderPrivateCar.setGetoffLon(lon); + orderPrivateCar.setGetoffLat(lat); + orderPrivateCar.setGetoffAddress(address); + orderPrivateCar.setGetoffTime(new Date()); + orderPrivateCar.setEndServiceTime(new Date()); + } + orderPrivateCar.setOldState(6); + orderPrivateCar.setState(12); + this.updateById(orderPrivateCar); + integer = orderCancelService.saveData(id, 1, reason, remark, null, amount, 1, 1, uid); } - + this.deleteTask(id);//删除定时任务 + + new Thread(new Runnable() { + @Override + public void run() { + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); + System.err.println("推送取消操作---------------------"); + } + }).start(); + + //修改司机为空闲 + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + driver.setState(2); + driverService.updateById(driver); } //添加消息 @@ -626,9 +717,9 @@ }else{ orderCancel = orderCancelService.selectById(cancleId); } - - CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); - if(null != query){ + + Double amount = queryCancleAmount(id, language).getData().getAmount(); + if(0 < amount){ if(payType == 1){//手机支付 orderCancel.setPayType(1); orderCancelService.updateById(orderCancel); @@ -640,7 +731,7 @@ checkoutRequest.setAccountNumber(userInfo.getPhone()); checkoutRequest.setCustomerFirstName(userInfo.getFirstName()); checkoutRequest.setCustomerLastName(userInfo.getLastName()); - checkoutRequest.setRequestAmount(query.getMoney()); + checkoutRequest.setRequestAmount(amount); checkoutRequest.setMerchantTransactionId(merchantTransactionId); checkoutRequest.setRequestDescription("Cancel a trip"); checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi"); @@ -649,7 +740,7 @@ checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html"); resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, id, 1, 1, query.getMoney(), null, 1);//添加预支付数据 + paymentRecordService.saveData(1, null, null, id, 1, 1, amount, null, 1);//添加预支付数据 } } @@ -665,7 +756,7 @@ checkoutRequest.setAccountNumber(bankCard.getCode()); checkoutRequest.setCustomerFirstName(bankCard.getFirstName()); checkoutRequest.setCustomerLastName(bankCard.getLastName()); - checkoutRequest.setRequestAmount(query.getMoney()); + checkoutRequest.setRequestAmount(amount); checkoutRequest.setMerchantTransactionId(merchantTransactionId); checkoutRequest.setRequestDescription("Cancel a trip"); checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi"); @@ -674,26 +765,30 @@ checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html"); resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, id, 1, 2, query.getMoney(), null, 1);//添加预支付数据 + paymentRecordService.saveData(1, null, null, id, 1, 2, amount, null, 1);//添加预支付数据 } } if(payType == 3){//余额支付 - if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){ + if(userInfo.getBalance() != null && userInfo.getBalance() < amount){ return ResultUtil.error((language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant"), ""); } - userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(amount)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); //添加交易明细 - transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 1, id); + transactionDetailsService.saveData(uid, "取消订单", amount, 2, 1, 1, 1, id); userInfoService.updateById(userInfo); //解除小号绑定 if(orderPrivateCar.getBindId() != null){ - chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); + ChinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); } - - orderPrivateCar.setState(10); + + if(5 == orderPrivateCar.getOldState()){ + orderPrivateCar.setState(6); + }else{ + orderPrivateCar.setState(10); + } orderPrivateCar.setTelX(""); orderPrivateCar.setBindId(""); this.updateById(orderPrivateCar); @@ -702,20 +797,19 @@ orderCancel.setPayType(3); orderCancelService.updateById(orderCancel); -// //添加已收入明细 -// incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getMoney()); -// //添加已收入明细 -// Company company = companyService.selectById(orderPrivateCar.getCompanyId()); -// Double taxi = company.getSpeMoney(); - BigDecimal c =new BigDecimal(query.getMoney());//司机收入 - incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); - - this.deleteTask(id);//删除定时任务 + if(null != orderPrivateCar.getDriverId()){ + BigDecimal c =new BigDecimal(amount);//司机收入 + incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); + + this.deleteTask(id);//删除定时任务 + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); + } + pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); //添加消息 systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 @@ -1901,10 +1995,14 @@ if(null != query){ //添加交易明细 transactionDetailsService.saveData(orderPrivateCar.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId()); - orderPrivateCar.setState(10); + if(5 == orderPrivateCar.getOldState()){ + orderPrivateCar.setState(6); + }else{ + orderPrivateCar.setState(10); + } //解除小号绑定 if(orderPrivateCar.getBindId() != null){ - chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); + ChinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); } orderPrivateCar.setBindId(""); orderPrivateCar.setTelX(""); @@ -1920,27 +2018,19 @@ orderCancelService.updateById(query1); } -// //添加已收入明细 -// incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getAmount()); -// //添加已收入明细 -// Company company = companyService.selectById(orderPrivateCar.getCompanyId()); -// Double taxi = company.getSpeMoney(); - BigDecimal c =new BigDecimal(query.getAmount());//司机收入 - incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); - this.deleteTask(orderPrivateCar.getId());//删除定时任务 - - // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 -// new Thread(new Runnable() { -// @Override -// public void run() { -// pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); -// } -// }).start(); + if(null != orderPrivateCar.getDriverId()){ + BigDecimal c =new BigDecimal(query.getAmount());//司机收入 + incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); + this.deleteTask(orderPrivateCar.getId());//删除定时任务 + + pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); + } + pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); //添加消息 systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 @@ -2563,4 +2653,29 @@ } return endPushWarpper; } + + + /** + * 修改目的地 + * @param orderId + * @param endLon + * @param endLat + * @param endAddress + */ + @Override + public void updateEndAddress(Integer orderId, String endLon, String endLat, String endAddress) { + OrderPrivateCar orderPrivateCar = this.selectById(orderId); + if(null != orderPrivateCar.getDriverId()){ + orderPrivateCar.setDestination(endAddress); + orderPrivateCar.setDestinationLat(endLat); + orderPrivateCar.setDestinationLon(endLon); + this.updateById(orderPrivateCar); + pushUtil.pushModifyAddress(2, orderPrivateCar.getDriverId(), orderId, 1, 1); + }else{ + orderPrivateCar.setEndAddress(endAddress); + orderPrivateCar.setEndLat(Double.valueOf(endLat)); + orderPrivateCar.setEndLon(Double.valueOf(endLon)); + this.updateById(orderPrivateCar); + } + } } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java index 178b7c5..6a642a0 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java @@ -9,10 +9,7 @@ /** * 获取取消订单配置 - * @param type - * @param orderType * @return */ - CancleOrder query(@Param("type") Integer type, @Param("orderType") Integer orderType, - @Param("companyId") Integer companyId); + CancleOrder query(@Param("companyId") Integer companyId); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml index 5c55a67..db3d69b 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml @@ -6,21 +6,15 @@ <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.CancleOrder"> <id column="id" property="id"/> <result column="companyId" property="companyId"/> - <result column="minuteNum" property="minuteNum"/> - <result column="money" property="money"/> - <result column="type" property="type"/> - <result column="orderType" property="orderType"/> + <result column="content" property="content"/> </resultMap> - <select id="query" resultType="CancleOrder"> + <select id="query" resultType="com.stylefeng.guns.modular.system.model.CancleOrder"> select id as id, - companyId as companyId, - minuteNum as minuteNum, - money as money, - `type` as `type`, - orderType as orderType - from t_sys_cancle_order where `type` = #{type} and orderType = #{orderType} and companyId = #{companyId} + companyId, + content + from t_sys_cancle_order where companyId = #{companyId} </select> </mapper> \ No newline at end of file diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java index d379e59..583a06e 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java @@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; /** * 取消订单设置 */ +@Data @TableName("t_sys_cancle_order") public class CancleOrder { /** @@ -22,83 +24,8 @@ @TableField("companyId") private Integer companyId; /** - * 时间(分钟) + * 取消规则 */ - @TableField("minuteNum") - private Integer minuteNum; - /** - * 金额 - */ - @TableField("money") - private Double money; - /** - * 类型(1=取消,2=预约取消) - */ - @TableField("type") - private Integer type; - /** - * 订单类型(1=专车,2=出租车) - */ - @TableField("orderType") - private Integer orderType; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getCompanyId() { - return companyId; - } - - public void setCompanyId(Integer companyId) { - this.companyId = companyId; - } - - public Integer getMinuteNum() { - return minuteNum; - } - - public void setMinuteNum(Integer minuteNum) { - this.minuteNum = minuteNum; - } - - public Double getMoney() { - return money; - } - - public void setMoney(Double money) { - this.money = money; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public Integer getOrderType() { - return orderType; - } - - public void setOrderType(Integer orderType) { - this.orderType = orderType; - } - - @Override - public String toString() { - return "CancleOrder{" + - "id=" + id + - ", companyId=" + companyId + - ", minuteNum=" + minuteNum + - ", money=" + money + - ", type=" + type + - ", orderType=" + orderType + - '}'; - } + @TableField("content") + private String content; } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java index 6c283b2..5dde77a 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java @@ -9,10 +9,8 @@ /** * 获取取消订单设置 - * @param type - * @param orderType * @return * @throws Exception */ - CancleOrder query(Integer type, Integer orderType, Integer companyId) throws Exception; + CancleOrder query(Integer companyId) throws Exception; } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java index e2ebe75..08a4821 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java @@ -18,13 +18,11 @@ /** * 获取取消订单配置 - * @param type - * @param orderType * @return * @throws Exception */ @Override - public CancleOrder query(Integer type, Integer orderType, Integer companyId) throws Exception { - return cancleOrderMapper.query(type, orderType, companyId); + public CancleOrder query(Integer companyId) throws Exception { + return cancleOrderMapper.query(companyId); } } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java index e9c2135..028988b 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java @@ -162,8 +162,78 @@ System.err.println(jsonObject1.getString("msg")); } } - - + + + /** + * 司机超时提醒 + * @param type + * @param uid + * @param orderId + * @param orderType + */ + public void pushDriverTimeOut(Integer type, Integer uid, Integer orderId, Integer orderType){ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", 200); + jsonObject.put("msg", "SUCCESS"); + jsonObject.put("method", "DRIVER_TIME_OUT"); + Map<String, Object> map = new HashMap<>(); + map.put("orderId", orderId); + map.put("orderType", orderType); + jsonObject.put("data", map); + + //调用推送 + HttpHeaders headers = new HttpHeaders(); + // 以表单的方式提交 + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + //将请求头部和参数合成一个请求 + MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); + params.add("msg", jsonObject.toJSONString()); + params.add("id", String.valueOf(uid)); + params.add("type", String.valueOf(type)); + HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); + String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class); + JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); + if(jsonObject1.getIntValue("code") != 200){ + System.err.println(jsonObject1.getString("msg")); + } + } + + + /** + * 修改目的地推送通知 + * @param type + * @param uid + * @param orderId + * @param orderType + * @param status 1=申请,2=同意,3=拒绝 + */ + public void pushModifyAddress(Integer type, Integer uid, Integer orderId, Integer orderType, Integer status){ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", 200); + jsonObject.put("msg", "SUCCESS"); + jsonObject.put("method", "MODIFY_ADDRESS"); + Map<String, Object> map = new HashMap<>(); + map.put("orderId", orderId); + map.put("orderType", orderType); + map.put("status", status); + jsonObject.put("data", map); + + //调用推送 + HttpHeaders headers = new HttpHeaders(); + // 以表单的方式提交 + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + //将请求头部和参数合成一个请求 + MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); + params.add("msg", jsonObject.toJSONString()); + params.add("id", String.valueOf(uid)); + params.add("type", String.valueOf(type)); + HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); + String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class); + JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); + if(jsonObject1.getIntValue("code") != 200){ + System.err.println(jsonObject1.getString("msg")); + } + } /** diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java index efbdf52..e4859e8 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SMSUtil.java @@ -277,7 +277,7 @@ /** - * Cellulant短信 + * 短信 : https://www.nalosolutions.com/ * @param toPhone * @param msg * @return diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java index 401f83d..9928070 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java @@ -147,7 +147,8 @@ */ @ApiModelProperty("收据链接") private String receipt; - + @ApiModelProperty("是否冻结(1=否,2=是)") + private Integer isFrozen; public Integer getStartDuration() { return startDuration; @@ -670,7 +671,15 @@ public void setReceipt(String receipt) { this.receipt = receipt; } - + + public Integer getIsFrozen() { + return isFrozen; + } + + public void setIsFrozen(Integer isFrozen) { + this.isFrozen = isFrozen; + } + @Override public String toString() { return "OrderInfoWarpper{" + @@ -799,6 +808,7 @@ orderInfoWarpper.setMoneyTime(null != map.get("moneyTime") ? map.get("moneyTime").toString() :""); orderInfoWarpper.setPayType(null != map.get("payType") ? Integer.valueOf(map.get("payType").toString()) : 4); orderInfoWarpper.setReceipt(null != map.get("receipt") ? map.get("receipt").toString() : ""); + orderInfoWarpper.setIsFrozen(null != map.get("isFrozen") ? Integer.valueOf(map.get("isFrozen").toString()) : 1); } if(orderInfoWarpper.getState()==7){ orderInfoWarpper.setOrderMoney(orderInfoWarpper.getOrderMoney()-orderInfoWarpper.getDiscountMoney()); diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java index 7d384bd..19ae6a8 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java @@ -52,6 +52,8 @@ private Long insertTime; @ApiModelProperty("收据链接") private String receipt; + @ApiModelProperty("是否冻结(1=否,2=是)") + private Integer isFrozen; public Integer getOrderId() { return orderId; @@ -251,13 +253,22 @@ orderWarpper.setServerCarModel(null != map.get("serverCarModel") ? String.valueOf(map.get("serverCarModel")) : ""); orderWarpper.setDifferenceMoney(null != map.get("differenceMoney") ? Double.valueOf(map.get("differenceMoney").toString()) : 0D); orderWarpper.setReceipt(null != map.get("receipt") ? String.valueOf(map.get("receipt")) : ""); + orderWarpper.setIsFrozen(null != map.get("isFrozen") ? Integer.valueOf(String.valueOf(map.get("isFrozen"))) : 1); list.add(orderWarpper); } } Collections.sort(list); return list; } - + + public Integer getIsFrozen() { + return isFrozen; + } + + public void setIsFrozen(Integer isFrozen) { + this.isFrozen = isFrozen; + } + @Override public int compareTo(Object o) { if (o instanceof OrderWarpper) { diff --git a/UserIGOTravel/guns-admin/src/main/resources/application.yml b/UserIGOTravel/guns-admin/src/main/resources/application.yml index 568524b..0fda6ec 100644 --- a/UserIGOTravel/guns-admin/src/main/resources/application.yml +++ b/UserIGOTravel/guns-admin/src/main/resources/application.yml @@ -1,3 +1,3 @@ spring: profiles: - active: @spring.active@ + active: "@spring.active@" -- Gitblit v1.7.1