package com.template.services.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.template.common.utils.TimeExchange;
import com.template.mapper.SmartVisitorMapper;
import com.template.model.pojo.SmartVisitor;
import com.template.model.pojo.SmartVisitor;
import com.template.mapper.SmartVisitorMapper;
import com.template.model.result.PageUtils;
import com.template.model.vo.SmartVisitorScreenVo;
import com.template.model.vo.VisitorPageVo;
import com.template.services.SmartVisitorService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author ceshi
* @since 2023-12-04
*/
@Service
public class SmartVisitorServiceImpl extends ServiceImpl implements SmartVisitorService {
@Autowired
private SmartVisitorMapper smartVisitorMapper;
@Override
public int insertSmartVisitor(SmartVisitor sa) {
int result = smartVisitorMapper.insert(sa);
return result;
}
@Override
public int updateSmartVisitor(SmartVisitor sa) {
int result = smartVisitorMapper.updateById(sa);
return result;
}
@Override
public PageUtils queryPageSmartVisitors(int currentPage, int pageCount, String name) {
Page page = new Page<>(currentPage, pageCount);
QueryWrapper queryWrapper = new QueryWrapper<>();
//queryWrapper.like(StringUtils.hasText(name), "name", name);
IPage result = smartVisitorMapper.selectPage(page, queryWrapper);
return new PageUtils<>(result);
}
@Override
public int deleteSmartVisitorById(int id) {
int result = smartVisitorMapper.deleteById(id);
return result;
}
@Override
public SmartVisitor getSmartById(int id) {
SmartVisitor result = smartVisitorMapper.selectById(id);
return result;
}
@Override
public boolean insertVisitorBatch(List visitors) {
boolean result = this.saveBatch(visitors);
return result;
}
@Override
public PageUtils smartVisitorPageByUserId(int currentPage, int pageCount, Integer userId, Integer statu, String createStartTime, String createEndTime, String keyWord, String visitorStartTime, String visitorEndTime) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage datas = smartVisitorMapper.queryVisitorPage(page, userId, statu, createStartTime, createEndTime, keyWord, visitorStartTime, visitorEndTime);
return new PageUtils(datas);
}
@Override
public Integer queryVisitorCount(String cardNo, String startTime, String endTime) {
Integer result = smartVisitorMapper.queryVisitorCount(cardNo, startTime, endTime);
return result;
}
@Override
public PageUtils queryVisitorPageDatas(int currentPage, int pageCount, Integer type, List studentIds, String isAdmin) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage datas = smartVisitorMapper.queryVisitorPageDatas(page, type, studentIds, isAdmin);
return new PageUtils(datas);
}
@Override
public SmartVisitor querySmartVisitorByCode(String visitorCode) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.hasText(visitorCode), "visitor_code", visitorCode);
SmartVisitor result = smartVisitorMapper.selectOne(queryWrapper);
return result;
}
@Override
public SmartVisitor queryParentVisitor(Integer userId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
String nowTime = TimeExchange.getTime();
queryWrapper.le("visitor_time", nowTime);//<=
queryWrapper.ge("visitor_deadline", nowTime);//>=
queryWrapper.eq("user_id", userId);
queryWrapper.eq("statu",3);//必须是已推送的
queryWrapper.orderByAsc("visitor_time");
List resultDatas = smartVisitorMapper.selectList(queryWrapper);
return resultDatas != null && resultDatas.size() > 0 ? resultDatas.get(0) : null;
}
@Override
public PageUtils getPage(int currentPage, int pageCount,Integer type, String keyWord, Integer status, String startTime, String endTime, String visitorStartTime, String visitorEndTime) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage datas = smartVisitorMapper.getPage(page,type,keyWord,status,startTime,endTime,visitorStartTime,visitorEndTime);
return new PageUtils(datas);
}
@Override
public PageUtils getScreenPage(int currentPage, int pageCount, String phone, String status) {
Page page = new Page<>();
page.setCurrent(currentPage);
page.setSize(pageCount);
IPage datas = smartVisitorMapper.getScreenPage(page,phone,status);
return new PageUtils(datas);
}
}