From 287cbb376dea7b3972e5f38a38fad043aa4d3b68 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期四, 01 八月 2024 16:05:33 +0800 Subject: [PATCH] 修改2.0 bug --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 160 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 131 insertions(+), 29 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 740a614..40e2820 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 @@ -11,6 +11,7 @@ import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; +import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; @@ -30,10 +31,12 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; @@ -105,6 +108,9 @@ @Autowired private IUserRedPacketRecordService userRedPacketRecordService; + + @Resource + private UserActivityDiscount1Mapper userActivityDiscount1Mapper; /** * 获取正在进行中的订单 @@ -136,6 +142,7 @@ orderStatusWarpper.setOrderId(orderPrivateCar.getId()); orderStatusWarpper.setOrderType(1); orderStatusWarpper.setState(orderPrivateCar.getState()); + orderStatusWarpper.setTripId(orderPrivateCar.getTripId()); data.add(orderStatusWarpper); } List<OrderTaxi> list = orderTaxiService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12); @@ -147,6 +154,7 @@ orderStatusWarpper.setOrderId(orderTaxi.getId()); orderStatusWarpper.setOrderType(2); orderStatusWarpper.setState(orderTaxi.getState()); +// orderStatusWarpper.setTripId(orderTaxi.getTripId()); data.add(orderStatusWarpper); } List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12); @@ -158,6 +166,7 @@ orderStatusWarpper.setOrderId(orderCrossCity.getId()); orderStatusWarpper.setOrderType(3); orderStatusWarpper.setState(orderCrossCity.getState()); +// orderStatusWarpper.setTripId(orderPrivateCar.getTripId()); data.add(orderStatusWarpper); } return ResultUtil.success(data); @@ -193,6 +202,9 @@ if(null == uid){ return ResultUtil.tokenErr(); } + UserInfo userInfo = userInfoService.selectById(uid); + userInfo.setLanguage(language); + userInfoService.updateById(userInfo); List<Map<String, Object>> list = null; switch (type){ case 1: @@ -227,13 +239,13 @@ */ @ResponseBody @PostMapping("/api/order/queryMyTravelRecord") - @ApiOperation(value = "获取消费记录", tags = {"用户端-个人中心"}, notes = "") + @ApiOperation(value = "获取消费记录【2.0】", tags = {"用户端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, Integer language, HttpServletRequest request){ + public ResultUtil<List<TravelRecordListWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ @@ -260,26 +272,26 @@ for (Map<String, Object> map : list3) { map.put("name", name); } - List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>().eq("state", 1) - .eq("type", 1).eq("userType", 1).eq("userId", uid).eq("orderType", 3).like("remark", "%跨城订单取消退款%")); - List<Map<String, Object>> list4 = new ArrayList<>(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - for(TransactionDetails transactionDetails1 : transactionDetails){ - Map<String, Object> map = new HashMap<>(); - map.put("money", transactionDetails1.getMoney()); - map.put("time", DateUtil.conversionFormat(language, sdf.format(transactionDetails1.getInsertTime()))); - map.put("name", "跨城订单取消退款"); - map.put("insertTime", Double.valueOf(transactionDetails1.getInsertTime().getTime() / 1000).intValue()); - list4.add(map); - } +// List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>().eq("state", 1) +// .eq("type", 1).eq("userType", 1).eq("userId", uid).eq("orderType", 3).like("remark", "%跨城订单取消退款%")); +// List<Map<String, Object>> list4 = new ArrayList<>(); +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); +// for(TransactionDetails transactionDetails1 : transactionDetails){ +// Map<String, Object> map = new HashMap<>(); +// map.put("money", transactionDetails1.getMoney()); +// map.put("time", DateUtil.conversionFormat(language, sdf.format(transactionDetails1.getInsertTime()))); +// map.put("name", "跨城订单取消退款"); +// map.put("insertTime", Double.valueOf(transactionDetails1.getInsertTime().getTime() / 1000).intValue()); +// list4.add(map); +// } list.addAll(maps); -// list.addAll(list1); -// list.addAll(list2); list.addAll(list3); // list.addAll(list4); - List<TravelRecordWarpper> orderWarpper = TravelRecordWarpper.getTravelRecordWarpper(list); - + List<TravelRecordListWarpper> orderWarpper = TravelRecordListWarpper.getTravelRecordWarpper(list); + + double sum = orderWarpper.stream().mapToDouble(TravelRecordListWarpper::getMoney).sum(); + //分页 if(orderWarpper.size() >= (pageNum + 1) * size){ orderWarpper = orderWarpper.subList(pageNum, pageNum + size); @@ -288,6 +300,9 @@ }else{ orderWarpper = new ArrayList<>(); } + orderWarpper.forEach(s->{ + s.setTotal(sum); + }); return ResultUtil.success(orderWarpper); }catch (Exception e){ e.printStackTrace(); @@ -628,7 +643,31 @@ }) public ResultUtil queryTrack_(Integer orderId, Integer orderType){ try { - List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType); + List<Map<String, Object>> list = new ArrayList<>(); + switch (orderType){ + case 1: + OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); + Map<String, Object> map = new HashMap<>(); + map.put("lon", orderPrivateCar.getStartLon()); + map.put("lat", orderPrivateCar.getStartLat()); + list.add(map); + map = new HashMap<>(); + map.put("lon", orderPrivateCar.getEndLon()); + map.put("lat", orderPrivateCar.getEndLat()); + list.add(map); + break; + case 4: + OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); + Map<String, Object> map1 = new HashMap<>(); + map1.put("lon", orderLogistics.getStartLon()); + map1.put("lat", orderLogistics.getStartLat()); + list.add(map1); + map1 = new HashMap<>(); + map1.put("lon", orderLogistics.getEndLon()); + map1.put("lat", orderLogistics.getEndLat()); + list.add(map1); + break; + } return ResultUtil.success(list); }catch (Exception e){ e.printStackTrace(); @@ -657,7 +696,7 @@ userId = orderPrivateCar.getUserId(); state = orderPrivateCar.getState(); if(null != driverId){ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, ""); } break; case 2: @@ -666,7 +705,7 @@ userId = orderTaxi.getUserId(); state = orderTaxi.getState(); if(null != driverId){ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, ""); } break; case 3: @@ -677,7 +716,7 @@ if(orderCrossCity.getPayMoney() == null && state == 10){//支付的情况才推送取消 break; }else{ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, ""); } break; case 4: @@ -688,7 +727,7 @@ if(orderLogistics.getPayMoney() == null && state == 10){//支付的情况才推送取消 break; }else{ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, ""); } break; case 5: @@ -699,11 +738,11 @@ if(orderLogistics1.getPayMoney() == null && state == 10){//支付的情况才推送取消 break; }else{ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0, ""); } break; } - pushUtil.pushOrderState(1, userId, id, orderType, state, 0); + pushUtil.pushOrderState(1, userId, id, orderType, state, 0, ""); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); @@ -1042,9 +1081,26 @@ return ResultUtil.tokenErr(); } Map<String, Object> map = new HashMap<>(); + Double payMoney = 0D; switch (orderType){ case 1: map = orderPrivateCarService.queryBalance(orderId, uid); + OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); + payMoney = orderPrivateCar.getOrderMoney(); + UserActivityDiscount1 query = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId()); + if(null != query){ + Integer orderNum=orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query.getId()).last(" and to_days(getoffTime) = to_days(now())")); + if(query.getDistance()*1000>orderPrivateCar.getMileage() && query.getOrderNum()>orderNum){ + Double special = query.getSpecial(); + orderPrivateCar.setDiscount(special); + Double orderMoney = orderPrivateCar.getOrderMoney(); + double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + if(orderMoney.compareTo(v) > 0){ + payMoney = v; + } + } + + } break; // case 2: // map = orderTaxiService.queryBalance(orderId, uid); @@ -1054,10 +1110,34 @@ // break; case 4: map = orderLogisticsService.queryBalance(orderId, uid); + OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); + payMoney = orderLogistics.getOrderMoney(); + UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderLogistics.getCompanyId()); + if(null != query2){ + Integer orderNum=orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("userId",orderLogistics.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())")); + if(query2.getDistance()*1000>orderLogistics.getMileage() && query2.getOrderNum()>orderNum){ + Double special = query2.getLogistics(); + orderLogistics.setDiscount(special); + Double orderMoney = orderLogistics.getOrderMoney(); + double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + if(orderMoney.compareTo(v) > 0){ + payMoney = v; + } + } + } break; // case 5: // map = orderLogisticsService.queryBalance(orderId, uid); // break; + } + Double aDouble = userRedPacketRecordService.queryRemainingAmount(uid); + map.put("redTotal", aDouble); + RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings(); + if(null == redEnvelopePaymentSettings){ + map.put("deductionAmount", 0D); + }else{ + Double deductionAmount = new BigDecimal(payMoney).multiply(redEnvelopePaymentSettings.getDeductionRatio().divide(new BigDecimal(100))).doubleValue(); + map.put("deductionAmount", aDouble.compareTo(deductionAmount) >= 0 ? deductionAmount : aDouble); } return ResultUtil.success(map); }catch (Exception e){ @@ -1650,17 +1730,39 @@ return ResultUtil.tokenErr(); } Double payMoney = 0D; + Integer companyId = 1; switch (orderType){ case 1: OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); - payMoney = orderPrivateCar.getPayMoney(); + Double orderMoney = orderPrivateCar.getOrderMoney(); + UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId()); + if(null != query2){ + Integer orderNum=orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId", uid).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())")); + if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){ + Double special = query2.getSpecial(); + if(null != special){ + double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + payMoney = v; + } + } + } break; case 4: OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); - payMoney = orderLogistics.getPayMoney(); + Double orderMoney1 = orderLogistics.getOrderMoney(); + UserActivityDiscount1 query1 = userActivityDiscount1Mapper.query(orderLogistics.getCompanyId()); + if(null != query1){ + Integer orderNum=orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("userId", uid).eq("activityId",query1.getId()).last(" and to_days(getoffTime) = to_days(now())")); + if(query1.getDistance()*1000>orderLogistics.getMileage() && query1.getOrderNum()>orderNum){ + Double special = query1.getSpecial(); + if(null != special){ + double v = new BigDecimal(orderMoney1).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + payMoney = v; + } + } + } break; } - Double aDouble = userRedPacketRecordService.queryRemainingAmount(uid); Map<String, Object> map = new HashMap<>(); map.put("redTotal", aDouble); @@ -1669,7 +1771,7 @@ map.put("deductionAmount", 0D); return ResultUtil.success(map); } - Double deductionAmount = new BigDecimal(payMoney).multiply(redEnvelopePaymentSettings.getDeductionRatio().divide(new BigDecimal(100))).doubleValue(); + Double deductionAmount = new BigDecimal(payMoney).multiply(redEnvelopePaymentSettings.getDeductionRatio().divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); map.put("deductionAmount", deductionAmount); return ResultUtil.success(map); }catch (Exception e){ -- Gitblit v1.7.1