xuhy
17 小时以前 b80d4a5cbac9ad9460717b6463819fa784e55ceb
跨城查询优化
6个文件已修改
68 ■■■■ 已修改文件
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/OrderCrossCityMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/OrderCrossCityMapper.java
@@ -91,4 +91,7 @@
     * @return
     */
    List<Map<String, Object>> queryRedEnvelope(@Param("uid") Integer uid);
    int queryCountOrder(@Param("driverId") Integer driverId, @Param("lineShiftId") Integer lineShiftId,
                        @Param("state") Integer state, @Param("day") String day);
}
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
@@ -571,7 +571,8 @@
        a.oldState as oldState,
        a.telX as telX,
        a.bindId as bindId,
        a.remark as remark
        a.remark as remark,
        b.lineShiftId as lineShiftId
        from t_order_cross_city a
        left join t_line_shift_driver b on (a.lineShiftDriverId = b.id)
        where a.isDelete = 1
@@ -591,4 +592,23 @@
            and DATE_FORMAT(a.travelTime, '%Y-%m-%d') = #{day}
        </if>
    </select>
    <select id="queryCountOrder" resultType="java.lang.Integer">
        select
        count(1)
        from t_order_cross_city a
        left join t_line_shift_driver b on (a.lineShiftDriverId = b.id)
        where a.isDelete = 1
        <if test="null != driverId">
            and a.driverId = #{driverId}
        </if>
        <if test="null != lineShiftId">
            and b.lineShiftId = #{lineShiftId}
        </if>
        <if test="null != state">
            and a.state = #{state}
        </if>
        <if test="null != day and '' != day">
            and DATE_FORMAT(a.travelTime, '%Y-%m-%d') = #{day}
        </if>
    </select>
</mapper>
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java
@@ -328,6 +328,16 @@
     */
    @TableField("bindId")
    private String bindId;
    @TableField(exist = false)
    private Integer lineShiftId;
    public Integer getLineShiftId() {
        return lineShiftId;
    }
    public void setLineShiftId(Integer lineShiftId) {
        this.lineShiftId = lineShiftId;
    }
    public Integer getId() {
        return id;
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -258,4 +258,7 @@
    List<OrderCrossCity> queryListOrder(Integer driverId, Integer lineShiftId, List<Integer> state, String day) throws Exception;
    int queryCountOrder(Integer driverId, Integer id, Integer state, String day);
}
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -23,10 +23,12 @@
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -75,6 +77,7 @@
        List<Map<String, Object>> list = new ArrayList<>();
        List<LineShift> lineShifts = lineShiftMapper.queryByLineId(lineId);
        List<Map<String, Object>> s = lineSiteMapper.queryDriver(lineId, sdf.parse(day), driverId);
        s = s.stream().distinct().collect(Collectors.toList());
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(sdf.parse(day));
        String vehicle = redisUtil.getValue("VEHICLE");
@@ -82,6 +85,10 @@
        if(ToolUtil.isNotEmpty(vehicle)){
            integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
        }
        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>()
                .in("state", Arrays.asList(2, 3, 4, 5, 11))
                .eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day));
        List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryListOrder(null, null, Arrays.asList(5), day);
        for(LineShift lineShift : lineShifts){
            boolean b = true;
            String[] split = lineShift.getEndTime().split(":");
@@ -104,18 +111,21 @@
                if(bo){
                    continue;
                }
                int i = orderTaxiService.selectCount(new EntityWrapper<OrderTaxi>().eq("driverId", map.get("driverId")).in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day));
                long i = 0 ;
                if(CollectionUtils.isEmpty(orderPrivateCars)){
                    Integer driverId1 = Integer.valueOf(map.get("driverId").toString());
                    i = orderPrivateCars.stream().filter(orderPrivateCar -> orderPrivateCar.getDriverId().equals(driverId1)).count();
                }
                if(i > 0){
                    continue;
                }
                i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", map.get("driverId")).in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day));
                if(i > 0){
                    continue;
//                List<OrderCrossCity> driverId1 = orderCrossCityService.queryListOrder(Integer.valueOf(map.get("driverId").toString()), lineShift.getId(), Arrays.asList(5), day);
                if (CollectionUtils.isEmpty(orderCrossCities)){
                    Integer driverId1 = Integer.valueOf(map.get("driverId").toString());
                    i = orderCrossCities.stream().filter(orderCrossCity -> orderCrossCity.getDriverId().equals(driverId1)
                    && orderCrossCity.getLineShiftId().equals(lineShift.getId())).count();
                }
                List<OrderCrossCity> driverId1 = orderCrossCityService.queryListOrder(Integer.valueOf(map.get("driverId").toString()), lineShift.getId(), Arrays.asList(5), day);
                if(driverId1.size() > 0){
                if(i > 0){
                    continue;
                }
                if(Integer.valueOf(map.get("laveSeat").toString()) <= 0){
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -1835,6 +1835,10 @@
    public List<OrderCrossCity> queryListOrder(Integer driverId, Integer lineShiftId, List<Integer> state, String day) throws Exception {
        return orderCrossCityMapper.queryListOrder(driverId, lineShiftId, state, day);
    }
    @Override
    public int queryCountOrder(Integer driverId, Integer lineShiftId, Integer state, String day){
        return orderCrossCityMapper.queryCountOrder(driverId, lineShiftId, state, day);
    }
    /**
     * 获取订单编号