kongdeqiang
2024-04-09 fb050c0dafa5363a73540dd9e52b78487e25ba0a
src/main/java/com/boying/service/impl/OutParkServiceImpl.java
@@ -1,8 +1,10 @@
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;
@@ -11,10 +13,13 @@
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;
@@ -30,7 +35,8 @@
@AllArgsConstructor
public class OutParkServiceImpl extends ServiceImpl<OutParkMapper, OutPark> implements OutParkService {
    private final OutParkMapper outParkMapper;
    private final RedisJsonUtil redisJsonUtil;
    private StringRedisTemplate redisTemplate;
    @Override
    public int count1() {
@@ -115,28 +121,30 @@
    public OutPark count4(Integer bId) {
        OutPark outPark = null;
        try {
            outPark =  redisJsonUtil.get("outPark-"+bId, OutPark.class);
            if(outPark != null){
            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){
                    redisJsonUtil.set("outPark-"+bId, outParks.get(0));
                    return outParks.get(0);
                }else{
                    return null;
                }
                return null;
            }
        } catch (IOException e) {
        } 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
@@ -183,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);
    }