mitao
2025-02-24 879ce4e66b36daf44f79b17eb02d3578148e4545
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
214
215
216
package com.panzhihua.applets.api;
 
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
 
import javax.annotation.Resource;
import javax.validation.Valid;
 
import com.panzhihua.common.model.dtos.community.fms.AddFmsServiceAdminDTO;
import com.panzhihua.common.model.dtos.community.fms.ApplyFmsServiceDTO;
import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO;
import com.panzhihua.common.model.dtos.community.fms.EvaluationFmsServiceDTO;
import com.panzhihua.common.model.dtos.community.fms.FeedbackFmsServiceDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
import com.panzhihua.common.model.vos.community.fms.CascadeCommVO;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.fms.PageFmsClassroomAdminDTO;
import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO;
import com.panzhihua.common.model.dtos.community.fms.PageFmsTeamDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.fms.ComFmsClassroomVO;
import com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO;
import com.panzhihua.common.model.vos.community.fms.ComFmsTeamTypeVO;
import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
import com.panzhihua.common.model.vos.grid.EventDetailsVO;
import com.panzhihua.common.model.vos.grid.EventVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.grid.GridService;
 
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
 
/**
 * @title: ComFmsApi
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 五微服务相关接口
 * @author: hans
 * @date: 2022/02/11 13:23
 */
@Slf4j
@Api(tags = {"五微服务"})
@RestController
@RequestMapping("/fms")
public class ComFmsApi extends BaseController {
 
    @Resource
    private CommunityService communityService;
    @Resource
    private GridService gridService;
 
    @ApiOperation(value = "获取团队类型列表", response = ComFmsTeamTypeVO.class)
    @ApiImplicitParam(name = "communityId", value = "社区id", required = true)
    @GetMapping("/teamType/list")
    public R listFmsTeamType(@RequestParam(value = "communityId", required = false) Long communityId) {
        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
        if (isNull(userInfo) && isNull(communityId)) {
            return R.fail("社区id不能为空");
        }
        if (nonNull(userInfo)) {
            communityId = userInfo.getCommunityId();
        }
        return communityService.listFmsTeamType(communityId);
    }
 
    @ApiOperation(value = "分页/全部查询团队信息", response = ComFmsTeamVO.class)
    @PostMapping("/team/page")
    public R pageFmsTeam(@RequestBody PageFmsTeamDTO pageFmsTeamDTO) {
        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
        if (isNull(userInfo) && isNull(pageFmsTeamDTO.getCommunityId())) {
            return R.fail("社区id不能为空");
        }
        if (nonNull(userInfo)) {
            pageFmsTeamDTO.setCommunityId(userInfo.getCommunityId());
        }
        return communityService.pageFmsTeamApplets(pageFmsTeamDTO);
    }
 
    @ApiOperation(value = "分页查询微讲堂", response = ComFmsClassroomVO.class)
    @PostMapping("/classroom/page")
    public R pageFmsClassroom(@RequestBody @Valid PageFmsClassroomAdminDTO adminDTO) {
        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
        if (isNull(userInfo) && isNull(adminDTO.getCommunityId())) {
            return R.fail("社区id不能为空");
        }
        if (nonNull(userInfo)) {
            adminDTO.setCommunityId(userInfo.getCommunityId());
        }
        return communityService.pageFmsClassroomAdmin(adminDTO);
    }
 
    @ApiOperation(value = "获取微讲堂详情", response = ComFmsClassroomVO.class)
    @ApiImplicitParam(name = "id", value = "微讲堂id", required = true)
    @GetMapping("/classroom/detail")
    public R detailFmsClassroom(@RequestParam("id") Long id) {
        return communityService.detailFmsClassroomApplets(id);
    }
 
    @ApiOperation(value = "分页查询微调节/微防控", response = EventVO.class)
    @PostMapping("/event/page")
    public R pageFmsEvent(@RequestBody @Valid PageFmsEventAdminDTO adminDTO) {
        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
        if (isNull(userInfo) && isNull(adminDTO.getCommunityId())) {
            return R.fail("社区id不能为空");
        }
        if (nonNull(userInfo)) {
            adminDTO.setCommunityId(userInfo.getCommunityId());
        }
        return communityService.pageFmsEventApplets(adminDTO);
    }
 
