package com.sandu.ximon.admin.service; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.manager.iot.rrpc.enums.AtmoFunctionCode; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.RedisUtils; import com.sandu.ximon.dao.bo.AirEquipmentBo; import com.sandu.ximon.dao.bo.AirEquipmentNongGengBo; import com.sandu.ximon.dao.domain.AirEquipment; import com.sandu.ximon.dao.domain.AirEquipmentNongGeng; import com.sandu.ximon.dao.mapper.AirEquipmentMapper; import com.sandu.ximon.dao.mapper.AirEquipmentNongGengMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; /** * @author ZZQ * @date 2022/4/25 14:43 */ @Service @AllArgsConstructor public class AirEquipmentNongGengService extends BaseServiceImpl { private final AirEquipmentNongGengMapper airEquipmentNongGengMapper; /** * 添加大气设备数据 * * @return */ public void addAirEquipment(AirEquipmentNongGeng airEquipmentNongGeng) { AirEquipmentNongGeng one = getOne(Wrappers.lambdaQuery(AirEquipmentNongGeng.class).eq(AirEquipmentNongGeng::getMac, airEquipmentNongGeng.getMac())); if (one == null) { save(airEquipmentNongGeng); } } /** * 模糊查询 */ public List listAirEquipmentByKeyword(BaseConditionVO baseConditionVO, String keyword) { if (baseConditionVO != null) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } List airEquipmentBos; if (SecurityUtils.getClientId() == null) { airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, null); } else { airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(keyword, SecurityUtils.getUserId()); } return airEquipmentBos; } /** * 删除大气设备数据 * * @param Id * @return */ public boolean deleteAirEquipment(Long Id) { AirEquipmentNongGeng airEquipmentNongGeng = getById(Id); if (airEquipmentNongGeng == null) { throw new BusinessException("找不到大气设备数据"); } return removeById(Id); } /** * 根据Mac大气设备数据详情 */ public AirEquipmentNongGeng getAirEquipment(String mac) { AirEquipmentNongGeng one = getOne(Wrappers.lambdaQuery(AirEquipmentNongGeng.class).eq(AirEquipmentNongGeng::getMac, mac)); if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG_STATE.getCode() + mac) != null) { one.setState(1); } else { one.setState(0); } return one; } }