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.TbDuanxinlogMapper;
import com.hxzkmonitor.mapper.TbUserMapper;
import com.hxzkmonitor.pojo.TbDuanxinlog;
import com.hxzkmonitor.pojo.TbUser;
import com.hxzkmonitor.service.TbDuanxinlogService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hxzkmonitor.util.R;
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-22
*/
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class TbDuanxinlogServiceImpl extends ServiceImpl implements TbDuanxinlogService {
private final TbUserMapper tbUserMapper;
@Override
public R searchDuanxinlog(Page page, String keyword, String username) {
QueryWrapper queryWrapper3 = new QueryWrapper<>();
queryWrapper3.eq("username", username);
TbUser tbUser = tbUserMapper.selectOne(queryWrapper3);
if (Objects.equals(tbUser.getRole(), "超级管理员")) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", keyword);
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("type", keyword);
List name1 = baseMapper.selectList(queryWrapper);
List type1 = baseMapper.selectList(queryWrapper2);
if (name1.size() > 0) {
IPage name = baseMapper.selectPage(page, queryWrapper);
return R.ok(name);
} else if (type1.size() > 0) {
IPage type = baseMapper.selectPage(page, queryWrapper2);
return R.ok(type);
} else {
return null;
}
} else {
if (username!=tbUser.getUsername()){
IPage name = new Page<>();
return R.failed(name,"非管理员只能查询自己的信息!");
}
QueryWrapper queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("name", username);
queryWrapper.eq("name", keyword);
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("type", keyword);
List name1 = baseMapper.selectList(queryWrapper);
List type1 = baseMapper.selectList(queryWrapper2);
if (name1.size() > 0) {
IPage name = baseMapper.selectPage(page, queryWrapper);
return R.ok(name);
} else if (type1.size() > 0) {
IPage type = baseMapper.selectPage(page, queryWrapper2);
return R.ok(type);
} else {
return null;
}
}
}
@Override
public Integer delDuanxinlog(Integer id) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", id);
return baseMapper.delete(queryWrapper);
}
@Override
public Integer addorupDuanxinlog(TbDuanxinlog tbDuanxinlog) {
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
tbDuanxinlog.setAddtime(formatter.format(date));
if (tbDuanxinlog.getId() != null) {
return baseMapper.updateById(tbDuanxinlog);
} else {
return baseMapper.insert(tbDuanxinlog);
}
}
@Override
public IPage getDuanxinlogPage(Page page, String username) {
QueryWrapper queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("username", username);
TbUser tbUser = tbUserMapper.selectOne(queryWrapper2);
if (Objects.equals(tbUser.getRole(), "超级管理员")) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("addtime");
IPage userPage = baseMapper.selectPage(page, queryWrapper);
return userPage;
} else {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", username);
queryWrapper.orderByDesc("addtime");
IPage userPage = baseMapper.selectPage(page, queryWrapper);
return userPage;
}
}
}