mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
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<EventGridMemberRelationMapper, EventGridMemberRelationDO> 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<IPage<EventGridMemberRelationVO>> 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<EventGridMemberRelationDetailsVO> 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<GridMemberCascadeVO> memberCascadeList =
            this.baseMapper.getGridMemberCascade(memberCascadeAddDTO.getType(), memberCascadeAddDTO.getSuperiorId());
 
        List<GridMemberCascadeVO> 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<EventMapGridCascadeVO> resultList = new ArrayList<>();
        List<EventMapGridCascadeVO> list = this.eventGridMemberRelationMapper.getMapGridsListsByApp(userId, 1, null);
        if (!list.isEmpty()) {
            list.forEach(gridCascadeVO -> {
                List<EventMapGridCascadeVO> 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<GridMemberTrajectoryVo> memberTrajectoryList = eventGridMemberRelationMapper.getGridsMemberList(communityId);
        memberTrajectoryList.forEach(member -> {
            member.setLngLatList(eventGridMemberRelationMapper.getGridsMemberTrajectory(member.getUserId()));
        });
        return R.ok(memberTrajectoryList);
    }
 
}