package com.sandu.ximon.admin.service; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.param.InterphoneSubParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.dao.bo.InterphoneSubBo; import com.sandu.ximon.dao.domain.InterphoneHostSubPole; import com.sandu.ximon.dao.domain.InterphoneSub; import com.sandu.ximon.dao.enums.PoleBindingEnums; import com.sandu.ximon.dao.mapper.InterphoneSubMapper; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; @Service @AllArgsConstructor public class InterphoneSubService extends BaseServiceImpl { private final InterphoneSubMapper interphoneSubMapper; private final InterphoneHostSubService interphoneHostSubService; /** * 新增子设备 */ public boolean addSub(InterphoneSubParam interphoneSubParam) { InterphoneSub interphoneSub = new InterphoneSub(); BeanUtils.copyProperties(interphoneSubParam, interphoneSub); return save(interphoneSub); } /** * 修改子设备 */ public boolean updateSub(Integer id, InterphoneSubParam interphoneSubParam) { InterphoneSub byId = getById(id); if (byId == null) { return false; } boolean belong = SpringContextHolder.getBean(PoleBindingService.class).isBelong(byId.getSubMac(), PoleBindingEnums.FOR_HELP); if (!belong) { throw new RuntimeException("该设备不属于您,不能修改设备信息"); } InterphoneSub interphoneSub = new InterphoneSub(); BeanUtils.copyProperties(interphoneSubParam, interphoneSub); interphoneSub.setSubId(id); return updateById(interphoneSub); } /** * 删除子设备 */ public boolean deleteSub(Integer id) { InterphoneSub byId = getById(id); InterphoneHostSubPole one = interphoneHostSubService.getOne(Wrappers.lambdaQuery(InterphoneHostSubPole.class).eq(InterphoneHostSubPole::getSubId, id)); if (one != null) { throw new RuntimeException("该子设备存在绑定关系,不能删除"); } if (byId == null) { return false; } return removeById(id); } /** * 查询子设备 */ public InterphoneSub getSub(Integer id) { InterphoneSub byId = getById(id); if (byId == null) { return null; } return byId; } /** * 查询主机列表 */ public List getInterphoneSubList(BaseConditionVO baseConditionVO, String keyword) { if (baseConditionVO != null) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } List list; if (SecurityUtils.getClientId() == null) { list = interphoneSubMapper.getInterphoneSubList(keyword, null); } else { list = interphoneSubMapper.getInterphoneSubList(keyword, SecurityUtils.getUserId()); } return list; } }