package com.fdkankan.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.manage.common.PageInfo;
import com.fdkankan.manage.entity.*;
import com.fdkankan.manage.mapper.IRtkUseLogMapper;
import com.fdkankan.manage.service.IRtkUseLogService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.manage.vo.request.RtkInfoParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author
* @since 2024-07-22
*/
@Service
public class RtkUseLogServiceImpl extends ServiceImpl implements IRtkUseLogService {
@Override
public void saveLog(RtkInfo rtkInfo, String clientIP,Integer rtkAccountId,String cameraSn,RtkDevice rtkDevice) {
RtkUseLog rtkUseLog = new RtkUseLog();
BeanUtils.copyProperties(rtkInfo,rtkUseLog);
rtkUseLog.setId(null);
rtkUseLog.setCreateTime(null);
rtkUseLog.setUpdateTime(null);
rtkUseLog.setVisitIp(clientIP);
rtkUseLog.setRtkAccountId(rtkAccountId);
rtkUseLog.setUseType(0);
rtkUseLog.setCameraSn(cameraSn);
rtkUseLog.setSgRtkSn(rtkDevice.getSgRtkSn());
this.save(rtkUseLog);
}
@Override
public void saveLog(RtkDevice rtkDevice, String clientIP, RtkAccount rtkAccount,String cameraSn) {
RtkUseLog rtkUseLog = new RtkUseLog();
rtkUseLog.setVisitIp(clientIP);
rtkUseLog.setRtkSnCode(rtkDevice.getRtkSnCode());
rtkUseLog.setSgRtkSn(rtkDevice.getSgRtkSn());
rtkUseLog.setCameraSn(cameraSn);
rtkUseLog.setUserName(rtkAccount.getUserName());
rtkUseLog.setPassword(rtkAccount.getPassword());
rtkUseLog.setIpAddr(rtkAccount.getIpAddr());
rtkUseLog.setMountPoint(rtkAccount.getMountPoint());
rtkUseLog.setPort(rtkAccount.getPort());
rtkUseLog.setOperator(rtkAccount.getOperator());
rtkUseLog.setRtkType(rtkDevice.getRtkType());
rtkUseLog.setAccountStatus(rtkAccount.getStatus());
rtkUseLog.setVisitIp(clientIP);
rtkUseLog.setRtkAccountId(rtkAccount.getId());
rtkUseLog.setUseType(1);
this.save(rtkUseLog);
}
@Override
public void saveLog(RtkAccount rtkAccount) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RtkUseLog::getUserName,rtkAccount.getUserName());
wrapper.eq(RtkUseLog::getUseType,0);
wrapper.orderByDesc(RtkUseLog::getId);
List logList = this.list(wrapper);
if(logList.isEmpty()){
return;
}
RtkUseLog rtkUseLog = logList.get(0);
rtkUseLog.setId(null);
rtkUseLog.setUseType(1);
rtkUseLog.setCreateTime(null);
rtkUseLog.setUpdateTime(null);
this.save(rtkUseLog);
}
@Override
public RtkUseLog getByRtkSn(String rtkSnCode) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RtkUseLog::getRtkSnCode,rtkSnCode);
wrapper.orderByDesc(RtkUseLog::getId);
List list = this.list(wrapper);
if(list != null && !list.isEmpty()){
return list.get(0);
}
return null;
}
@Override
public Object pageList(RtkInfoParam param) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
if(StringUtils.isNotBlank(param.getRtkSnCode())){
wrapper.like(RtkUseLog::getRtkSnCode,param.getRtkSnCode());
}
if(StringUtils.isNotBlank(param.getCameraSn())){
wrapper.like(RtkUseLog::getCameraSn,param.getCameraSn());
}
if(StringUtils.isNotBlank(param.getSgRtkSn())){
wrapper.like(RtkUseLog::getSgRtkSn,param.getSgRtkSn());
}
if(StringUtils.isNotBlank(param.getUserName())){
wrapper.like(RtkUseLog::getUserName,param.getUserName());
}
if(param.getUseType() !=null){
wrapper.eq(RtkUseLog::getUseType,param.getUseType());
}
if(StringUtils.isNotBlank(param.getStartTime())&& StringUtils.isNotBlank(param.getEndTime()) ) {
wrapper.between(RtkUseLog::getCreateTime,param.getStartTime(),param.getEndTime());
}
wrapper.orderByDesc(RtkUseLog::getCreateTime);
wrapper.orderByDesc(RtkUseLog::getId);
Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
return PageInfo.PageInfo(page);
}
}