| | |
| | | package com.boying.service.impl; |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.boying.entity.Barrier; |
| | | import com.boying.entity.OutPark; |
| | | import com.boying.entity.Park; |
| | | import com.boying.entity.Statistic; |
| | | import com.boying.mapper.OutParkMapper; |
| | | import com.boying.mapper.StatisticMapper; |
| | | import com.boying.service.OutParkService; |
| | | import com.boying.service.StatisticService; |
| | | import com.boying.util.RedisJsonUtil; |
| | | import com.boying.util.StringUtil; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.data.redis.core.StringRedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.io.IOException; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | @AllArgsConstructor |
| | | public class OutParkServiceImpl extends ServiceImpl<OutParkMapper, OutPark> implements OutParkService { |
| | | private final OutParkMapper outParkMapper; |
| | | private StringRedisTemplate redisTemplate; |
| | | |
| | | |
| | | @Override |
| | | public int count1() { |
| | |
| | | |
| | | @Override |
| | | public OutPark count4(Integer bId) { |
| | | QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(OutPark::getBarrierId,bId) |
| | | .eq(OutPark::getStatus,1) |
| | | .eq(OutPark::getStatus2,0) |
| | | .orderByDesc(OutPark::getCreateTime); |
| | | List<OutPark> outParks = outParkMapper.selectList(wrapper); |
| | | if(outParks.size()>0){ |
| | | return outParks.get(0); |
| | | }else{ |
| | | return null; |
| | | OutPark outPark = null; |
| | | try { |
| | | String s = redisTemplate.opsForValue().get("outPark-"+bId); |
| | | if(!StringUtil.isNullOrEmpty(s)){ |
| | | outPark = JSON.parseObject(s, OutPark.class); |
| | | return outPark; |
| | | }else { |
| | | return null; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | // |
| | | // QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); |
| | | // wrapper.lambda() |
| | | // .eq(OutPark::getBarrierId,bId) |
| | | // .eq(OutPark::getStatus,1) |
| | | // .eq(OutPark::getStatus2,0) |
| | | // .orderByDesc(OutPark::getCreateTime); |
| | | // List<OutPark> outParks = outParkMapper.selectList(wrapper); |
| | | // if(outParks.size()>0){ |
| | | // return outParks.get(0); |
| | | // }else{ |
| | | // return null; |
| | | // } |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public OutPark findBy5min(String carNo, Integer parkId,LocalDateTime dateTime) { |
| | | LocalDateTime localDateTime = dateTime.minusMinutes(5); |
| | | QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(OutPark::getCarNo,carNo) |
| | | .eq(OutPark::getParkId,parkId) |
| | | .ge(OutPark::getCreateTime,localDateTime) |
| | | .isNotNull(OutPark::getEnterTime); |
| | | List<OutPark> outParks = outParkMapper.selectList(wrapper); |
| | | if(outParks != null && outParks.size()>0){ |
| | | for (OutPark outPark : outParks) { |
| | | if(outPark.getPrice() == 0){ |
| | | return outPark; |
| | | } |
| | | if(outPark.getPrice() != 0 && outPark.getStatus() == 1){ |
| | | return outPark; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public OutPark findBy10min(String carNo, Integer parkId,LocalDateTime dateTime,Integer outParkId) { |
| | | LocalDateTime localDateTime = dateTime.minusMinutes(10); |
| | | QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(OutPark::getCarNo,carNo) |
| | | .eq(OutPark::getParkId,parkId) |
| | | .ge(OutPark::getCreateTime,localDateTime) |
| | | .ge(OutPark::getPrice,0) |
| | | .ne(OutPark::getId,outParkId) |
| | | .isNotNull(OutPark::getPayCode) |
| | | .isNotNull(OutPark::getEnterTime); |
| | | List<OutPark> outParks = outParkMapper.selectList(wrapper); |
| | | if(outParks != null && outParks.size()>0){ |
| | | return outParks.get(0); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public OutPark findBy5min2(String carNo, Integer parkId,LocalDateTime dateTime) { |
| | | LocalDateTime localDateTime = dateTime.minusMinutes(7); |
| | | QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(OutPark::getCarNo,carNo) |
| | | .eq(OutPark::getParkId,parkId) |
| | | .ge(OutPark::getCreateTime,localDateTime) |
| | | .ge(OutPark::getPrice,0) |
| | | .ne(OutPark::getStatus,1) |
| | | .isNotNull(OutPark::getPayCode) |
| | | .isNotNull(OutPark::getEnterTime); |
| | | List<OutPark> outParks = outParkMapper.selectList(wrapper); |
| | | if(outParks != null && outParks.size()>0){ |
| | | return outParks.get(0); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<OutPark> getList(long current, long size, String carNo, Long parkId, String payCode, String date) { |
| | | return outParkMapper.getList((current-1)*size,size,carNo,parkId,payCode,date); |
| | | } |