Pu Zhibing
5 天以前 2b769cbc555b57a006b2b3aac3ce92d74a5ba6f2
修改bug
8个文件已修改
101 ■■■■ 已修改文件
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,6 +1,8 @@
package com.stylefeng.guns.modular.api;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IOrderEvaluateService;
@@ -13,11 +15,13 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -32,6 +36,7 @@
@Api
@RestController
@RequestMapping("")
@Slf4j
public class DriverController {
    @Autowired
@@ -42,6 +47,9 @@
    
    @Autowired
    private MongoTemplate mongoTemplate;
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
@@ -142,12 +150,15 @@
        //mongodb查询附近5公里范围内的坐标
        Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble(lon), Double.parseDouble(lat))).maxDistance(5000));
        List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class);
        log.info("地理空间检索出的数据:{}", JSON.toJSONString(driverPositions));
        List<Map<String, Object>> collect = new ArrayList<>();
        if(driverPositions.size() > 0){
            List<Integer> driverIds = driverPositions.stream().map(DriverPosition::getDriverId).collect(Collectors.toList());
            List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("id", driverIds)
                    .eq("authState", 2).eq("state", 2));
            collect = drivers.stream().map(driver -> {
                String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId()));
                if(ToolUtil.isNotEmpty(value)){
                Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst();
                Map<String, Object> map = new HashMap<>();
                map.put("driverId", driver.getId());
@@ -155,7 +166,9 @@
                map.put("lot", driverPosition.isPresent() ? driverPosition.get().getPoint().getX() : "");
                map.put("lat", driverPosition.isPresent() ? driverPosition.get().getPoint().getY() : "");
                return map;
            }).collect(Collectors.toList());
                }
                return null;
            }).filter(Objects::nonNull).collect(Collectors.toList());
        }
        return ResultUtil.success(collect);
    }
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -170,8 +170,6 @@
    private IOrderRideService orderRideService;
    
    
    /**
     * 获取正在进行中的订单
     *
@@ -2261,6 +2259,7 @@
        }
    }
    
    @PostMapping("/api/order/queryMyTripList")
    @ApiOperation(value = "获取我的行程列表", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
@@ -2278,12 +2277,13 @@
            
            List<Map<String,Object>> raw = fetchTrips(uid, type, pageNum, size);
            return ResultUtil.success(TripOrderVo.getTripOrderVo(raw));
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    /**
     * 私有:拉取指定 type 的行程列表。
     * type=0 → 全部类型;1/2/3 → 对应三种服务;pageNum/size 负责分页。
@@ -2319,7 +2319,7 @@
            if (da == null && db == null) return 0;
            if (da == null) return 1;   // a 在后面
            if (db == null) return -1;  // b 在后面
            return da.compareTo(db);    // 按时间正序(升序)排列
            return da.compareTo(db) * -1;    // 按时间正序(升序)排列
        });
        // 将经纬度转换为城市并设置到数据中
        if (list != null && !list.isEmpty()) {
@@ -2364,6 +2364,8 @@
        }
        return list;
    }
    @PostMapping("/api/user/sendTripSheetEmail")
    @ApiOperation(value = "发送行程单邮件", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
@@ -2395,7 +2397,7 @@
            String filePath = tripSheetGenerator.generatePdf(tripOrderVos);
            File attachment = new File(filePath);
            String displayFileName = "贵人家园出行-行程单.pdf";
            emailUtil.sendEmailWithAttachment(tripSheet.getRecipientEmail(), "贵人家园出行-行程单", "贵人家园出行-行程单", attachment,displayFileName);
            emailUtil.sendEmailWithAttachment(tripSheet.getRecipientEmail(), "贵人家园出行-行程单", "请查收您的行程单", attachment, displayFileName);
            attachment.delete(); // 发送成功后删除临时文件
            Map<String, Object> result = new HashMap<>();
            result.put("orderNum", orderList.size());
@@ -2405,6 +2407,7 @@
            return ResultUtil.error("邮件发送失败"+e.getMessage());
        }
    }
    /**
     * 根据订单类型和ID集合查询订单
     */
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -280,7 +280,7 @@
        state as state,
        oldState as oldState,
        thankYouFee
        from t_order_private_car where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
        from t_order_private_car where userId = #{uid} and isGenerateRecoveryOrder = 0 order by insertTime desc limit #{pageNum}, #{size}
    </select>
