package com.panzhihua.service_grid.service.impl; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import com.panzhihua.common.model.vos.screen.GridMemberTrajectoryVo; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.grid.*; import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.grid.EventGridMemberRelationDetailsVO; import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO; import com.panzhihua.common.model.vos.grid.EventMapGridCascadeVO; import com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.service_grid.dao.EventGridMemberRelationMapper; import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO; import com.panzhihua.service_grid.service.EventGridMemberRelationService; import lombok.extern.slf4j.Slf4j; /** * @auther lyq * @create 2021-04-14 15:03:01 * @describe 订单表服务实现类 */ @Slf4j @Service public class EventGridMemberRelationServiceImpl extends ServiceImpl implements EventGridMemberRelationService { @Resource private EventGridMemberRelationMapper eventGridMemberRelationMapper; @Resource private UserService userService; /** * 新增网格和网格员的关联关系 * * @param eventGridMemberAddDTO * @return 新增结果 */ public R add(EventGridMemberAddDTO eventGridMemberAddDTO) { userService.addGridUser(eventGridMemberAddDTO); EventGridMemberRelationDO eventGridMemberRelationDO = new EventGridMemberRelationDO(); eventGridMemberRelationDO.setCreateBy(eventGridMemberAddDTO.getUserId()); if (eventGridMemberRelationMapper.insert(eventGridMemberRelationDO) > 0) { return R.ok(); } return R.fail(); } /** * 修改网格和网格员的关联关系 * * @param eventGridMemberEditDTO * @return 维护结果 */ public R edit(EventGridMemberEditDTO eventGridMemberEditDTO) { EventGridMemberRelationDO eventGridMemberRelationDO = new EventGridMemberRelationDO(); BeanUtils.copyProperties(eventGridMemberEditDTO, eventGridMemberRelationDO); // eventGridMemberRelationDO.setUpdateAt(new Date()); if (eventGridMemberRelationMapper.updateById(eventGridMemberRelationDO) > 0) { return R.ok(); } return R.fail(); } /** * 分页查找网格和网格员的关联关系 * * @param pageEventGridMemberRelationDTO * @return 维护结果 */ public R> query(PageEventGridMemberRelationDTO pageEventGridMemberRelationDTO) { Page page = new Page(1, 10); if (pageEventGridMemberRelationDTO.getPageNum() != null) { page.setCurrent(pageEventGridMemberRelationDTO.getPageNum()); } if (pageEventGridMemberRelationDTO.getPageSize() != null) { page.setSize(pageEventGridMemberRelationDTO.getPageSize()); } return R.ok(eventGridMemberRelationMapper.findByPage(page, pageEventGridMemberRelationDTO)); } /** * 删除网格和网格员的关联关系 * * @param EventGridMemberRelationDeleteDTO * @return 平台用户信息 */ public R delete(EventGridMemberRelationDeleteDTO EventGridMemberRelationDeleteDTO) { return R.fail(); } /** * 查询网格和网格员的关联关系详细信息 * * @param id * 网格和网格员的关联关系 id * @return 查找结果 */ public R eventGridMemberRelationDetails(Long id) { EventGridMemberRelationDO eventGridMemberRelationDO = eventGridMemberRelationMapper.selectById(id); if (eventGridMemberRelationDO != null) { EventGridMemberRelationDetailsVO eventGridMemberRelationDetailsVO = new EventGridMemberRelationDetailsVO(); BeanUtils.copyProperties(eventGridMemberRelationDO, eventGridMemberRelationDetailsVO); return R.ok(eventGridMemberRelationDetailsVO); } return R.fail(); } /** * 根据网格员id查询关联网格列表 * * @param userId * 网格员id * @return 网格列表 */ @Override public R getMapGridListByApp(Long userId) { return R.ok(this.baseMapper.getMapGridListByApp(userId)); } /** * 查询市平台网格员列表 * * @return 市平台网格员列表 */ @Override public R lcList() { return R.ok(this.baseMapper.getGridMemberLcList()); } @Override public R gridMemberCascadeList(EventGridMemberCascadeAddDTO memberCascadeAddDTO) { if (memberCascadeAddDTO.getType() == null) { return R.fail("参数错误"); } List memberCascadeList = this.baseMapper.getGridMemberCascade(memberCascadeAddDTO.getType(), memberCascadeAddDTO.getSuperiorId()); List result = new ArrayList<>(); if (!memberCascadeList.isEmpty()) { memberCascadeList.forEach(cascade -> { if (memberCascadeAddDTO.getType().equals(1)) {// 过滤无小区的社区 Integer count = this.baseMapper.getVillageCount(cascade.getId()); if (count > 0) { result.add(cascade); } } else if (memberCascadeAddDTO.getType().equals(2)) {// 过滤无楼栋的小区 Integer count = this.baseMapper.getBuildingCount(cascade.getId()); if (count > 0) { result.add(cascade); } } else { if (!cascade.getName().contains("栋")) { cascade.setName(cascade.getName() + "栋"); } result.add(cascade); } }); } return R.ok(result); } @Override public R getMapGridListsByApp(EventGridCascadeListDTO cascadeListDTO) { return R.ok(eventGridMemberRelationMapper.getMapGridListsByApp(cascadeListDTO)); } @Override public R getMapGridsListsByApp(Long userId) { List resultList = new ArrayList<>(); List list = this.eventGridMemberRelationMapper.getMapGridsListsByApp(userId, 1, null); if (!list.isEmpty()) { list.forEach(gridCascadeVO -> { List childList = this.eventGridMemberRelationMapper.getMapGridsListsByApp(userId, 2, gridCascadeVO.getGridId()); if (!childList.isEmpty()) { gridCascadeVO.setChildList(childList); resultList.add(gridCascadeVO); } }); } return R.ok(resultList); } /** * 查询社区网格员运动轨迹 * @param communityId 社区id * @return 社区网格员运动轨迹 */ @Override public R getGridsMemberTrajectory(Long communityId){ //查询社区所有网格员 List memberTrajectoryList = eventGridMemberRelationMapper.getGridsMemberList(communityId); memberTrajectoryList.forEach(member -> { member.setLngLatList(eventGridMemberRelationMapper.getGridsMemberTrajectory(member.getUserId())); }); return R.ok(memberTrajectoryList); } }