zhibing.pu
2024-07-25 b3b7d3ae4789eb3d4d4bbadccd03d79adb28cb1a
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,6 +31,7 @@
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.*;
@@ -105,6 +107,9 @@
    
    @Autowired
    private IUserRedPacketRecordService userRedPacketRecordService;
    @Resource
    private UserActivityDiscount1Mapper userActivityDiscount1Mapper;
    /**
     * 获取正在进行中的订单
@@ -136,6 +141,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 +153,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 +165,7 @@
                orderStatusWarpper.setOrderId(orderCrossCity.getId());
                orderStatusWarpper.setOrderType(3);
                orderStatusWarpper.setState(orderCrossCity.getState());
//                orderStatusWarpper.setTripId(orderPrivateCar.getTripId());
                data.add(orderStatusWarpper);
            }
            return ResultUtil.success(data);
@@ -227,13 +235,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 +268,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 +296,9 @@
            }else{
                orderWarpper = new ArrayList<>();
            }
            orderWarpper.forEach(s->{
                s.setTotal(sum);
            });
            return ResultUtil.success(orderWarpper);
        }catch (Exception e){
            e.printStackTrace();
@@ -657,7 +668,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 +677,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 +688,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 +699,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 +710,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 +1053,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,11 +1082,35 @@
//                    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){
            e.printStackTrace();