package com.panzhihua.grid_app.api; import javax.annotation.Resource; 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.community.ComMngPopulationVO; import com.panzhihua.common.service.grid.GridService; import com.panzhihua.common.utlis.ClazzUtils; import com.panzhihua.common.utlis.IdCardUtil; 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/special") @Api(tags = {"特殊人群上报(开发中..) @chendong"}) public class SpecialPopulationEventApi extends BaseController { @Resource private GridService gridService; /** * 添加特殊人群 * * @param specialEventAddDTO * 特殊人群信息 * @return 查找结果 */ @PostMapping() @ApiOperation(value = "发布特殊人群事件", response = R.class) R addSpecial(@Validated @RequestBody SpecialEventAddDTO specialEventAddDTO) { ClazzUtils.setIfStringIsEmpty(specialEventAddDTO); LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo(); specialEventAddDTO.setUserId(loginUserInfoVO.getUserId()); specialEventAddDTO.setUserName(loginUserInfoVO.getName()); specialEventAddDTO.setPhone(loginUserInfoVO.getPhone()); return gridService.addSpecial(specialEventAddDTO); } /** * 保存特殊人群草稿 * * @param specialEventEditDTO * 保存草稿传递对象 * @return 新增结果 */ @PostMapping("/draft") @ApiOperation(value = "保存特殊人群事件草稿", response = R.class) R saveSpecialDraft(@Validated @RequestBody SpecialEventEditDTO specialEventEditDTO) { ClazzUtils.setIfStringIsEmpty(specialEventEditDTO); LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo(); specialEventEditDTO.setUserId(loginUserInfoVO.getUserId()); specialEventEditDTO.setUserName(loginUserInfoVO.getNickName()); specialEventEditDTO.setPhone(loginUserInfoVO.getPhone()); return gridService.saveSpecialDraft(specialEventEditDTO); } @GetMapping("/{idCard}") @ApiOperation(value = "查询特殊人群信息", response = ComMngPopulationVO.class) R getSpecialByIdCard(@PathVariable String idCard) { if (idCard != null) { boolean verified = IdCardUtil.strongVerifyIdNumber(idCard); if (!verified) { return R.fail("身份证格式错误"); } return gridService.getSpecialPopulation(idCard); } return R.fail(); } /** * 上报社区 * * @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 = new LoginUserInfoVO(); commonEventDealDTO.setUserId(loginUserInfoVO.getUserId()); commonEventDealDTO.setUserName(loginUserInfoVO.getNickName()); 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); } }