From 570ae72b8ab5cf51b91fd6dc48411710dbf04125 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期六, 26 七月 2025 14:46:32 +0800 Subject: [PATCH] 未完成订单 --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 148 ++++++++++++++++++++++++++++++------------------- 1 files changed, 91 insertions(+), 57 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index d2390d8..4d25d84 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -3,7 +3,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; @@ -11,31 +10,28 @@ import com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper; import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper; import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper; -import com.stylefeng.guns.modular.crossCity.model.Line; import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.ILineService; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper; -import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper; -import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.specialTrain.server.impl.OrderPrivateCarServiceImpl; -import com.stylefeng.guns.modular.system.dao.*; +import com.stylefeng.guns.modular.system.dao.RegionMapper; +import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper; +import com.stylefeng.guns.modular.system.dao.SysIntegralMapper; +import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper; import com.stylefeng.guns.modular.system.model.*; +import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; -import com.stylefeng.guns.modular.system.warpper.BaseWarpper; -import com.stylefeng.guns.modular.system.warpper.CouponsListVo; -import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper; -import com.stylefeng.guns.modular.system.warpper.PreferentialDataVo; +import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.model.PaymentRecord; -import com.stylefeng.guns.modular.taxi.model.TransactionDetails; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; @@ -43,6 +39,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -61,8 +58,6 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; - -import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds; @Service @@ -134,28 +129,28 @@ @Autowired private DateUtil dateUtil; - + @Autowired private GDMapGeocodingUtil gdMapGeocodingUtil; - + @Autowired private ChinaMobileUtil chinaMobileUtil; - + @Autowired private GDFalconUtil gdFalconUtil; - - @Autowired - private RedisUtil redisUtil; - + + @Resource + private RedisTemplate<String, Object> redisTemplate; + @Autowired private ICancleOrderService cancleOrderService; - + @Autowired private IOrderCancelService orderCancelService; - + @Autowired private RestTemplate internalRestTemplate; - + @Autowired private IUserActivityRedenvelopeService userActivityRedenvelopeService; @@ -1031,23 +1026,22 @@ paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 2, orderMoney, "", 1);//添加预支付数据 } if(payType == 3){//余额支付 - if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){ + if (userInfo.getBalance() == null || userInfo.getBalance() < orderMoney) { return ResultUtil.error("余额不足,无法完成支付"); } - if(orderMoney > 0){ - resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),orderMoney); - if(resultUtil.getCode()==500){ - return ResultUtil.error("电子余额不足,无法完成支付"); - } - } - - - +// if(orderMoney > 0){ +// resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),orderMoney); +// if(resultUtil.getCode()==500){ +// return ResultUtil.error("电子余额不足,无法完成支付"); +// } +// } + + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - + SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId()); userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 - + //添加交易明细 transactionDetailsService.saveData(uid, "跨城出行订单", orderMoney, 2, 1, 1, 3, orderId); userInfoService.updateById(userInfo); @@ -1420,12 +1414,19 @@ if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){ map.put("state", map.get("oldState")); } + if(Integer.valueOf(String.valueOf(map.get("state"))) ==7 && (map.get("responsibilityType")==null || Integer.valueOf(String.valueOf(map.get("responsibilityType")))<4)){ + map.put("appealButton", 1); + } + if(map.get("abnormalIntro")!=null){ + map.put("appealStatus", 1); + } + Map<String, String> geocode = gdMapGeocodingUtil.geocode(map.get("startLon").toString(), map.get("startLat").toString()); map.put("startCity", geocode.get("city")); geocode = gdMapGeocodingUtil.geocode(map.get("endLon").toString(), map.get("endLat").toString()); map.put("endCity", geocode.get("city")); - - String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId")); + + String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId")); map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1); map.put("orderType", 3); return map; @@ -1490,7 +1491,7 @@ CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId()); if(null != query){ if(payType == 1){//微信支付 - String value = redisUtil.getValue("appletOpenId"); + String value = (String) redisTemplate.opsForValue().get("appletOpenId"); String appletsOpenId = null; if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = JSON.parseObject(value); @@ -1528,22 +1529,22 @@ // resultUtil = ResultUtil.error(map.get("msg"), ""); // } } - if(payType == 3){//余额支付 - if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){ + if(payType == 3) {//余额支付 + if (userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()) { return ResultUtil.error("余额不足,无法完成支付"); } - resultUtil= appOrderController.moneyPay(id,userInfo.getId(),query.getMoney()); - if(resultUtil.getCode()==500){ - return ResultUtil.error("电子余额不足,无法完成支付"); - } - +// resultUtil= appOrderController.moneyPay(id,userInfo.getId(),query.getMoney()); +// if(resultUtil.getCode()==500){ +// return ResultUtil.error("电子余额不足,无法完成支付"); +// } + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); //添加交易明细 transactionDetailsService.saveData(uid, "跨城出行取消订单", query.getMoney(), 2, 1, 1, 3, id); userInfoService.updateById(userInfo); - + //解除小号绑定 - if(orderCrossCity.getBindId() != null){ + if (orderCrossCity.getBindId() != null) { chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(), orderCrossCity.getTelX(), (System.currentTimeMillis() + 600000)); } @@ -2074,7 +2075,7 @@ public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception { OrderCrossCity orderCrossCity = this.selectById(orderId); //计算预计距离和剩余时间 - String value = redisUtil.getValue("DRIVER" + String.valueOf(orderCrossCity.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderCrossCity.getDriverId())); if(null == value || "".equals(value)){ System.err.println("司机没有上传位置信息"); @@ -2374,7 +2375,7 @@ @Override public void run() { List<Map<String, Integer>> datas = list; - String vehicle = redisUtil.getValue("VEHICLE"); + String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); List<Integer> integers = new ArrayList<>(); if(ToolUtil.isNotEmpty(vehicle)){ integers = JSON.parseArray(vehicle).toJavaList(Integer.class); @@ -2572,24 +2573,24 @@ resultUtil = payMoneyUtil.alipay("感谢费", "感谢费", "", orderId + "_3_" + UUIDUtil.getRandomCode(5), money.toString(), "/base/aliPayThankYouFee"); paymentRecordService.saveData(1, uid, 1, orderId, 3, 2, money, "", 1);//添加预支付数据 } - if(payType == 3){//余额支付 - if(userInfo.getBalance() == null || userInfo.getBalance() < money){ + if(payType == 3) {//余额支付 + if (userInfo.getBalance() == null || userInfo.getBalance() < money) { return ResultUtil.error("余额不足,无法完成支付"); } - resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),money); - if(resultUtil.getCode()==500){ - return ResultUtil.error("电子余额不足,无法完成支付"); - } +// resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),money); +// if(resultUtil.getCode()==500){ +// return ResultUtil.error("电子余额不足,无法完成支付"); +// } userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - + SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId()); userInfo.setIntegral(userInfo.getIntegral() + (money.intValue() * query1.getIntegral()));//积分 - + //添加交易明细 transactionDetailsService.saveData(uid, "跨城出行-感谢费", money, 2, 1, 1, 3, orderId); userInfoService.updateById(userInfo); - + orderCrossCity.setThankYouFee(money); this.updateById(orderCrossCity); @@ -2639,4 +2640,37 @@ driverService.updateById(driver); systemNoticeService.addSystemNotice(1, "您已使用" + (payType == 1 ? "微信" : (payType==2?"支付宝":"云闪付")) + "成功完成感谢费支付,谢谢使用!", userInfo.getId(), 1); } + + @Override + public List<UnPayOrderVO> getUnpayCrossCityOrders(Integer uid) throws Exception { + EntityWrapper<OrderCrossCity> query = new EntityWrapper<>(); + query.eq("userId", uid).eq("state", 7); + // 查询未支付订单 + List<OrderCrossCity> orderCrossCities = this.selectList(query); + List<UnPayOrderVO> unPayOrderVOList = new ArrayList<>(); + for(OrderCrossCity orderCrossCity : orderCrossCities){ + + UnPayOrderVO unPayOrderVO = new UnPayOrderVO(); + //添加司机信息 + DriverInfoWarpper driverInfoWarpper = new DriverInfoWarpper(); + Driver driver = driverService.selectById(orderCrossCity.getDriverId()); + BeanUtils.copyProperties(driver, driverInfoWarpper); unPayOrderVO.setDriverInfoWarpper(driverInfoWarpper); + //其余信息 + BeanUtils.copyProperties(orderCrossCity, unPayOrderVO); + unPayOrderVOList.add(unPayOrderVO); + } + return unPayOrderVOList; + } + + @Override + public void addAppeal(Integer uid, Integer orderId, String abnormalIntro, String abnormalImg) { + OrderCrossCity orderCrossCity = this.selectById(orderId); + if(orderCrossCity.getState()!=7 || orderCrossCity.getAbnormalIntro()!=null){ + throw new RuntimeException("此订单无法申诉"); + } + orderCrossCity.setAbnormalIntro(abnormalIntro); + orderCrossCity.setAbnormalImg(abnormalImg); + orderCrossCity.setAbnormal(1); + this.baseMapper.updateById(orderCrossCity); + } } -- Gitblit v1.7.1