kongdeqiang
2024-04-09 fb050c0dafa5363a73540dd9e52b78487e25ba0a
src/main/java/com/boying/service/impl/OutParkServiceImpl.java
@@ -1,17 +1,25 @@
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;
@@ -27,6 +35,8 @@
@AllArgsConstructor
public class OutParkServiceImpl extends ServiceImpl<OutParkMapper, OutPark> implements OutParkService {
    private final OutParkMapper outParkMapper;
    private StringRedisTemplate redisTemplate;
    @Override
    public int count1() {
@@ -109,18 +119,32 @@
    @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
@@ -167,6 +191,66 @@
    }
    @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);
    }