package com.fdkankan.agent.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.agent.common.PageInfo;
import com.fdkankan.agent.common.util.IncrementUtil;
import com.fdkankan.agent.entity.Camera;
import com.fdkankan.agent.entity.IncrementType;
import com.fdkankan.agent.mapper.ICameraMapper;
import com.fdkankan.agent.request.CameraParam;
import com.fdkankan.agent.response.CameraDetailVo;
import com.fdkankan.agent.service.ICameraService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.agent.service.IIncrementTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
*
* 相机主表 服务实现类
*
*
* @author
* @since 2022-11-09
*/
@Service
public class CameraServiceImpl extends ServiceImpl implements ICameraService {
@Autowired
IIncrementTypeService incrementTypeService;
@Override
public Object pageList(CameraParam param) {
Page voPage = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
Set incrementTypeIds = voPage.getRecords().stream().map(CameraDetailVo::getIncrementTypeId).collect(Collectors.toSet());
HashMap incrementTypeHashMap = incrementTypeService.getMapByIds(incrementTypeIds);
for (CameraDetailVo record : voPage.getRecords()) {
if(record.getIncrementTypeId() != null){
IncrementType incrementType = incrementTypeHashMap.get(record.getIncrementTypeId());
String strIncrementName = IncrementUtil.getStrIncrementName(incrementType.getValidTimeType(), incrementType.getName());
record.setIncrementTypeName(strIncrementName);
}
}
return PageInfo.PageInfo(voPage);
}
@Override
public Camera getBySnCode(String snCode) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Camera::getSnCode,snCode);
List list = this.list(wrapper);
if(list == null || list.size() <=0 ){
return null;
}
return list.get(0);
}
}