package com.hxzkmonitor.service.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.hxzkmonitor.mapper.TbCompanyMapper;
import com.hxzkmonitor.mapper.TbUserMapper;
import com.hxzkmonitor.pojo.TbAlarmrecord;
import com.hxzkmonitor.mapper.TbAlarmrecordMapper;
import com.hxzkmonitor.pojo.TbAlarmrecord;
import com.hxzkmonitor.pojo.TbCompany;
import com.hxzkmonitor.pojo.TbUser;
import com.hxzkmonitor.service.TbAlarmrecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
*
* 服务实现类
*
*
* @author wangfei
* @since 2024-08-05
*/
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class TbAlarmrecordServiceImpl extends ServiceImpl implements TbAlarmrecordService {
private final TbCompanyMapper tbCompanyMapper;
private final TbUserMapper tbUserMapper;
@Override
public IPage searchAlarmrecord(Page page, String keyword,String username) {
QueryWrapper queryWrapperu = new QueryWrapper<>();
queryWrapperu.eq("username",username);
TbUser tbUser= tbUserMapper.selectOne(queryWrapperu);
if (Objects.equals(tbUser.getRole(), "超级管理员")){
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tagid", keyword);
queryWrapper.orderByDesc("alarmtime");
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("anchorname", keyword);
queryWrapper.orderByDesc("alarmtime");
List tagid1 = baseMapper.selectList(queryWrapper);
List alarmname1 = baseMapper.selectList(queryWrapper2);
if (tagid1.size() > 0) {
IPage tagid = baseMapper.selectPage(page, queryWrapper);
for (int i = 0; i < tagid.getRecords().size(); i++) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("id",tagid.getRecords().get(i).getCompanyid());
TbCompany tbCompany = tbCompanyMapper.selectOne(queryWrapper1);
if (tbCompany!=null){
tagid.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
// tagid.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
return tagid;
} else if (alarmname1.size() > 0) {
IPage alarmname = baseMapper.selectPage(page, queryWrapper2);
for (int i = 0; i < alarmname.getRecords().size(); i++) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("id",alarmname.getRecords().get(i).getCompanyid());
TbCompany tbCompany = tbCompanyMapper.selectOne(queryWrapper1);
if (tbCompany!=null){
alarmname.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
// alarmname.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
return alarmname;
} else {
return null;
}
}else{
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tagid", keyword);
queryWrapper.eq("companyid",tbUser.getCsname());
queryWrapper.orderByDesc("alarmtime");
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("anchorname", keyword);
queryWrapper.eq("companyid",tbUser.getCsname());
queryWrapper.orderByDesc("alarmtime");
List tagid1 = baseMapper.selectList(queryWrapper);
List alarmname1 = baseMapper.selectList(queryWrapper2);
if (tagid1.size() > 0) {
IPage tagid = baseMapper.selectPage(page, queryWrapper);
for (int i = 0; i < tagid.getRecords().size(); i++) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("id",tagid.getRecords().get(i).getCompanyid());
TbCompany tbCompany = tbCompanyMapper.selectOne(queryWrapper1);
if (tbCompany!=null){
tagid.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
// tagid.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
return tagid;
} else if (alarmname1.size() > 0) {
IPage alarmname = baseMapper.selectPage(page, queryWrapper2);
for (int i = 0; i < alarmname.getRecords().size(); i++) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("id",alarmname.getRecords().get(i).getCompanyid());
TbCompany tbCompany = tbCompanyMapper.selectOne(queryWrapper1);
if (tbCompany!=null){
alarmname.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
// alarmname.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
return alarmname;
} else {
return null;
}
}
}
@Override
public Integer delAlarmrecord(Integer id) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", id);
return baseMapper.delete(queryWrapper);
}
@Override
public Integer delAlarmrecordAll() {
QueryWrapper queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("id", id);
return baseMapper.delete(queryWrapper);
}
@Override
public Integer recordsall(TbAlarmrecord tbAlarmrecord) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", "未处理");
List tbAlarmrecords = baseMapper.selectList(queryWrapper);
for (int i = 0; i < tbAlarmrecords.size(); i++) {
tbAlarmrecords.get(i).setStatus("已处理");
tbAlarmrecords.get(i).setRecords(tbAlarmrecord.getRecords());
baseMapper.updateById(tbAlarmrecords.get(i));
}
// queryWrapper.eq("id", id);
return 1;
// return baseMapper.delete(queryWrapper);
}
@Override
public Integer addorupAlarmrecord(TbAlarmrecord tbAlarmrecord) {
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
tbAlarmrecord.setDelltime(formatter.format(date));
if (tbAlarmrecord.getId() != null) {
tbAlarmrecord.setStatus("已处理");
return baseMapper.updateById(tbAlarmrecord);
} else {
return baseMapper.insert(tbAlarmrecord);
}
}
@Override
public IPage getAlarmrecordPage(Page page,String username) {
QueryWrapper queryWrapperu = new QueryWrapper<>();
queryWrapperu.eq("username",username);
TbUser tbUser= tbUserMapper.selectOne(queryWrapperu);
if (Objects.equals(tbUser.getRole(), "超级管理员")){
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("alarmtime");
IPage userPage = baseMapper.selectPage(page, queryWrapper);
for (int i = 0; i < userPage.getRecords().size(); i++) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("id",userPage.getRecords().get(i).getCompanyid());
TbCompany tbCompany = tbCompanyMapper.selectOne(queryWrapper1);
if (tbCompany!=null){
userPage.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
}
return userPage;
}else{
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("companyid",tbUser.getCsname());
queryWrapper.orderByDesc("alarmtime");
IPage userPage = baseMapper.selectPage(page, queryWrapper);
for (int i = 0; i < userPage.getRecords().size(); i++) {
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("id",userPage.getRecords().get(i).getCompanyid());
TbCompany tbCompany = tbCompanyMapper.selectOne(queryWrapper1);
if (tbCompany!=null){
userPage.getRecords().get(i).setCompany(tbCompany.getCompanyname());
}
}
return userPage;
}
}
}