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.param.PoleGroupParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.dao.domain.PoleGroup; import com.sandu.ximon.dao.domain.PoleGroupRelation; import com.sandu.ximon.dao.mapper.PoleGroupMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 分组操作 * * @author chenjiantian */ @Service @AllArgsConstructor public class PoleGroupService extends BaseServiceImpl { private final PoleGroupRelationService poleGroupRelationService; public boolean addGroup(PoleGroupParam param) { PoleGroup group = new PoleGroup(); if (SecurityUtils.getClientId() != null) { group.setClientId(SecurityUtils.getUserId()); } group.setGroupName(param.getGroupName()); return save(group); } public boolean updateGroup(Long groupId, PoleGroupParam param) { PoleGroup poleGroup = getById(groupId); if (poleGroup == null) { throw new BusinessException("未找到该分组"); } PoleGroup update = new PoleGroup(); update.setGroupId(groupId); update.setGroupName(param.getGroupName()); return updateById(update); } public boolean deleteGroup(Long groupId) { PoleGroup poleGroup = getById(groupId); if (poleGroup == null) { throw new BusinessException("未找到该分组"); } /** * 刪除 */ poleGroupRelationService.remove(Wrappers.lambdaQuery(PoleGroupRelation.class).eq(PoleGroupRelation::getPoleGroupId, groupId)); return removeById(groupId); } public List groupList(BaseConditionVO baseConditionVO, String keyword, Long groupid) { Long clientId = SecurityUtils.getClientId(); PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); // LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); List list = new ArrayList<>(); if (clientId == null) { list = list(Wrappers.lambdaQuery(PoleGroup.class).like(PoleGroup::getGroupName, keyword)); } else { list = list(Wrappers.lambdaQuery(PoleGroup.class).eq(PoleGroup::getClientId, clientId).like(PoleGroup::getGroupName, keyword)); } list.forEach(poleGroup -> { // int size = poleGroupRelationService.list(Wrappers.lambdaQuery(PoleGroupRelation.class).eq(PoleGroupRelation::getPoleGroupId, poleGroup.getGroupId())).size(); poleGroup.setPoleCount(poleGroupRelationService.list(Wrappers.lambdaQuery(PoleGroupRelation.class).eq(PoleGroupRelation::getPoleGroupId, poleGroup.getGroupId())).size()); }); return list; } /** * 绑定灯杆 */ public boolean bindPole(Long groupId, List poleIdList) { PoleGroup poleGroup = getById(groupId); if (poleGroup == null) { throw new BusinessException("未找到该分组"); } return poleGroupRelationService.saveBinding(groupId, poleIdList); } }