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); } }