package com.panzhihua.applets.api; import javax.annotation.Resource; import javax.validation.Valid; import org.springframework.util.ObjectUtils; 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.alibaba.fastjson.JSONObject; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActDpcVO; import com.panzhihua.common.model.vos.community.ComActEasyPhotoFeedbackVO; import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO; import com.panzhihua.common.model.vos.user.SysUserNoticeVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.user.UserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import static java.util.Objects.isNull; import static java.util.Objects.nonNull; /** * @title: ComActDpcApi * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 人大代表 * @author: hans * @date: 2022/06/07 10:57 */ @Slf4j @Api(tags = {"人大代表相关"}) @RestController @RequestMapping("/dpc") public class ComActDpcApi extends BaseController { @Resource private CommunityService communityService; @Resource private UserService userService; @ApiOperation(value = "获取人大代表详情", response = ComActDpcVO.class) @ApiImplicitParam(name = "id", value = "人大代表id", required = true) @GetMapping("/detail") public R detailDpc(@RequestParam("id") Long id) { return communityService.detailDpc(id); } @ApiOperation(value = "分页查询人大代表", response = ComActDpcVO.class) @PostMapping("/page") public R pageDpc(@RequestBody @Valid PageDpcDTO pageDpcDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin(); if (nonNull(loginUserInfo)) { pageDpcDTO.setCommunityId(loginUserInfo.getCommunityId()); } else if (isNull(pageDpcDTO.getCommunityId())) { return R.fail("未指定社区"); } return communityService.pageDpc(pageDpcDTO); } @ApiOperation(value = "获取人大代表反馈记录", response = ComActEasyPhotoFeedbackVO.class) @ApiImplicitParam(name = "id", value = "随手拍id", required = true) @GetMapping("/feedback") public R getFeedbackList(@RequestParam("id") Long id) { return communityService.getFeedbackList(id); } @ApiOperation(value = "人大代表反馈随手拍") @PostMapping("/feedback") public R addFeedback(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) { LoginUserInfoVO loginUserInfo = userService.getUserInfoByUserId(this.getLoginUserInfo().getUserId().toString()).getData(); Integer isDpcMember = loginUserInfo.getIsDpcMember(); if (isNull(isDpcMember) || !isDpcMember.equals(1)) { return R.fail("暂无权限"); } Long userId = loginUserInfo.getUserId(); Integer type = comActEasyPhotoVO.getType(); if (null == type || type != 3) { return R.fail("操作类型错误"); } Long id = comActEasyPhotoVO.getId(); if (ObjectUtils.isEmpty(id)) { return R.fail("随手拍主键不能为空"); } comActEasyPhotoVO.setUserId(userId); R r = communityService.addEasyPhotoFeedbackForDpc(comActEasyPhotoVO); if (R.isOk(r)) { R r1 = communityService.detailEasyPhoto(id, userId); if (R.isOk(r1)) { ComActEasyPhotoVO comActEasyPhotoVO1 = JSONObject.parseObject(JSONObject.toJSONString(r1.getData()), ComActEasyPhotoVO.class); SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO(); sysUserNoticeVO.setUserId(comActEasyPhotoVO1.getSponsorId()); sysUserNoticeVO.setType(2); sysUserNoticeVO.setBusinessType(4); sysUserNoticeVO.setBusinessTime(comActEasyPhotoVO1.getExamineAt()); sysUserNoticeVO.setBusinessId(id); sysUserNoticeVO.setStatus(0); if (type.intValue() == 3) { sysUserNoticeVO.setTitle("随手拍有反馈"); sysUserNoticeVO.setBusinessTitle(comActEasyPhotoVO.getHandleResult()); sysUserNoticeVO.setBusinessContent("社区已经处理好了具体的事宜,将变成现在更好看的样子找到更好的自己……"); sysUserNoticeVO.setBusinessStatus(2); R r2 = userService.addNotice(sysUserNoticeVO); if (R.isOk(r2)) { log.info("新增随手拍有反馈通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } } } } return r; } }