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