package com.panzhihua.applets.api; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.panzhihua.applets.weixin.CheckService; import com.panzhihua.common.constants.Constants; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.common.PageComMngVolunteerOrgTeamDto; import com.panzhihua.common.model.dtos.common.PageComMngVolunteerServiceTypeDto; import com.panzhihua.common.model.dtos.common.PageComMngVolunteerSkillDto; import com.panzhihua.common.model.dtos.community.*; import com.panzhihua.common.model.dtos.property.CommonPage; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.common.ComMngVolunteerOrgTeamVo; import com.panzhihua.common.model.vos.common.ComMngVolunteerServiceTypeVo; import com.panzhihua.common.model.vos.common.ComMngVolunteerSkillVo; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.neighbor.ActivityAnalysisVO; import com.panzhihua.common.model.vos.user.SysUserNoticeVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.community.CommunityWestService; import com.panzhihua.common.service.partybuilding.PartyBuildingService; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.common.validated.AddGroup; import com.panzhihua.common.validated.PageGroup; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import java.util.Date; import java.util.List; import static java.util.Objects.isNull; import static org.apache.commons.lang3.ObjectUtils.isEmpty; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 社区服务 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-10 10:04 **/ @Slf4j @RestController @RequestMapping("/community/") @Api(tags = {"社区服务"}) public class CommunityApi extends BaseController { @Resource private CommunityService communityService; @Resource private CommunityWestService communityWestService; @Resource private UserService userService; @Resource private PartyBuildingService partyBuildingService; @Resource private CheckService checkService; @ApiOperation(value = "分页查询小区", response = ComMngStructAreaVO.class) @PostMapping("pagearea") public R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) { return communityService.pageArea(comMngStructAreaVO); } @ApiOperation(value = "新分页查询小区", response = ComMngVillageVO.class) @PostMapping("pagevillage") public R pageVillage(@RequestBody PageComMngVillageDTO pageComMngVillageDTO) { return communityService.pageVillage(pageComMngVillageDTO); } @ApiOperation(value = "分页获取社区动态", response = ComActDynVO.class) @PostMapping("pagedynamic") public R pageDynamic(@RequestBody ComActDynVO comActDynVO) { // LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin(); // if (loginUserInfo != null) { // comActDynVO.setCommunityId(loginUserInfo.getCommunityId()+""); // } comActDynVO.setIsTopping(null); comActDynVO.setStatus(1); Integer category = comActDynVO.getCategory(); if (isNull(category)) { comActDynVO.setCategory(1); } return communityService.pageDynamic(comActDynVO); } @ApiOperation(value = "分页查项目活动") @PostMapping("projectPageActivity") public R projectPageActivity(@RequestBody ComActActivityVO comActActivityVO) { Long projectId = comActActivityVO.getProjectId(); if (isNull(projectId)) { Long communityId = this.getCommunityId(); comActActivityVO.setCommunityId(communityId); } // return communityService.pageActivity(ComActActivityVO); return communityService.pageActivityCommunityBack(comActActivityVO); } @ApiOperation(value = "社区动态详情", response = ComActDynVO.class) @GetMapping("detaildynamic") @ApiImplicitParam(name = "id", value = "社区动态主键", required = true) public R detailDynamic(@RequestParam("id") Long id) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin(); Long userId = null; if (loginUserInfo != null) { userId = loginUserInfo.getUserId(); } R r = communityService.detailDynamic(id); if (R.isOk(r)) { Object data = r.getData(); ComActDynVO comActDynVO = JSONObject.parseObject(JSONObject.toJSONString(data), ComActDynVO.class); if (userId != null) { // 增加浏览记录 R r1 = communityService.addDynamicUser(id, userId); if (R.isOk(r1)) { comActDynVO.setIsAdd(1); } else { comActDynVO.setIsAdd(0); } } return R.ok(comActDynVO); } return r; } @ApiOperation(value = "分页查询社区活动", response = ComActActivityVO.class) @PostMapping("pageactivity") public R pageActivity(@RequestBody ComActActivityVO comActActivityVO) { if(comActActivityVO.getCommunityId()<=0) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin(); if (loginUserInfo != null) { comActActivityVO.setCommunityId(loginUserInfo.getCommunityId()); } } comActActivityVO.setIsApplets(1); Integer status = comActActivityVO.getStatus(); if (null != status && status.intValue() == 4) { comActActivityVO.setIsIng(1); } return communityService.pageActivity(comActActivityVO); } @ApiOperation(value = "社区活动/志愿者活动详情", response = ComActActivityVO.class) @GetMapping("detailactivity") @ApiImplicitParam(name = "id", value = "社区活动主键", required = true) public R detailActivity(@RequestParam("id") Long id) { Long userId = null; LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin(); if (loginUserInfo != null) { userId = loginUserInfo.getUserId(); } return communityService.detailActivity(id, userId, null, null); } @ApiOperation(value = "分页查询活动评价记录", response = ComActActEvaluateVO.class) @PostMapping("evaluate/page") public R pageActivityEvaluates(@RequestBody ComActActEvaluateVO comActActEvaluateVO) { return communityService.pageActivityEvaluates(comActActEvaluateVO); } @ApiOperation(value = "社区活动/志愿者活动签到") @PostMapping("activity/sign-in") public R activitySignIn(@RequestBody ComActActRegistVO comActActRegistVO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); comActActRegistVO.setUserId(loginUserInfo.getUserId()); return communityService.activitySignIn(comActActRegistVO); } @ApiOperation(value = "社区活动/志愿者活动评价") @PostMapping("activity/evaluate") public R activityEvaluate(@RequestBody ComActActEvaluateVO comActActEvaluateVO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); comActActEvaluateVO.setUserId(loginUserInfo.getUserId()); String openid = this.getLoginUserInfo().getOpenid(); String appId = this.getAppId(); // 微信内容审核 String evaluateContent = comActActEvaluateVO.getEvaluateContent(); if (StrUtil.isNotBlank(evaluateContent)) { String result = checkService.checkMessageBy(evaluateContent, openid, appId); if (StrUtil.isNotBlank(result)) { return R.fail(501, "填写内容存在 " + result + " 违规信息"); } } //微信图片审核 String photo = comActActEvaluateVO.getPhoto(); if (StrUtil.isNotBlank(photo)) { if (!checkService.checkImageBy(photo, appId)) { return R.fail(501, "上传图片存在违规信息"); } } return communityService.activityEvaluate(comActActEvaluateVO); } @ApiOperation(value = "我的评价", response = MyActivityEvaluateVO.class) @GetMapping("activity/my-evaluate") public R listMyActivityEvaluate(@RequestParam("activityId") Long activityId) { return communityService.listMyActivityEvaluate(getUserId(), activityId); } @ApiOperation(value = "报名/取消报名社区活动") @PutMapping("signactivity") public R signActivity(@RequestBody @Validated(AddGroup.class) SignactivityVO signactivityVO) { Long userId = this.getUserId(); Long activityId = signactivityVO.getActivityId(); signactivityVO.setUserId(userId); R r = communityService.signActivity(signactivityVO); if (R.isOk(r) && signactivityVO.getType().intValue() == 1) { R r2 = communityService.detailActivity(activityId, userId, null, null); ComActActivityVO comActActivityVO = JSONObject.parseObject(JSONObject.toJSONString(r2.getData()), ComActActivityVO.class); Integer isVolunteer = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), Integer.class); SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO(); sysUserNoticeVO.setUserId(userId); sysUserNoticeVO.setType(1); sysUserNoticeVO.setTitle("报名成功"); sysUserNoticeVO.setBusinessType(1); sysUserNoticeVO.setBusinessTitle(comActActivityVO.getActivityName()); Date beginAt = comActActivityVO.getBeginAt(); sysUserNoticeVO.setBusinessContent(String.format("活动将于%tF %tT 开始,请按时参加", beginAt, beginAt)); sysUserNoticeVO.setBusinessId(activityId); sysUserNoticeVO.setStatus(0); sysUserNoticeVO.setActivityType(comActActivityVO.getType()); sysUserNoticeVO.setBusinessStatus(2); R r1 = userService.addNotice(sysUserNoticeVO); if (R.isOk(r1)) { log.info("新增用户报名社区活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } } return r; } @ApiOperation(value = "活动人员列表", response = ActivitySignVO.class) @ApiImplicitParams({@ApiImplicitParam(name = "type", value = "人员类型 1 普通居民 2 志愿者", required = true), @ApiImplicitParam(name = "id", value = "社区活动主键", required = true)}) @GetMapping("listactivitysign") public R listActivitySign(@RequestParam("id") Long id, @RequestParam("type") Integer type) { ActivitySignVO activitySignVO = new ActivitySignVO(); activitySignVO.setActivityId(id); if (null == type || 0 == type || type > 2) { return R.fail("人员类型错误"); } activitySignVO.setType(type); return communityService.listActivitySign(activitySignVO); } @ApiOperation(value = "活动报名签到情况", response = ActivitySignInRecordVO.class) @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "社区活动主键", required = true), @ApiImplicitParam(name = "type", value = "活动类型,1.居民/志愿者活动 2.党员活动", required = true) }) @GetMapping("activity/sign-in/list") public R listSignInRecord(@RequestParam("id") Long id, @RequestParam("type") Integer type) { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); if (loginUserInfo.getIsCommunityWorker().intValue() != 1) { return R.fail("非社区工作人员"); } if (type.intValue() == 1) { return communityService.listSignInRecord(id); } return R.fail("type不存在"); } @ApiOperation(value = "活动签到记录", response = ComActActRegistVO.class) @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "活动主键", required = true), @ApiImplicitParam(name = "type", value = "活动类型,1.居民/志愿者活动 2.党员活动", required = true), @ApiImplicitParam(name = "userId", value = "用户id", required = true) }) @GetMapping("activity/regist/list") public R listRegistRecord(@RequestParam("id") Long id, @RequestParam("type") Integer type, @RequestParam("userId") Long userId) { if (type.intValue() == 1) { return communityService.listRegistRecord(id, userId); } return R.fail("type不存在"); } @ApiOperation(value = "活动邀请列表", response = ActivityInviteVO.class) @PostMapping("activity/invite/list") public R pageActivityInviteList(@RequestBody @Valid PageActivityInviteDTO pageActivityInviteDTO) { return communityService.pageActivityInviteList(pageActivityInviteDTO); } @ApiOperation(value = "添加邀请人员") @PostMapping("activity/invite/add") public R activityInviteAdd(@RequestBody @Valid List list) { if (!isEmpty(list)) { list.forEach(e -> e.setCreatedBy(this.getUserId())); } else { return R.fail("列表为空"); } return communityService.activityInviteAdd(list); } @ApiOperation(value = "删除邀请人员") @ApiImplicitParam(name = "id", value = "邀请主键id", required = true) @DeleteMapping("activity/invite/delete") public R activityInviteDelete(@RequestParam("id") Long id) { return communityService.activityInviteDelete(id); } // @ApiOperation(value = "新增社区动态浏览记录") // @PostMapping("dynamicuser") // public R addDynamicUser(@RequestBody ComActDynVO comActDynVO){ // Long id = comActDynVO.getId(); // if (null==id||id==0) { // return R.fail("社区动态不存在"); // } // Long userId = this.getUserId(); // return communityService.addDynamicUser(id,userId); // } @ApiOperation(value = "志愿者申请") @PostMapping("volunteer") public R addVolunteer(@RequestBody @Validated(AddGroup.class) ComMngVolunteerMngVO comMngVolunteerMngVO) { comMngVolunteerMngVO.setState(1); comMngVolunteerMngVO.setCommunityId(this.getCommunityId()); comMngVolunteerMngVO.setSubmitUserId(this.getUserId()); return communityService.addVolunteer(comMngVolunteerMngVO); } @ApiOperation(value = "分页查询志愿者团队", response = ComMngVolunteerMngVO.class) @PostMapping("pagevolunteer") public R pageVolunteer(@RequestBody @Validated(PageGroup.class) PageVolunteerDTO pageVolunteerDTO) { ComMngVolunteerMngVO comMngVolunteerMngVO = new ComMngVolunteerMngVO(); LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin(); if (loginUserInfo != null) { comMngVolunteerMngVO.setCommunityId(loginUserInfo.getCommunityId()); } else { comMngVolunteerMngVO.setCommunityId(pageVolunteerDTO.getCommunityId()); } comMngVolunteerMngVO.setPageNum(pageVolunteerDTO.getPageNum()); comMngVolunteerMngVO.setPageSize(pageVolunteerDTO.getPageSize()); return communityService.pageVolunteer(comMngVolunteerMngVO); } @ApiOperation(value = "志愿者详情", response = ComMngVolunteerMngAppletsVO.class) @GetMapping("volunteer") public R detailVolunteer(@RequestParam("id") Long id) { return communityService.detailVolunteer(id); } @ApiOperation(value = "查询志愿者组织列表", response = ComMngVolunteerOrgTeamVo.class) @GetMapping("/volunteer/org/list") public R listVolunteerOrgAdmin() { PageComMngVolunteerOrgTeamDto orgTeamDto = new PageComMngVolunteerOrgTeamDto(); orgTeamDto.setParentId(0L); orgTeamDto.setCommunityId(this.getCommunityId()); return communityService.listVolunteerOrgAdmin(orgTeamDto); } @ApiOperation(value = "查询志愿者服务类型列表", response = ComMngVolunteerServiceTypeVo.class) @GetMapping("/volunteer/service/type/list") public R listVolunteerServiceTypeAdmin() { PageComMngVolunteerServiceTypeDto serviceTypeDto = new PageComMngVolunteerServiceTypeDto(); serviceTypeDto.setCommunityId(this.getCommunityId()); return communityService.listServiceTypeAdmin(serviceTypeDto); } @ApiOperation(value = "查询志愿者技能列表", response = ComMngVolunteerSkillVo.class) @GetMapping("/volunteer/skill/list") public R listVolunteerSkillAdmin() { PageComMngVolunteerSkillDto volunteerSkillDto = new PageComMngVolunteerSkillDto(); volunteerSkillDto.setCommunityId(this.getCommunityId()); return communityService.listVolunteerSkillAdmin(volunteerSkillDto); } @ApiOperation(value = "车辆登记") @PostMapping("car/register") public R addComMngCar(@Validated(AddGroup.class) @RequestBody ComMngCarAppletDTO comMngCarAppletDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); Long communityId = loginUserInfo.getCommunityId(); if (null != communityId && 0 != communityId) { comMngCarAppletDTO.setCommunityId(communityId); comMngCarAppletDTO.setAreaId(loginUserInfo.getAreaId()); comMngCarAppletDTO.setUserName(loginUserInfo.getName()); comMngCarAppletDTO.setUserId(loginUserInfo.getUserId()); comMngCarAppletDTO.setMobile(loginUserInfo.getPhone()); comMngCarAppletDTO.setSource(1); } return communityService.addComMngCarApplet(comMngCarAppletDTO); } @ApiOperation(value = "登记车辆列表", response = ComMngCarVO.class) @GetMapping("car/list") public R comMngCarList() { return communityService.userComMngCarList(this.getUserId()); } @ApiOperation(value = "获取树结构区域信息") @GetMapping(value = "arealist") public R getAllArea(@ApiParam(name = "城市编码:四川510000", required = true) @RequestParam(value = "provinceAdcode") Integer provinceAdcode) { return communityService.getCityTreeByProvinceCode(provinceAdcode, null); } @ApiOperation(value = "社区详情", response = ComActVO.class) @GetMapping("community") public R detailCommunity() { return communityService.detailCommunity(this.getCommunityId()); } @ApiOperation(value = "查询活动报名名单集合", response = ActivitySignVO.class) @PostMapping("listactivitysign") public R listActivitySign(@RequestBody ActivitySignVO activitySignVO) { if (ObjectUtils.isEmpty(activitySignVO.getActivityId())) { return R.fail("活动id主键不能为空"); } return communityService.listActivitySign(activitySignVO); } @ApiOperation(value = "查询社区列表") @GetMapping("actList") public R getWestCommunityLists() { return communityService.getWestCommunityLists(this.getAreaCode()); } @ApiOperation(value = "分页查询街道", response = PageComStreetDTO.class) @PostMapping("pagestreet") public R pageStreet(@RequestBody PageComStreetDTO pageComStreetDTO) { pageComStreetDTO.setAreaCode(this.getAreaCode()); return communityService.pageStreet(pageComStreetDTO); } @ApiOperation(value = "新增服务活动") @PostMapping("activity") public R addActivity(@RequestBody @Validated(AddGroup.class) ComActActivityVO comActActivityVO) { Long communityId = this.getCommunityId(); comActActivityVO.setCommunityId(communityId); comActActivityVO.setUserId(this.getLoginUserInfo().getUserId()); comActActivityVO.setStatus(2); comActActivityVO.setHasPrize(0); return communityService.addActivity(comActActivityVO); } @ApiOperation(value = "单位活动统计", response = ActivityAnalysisVO.class) @GetMapping("activity/analysis") public R activityUnitAnalysis(@RequestParam(value = "year", required = false) Integer year, @RequestParam(value = "type", required = false) Integer type, @RequestParam(value = "range", required = false) Integer range, @RequestParam(value = "communityId", required = false) Long communityId, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, @RequestParam(value = "belongTo", required = false) String belongTo, @RequestParam(value = "unitId", required = false) Long unitId, @RequestParam(value = "searchContent",required = false) String searchContent) { return communityService.institutionalUnitServiceAnalysis(year, type, range, communityId, page, size, belongTo, unitId, this.getLoginUserInfo().getAccount(),searchContent); } @ApiOperation(value = "分页查询服务范围数据", response = ComActColumnVO.class) @PostMapping("comActColumn/queryAll") public R selectAll(@RequestBody CommonPage commonPage) { if (this.getLoginUserInfo().getStreetId() != null) { commonPage.setStreetId(this.getLoginUserInfo().getStreetId()); } else { commonPage.setCommunityId(this.getCommunityId()); } return this.communityService.comActColumnSelectAll(commonPage); } @ApiOperation(value = "街道详情", response = ComStreetVO.class) @ApiImplicitParam(name = "id", value = "街道id", required = true) @GetMapping("street") public R detailStreet(@RequestParam("id") Long id) { return communityWestService.detailStreet(id); } @ApiOperation(value = "根据id查询社区详情", response = ComActVO.class) @ApiImplicitParam(name = "id", value = "社区id", required = true) @GetMapping("detail") public R detailCommunity(@RequestParam("id") Long id) { return communityService.detailCommunity(id); } @ApiOperation(value = "获取问题清单,需求清单,报道服务活动数量",response = DataCount.class) @GetMapping("/dataCount") public R dataCount(){ return communityService.dataCount(); } }