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.admin.utils.StoreOperationRecordsUtils; import com.sandu.ximon.dao.bo.AirEquipmentNongGengBo; import com.sandu.ximon.dao.domain.AirEquipmentNongGeng; import com.sandu.ximon.dao.mapper.AirEquipmentNongGengMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; 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) { //TODO save(airEquipmentNongGeng); /** * 添加农耕大气设备 日志记录开始 */ List listCode = new ArrayList<>(1); listCode.add(airEquipmentNongGeng.getMac()); String content = "{ 设备id:" + airEquipmentNongGeng.getId() + "设备code:" + airEquipmentNongGeng.getMac() + "}"; StoreOperationRecordsUtils.storeOperationData(listCode, null, "添加农耕大气设备", content); /** * 添加农耕大气设备 日志记录结束 */ } } /** * 模糊查询 */ 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; } /** * 大气设备列表(农耕,用于首页数据统计) */ public List listAirEquipmentOnHome() { List airEquipmentBos; if (SecurityUtils.getClientId() == null) { airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(null, null); } else { airEquipmentBos = airEquipmentNongGengMapper.listAirEquipmentByIds(null, SecurityUtils.getUserId()); } return airEquipmentBos; } /** * 删除大气设备数据 * * @param Id * @return */ public boolean deleteAirEquipment(Long Id) { AirEquipmentNongGeng airEquipmentNongGeng = getById(Id); if (airEquipmentNongGeng == null) { throw new BusinessException("找不到大气设备数据"); } /** * 删除农耕大气设备 日志记录开始 */ List listCode = new ArrayList<>(1); listCode.add(airEquipmentNongGeng.getMac()); String content = "{ 设备id:" + airEquipmentNongGeng.getId() + "设备code:" + airEquipmentNongGeng.getMac() + "}"; StoreOperationRecordsUtils.storeOperationData(listCode, null, "删除农耕大气设备", content); /** * 删除农耕大气设备 日志记录结束 */ 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; } }