package com.doumee.service.business.impl; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.YwElectricalRoomMapper; import com.doumee.dao.business.model.YwConditioner; import com.doumee.dao.business.model.YwElectrical; import com.doumee.dao.business.model.YwElectricalRoom; import com.doumee.service.business.YwElectricalRoomService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; import java.util.Objects; /** * 设备关联房间Service实现 * @author renkang * @date 2026/04/03 */ @Service public class YwElectricalRoomServiceImpl implements YwElectricalRoomService { @Autowired private YwElectricalRoomMapper ywElectricalRoomMapper; @Override public Integer create(YwElectricalRoom ywElectricalRoom) { if (Objects.isNull(ywElectricalRoom) || Objects.isNull(ywElectricalRoom.getRoomId()) || Objects.isNull(ywElectricalRoom.getObjId()) || Objects.isNull(ywElectricalRoom.getType())) { throw new BusinessException(ResponseStatus.BAD_REQUEST); } LoginUserInfo loginUserInfo = ywElectricalRoom.getLoginUserInfo(); ywElectricalRoom.setCreateDate(new Date()); ywElectricalRoom.setCreator(loginUserInfo.getId()); ywElectricalRoom.setEditDate(new Date()); ywElectricalRoom.setEditor(loginUserInfo.getId()); ywElectricalRoom.setIsdeleted(Constants.ZERO); ywElectricalRoomMapper.insert(ywElectricalRoom); return ywElectricalRoom.getId(); } @Override public void deleteById(Integer id, LoginUserInfo user) { ywElectricalRoomMapper.update(new UpdateWrapper() .lambda() .set(YwElectricalRoom::getIsdeleted, Constants.ONE) .set(YwElectricalRoom::getEditDate, DateUtil.getCurrDateTime()) .set(YwElectricalRoom::getEditor, user.getId()) .eq(YwElectricalRoom::getId, id) ); } @Override public void deleteByIdInBatch(List ids, LoginUserInfo user) { if (CollectionUtils.isEmpty(ids)) { return; } for (Integer id : ids) { this.deleteById(id, user); } } @Override public void updateById(YwElectricalRoom ywElectricalRoom) { if (Objects.isNull(ywElectricalRoom) || Objects.isNull(ywElectricalRoom.getId()) || Objects.isNull(ywElectricalRoom.getRoomId()) || Objects.isNull(ywElectricalRoom.getObjId()) || Objects.isNull(ywElectricalRoom.getType())) { throw new BusinessException(ResponseStatus.BAD_REQUEST); } LoginUserInfo loginUserInfo = ywElectricalRoom.getLoginUserInfo(); ywElectricalRoom.setEditDate(new Date()); ywElectricalRoom.setEditor(loginUserInfo.getId()); ywElectricalRoomMapper.updateById(ywElectricalRoom); } @Override public YwElectricalRoom findById(Integer id) { return ywElectricalRoomMapper.selectOne(new QueryWrapper().lambda() .eq(YwElectricalRoom::getId, id) .last(" limit 1 ")); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); YwElectricalRoom model = pageWrap.getModel(); queryWrapper.selectAll(YwElectricalRoom.class) .eq(Objects.nonNull(model) && Objects.nonNull(model.getType()), YwElectricalRoom::getType, model.getType()) .eq(Objects.nonNull(model) && Objects.nonNull(model.getRoomId()), YwElectricalRoom::getRoomId, model.getRoomId()) .eq(Objects.nonNull(model) && Objects.nonNull(model.getObjId()), YwElectricalRoom::getObjId, model.getObjId()) .eq(YwElectricalRoom::getIsdeleted, Constants.ZERO) .orderByDesc(YwElectricalRoom::getCreateDate); IPage iPage = ywElectricalRoomMapper.selectJoinPage(page, YwElectricalRoom.class, queryWrapper); return PageData.from(iPage); } }