package com.panzhihua.grid_app.api; import javax.annotation.Resource; import com.panzhihua.common.model.vos.grid.GridMemberPositionDTO; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.grid.*; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.grid.EventVO; import com.panzhihua.common.service.grid.GridService; import com.panzhihua.common.utlis.ClazzUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; /** * * @author cedoo email:cedoo(a)qq.com * @version 1.0 * @since 1.0 * @date 2021-05-26 */ @Slf4j @RestController @RequestMapping("/event/common") @Api(tags = {"网格综治事件管理 @chendong"}) public class CommonEventApi extends BaseController { @Resource private GridService gridService; private boolean isCommonType(Integer eventType) { if (eventType == null) { return false; } boolean inType = eventType == 1 | eventType == 2 | eventType == 3 | eventType == 4 | eventType == 5 | eventType == 6; return inType; } /** * 事件列表 * * @param pageEventDTO * 查找事件 * @return 查找结果 */ @GetMapping("/usersList") @ApiOperation(value = "事件列表", response = EventVO.class) R usersList(@Validated @ModelAttribute PageEventDTO pageEventDTO) { ClazzUtils.setIfStringIsEmpty(pageEventDTO); if (!isCommonType(pageEventDTO.getEventType())) { return R.fail(400, "事件类型错误"); } LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo(); pageEventDTO.setUserId(loginUserInfoVO.getUserId()); pageEventDTO.setRevokeType(1); return gridService.query(pageEventDTO); } /** * 新增并发布事件事件 * * @param commonEventAddDTO * 添加事件传递对象 * @return 新增结果 */ @PostMapping("/release") @ApiOperation(value = "新增并发布事件", response = R.class) R add(@Validated @RequestBody CommonEventAddDTO commonEventAddDTO) { ClazzUtils.setIfStringIsEmpty(commonEventAddDTO); if (!isCommonType(commonEventAddDTO.getEventType())) { return R.fail(400, "事件类型错误"); } LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo(); commonEventAddDTO.setUserId(loginUserInfoVO.getUserId()); commonEventAddDTO.setUserName(loginUserInfoVO.getNickName()); commonEventAddDTO.setPhone(loginUserInfoVO.getPhone()); R r = gridService.addCommon(commonEventAddDTO); if(R.isOk(r)){ GridMemberPositionDTO memberPositionDTO = new GridMemberPositionDTO(); memberPositionDTO.setGridMemberId(loginUserInfoVO.getUserId()); memberPositionDTO.setPositionAddress(commonEventAddDTO.getHappenAddress()); String []lngLatString = commonEventAddDTO.getHappentLatLng().split(","); memberPositionDTO.setLngLat(lngLatString[1] + "," + lngLatString[0]); gridService.gridReportPosition(memberPositionDTO); } return r; } /** * 保存草稿 * * @param commonEventEditDTO * 保存草稿传递对象 * @return 新增结果 */ @PostMapping("/draft") @ApiOperation(value = "保存草稿", response = R.class) R saveDraft(@Validated @RequestBody CommonEventEditDTO commonEventEditDTO) { ClazzUtils.setIfStringIsEmpty(commonEventEditDTO); ClazzUtils.setIfStringIsEmpty(commonEventEditDTO); if (!isCommonType(commonEventEditDTO.getEventType())) { return R.fail(400, "事件类型错误"); } LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo(); commonEventEditDTO.setUserId(loginUserInfoVO.getUserId()); commonEventEditDTO.setUserName(loginUserInfoVO.getNickName()); commonEventEditDTO.setPhone(loginUserInfoVO.getPhone()); return gridService.saveDraft(commonEventEditDTO); } /** * 上报社区 * * @param commonEventReportDTO * 上报社区传递对象 * @return 上报结果 */ @PutMapping("/report") @ApiOperation(value = "上报社区", response = R.class) R report(@Validated @RequestBody CommonEventReportDTO commonEventReportDTO) { LoginUserInfoVO loginUserInfoVO = getLoginUserInfo(); ClazzUtils.setIfStringIsEmpty(commonEventReportDTO); commonEventReportDTO.setUserId(loginUserInfoVO.getUserId()); commonEventReportDTO.setUserName(loginUserInfoVO.getNickName()); commonEventReportDTO.setCommunityId(loginUserInfoVO.getCommunityId()); return gridService.report(commonEventReportDTO); } /** * 处理事件 * * @param commonEventDealDTO * 修改事件传递对象 * @return 处理结果 */ @PutMapping("/deal") @ApiOperation(value = "处理事件", response = R.class) R deal(@Validated @RequestBody CommonEventDealDTO commonEventDealDTO) { ClazzUtils.setIfStringIsEmpty(commonEventDealDTO); LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo(); commonEventDealDTO.setUserId(loginUserInfoVO.getUserId()); commonEventDealDTO.setUserName(loginUserInfoVO.getNickName()); commonEventDealDTO.setOperateType(0); commonEventDealDTO.setCommunityId(loginUserInfoVO.getCommunityId()); commonEventDealDTO.setCommunityName(loginUserInfoVO.getCommunityName()); return gridService.dealEvent(commonEventDealDTO); } /** * 验证事件 * * @param commonEventVerifyDTO * 验证事件传递对象 * @return 验证结果 */ @PutMapping("/verify") @ApiOperation(value = "验证事件", response = R.class) R verify(@Validated @RequestBody CommonEventVerifyDTO commonEventVerifyDTO) { ClazzUtils.setIfStringIsEmpty(commonEventVerifyDTO); LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo(); commonEventVerifyDTO.setUserId(loginUserInfoVO.getUserId()); commonEventVerifyDTO.setUserName(loginUserInfoVO.getNickName()); return gridService.verifyEvent(commonEventVerifyDTO); } /** * 直接上报社区 * * @param commonEventDirectReportDTO * 上报社区传递对象 * @return 上报结果 */ @PostMapping("/reportDirect") @ApiOperation(value = "直接上报社区", response = R.class) R reportDirect(@Validated @RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO) { LoginUserInfoVO loginUserInfoVO = getLoginUserInfo(); ClazzUtils.setIfStringIsEmpty(commonEventDirectReportDTO); commonEventDirectReportDTO.setUserId(loginUserInfoVO.getUserId()); commonEventDirectReportDTO.setUserName(loginUserInfoVO.getNickName()); commonEventDirectReportDTO.setCommunityId(loginUserInfoVO.getCommunityId()); return gridService.reportDirect(commonEventDirectReportDTO); } }