@@ -584,8 +584,7 @@
    <select id="queryMyTripList" resultType="map">
        select
            id as orderId,
        select id                                        as orderId,
            rideType as rideType,
            DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
            DATE_FORMAT(travelTime, '%m月?d日 %H:%i') as time,
@@ -604,7 +603,9 @@
        boardingTime,
        boardingLon,
        boardingLat
        from t_order_private_car where userId = #{uid}  and state in (8, 9)  order by insertTime desc limit #{pageNum}, #{size}
        from t_order_private_car
        where userId = #{uid} and state in (8, 9)
        order by insertTime desc limit #{pageNum}, #{size}
    </select>
    <select id="queryMyTripListAll" resultType="map">
        select
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -488,6 +488,14 @@
     * 是否是追缴单(0=否,1=是)
     */
    private Integer recoveryOrder;
    /**
     * 是否生成追缴单(0=否,1=是)
     */
    private Integer isGenerateRecoveryOrder;
    /**
     * 原始订单id
     */
    private Integer oldOrderId;
    
    public String getPromotionUser() {
        return promotionUser;
@@ -1281,6 +1289,22 @@
        this.promotionActivityId = promotionActivityId;
    }
    
    public Integer getIsGenerateRecoveryOrder() {
        return isGenerateRecoveryOrder;
    }
    public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
        this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
    }
    public Integer getOldOrderId() {
        return oldOrderId;
    }
    public void setOldOrderId(Integer oldOrderId) {
        this.oldOrderId = oldOrderId;
    }
    @Override public String toString() {
    return "OrderPrivateCar{" +
            "id=" + id +
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
@@ -8,6 +8,7 @@
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.io.File;
@@ -31,7 +32,14 @@
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        // 设置发件人(必须与配置的spring.mail.username一致)
        helper.setFrom(fromEmail);
        String nick="";
        try {
            nick=javax.mail.internet.MimeUtility.encodeText("贵人家园出行");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        // 设置发件人
        helper.setFrom(new InternetAddress(nick + " <" + fromEmail + ">"));
        // 设置收件人
        helper.setTo(to);
        // 设置邮件主题和内容
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -220,6 +220,8 @@
                    BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
                    orderPrivateCar1.setId(null);
                    orderPrivateCar1.setRecoveryOrder(1);
                    orderPrivateCar1.setIsGenerateRecoveryOrder(0);
                    orderPrivateCar1.setOldOrderId(orderPrivateCar.getId());
                    
                    //修改原始订单为支付状态
                    orderPrivateCar.setState(9);
@@ -346,6 +348,8 @@
                    BeanUtils.copyProperties(orderTaxi, orderTaxi1);
                    orderTaxi1.setId(null);
                    orderTaxi1.setRecoveryOrder(1);
                    orderTaxi1.setIsGenerateRecoveryOrder(0);
                    orderTaxi1.setOldOrderId(orderTaxi.getId());
                    
                    //修改原始订单为支付状态
                    orderTaxi.setState(9);
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
@@ -148,7 +148,7 @@
        state as state,
        oldState as oldState,
        thankYouFee
        from t_order_taxi where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
        from t_order_taxi where userId = #{uid} and isGenerateRecoveryOrder = 0 order by insertTime desc limit #{pageNum}, #{size}
    </select>
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -415,6 +415,14 @@
     * 是否是追缴单(0=否,1=是)
     */
    private Integer recoveryOrder;
    /**
     * 是否生成追缴单(0=否,1=是)
     */
    private Integer isGenerateRecoveryOrder;
    /**
     * 原始订单id
     */
    private Integer oldOrderId;
    
    public Long getPromotionActivityId() {
        return promotionActivityId;
@@ -1090,6 +1098,22 @@
        this.recoveryOrder = recoveryOrder;
    }
    
    public Integer getIsGenerateRecoveryOrder() {
        return isGenerateRecoveryOrder;
    }
    public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
        this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
    }
    public Integer getOldOrderId() {
        return oldOrderId;
    }
    public void setOldOrderId(Integer oldOrderId) {
        this.oldOrderId = oldOrderId;
    }
    @Override
    public String toString() {
        return "OrderTaxi{" +