From 656ac293601d6da08d25e892a79604fe3edcd086 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期四, 01 八月 2024 16:04:46 +0800 Subject: [PATCH] 修改2.0 bug --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 99 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 77 insertions(+), 22 deletions(-) diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java index 5dfc072..1c6223e 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java @@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.common.constant.state.Order; import com.stylefeng.guns.core.util.DateUtil; @@ -15,10 +16,7 @@ import com.stylefeng.guns.modular.system.dao.PhoneMapper; import com.stylefeng.guns.modular.system.dao.RegionMapper; import com.stylefeng.guns.modular.system.dao.SysReformistMapper; -import com.stylefeng.guns.modular.system.model.BankCard; -import com.stylefeng.guns.modular.system.model.Driver; -import com.stylefeng.guns.modular.system.model.OrderPosition; -import com.stylefeng.guns.modular.system.model.Region; +import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo; @@ -93,6 +91,18 @@ @Autowired private IBankCardService bankCardService; + + @Autowired + private ICancleOrderService cancleOrderService; + + @Autowired + private ISettlementDetailService settlementDetailService; + + @Autowired + private ISettlementRecordService settlementRecordService; + + @Resource + private IBalanceUsageRecordService balanceUsageRecordService; @@ -123,7 +133,7 @@ // List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid); // datas.addAll(list2); //小件物流 - List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language); + List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(state, uid, language); datas.addAll(list3); //分页 @@ -163,7 +173,7 @@ List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(language, state, uid); datas.addAll(list2); }else{//小件物流 - List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language); + List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(state, uid, language); datas.addAll(list3); } @@ -199,12 +209,30 @@ // datas.addAll(list); //专车 List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid, language); + for (Map<String, Object> map : list1) { + Integer id = Integer.valueOf(map.get("id").toString()); + map.put("settleAccounts", 0); + SettlementDetail settlementDetail = settlementDetailService.selectOne(new EntityWrapper<SettlementDetail>().eq("orderId", id).eq("orderType", 1)); + if(null != settlementDetail){ + SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId()); + map.put("settleAccounts", null == settlementRecord || settlementRecord.getPaymentStatus() == 1 ? 0 : 1); + } + } datas.addAll(list1); //跨城 // List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid); // datas.addAll(list2); //小件物流 List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid, language); + for (Map<String, Object> map : list3) { + Integer id = Integer.valueOf(map.get("id").toString()); + map.put("settleAccounts", 0); + SettlementDetail settlementDetail = settlementDetailService.selectOne(new EntityWrapper<SettlementDetail>().eq("orderId", id).eq("orderType", 4)); + if(null != settlementDetail){ + SettlementRecord settlementRecord = settlementRecordService.selectById(settlementDetail.getSettlementRecordId()); + map.put("settleAccounts", null == settlementRecord || settlementRecord.getPaymentStatus() == 1 ? 0 : 1); + } + } datas.addAll(list3); List<OrderListWarpper> orderListWarpper = OrderListWarpper.getOrderListWarpper(datas); @@ -539,7 +567,7 @@ * @throws Exception */ @Override - public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, Integer language) throws Exception { + public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, String pickUpCode, Integer language) throws Exception { ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon); if(null == reverseGeocode){ return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides"); @@ -553,7 +581,7 @@ case 3://城际 // return orderCrossCityService.process(orderId, state, lon, lat, address); case 4://同城小件 - return orderLogisticsService.process(orderId, state, lon, lat, address, language); + return orderLogisticsService.process(orderId, state, lon, lat, address, pickUpCode, language); case 5://跨城小件 // return orderLogisticsService.process(orderId, state, lon, lat, address); case 6: @@ -575,16 +603,16 @@ * @throws Exception */ @Override - public ResultUtil confirmFees(Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception { + public ResultUtil confirmFees(Integer language, Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception { switch (orderType){ case 1://专车 - return orderPrivateCarService.confirmFees(orderId, type, parkingFee, crossingFee); + return orderPrivateCarService.confirmFees(language, orderId, type, parkingFee, crossingFee); case 2://出租 return orderTaxiService.confirmFees(orderId, type, travelFee, parkingFee, crossingFee); case 3://城际(没有此流程) break; case 4:// - break; + return orderLogisticsService.confirmFees(language, orderId, type, parkingFee, crossingFee); case 5: break; case 6: @@ -675,7 +703,7 @@ case 3://城际(没有此流程) return null; case 4:// - break; + return orderLogisticsService.queryOrderInfo(language, orderId); case 5: break; case 6: @@ -700,7 +728,7 @@ case 3://城际 return orderCrossCityService.calculateMileage(orderPosition); case 4:// - break; + return orderLogisticsService.calculateMileage(orderPosition.getOrderId(), orderPosition.getLon(), orderPosition.getLat()); case 5: break; case 6: @@ -721,8 +749,8 @@ @Override public Integer queryOrderNum(Integer driverId, Date start, Date end) throws Exception { //出租车 - Integer[] state = new Integer[]{6, 7, 8, 9}; - int i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId).between("insertTime", start, end).in("", state)); + int i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId) + .between("insertTime", start, end).in("state", Arrays.asList(6, 7, 8, 9))); return i; } @@ -980,6 +1008,26 @@ redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString()); } break; + case 4: + OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); + if(orderLogistics.getState() == 8 || orderLogistics.getState() == 9){ + return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, recurring payments is not allowed." : "La commande a été payée, les paiements récurrents ne sont pas autorisés."); + } + if(orderLogistics.getState() != 7){ + return ResultUtil.error(language == 1 ? "订单不在待支付,无法完成订单" : language == 2 ? "The order is no longer with Pending Payment, unable to complete the order." : "La commande n’est plus en attente de paiement, il est impossible de terminer la commande."); + } + orderLogistics.setPayManner(2);//其他方式支付 + orderLogistics.setRedPacketMoney(0D); + orderLogistics.setCouponMoney(0D); + orderLogistics.setDiscount(0D); + orderLogistics.setDiscountMoney(0D); + orderLogistics.setPayMoney(orderLogistics.getOrderMoney()); + orderLogistics.setState(8); + orderLogisticsService.updateById(orderLogistics); + userId = orderLogistics.getUserId(); + driverId = orderLogistics.getDriverId(); + state = orderLogistics.getState(); + break; } @@ -989,8 +1037,8 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, finalUserId, orderId, orderType, finalState); - pushUtil.pushOrderState(2, finalDriverId, orderId, orderType, finalState); + pushUtil.pushOrderState(1, finalUserId, orderId, orderType, finalState, 0, ""); + pushUtil.pushOrderState(2, finalDriverId, orderId, orderType, finalState, 0, ""); } }).start(); return ResultUtil.success(); @@ -1011,6 +1059,8 @@ return orderPrivateCarService.queryMoneyInfo(orderId); case 2: break; + case 4: + return orderLogisticsService.queryMoneyInfo(orderId); } return null; } @@ -1027,13 +1077,14 @@ */ @Override public void taskSmsSend() throws Exception { + Integer language = 2; //获取未支付订单 Date day = new Date(); List<OrderPrivateCar> orderList = orderPrivateCarService.getSmsOrderList(); for(OrderPrivateCar order : orderList){ if(order.getSmsTime()==null ){ - if(order.getGetoffTime().getTime()+24*60*60*1000L<day.getTime()){ + if(null != order.getGetoffTime() && order.getGetoffTime().getTime()+24*60*60*1000L<day.getTime()){ order.setSmsNumber(order.getSmsNumber()+1); order.setSmsTime(day); //发送短信 @@ -1041,7 +1092,7 @@ String sData = aLiSendSms.sendSms1(order.getPassengersPhone(), "SMS_215342869", "{\"time\":\"" + DateUtil.format(order.getGetoffTime(),"yyyy-MM-dd HH:mm:ss") + "\",\"money\":\"" + order.getOrderMoney() + "\"}"); } //添加消息记录 - systemNoticeService.addSystemNotice(1, "有一笔订单未付款,请前往支付!", order.getUserId()); + systemNoticeService.addSystemNotice(1, language == 1 ? "有一笔订单未付款,请前往支付!" : language == 2 ? "There is an order pending payment, please pay." : "Il y a une commande en attente de paiement, veuillez payer.", order.getUserId()); } }else{ if(order.getSmsTime().getTime()+24*60*60*1000L<day.getTime()){ @@ -1053,7 +1104,7 @@ } //添加消息记录 - systemNoticeService.addSystemNotice(1, "有一笔订单未付款,请前往支付!", order.getUserId()); + systemNoticeService.addSystemNotice(1, language == 1 ? "有一笔订单未付款,请前往支付!" : language == 2 ? "There is an order pending payment, please pay." : "Il y a une commande en attente de paiement, veuillez payer.", order.getUserId()); } } } @@ -1152,14 +1203,18 @@ } if(payType == 3){//余额支付 driver.setBalance(driver.getBalance() - money); - if(driver.getLaveBusinessMoney().compareTo(money) < 0){ - double b = money - driver.getLaveBusinessMoney(); + Double laveBusinessMoney = driver.getLaveBusinessMoney(); + if(laveBusinessMoney.compareTo(money) < 0){ + double b = money - laveBusinessMoney; driver.setLaveBusinessMoney(0D); driver.setLaveActivityMoney(driver.getLaveActivityMoney() - b); driverService.updateById(driver); + balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 1, b, orderType == 1 ? 1 : 2); + balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, laveBusinessMoney, orderType == 1 ? 1 : 2); }else{ driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money); driverService.updateById(driver); + balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, money, orderType == 1 ? 1 : 2); } if(orderType == 1){//专车 -- Gitblit v1.7.1