| | |
| | | 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.entity.*; |
| | | import com.boying.entity.vo.OutParkVo; |
| | | import com.boying.mapper.EnterParkMapper; |
| | | import com.boying.mapper.OutParkMapper; |
| | | import com.boying.mapper.StatisticMapper; |
| | | import com.boying.service.OutParkService; |
| | | import com.boying.service.StatisticService; |
| | | import com.boying.util.PlateComparator; |
| | | import com.boying.util.RedisJsonUtil; |
| | | import com.boying.util.StringUtil; |
| | | import lombok.AllArgsConstructor; |
| | |
| | | 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 final EnterParkMapper enterParkMapper; |
| | | private StringRedisTemplate redisTemplate; |
| | | |
| | | |
| | |
| | | |
| | | @Override |
| | | public OutPark count4(Integer bId) { |
| | | // OutPark outPark = null; |
| | | // try { |
| | | // String s = redisTemplate.opsForValue().get("outPark-"+bId); |
| | | // if(!StringUtil.isNullOrEmpty(s)){ |
| | | // outPark = JSON.parseObject(s, OutPark.class); |
| | | // return outPark; |
| | | // }else { |
| | | // 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){ |
| | | // String jsonValue = JSON.toJSONString(outParks.get(0)); |
| | | // redisTemplate.opsForValue().set("outPark-"+bId, jsonValue); |
| | | // return outParks.get(0); |
| | | // }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; |
| | | 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 List<Map<String, Object>> getLikeCar(String carNo, Integer parkId, LocalDateTime dateTime) { |
| | | QueryWrapper<EnterPark> wrapper = new QueryWrapper<>(); |
| | | wrapper.select(" id,car_no,park_id,create_time "); |
| | | wrapper.lambda() |
| | | .eq(EnterPark::getParkId,parkId) |
| | | .lt(EnterPark::getCreateTime,dateTime); |
| | | List<EnterPark> enterParks = enterParkMapper.selectList(wrapper); |
| | | if(enterParks !=null && enterParks.size()>0){ |
| | | List<Map<String, Object>> list = PlateComparator.getList(carNo, enterParks); |
| | | return list; |
| | | }else { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<OutParkVo> getVoList(Integer parkId, String startDate, String endDate) { |
| | | return outParkMapper.getVoList(parkId,startDate,endDate); |
| | | } |
| | | |
| | | @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); |
| | | } |