package com.panzhihua.service_grid.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
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.vos.R;
|
import com.panzhihua.common.model.vos.grid.*;
|
import com.panzhihua.common.utlis.Snowflake;
|
import com.panzhihua.service_grid.dao.EventGridDataMapper;
|
import com.panzhihua.service_grid.dao.EventMapper;
|
import com.panzhihua.service_grid.dao.LcCompareCodeMapper;
|
import com.panzhihua.service_grid.model.dos.EventGridDataDO;
|
import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
|
import com.panzhihua.service_grid.model.dos.LcCompareCodeDO;
|
import com.panzhihua.service_grid.service.EventGridDataService;
|
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 EventGridDataServiceImpl extends ServiceImpl<EventGridDataMapper, EventGridDataDO>
|
implements EventGridDataService {
|
|
@Resource
|
private EventGridDataMapper eventGridDataMapper;
|
@Resource
|
private EventMapper eventMapper;
|
@Resource
|
private EventGridMemberRelationService eventGridMemberRelationService;
|
@Resource
|
private LcCompareCodeMapper lcCompareCodeMapper;
|
|
/**
|
* 新增区县/街道/社区/网格员网格数据管理
|
*
|
* @param eventGridDataAddDTO
|
* @return 新增结果
|
*/
|
public R add(EventGridDataAddDTO eventGridDataAddDTO) {
|
EventGridDataDO eventGridDataDO = new EventGridDataDO();
|
BeanUtils.copyProperties(eventGridDataAddDTO, eventGridDataDO);
|
eventGridDataDO.setCreateAt(new Date());
|
if (eventGridDataMapper.insert(eventGridDataDO) > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 修改区县/街道/社区/网格员网格数据管理
|
*
|
* @param eventGridDataEditDTO
|
* @return 维护结果
|
*/
|
public R edit(EventGridDataEditDTO eventGridDataEditDTO) {
|
EventGridDataDO eventGridDataDO = new EventGridDataDO();
|
BeanUtils.copyProperties(eventGridDataEditDTO, eventGridDataDO);
|
// eventGridDataDO.setUpdateAt(new Date());
|
if (eventGridDataMapper.updateById(eventGridDataDO) > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 删除区县/街道/社区/网格员网格数据管理
|
*
|
* @param EventGridDataDeleteDTO
|
* @return 平台用户信息
|
*/
|
public R delete(EventGridDataDeleteDTO EventGridDataDeleteDTO) {
|
return R.fail();
|
}
|
|
/**
|
* 查询区县/街道/社区/网格员网格数据管理详细信息
|
*
|
* @param id
|
* 区县/街道/社区/网格员网格数据管理 id
|
* @return 查找结果
|
*/
|
public R<EventGridDataDetailsVO> eventGridDataDetails(Long id) {
|
EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(id);
|
if (eventGridDataDO != null) {
|
EventGridDataDetailsVO eventGridDataDetailsVO = new EventGridDataDetailsVO();
|
BeanUtils.copyProperties(eventGridDataDO, eventGridDataDetailsVO);
|
return R.ok(eventGridDataDetailsVO);
|
}
|
return R.fail();
|
}
|
|
@Override
|
public R getUserGrid(PageEventGridDataDTO pageEventGridDataDTO) {
|
Page page = new Page(1, 10);
|
if (pageEventGridDataDTO.getPageNum() != null) {
|
page.setCurrent(pageEventGridDataDTO.getPageNum());
|
}
|
if (pageEventGridDataDTO.getPageSize() != null) {
|
page.setSize(pageEventGridDataDTO.getPageSize());
|
}
|
|
return R.ok(eventGridDataMapper.selectUserGrid(page, pageEventGridDataDTO));
|
}
|
|
/**
|
* 地图模块-根据网格id查询网格详细信息
|
*
|
* @param gridId
|
* 网格id
|
* @return 网格详细信息
|
*/
|
@Override
|
public R getMapGridDetail(Long gridId) {
|
ComMapGridDetailVO gridDetailVO = new ComMapGridDetailVO();
|
// 查询网格信息
|
EventGridDataDO eventGridDataDO = this.baseMapper.selectById(gridId);
|
if (eventGridDataDO == null) {
|
return R.fail("未查询到网格信息");
|
}
|
BeanUtils.copyProperties(eventGridDataDO, gridDetailVO);
|
// 查询网格待办事件
|
List<ComMapGridEventVO> gridEventList = eventMapper.getEventByGridId(gridId);
|
if (!gridEventList.isEmpty()) {
|
gridDetailVO.setGridEventList(gridEventList);
|
}
|
return R.ok(gridDetailVO);
|
}
|
|
@Override
|
public R getGridTodoData(EventGridTodoDataDTO eventGridTodoDataDTO) {
|
List<UserEventGridDataVO> userEventGridDataVO = eventGridDataMapper.getGridTodoData(eventGridTodoDataDTO);
|
return R.ok(userEventGridDataVO);
|
}
|
|
/**
|
* 分页查询网格
|
*
|
* @param eventGridDataDTO
|
* 请求参数
|
* @return 网格列表
|
*/
|
@Override
|
public R getGridMemberList(PageEventGridDataAdminDTO eventGridDataDTO) {
|
IPage<EventGridAdminVO> gridAdminVOIPage = this.baseMapper
|
.findByPage(new Page(eventGridDataDTO.getPageNum(), eventGridDataDTO.getPageSize()), eventGridDataDTO);
|
if (!gridAdminVOIPage.getRecords().isEmpty()) {
|
gridAdminVOIPage.getRecords().forEach(gridMember -> {
|
List<GridMemberAdminVO> members = this.baseMapper.getGridMember(gridMember.getId());
|
if (!members.isEmpty()) {
|
gridMember.setGridMembers(members);
|
}
|
});
|
}
|
return R.ok(gridAdminVOIPage);
|
}
|
|
/**
|
* 查询社区下所有网格员
|
*
|
* @param communityId
|
* 社区id
|
* @return 网格员列表
|
*/
|
@Override
|
public R getGridMemberLists(Long communityId) {
|
return R.ok(this.baseMapper.getGridMemberLists(communityId));
|
}
|
|
/**
|
* 后台新增网格
|
*
|
* @param eventGridDataDTO
|
* 请求参数
|
* @return 新增结果
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public R addGridDataByAdmin(EventGridDataAddAdminDTO eventGridDataDTO) {
|
// 查询社区信息
|
ComGridActVO gridAct = this.baseMapper.getComActByActId(eventGridDataDTO.getGridCommunityId());
|
if (gridAct != null) {
|
EventGridDataDO gridDataDO = new EventGridDataDO();
|
BeanUtils.copyProperties(eventGridDataDTO, gridDataDO);
|
gridDataDO.setType(EventGridDataDO.type.sq);
|
gridDataDO.setGridStreetId(gridAct.getStreetId());
|
gridDataDO.setGridCommunityId(gridAct.getCommunityId());
|
gridDataDO.setZoneId(Long.parseLong(gridAct.getAreaCode()));
|
gridDataDO.setCreateBy(eventGridDataDTO.getUserId());
|
if (this.baseMapper.insert(gridDataDO) > 0) {
|
if (!eventGridDataDTO.getMemberIds().isEmpty()) {
|
List<EventGridMemberRelationDO> memberRelationDOList = new ArrayList<>();
|
// 新增网格成功 绑定网格与网格员关系
|
eventGridDataDTO.getMemberIds().forEach(memberId -> {
|
EventGridMemberRelationDO memberRelationDO = new EventGridMemberRelationDO();
|
memberRelationDO.setGridId(gridDataDO.getId());
|
memberRelationDO.setGridCommunityId(gridDataDO.getGridCommunityId());
|
memberRelationDO.setGridStreetId(gridDataDO.getGridStreetId());
|
memberRelationDO.setGridName(gridDataDO.getGridName());
|
memberRelationDO.setGridMemberId(memberId);
|
memberRelationDOList.add(memberRelationDO);
|
});
|
if (!memberRelationDOList.isEmpty()) {
|
// 添加网格与网格员关联关系
|
eventGridMemberRelationService.saveBatch(memberRelationDOList);
|
}
|
}
|
|
if (eventGridDataDTO.getLcGridId() != null) {
|
// 关联市平台网格
|
LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>()
|
.lambda().eq(LcCompareCodeDO::getLcGridId, eventGridDataDTO.getLcGridId()));
|
if (compareCodeDO != null) {
|
compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
|
compareCodeDO.setGridName(gridDataDO.getGridName());
|
compareCodeDO.setUpdateAt(new Date());
|
lcCompareCodeMapper.updateById(compareCodeDO);
|
} else {
|
compareCodeDO = new LcCompareCodeDO();
|
compareCodeDO.setId(Snowflake.getId());
|
compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
|
compareCodeDO.setGridName(gridDataDO.getGridName());
|
compareCodeDO.setLcGridId(eventGridDataDTO.getLcGridId());
|
compareCodeDO.setLcGridName(eventGridDataDTO.getLcGridName());
|
compareCodeDO.setCreateAt(new Date());
|
lcCompareCodeMapper.insert(compareCodeDO);
|
}
|
}
|
return R.ok();
|
}
|
}
|
return R.fail("添加失败");
|
}
|
|
/**
|
* 后台修改网格
|
*
|
* @param eventGridDataDTO
|
* 请求参数
|
* @return 修改结果
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public R editGridDataByAdmin(EventGridDataEditAdminDTO eventGridDataDTO) {
|
|
EventGridDataDO gridDataDO = this.baseMapper.selectById(eventGridDataDTO.getGridId());
|
if (gridDataDO != null) {
|
BeanUtils.copyProperties(eventGridDataDTO, gridDataDO);
|
gridDataDO.setRemarks(eventGridDataDTO.getRemarks());
|
gridDataDO.setUpdateBy(eventGridDataDTO.getUserId());
|
if (this.baseMapper.updateById(gridDataDO) > 0) {
|
// 移除网格员和网格关系
|
this.baseMapper.removeGridRelationByGridId(gridDataDO.getId());
|
|
if (!eventGridDataDTO.getMemberIds().isEmpty()) {
|
List<EventGridMemberRelationDO> memberRelationDOList = new ArrayList<>();
|
// 绑定网格与网格员关系
|
eventGridDataDTO.getMemberIds().forEach(memberId -> {
|
EventGridMemberRelationDO memberRelationDO = new EventGridMemberRelationDO();
|
memberRelationDO.setGridId(gridDataDO.getId());
|
memberRelationDO.setGridCommunityId(gridDataDO.getGridCommunityId());
|
memberRelationDO.setGridStreetId(gridDataDO.getGridStreetId());
|
memberRelationDO.setGridName(gridDataDO.getGridName());
|
memberRelationDO.setGridMemberId(memberId);
|
memberRelationDOList.add(memberRelationDO);
|
});
|
if (!memberRelationDOList.isEmpty()) {
|
// 添加网格与网格员关联关系
|
eventGridMemberRelationService.saveBatch(memberRelationDOList);
|
}
|
}
|
|
// 查询已存在的关系需要清除
|
lcCompareCodeMapper.delete(new QueryWrapper<LcCompareCodeDO>().lambda()
|
.eq(LcCompareCodeDO::getLocalGridId, gridDataDO.getId()));
|
if (eventGridDataDTO.getLcGridId() != null) {
|
// 关联市平台网格
|
LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>()
|
.lambda().eq(LcCompareCodeDO::getLcGridId, eventGridDataDTO.getLcGridId()));
|
if (compareCodeDO != null) {
|
compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
|
compareCodeDO.setGridName(gridDataDO.getGridName());
|
compareCodeDO.setUpdateAt(new Date());
|
lcCompareCodeMapper.updateById(compareCodeDO);
|
} else {
|
compareCodeDO = new LcCompareCodeDO();
|
compareCodeDO.setId(Snowflake.getId());
|
compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
|
compareCodeDO.setGridName(gridDataDO.getGridName());
|
compareCodeDO.setLcGridId(eventGridDataDTO.getLcGridId());
|
compareCodeDO.setLcGridName(eventGridDataDTO.getLcGridName());
|
compareCodeDO.setCreateAt(new Date());
|
lcCompareCodeMapper.insert(compareCodeDO);
|
}
|
}
|
return R.ok();
|
}
|
}
|
return R.fail();
|
}
|
|
@Override
|
public R getGridMemberListsByGrid(Long gridId) {
|
List<EventGridMemberAdminVO> eventGridMemberAdminVOList = this.getBaseMapper().getGridMemberListsByGrid(gridId);
|
return R.ok(eventGridMemberAdminVOList);
|
}
|
|
@Override
|
public R getGridDataListByCommunity(Long communityId) {
|
List<EventGridDataAreaVO> eventGridDataAreaVOList =
|
this.getBaseMapper().getGridDataListByCommunity(communityId);
|
return R.ok(eventGridDataAreaVOList);
|
}
|
|
@Override
|
public R deleteGridDataByAdmin(List<Long> Ids) {
|
Integer count = eventMapper.getEventCountByGridIds(Ids);
|
if (count > 0) {
|
return R.fail("您选择的网格已发布过事件,不可删除");
|
}
|
if (this.baseMapper.deleteBatchIds(Ids) > 0) {
|
return R.ok();
|
} else {
|
return R.fail();
|
}
|
|
}
|
|
}
|