kongdeqiang
2023-03-01 b5265214f54d17c527f7f74c0cb1fff0489635e2
src/main/java/com/boying/service/impl/BarrierServiceImpl.java
@@ -1,16 +1,22 @@
package com.boying.service.impl;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
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.EnterPark;
import com.boying.entity.OutPark;
import com.boying.mapper.BarrierMapper;
import com.boying.mapper.EnterParkMapper;
import com.boying.mapper.OutParkMapper;
import com.boying.service.BarrierService;
import com.boying.service.EnterParkService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
/**
@@ -23,6 +29,8 @@
@Service
@AllArgsConstructor
public class BarrierServiceImpl extends ServiceImpl<BarrierMapper, Barrier> implements BarrierService {
    private EnterParkMapper enterParkMapper;
    private OutParkMapper outParkMapper;
    @Override
    public Barrier findByCode(String code) {
        QueryWrapper<Barrier> wrapper = new QueryWrapper<>();
@@ -35,4 +43,37 @@
            return null;
        }
    }
    @Override
    public boolean getDateDifIn(Integer barrierId) {
        QueryWrapper<EnterPark> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(EnterPark::getBarrierId,barrierId)
                .orderByDesc(EnterPark::getId)
                .last(" limit 1");
        EnterPark enterPark = enterParkMapper.selectOne(wrapper);
        long dif = DateUtil.between(Date.from( enterPark.getCreateTime().atZone( ZoneId.systemDefault()).toInstant()), new Date(), DateUnit.SECOND, false);
        if(dif >= 5 && dif <= 10){
            return true;
        }else {
            return false;
        }
    }
    @Override
    public boolean getDateDifOut(Integer barrierId) {
        QueryWrapper<OutPark> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(OutPark::getBarrierId,barrierId)
                .orderByDesc(OutPark::getId)
                .last(" limit 1");
        OutPark outPark = outParkMapper.selectOne(wrapper);
        long dif = DateUtil.between(Date.from( outPark.getCreateTime().atZone( ZoneId.systemDefault()).toInstant()), new Date(), DateUnit.SECOND, false);
        if(dif >= 20 && dif <= 30){
            return true;
        }else {
            return false;
        }
    }
}