package com.fdkankan.fusion.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.fusion.common.PageInfo;
import com.fdkankan.fusion.entity.SceneDownLog;
import com.fdkankan.fusion.entity.TmDepartment;
import com.fdkankan.fusion.mapper.ISceneDownLogMapper;
import com.fdkankan.fusion.request.SceneDownLogParam;
import com.fdkankan.fusion.service.ISceneDownLogService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.fusion.service.ITmDepartmentService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author
* @since 2023-12-28
*/
@Service
public class SceneDownLogServiceImpl extends ServiceImpl implements ISceneDownLogService {
@Autowired
ITmDepartmentService departmentService;
@Override
public Object pageList(SceneDownLogParam param) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
if(StringUtils.isNotBlank(param.getDeptId())){
List sonByDeptId = departmentService.getSonByDeptId(param.getDeptId());
List deptIds = sonByDeptId.stream().map(TmDepartment::getId).collect(Collectors.toList());
deptIds.add(param.getDeptId());
wrapper.in(SceneDownLog::getDeptId,deptIds);
}
if(StringUtils.isNotBlank(param.getUserName())){
wrapper.like(SceneDownLog::getUserName,param.getUserName());
}
if(StringUtils.isNotBlank(param.getNickName())){
wrapper.like(SceneDownLog::getNickName,param.getNickName());
}
if(StringUtils.isNotBlank(param.getCreateTime())){
wrapper.like(SceneDownLog::getCreateTime,param.getCreateTime());
}
if(StringUtils.isNotBlank(param.getSceneTitle())){
wrapper.like(SceneDownLog::getSceneTitle,param.getSceneTitle());
}
if(StringUtils.isNotBlank(param.getSceneNum())){
wrapper.like(SceneDownLog::getSceneNum,param.getSceneNum());
}
if(StringUtils.isNotBlank(param.getSnCode())){
wrapper.like(SceneDownLog::getSnCode,param.getSnCode());
}
if(StringUtils.isNotBlank(param.getStartCreateTime())){
wrapper.ge(SceneDownLog::getCreateTime,param.getStartCreateTime());
}
if(StringUtils.isNotBlank(param.getEndCreateTime())){
wrapper.le(SceneDownLog::getCreateTime,param.getEndCreateTime());
}
wrapper.orderByDesc(SceneDownLog::getCreateTime);
Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
return PageInfo.PageInfo(page);
}
@Override
public SceneDownLog getByStatusAndNum(String sceneNum, Integer status) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SceneDownLog::getSceneNum,sceneNum);
wrapper.eq(SceneDownLog::getStatus,status);
wrapper.orderByDesc(SceneDownLog::getId);
List list = this.list(wrapper);
if(list != null && !list.isEmpty()){
return list.get(0);
}
return null;
}
}