    @ApiOperation(value = "微调节/微防控事件详情", response = EventDetailsVO.class)
    @ApiImplicitParam(name = "eventId", value = "事件id", required = true)
    @GetMapping("/event/detail")
    public R detailFmsEvent(@RequestParam("eventId") Long eventId) {
        return gridService.eventDetails(eventId);
    }
 
    @ApiOperation(value = "分页查询微服务", response = ComFmsServiceVO.class)
    @PostMapping("/service/page")
    public R pageFmsService(@RequestBody @Valid PageFmsServiceAppletsDTO adminDTO) {
        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
        if (isNull(userInfo) && isNull(adminDTO.getCommunityId())) {
            return R.fail("社区id不能为空");
        }
        if (nonNull(userInfo)) {
            adminDTO.setCommunityId(userInfo.getCommunityId());
        }
        return communityService.pageFmsServiceApplets(adminDTO);
    }
 
    @ApiOperation(value = "查看微服务详情", response = ComFmsServiceVO.class)
    @ApiImplicitParam(name = "serviceId", value = "服务id", required = true)
    @GetMapping("/service/detail")
    public R detailFmsService(@RequestParam("serviceId") Long serviceId) {
        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
        Long userId = null;
        if (nonNull(userInfo)) {
            userId = userInfo.getUserId();
        }
        return communityService.detailFmsServiceApplets(serviceId, userId);
    }
 
    @ApiOperation("微服务申请")
    @PostMapping("/service/apply")
    public R applyFmsService(@RequestBody @Valid ApplyFmsServiceDTO adminDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        adminDTO.setUserInfo(loginUserInfo);
        return communityService.applyFmsService(adminDTO);
    }
 
    @ApiOperation(value = "分页查询我的微服务", response = ComFmsServiceVO.class)
    @PostMapping("/service/pageMy")
    public R pageMyFmsService(@RequestBody @Valid PageFmsServiceAppletsDTO adminDTO) {
        adminDTO.setCommunityId(this.getCommunityId());
        adminDTO.setUserId(this.getUserId());
        return communityService.pageMyFmsService(adminDTO);
    }
 
    @ApiOperation(value = "微服务评价")
    @PostMapping("/service/evaluate")
    public R evaluateFmsService(@RequestBody @Valid EvaluationFmsServiceDTO evaluationFmsServiceDTO) {
        evaluationFmsServiceDTO.setUserId(this.getUserId());
        return communityService.evaluateFmsService(evaluationFmsServiceDTO);
    }
 
    @ApiOperation(value = "微团队成员分页查询服务处理", response = ComFmsServiceVO.class)
    @PostMapping("/service/pageDeal")
    public R pageDealFmsService(@RequestBody @Valid PageFmsServiceAppletsDTO adminDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        adminDTO.setCommunityId(loginUserInfo.getCommunityId());
        adminDTO.setUserId(loginUserInfo.getUserId());
        adminDTO.setUserInfo(loginUserInfo);
        return communityService.pageDealFmsService(adminDTO);
    }
 
    @ApiOperation(value = "微团队成员服务反馈", response = ComFmsServiceVO.class)
    @PostMapping("/service/feedback")
    public R feedbackFmsService(@RequestBody @Valid FeedbackFmsServiceDTO adminDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        adminDTO.setUserId(loginUserInfo.getUserId());
        adminDTO.setUserInfo(loginUserInfo);
        return communityService.feedbackFmsService(adminDTO);
    }
 
    @ApiOperation("核实微服务")
    @PostMapping("/service/approval")
    public R approvalFmsService(@RequestBody @Valid ApprovalFmsServiceAdminDTO adminDTO) {
        if (adminDTO.getIsPass() && isNull(adminDTO.getMemberId())) {
            return R.fail("未分配服务人员");
        }
        adminDTO.setUpdatedBy(this.getUserId());
        return communityService.approvalFmsService(adminDTO);
    }
 
    @ApiOperation("后台新增微服务")
    @PostMapping("/service/add")
    public R addFmsService(@RequestBody @Valid AddFmsServiceAdminDTO adminDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        adminDTO.setCommunityId(loginUserInfo.getCommunityId());
        adminDTO.setCreatedBy(loginUserInfo.getUserId());
        adminDTO.setUpdatedBy(loginUserInfo.getUserId());
        return communityService.addFmsServiceAdmin(adminDTO);
    }
 
}