huanghongfa
2021-01-22 04c96f26282f021fcc59b40d6f11f172fc070af8
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -1,10 +1,23 @@
package com.panzhihua.service_community.api;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO;
import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO;
import com.panzhihua.common.model.dtos.community.PageComActDTO;
import com.panzhihua.common.model.dtos.partybuilding.ComPbServiceTeamDTO;
import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.user.UserPhoneVO;
import com.panzhihua.service_community.model.dos.ComActActPrizeDO;
import com.panzhihua.service_community.model.dos.ComActDynDO;
import com.panzhihua.service_community.model.dos.ComActMicroWishDO;
import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
import com.panzhihua.service_community.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -38,6 +51,16 @@
    private ComActMicroWishService comActMicroWishService;
    @Resource
    private ComActEasyPhotoService comActEasyPhotoService;
    @Resource
    private ComActService comActService;
    @Resource
    private ComMngStructHouseService comMngStructHouseService;
    @Resource
    private ComMngStructAreaService comMngStructAreaService;
    @Resource
    private ComMngStructOtherBuildService comMngStructOtherBuildService;
    @Resource
    private ComMngVolunteerMngService comMngVolunteerMngService;
    /**
     * 新增社区活动
@@ -49,7 +72,7 @@
    @Transactional(rollbackFor = Exception.class)
    public R addActivity(@RequestBody ComActActivityVO comActActivityVO) {
        R r = comActActivityService.addActivity(comActActivityVO);
        boolean ok = r.isOk();
        boolean ok = R.isOk(r);
        if (ok) {
            Long activityId = (Long) r.getData();
            Integer hasPrize = comActActivityVO.getHasPrize();
@@ -70,8 +93,10 @@
                }
            }
        } else {
            return R.fail();
        }
        return R.fail();
        return R.ok();
    }
    /**
@@ -85,10 +110,11 @@
    public R putActivity(@RequestBody ComActActivityVO comActActivityVO) {
        R r = comActActivityService.putActivity(comActActivityVO);
        List<ComActActPrizeVO> comActActPrizeVOList = comActActivityVO.getComActActPrizeVOList();
        boolean ok = r.isOk();
        boolean ok = R.isOk(r);
        if (ok) {
            if (!ObjectUtils.isEmpty(comActActPrizeVOList)) {
                Long actActivityVOId = comActActivityVO.getId();
            Integer hasPrize = comActActivityVO.getHasPrize();
            Long actActivityVOId = comActActivityVO.getId();
            if (!ObjectUtils.isEmpty(comActActPrizeVOList) && hasPrize.intValue() == 1) {
                comActActPrizeService.remove(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, actActivityVOId));
                if (!ObjectUtils.isEmpty(comActActPrizeVOList)) {
                    List<ComActActPrizeDO> comActActPrizeDOS = new ArrayList<>();
@@ -103,6 +129,9 @@
                        return R.fail("保存奖品失败");
                    }
                }
            }else if(hasPrize.intValue() == 0){
                boolean remove = comActActPrizeService.remove(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, actActivityVOId));
                log.info("删除社区活动奖品结果【{}】,社区活动id【{}】",remove,actActivityVOId);
            }
        }
        return r;
@@ -118,6 +147,7 @@
    public R deleteActivity(@RequestBody ComActActivityVO comActActivityVO) {
        boolean remove = comActActivityService.removeById(comActActivityVO.getId());
        if (remove) {
            comActActPrizeService.remove(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, comActActivityVO.getId()));
            return R.ok();
        }
        return R.fail();
@@ -129,84 +159,149 @@
     * @param comActActivityVO 查询参数
     * @return 分页集合
     */
    @PostMapping("pageActivity")
    @PostMapping("pageactivity")
    public R pageActivity(@RequestBody ComActActivityVO comActActivityVO) {
        return comActActivityService.pageActivity(comActActivityVO);
        R r = comActActivityService.pageActivity(comActActivityVO);
        if (R.isOk(r)) {
            Page<ComActActivityVO> page = (Page<ComActActivityVO>) r.getData();
            List<ComActActivityVO> content = page.getRecords();
            if (!ObjectUtils.isEmpty(content)) {
                content.forEach(comActActivityVO1 -> {
                    List<ComActActPrizeVO> comActActPrizeVOList = new ArrayList<>();
                    Long id = comActActivityVO1.getId();
                    List<ComActActPrizeDO> list = comActActPrizeService.list(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, id));
                    if (!ObjectUtils.isEmpty(list)) {
                        list.forEach(comActActPrizeDO -> {
                            ComActActPrizeVO comActActPrizeVO = new ComActActPrizeVO();
                            BeanUtils.copyProperties(comActActPrizeDO, comActActPrizeVO);
                            comActActPrizeVOList.add(comActActPrizeVO);
                        });
                    }
                    comActActivityVO1.setComActActPrizeVOList(comActActPrizeVOList);
                });
                page.setRecords(content);
            }
        }
        return r;
    }
    /**
     * 社区后台分页查询社区活动
     * @param comActActivityVO 查询参数
     * @return 返回结果
     */
    @PostMapping("pageactivitycommunityback")
    public R pageActivityCommunityBack(@RequestBody ComActActivityVO comActActivityVO){
        return  comActActivityService.pageActivityCommunityBack(comActActivityVO);
    }
    /**
     * 发布活动
     *
     * @param comActActivityVO 主键id 发布时间
     * @return 发布结果
     */
    @PostMapping("releaseactivity")
    public R releaseActivity(@RequestBody ComActActivityVO comActActivityVO){
    public R releaseActivity(@RequestBody ComActActivityVO comActActivityVO) {
        return comActActivityService.releaseActivity(comActActivityVO);
    }
    /**
     * 取消活动
     *
     * @param comActActivityVO 取消原因
     * @return 取消结果
     */
    @PostMapping("cancelactivity")
    public R cancelActivity(@RequestBody ComActActivityVO comActActivityVO){
    public R cancelActivity(@RequestBody ComActActivityVO comActActivityVO) {
        return comActActivityService.cancelActivity(comActActivityVO);
    }
    /**
     * 活动详情
     *
     * @param id 活动id
     * @return 详情
     */
    @PostMapping("inforactivity")
    public R inforActivity(@RequestParam("id") Long id){
        ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id);
    @PostMapping("detailactivity")
    public R detailActivity(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
        ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id, userId);
        if (ObjectUtils.isEmpty(comActActivityVO)) {
            return R.fail("活动不存在");
        }
        List<ComActActPrizeDO> comActActPrizeDOS = comActActPrizeService.list(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, id));
        if (!ObjectUtils.isEmpty(comActActPrizeDOS)) {
            List<ComActActPrizeVO> comActActPrizeVOS=new ArrayList<>();
            List<ComActActPrizeVO> comActActPrizeVOS = new ArrayList<>();
            comActActPrizeDOS.forEach(comActActPrizeDO -> {
                ComActActPrizeVO comActActPrizeVO=new ComActActPrizeVO();
                BeanUtils.copyProperties(comActActPrizeDO,comActActPrizeVO);
                ComActActPrizeVO comActActPrizeVO = new ComActActPrizeVO();
                BeanUtils.copyProperties(comActActPrizeDO, comActActPrizeVO);
                comActActPrizeVOS.add(comActActPrizeVO);
            });
            comActActivityVO.setComActActPrizeVOList(comActActPrizeVOS);
        }
        ActivitySignVO activitySignVO = new ActivitySignVO();
        activitySignVO.setActivityId(id);
        R r = comActActivityService.listActivitySign(activitySignVO);
        if (R.isOk(r)) {
            List<ActivitySignVO> activitySignVOS = JSONArray.parseArray(JSONArray.toJSONString( r.getData()),ActivitySignVO.class);
            if (!ObjectUtils.isEmpty(activitySignVOS)) {
                List<ActivitySignVO> collect = activitySignVOS.stream().filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 1).collect(Collectors.toList());
                if (!ObjectUtils.isEmpty(collect)) {
                    int size = collect.size();
                    if (size>=6) {
                        comActActivityVO.setActivityVolunteerList(collect.subList(0,6));
                    } else {
                        comActActivityVO.setActivityVolunteerList(collect);
                    }
                }
                List<ActivitySignVO> collect1 = activitySignVOS.stream().filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 0).collect(Collectors.toList());
                if (!ObjectUtils.isEmpty(collect1)) {
                    int size = collect1.size();
                    if (size>=6) {
                        comActActivityVO.setActivitySignVOList(collect1.subList(0,6));
                    } else {
                        comActActivityVO.setActivitySignVOList(collect1);
                    }
                }
            }
        }
        comActActivityVO.setIntegral(0);
        return R.ok(comActActivityVO);
    }
    /**
     * 活动报名名单
     *
     * @param activitySignVO 查询参数
     * @return 报名人员集合
     */
    @PostMapping("listactivitysign")
    public R listActivitySign(@RequestBody ActivitySignVO activitySignVO){
    public R listActivitySign(@RequestBody ActivitySignVO activitySignVO) {
        return comActActivityService.listActivitySign(activitySignVO);
    }
    /**
     * 新增社区动态
     *
     * @param comActDynVO 新增信息
     * @return 新增结果
     */
    @PostMapping("adddynamic")
    public R addDynamic(@RequestBody ComActDynVO comActDynVO){
        ComActDynDO comActDynDO=new ComActDynDO();
        BeanUtils.copyProperties(comActDynVO,comActDynDO);
    public R addDynamic(@RequestBody ComActDynVO comActDynVO) {
        ComActDynDO comActDynDO = new ComActDynDO();
        BeanUtils.copyProperties(comActDynVO, comActDynDO);
        boolean save = comActDynService.save(comActDynDO);
        if (save) {
//            最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
            Integer isTopping = comActDynVO.getIsTopping();
            boolean b = isTopping.intValue() == 1;
            if (b) {
                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda().eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId,comActDynVO.getCommunityId()));
                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda().eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId, comActDynVO.getCommunityId()));
                if (!ObjectUtils.isEmpty(list)) {
                    int size = list.size();
                    if (size==4) {
                    if (size == 4) {
                        List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getCreateAt)).collect(Collectors.toList());
                        ComActDynDO comActDynDO1 = collect.get(0);
                        comActDynDO1.setIsTopping(0);
@@ -224,24 +319,25 @@
    /**
     * 编辑社区动态
     *
     * @param comActDynVO 编辑内容
     * @return 编辑结果
     */
    @PostMapping("putdynamic")
    public R putDynamic(@RequestBody ComActDynVO comActDynVO){
        ComActDynDO comActDynDO=new ComActDynDO();
        BeanUtils.copyProperties(comActDynVO,comActDynDO);
    public R putDynamic(@RequestBody ComActDynVO comActDynVO) {
        ComActDynDO comActDynDO = new ComActDynDO();
        BeanUtils.copyProperties(comActDynVO, comActDynDO);
        boolean update = comActDynService.updateById(comActDynDO);
        if (update) {
//            最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
            Integer isTopping = comActDynVO.getIsTopping();
            boolean b = isTopping.intValue() == 1;
            if (b) {
                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda().eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId,comActDynVO.getCommunityId()));
                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda().eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId, comActDynVO.getCommunityId()));
                if (!ObjectUtils.isEmpty(list)) {
                    int size = list.size();
                    if (size==4) {
                        List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getCreateAt)).collect(Collectors.toList());
                    if (size == 4) {
                        List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getUpdateAt)).collect(Collectors.toList());
                        ComActDynDO comActDynDO1 = collect.get(0);
                        comActDynDO1.setIsTopping(0);
                        boolean updateById = comActDynService.updateById(comActDynDO1);
@@ -258,11 +354,12 @@
    /**
     * 删除社区动态
     *
     * @param comActDynVO 动态id
     * @return 删除结果
     */
    @PostMapping("deletedynamic")
    public R deleteDynamic(@RequestBody ComActDynVO comActDynVO){
    public R deleteDynamic(@RequestBody ComActDynVO comActDynVO) {
        boolean b = comActDynService.removeById(comActDynVO.getId());
        if (b) {
            return R.ok();
@@ -272,74 +369,777 @@
    /**
     * 分页查询社区动态
     *
     * @param comActDynVO 查询参数
     * @return 动态集合
     */
    @PostMapping("pagedynamic")
    public R pageDynamic(@RequestBody ComActDynVO comActDynVO){
    public R pageDynamic(@RequestBody ComActDynVO comActDynVO) {
        return comActDynService.pageDynamic(comActDynVO);
    }
    /**
     * 社区动态详情
     *
     * @param id 动态id
     * @return 详情
     */
    @PostMapping("detaildynamic")
    public R detailDynamic(@RequestParam("id") String id){
    public R detailDynamic(@RequestParam("id") Long id) {
        return comActDynService.detailDynamic(id);
    }
    /**
     * 分页查询随手拍
     *
     * @param comActEasyPhotoVO 查询参数
     * @return 心愿列表
     */
    @PostMapping("pageeasyphoto")
    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO){
    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
        return comActEasyPhotoService.pageEasyPhoto(comActEasyPhotoVO);
    }
    /**
     * 随手拍详情
     * @param id 随手拍主键
     *
     * @param id     随手拍主键
     * @param userId 登录用户
     * @return 详情内容
     */
    @PostMapping("detaileasyphoto")
    public R detailEasyPhoto(@RequestParam("id")Long id){
        return comActEasyPhotoService.detailEasyPhoto(id);
    public R detailEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
        return comActEasyPhotoService.detailEasyPhoto(id, userId);
    }
    /**
     * 分页查询微心愿
     *
     * @param comActMicroWishVO 查询参数
     * @return 分页集合
     */
    @PostMapping("pagemicrowish")
    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO){
    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
        return comActMicroWishService.pageMicroWish(comActMicroWishVO);
    }
    /**
     * 心愿详情
     * @param id 查询主键
     *
     * @param id     查询主键
     * @param userId 登录用户id
     * @return 心愿内容
     */
    @PostMapping("detailmicrowish")
    public R detailMicroWish(@RequestParam("id")Long id){
        return comActMicroWishService.detailMicroWish(id);
    public R detailMicroWish(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
        return comActMicroWishService.detailMicroWish(id, userId);
    }
    /**
     * 审核、分配、反馈心愿
     *
     * @param comActMicroWishVO 具体操作
     * @return 操作结果
     */
    @PostMapping("putlmicrowish")
    public R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO){
        R r = comActMicroWishService.putlMicroWish(comActMicroWishVO);
    public R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
        return comActMicroWishService.putlMicroWish(comActMicroWishVO);
    }
    /**
     * 分页展示我的所有活动 时间倒序排列
     *
     * @param comActActivityVO 分页参数
     * @return 分页集合
     */
    @PostMapping("pagemyactivity")
    public R pageMyActivity(@RequestBody ComActActivityVO comActActivityVO) {
        return comActActivityService.pageMyActivity(comActActivityVO);
    }
    /**
     * 报名/取消报名社区活动
     *
     * @param signactivityVO 报名参数
     * @return 报名 取消报名 结果
     */
    @PostMapping("signactivity")
    public R signActivity(@RequestBody SignactivityVO signactivityVO) {
        return comActActivityService.signActivity(signactivityVO);
    }
    /**
     * 上传随手拍
     *
     * @param comActEasyPhotoVO 上传数据
     * @return 上传结果
     */
    @PostMapping("addeasyphoto")
    public R addEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
        return comActEasyPhotoService.addEasyPhoto(comActEasyPhotoVO);
    }
    /**
     * 发布微心愿
     *
     * @param comActMicroWishVO 发布内容
     * @return 发布结果
     */
    @PostMapping("addmicrowish")
    public R addMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
        ComActMicroWishDO comActMicroWishDO = new ComActMicroWishDO();
        BeanUtils.copyProperties(comActMicroWishVO, comActMicroWishDO);
        boolean save = comActMicroWishService.save(comActMicroWishDO);
        if (save) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 点赞/取消点赞随手拍
     *
     * @param comActEasyPhotoVO 操作参数
     * @return 操作结果
     */
    @PostMapping("puteasyphoto")
    public R putEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
        return comActEasyPhotoService.putEasyPhoto(comActEasyPhotoVO);
    }
    /**
     * 点赞/取消点赞微心愿
     *
     * @param comActMicroWishVO 操作参数
     * @return 操作结果
     */
    @PostMapping("putmicrowish")
    public R putMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
        return comActMicroWishService.comActMicroWishVO(comActMicroWishVO);
    }
    /**
     * 新增社区动态浏览记录
     *
     * @param id     动态主键
     * @param userId 登录用户id
     * @return 新增结果
     */
    @PostMapping("adddynamicuser")
    public R addDynamicUser(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
        return comActDynService.addDynamicUser(id, userId);
    }
    /**
     * 审核反馈随手拍
     *
     * @param comActEasyPhotoVO 操作参数
     * @return 操作结果
     */
    @PostMapping("puteasyphotostatus")
    public R putEasypHotoStatus(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
        return comActEasyPhotoService.putEasypHotoStatus(comActEasyPhotoVO);
    }
    /**
     * 新增社区
     *
     * @param comActVO 社区信息
     * @return 新增结果
     */
    @PostMapping("addcommunity")
    R addCommunity(@RequestBody ComActVO comActVO) {
        return comActService.addCommunity(comActVO);
    }
    /**
     * 编辑社区
     *
     * @param comActVO 编辑内容
     * @return 编辑结果
     */
    @PutMapping("putCommunity")
    public R putCommunity(@RequestBody ComActVO comActVO) {
        return comActService.putCommunity(comActVO);
    }
    /**
     * 房屋信息
     *
     * @param userId 用户id
     * @return 房屋信息
     */
    @PostMapping("detailhouse")
    public R detailHouse(@RequestParam("userId") Long userId) {
        return comMngStructHouseService.detailHouse(userId);
    }
    /**
     * 新增小区
     *
     * @param comMngStructAreaVO 小区信息
     * @return 新增结果
     */
    @PostMapping("addarea")
    R addArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
        R r = comMngStructAreaService.addArea(comMngStructAreaVO);
        if (R.isOk(r)) {
            String areaCode = String.valueOf(r.getData()) ;
            comMngStructAreaVO.setAreaCode(areaCode);
            R r1 = comMngStructHouseService.addHouseArea(comMngStructAreaVO);
            return r1;
        }
        return r;
    }
    /**
     * 分页查询小区
     *
     * @param comMngStructAreaVO 查询参数
     * @return 分页结果
     */
    @PostMapping("pagearea")
    public R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
        return comMngStructAreaService.pageArea(comMngStructAreaVO);
    }
    /**
     * 编辑小区
     *
     * @param comMngStructAreaVO 编辑内容
     * @return 编辑结果
     */
    @PostMapping("putarea")
    public R putArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
        return comMngStructAreaService.putArea(comMngStructAreaVO);
    }
    /**
     * 删除小区
     *
     * @param comMngStructAreaVO 地址编码
     * @return 删除结果
     */
    @PostMapping("deletearea")
    @Transactional(rollbackFor = Exception.class)
    public R deleteArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
//        先删除小区小面所有房屋、删除用户和小区房屋的绑定关系
        R r = comMngStructHouseService.batchDeleteHouse(comMngStructAreaVO);
        if (R.isOk(r)) {
            R r1 = comMngStructAreaService.deleteArea(comMngStructAreaVO);
            if (!R.isOk(r1)) {
                throw new RuntimeException("删除小区失败");
            }
        }
        return r;
    }
    /**
     * 小区批量建房
     *
     * @param batchhouseVO 建房参数
     * @return 建房结果
     */
    @PostMapping("batchhouse")
    public R batchHouse(@RequestBody BatchhouseVO batchhouseVO) {
        R r = comMngStructHouseService.batchHouse(batchhouseVO);
        if (R.isOk(r)) {
            String areaCode = batchhouseVO.getAreaCode();
            String ruleDoor = batchhouseVO.getRuleDoor();
            String ruleConnector = batchhouseVO.getRuleConnector();
            String ruleFloor = batchhouseVO.getRuleFloor();
            ComMngStructAreaVO comMngStructAreaVO=new ComMngStructAreaVO();
            comMngStructAreaVO.setRoleDoor(ruleDoor);
            comMngStructAreaVO.setRoleFloor(ruleFloor);
            comMngStructAreaVO.setRoleConnector(ruleConnector);
            comMngStructAreaVO.setAreaCode(areaCode);
            comMngStructAreaVO.setCommunityId(null);
            comMngStructAreaVO.setIsAccumulation(null);
            comMngStructAreaService.putArea(comMngStructAreaVO);
        }
        return r;
    }
    /**
     * 展示下级建筑
     *
     * @param houseCode 房屋编号
     * @return 下级建筑列表
     */
    @PostMapping("listsubordinatebuilding")
    public R listSubordinatebuilding(@RequestParam("houseCode") String houseCode) {
        return comMngStructHouseService.listSubordinatebuilding(houseCode);
    }
    /**
     * 添加同级地址
     *
     * @param batchhouseVO 添加地址
     * @return 添加结果
     */
    @PostMapping("addhouse")
    public R addHouse(@RequestBody BatchhouseVO batchhouseVO) {
        R r=comMngStructAreaService.selectAreaByAreaCode(batchhouseVO.getAreaCode());
        if (R.isOk(r)) {
            ComMngStructAreaDO comMngStructAreaDO = (ComMngStructAreaDO)r.getData();
            try {
                R   r1 = comMngStructHouseService.addHouse(batchhouseVO, comMngStructAreaDO);
                return r1;
            } catch (Exception e) {
                if (e.getMessage().contains("unique_house_name")) {
                    return R.fail("房屋地址重复");
                }else {
                    log.error("添加同级地址失败【{}】",e.getMessage());
                    return R.fail("添加房屋失败");
                }
            }
        }
        return r;
    }
    /**
     * 编辑地址
     *
     * @param comMngStructHouseVO 编辑内容
     * @return 编辑结果
     */
    @PutMapping("puthouse")
    public R putHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
        return comMngStructHouseService.putHouse(comMngStructHouseVO);
    }
    /**
     * 删除地址
     *
     * @param comMngStructHouseVO 删除指定地址和所有下级
     * @return 删除结果
     */
    @PostMapping("deletehouse")
    public R deleteHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
        return comMngStructHouseService.deleteHouse(comMngStructHouseVO);
    }
    /**
     * 新增其他建筑
     *
     * @param comMngStructOtherBuildVO 建筑参数
     * @return 新增结果
     */
    @PostMapping("addotherbuild")
    public R addOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
        return comMngStructOtherBuildService.addOtherbuild(comMngStructOtherBuildVO);
    }
    /**
     * 查询所有建筑类型
     * @return 类型列表
     */
    @PostMapping("listbuildtype")
    public R listBuildType(){
        return comMngStructOtherBuildService.listBuildType();
    }
    /**
     * 分页查询 其他建筑
     * @param comMngStructOtherBuildVO 分页查询参数
     * @return 查询结果
     */
    @PostMapping("pageotherbuild")
    public R pageOtherBuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO){
        return comMngStructOtherBuildService.pageOtherBuild(comMngStructOtherBuildVO);
    }
    /**
     * 增加志愿者
     * @param comMngVolunteerMngVO 志愿者信息
     * @return 增加结果
     */
    @PostMapping("addvolunteer")
    R addVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
        return comMngVolunteerMngService.addVolunteer(comMngVolunteerMngVO);
    }
    /**
     * 删除志愿者
     * @param comMngVolunteerMngVO 手机号
     * @return 删除结果
     */
    @PostMapping("deletevolunteer")
    public R deleteVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
        return comMngVolunteerMngService.deleteVolunteer(comMngVolunteerMngVO);
    }
    /**
     * 编辑志愿者
     * @param comMngVolunteerMngVO 编辑内容
     * @return 编辑结果
     */
    @PostMapping("putvolunteer")
    R putVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
        return comMngVolunteerMngService.putVolunteer(comMngVolunteerMngVO);
    }
    /**
     * 分页展示志愿者
     * @param comMngVolunteerMngVO 查询参数
     * @return 分页集合返回
     */
    @PostMapping("pagevolunteer")
    public R pageVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
        return comMngVolunteerMngService.pageVolunteer(comMngVolunteerMngVO);
    }
    /**
     * 分页展示志愿者审核
     * @param comMngVolunteerMngVO 查询参数
     * @return 查询结果
     */
    @PostMapping("pagevolunteerexamine")
    public R pageVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
        return comMngVolunteerMngService.pageVolunteerExamine(comMngVolunteerMngVO);
    }
    /**
     * 志愿者审核详情
     * @param id 主键
     * @return 详情
     */
    @PostMapping("detailvolunteerexamine")
    public R detailVolunteerExamine(@RequestParam("id") Long id){
        return comMngVolunteerMngService.detailVolunteerExamine(id);
    }
    /**
     * 志愿者审核
     * @param comMngVolunteerMngVO 审核操作
     * @return 审核结果
     */
    @PostMapping("putvolunteerexamine")
    public R putVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
        return comMngVolunteerMngService.putVolunteerExamine(comMngVolunteerMngVO);
    }
    /**
     * 删除志愿者审核
     * @param comMngVolunteerMngVO 主键
     * @return 删除结果
     */
    @PostMapping("deletevolunteerexamine")
    public R deleteVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
        return comMngVolunteerMngService.deleteVolunteerExamine(comMngVolunteerMngVO);
    }
    /**
     * 查询区域
     * @param comActVO 登录人的经纬度、或者指定区域的社区
     * @return 社区集合
     */
    @PostMapping("listcommunity")
    public R listCommunity(@RequestBody ComActVO comActVO){
        return comActService.listCommunity(comActVO);
    }
    /**
     * 用户修改手机号对应的志愿者手机号也要修改
     * @param userPhoneVO 新旧手机号
     * @return 修改结果
     */
    @PostMapping("putvolunteerphone")
    public R putVolunteerPhone(@RequestBody UserPhoneVO userPhoneVO){
        return comMngVolunteerMngService.putVolunteerPhone(userPhoneVO);
    }
    /**
     * 房屋地址下拉列表
     * @param parentCode 父级编码
     * @param areaId 小区id
     * @return 下级列表
     */
    @PostMapping("listhouses")
    public R listHouses(@RequestParam("parentCode")String parentCode, @RequestParam("areaId")Long areaId){
        if (ObjectUtils.isEmpty(parentCode)) {
            R r = comMngStructAreaService.selectAreaById(areaId);
            if (R.isOk(r)) {
                parentCode =String.valueOf(r.getData()) ;
            }else{
                return R.fail("用户没有绑定小区");
            }
        }
        return comMngStructHouseService.putVolunteerPhone(parentCode);
    }
    /**
     * 新增房屋
     * @param comMngStructHouseVO 房屋信息
     * @return 新增结果
     */
    @PostMapping("addhouses")
    public R addHouses(@RequestBody ComMngStructHouseVO comMngStructHouseVO){
        R r = comMngStructAreaService.selectAreaById(comMngStructHouseVO.getAreaId());
        if (!R.isOk(r)) {
            return R.fail("用户没有绑定小区");
        }
        String data = String.valueOf(r.getData());
        comMngStructHouseVO.setAreaCode(data);
        return comMngStructHouseService.addHouses(comMngStructHouseVO);
    }
    /**
     * 查询小区
     * @param communityId 社区id
     * @return 小区集合
     */
    @PostMapping("listarea")
    public R listArea(@RequestParam("communityId")Long  communityId){
        return comMngStructAreaService.listArea(communityId);
    }
    /**
     * 用户参加的所有社区活动
     * @param userId 用户id
     * @return 活动列表
     */
    @PostMapping("listactivity")
    public R listActivity(@RequestParam("userId")Long  userId ){
        return comActActivityService.listActivity(userId);
    }
    /**
     * 用户确认心愿
     * @param comActMicroWishVO 用户评价
     * @return 确认结果
     */
    @PostMapping("putmicrowishconfirm")
    R putMicroWishConfirm(@RequestBody ComActMicroWishVO comActMicroWishVO){
        return comActMicroWishService.putMicroWishConfirm(comActMicroWishVO);
    }
    /**
     * 建筑类型
     * @param communityId 社区id
     * @return 建筑集合
     */
    @PostMapping("listcommngstructbuildtype")
    public R listComMngStructBuildType(@RequestParam("communityId") Long communityId){
        return comMngStructOtherBuildService.listComMngStructBuildType(communityId);
    }
    /**
     * 增加删除建筑类型
     * @param systemmanagementConfigVO 操作内容
     * @return  操作结果
     */
    @PostMapping("putcommngstructbuildtype")
    public R putComMngStructBuildType(@RequestBody SystemmanagementConfigVO systemmanagementConfigVO){
        try {
            R r=comMngStructOtherBuildService.putComMngStructBuildType(systemmanagementConfigVO);
        } catch (ServiceException e) {
            return R.fail(e.getMessage());
        }
        return R.ok();
    }
    /**
     * 社区详情
     * @param communityId 社区id
     * @return 社区详情
     */
    @PostMapping("detailcommunity")
    public R detailCommunity(@RequestParam("communityId") Long communityId){
        return comActService.detailCommunity(communityId);
    }
    /**
     * 小区详情
     * @param areaId 小区id
     * @return 小区信息
     */
    @PostMapping("detailarea")
    public R detailArea(@RequestParam("areaId")Long areaId){
        return comMngStructAreaService.detailArea(areaId);
    }
    /**
     * 分页查询社区
     * @param pageComActDTO 查询参数
     * @return 分页集合
     */
    @PostMapping("pagecommunity")
    public R pageCommunity(@RequestBody PageComActDTO pageComActDTO){
        return comActService.pageCommunity(pageComActDTO);
    }
    /**
     * 志愿者详情
     * @param id 主键
     * @return 志愿者
     */
    @PostMapping("detailvolunteer")
    public R detailVolunteer(@RequestParam("id") Long id){
        R r = comMngVolunteerMngService.detailVolunteer(id);
        if (R.isOk(r)) {
            ComMngVolunteerMngAppletsVO comMngVolunteerMngAppletsVO =(ComMngVolunteerMngAppletsVO) r.getData();
            String phone = comMngVolunteerMngAppletsVO.getPhone();
            List<ComActActivityVO> comActActivityVOS= comActActivityService.listActivityByPhone(phone);
            comMngVolunteerMngAppletsVO.setComActActivityVOList(comActActivityVOS);
            r.setData(comMngVolunteerMngAppletsVO);
        }
        return r;
    }
    /**
     * 查询平台所有的社区
     * @return 社区集合 按照创建顺序倒序排列
     */
    @PostMapping("listcommunityall")
    public R listCommunityAll(){
        return comActService.listCommunityAll();
    }
    /**
     * 社区管理后台数据看板 代办事件
     * @param communityId 社区id
     * @param userId 登录用户信息
     * @return 代办事件列表
     */
    @PostMapping("indexdatacommunitybackstage")
    public R indexDataCommunityBackstage(@RequestParam("communityId") Long communityId, @RequestParam("userId")Long userId){
        List<TodoEventsVO> todoEventsVOS=new ArrayList<>();
        List<TodoEventsVO> todoEventsVOS1=comActEasyPhotoService.selectNeedToDo(communityId,userId);
        List<TodoEventsVO> todoEventsVOS2=comActMicroWishService.selectNeedToDo(communityId,userId);
        List<TodoEventsVO> todoEventsVOS3=comMngVolunteerMngService.selectNeedToDo(communityId,userId);
        if (!ObjectUtils.isEmpty(todoEventsVOS1)) {
            todoEventsVOS.addAll(todoEventsVOS1);
        }
        if (!ObjectUtils.isEmpty(todoEventsVOS2)) {
            todoEventsVOS.addAll(todoEventsVOS2);
        }
        if (!ObjectUtils.isEmpty(todoEventsVOS3)) {
            todoEventsVOS.addAll(todoEventsVOS3);
        }
        return R.ok(todoEventsVOS);
    }
    /**
     * 删除社区
     * @param communityId 社区id
     * @return 删除结果
     */
    @PostMapping("delectcommunity")
    public R delectCommunity(@RequestParam("communityId") Long communityId){
        return comActService.delectCommunity(communityId);
    }
    /**
     * 定时任务刷新社区动态置顶状态
     * @return 刷新结果
     */
    @PostMapping("timedtaskdynistopping")
    public R timedTaskDynIstopping(){
        return comActDynService.timedTaskDynIstopping();
    }
    /**
     * 定时任务刷新社区动态发布状态
     * @return
     */
    @PostMapping("timedtaskdynstatus")
    public R timedTaskDynStatus(){
        return comActDynService.timedTaskDynStatus();
    }
    /**
     * 定时任务查询所有要取消的社区活动
     * @return  社区活动集合
     */
    @PostMapping("timedtaskactactivity")
    public R timedTaskActActivity(){
        return comActActivityService.timedTaskActActivity();
    }
    /**
     * 定时任务刷新社区活动的各个状态 除取消外
     * @return 更新结果
     */
    @PostMapping("timedtaskactactivityall")
    R timedTaskActActivityAll(){
        return comActActivityService.timedTaskActActivityAll();
    }
    /**
     * 其他建筑详情
     * @param id 主键id
     * @return 建筑内容
     */
    @PostMapping("detailotherbuild")
    public R detailOtherbuild(@RequestParam("id")Long id){
        return comMngStructOtherBuildService.detailOtherbuild(id);
    }
    /**
     * 编辑其他建筑
     * @param comMngStructOtherBuildVO 编辑内容
     * @return 编辑结果
     */
    @PostMapping("putotherbuild")
    public R putOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO){
        return comMngStructOtherBuildService.putOtherbuild(comMngStructOtherBuildVO);
    }
    /**
     * 删除其他建筑
     * @param id 主键
     * @return 删除结果
     */
    @PostMapping("deleteotherbuild")
    public R deleteOtherbuild(@RequestParam("id")Long id){
        return comMngStructOtherBuildService.deleteOtherbuild(id);
    }
    /**
     * 小程序分页查询随手拍
     * @param comActEasyPhotoVO 查询参数
     * @return 返回结果
     */
    @PostMapping("pageeasyphotoapplets")
    public R pageEasyPhotoApplets(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO){
        return comActEasyPhotoService.pageEasyPhotoApplets(comActEasyPhotoVO);
    }
    /**
     * 随手拍评论分页查询
     * @param pageComActEasyPhotoCommentDTO 查询参数
     * @return 查询结果
     */
    @PostMapping("pagecomacteasyphotocomment")
    public R pageComActEasyPhotoComment(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO){
        return comActEasyPhotoService.pageComActEasyPhotoComment(pageComActEasyPhotoCommentDTO);
    }
    /**
     * 评论点赞/取消点赞
     * @param comActEasyPhotoCommentUserDTO 操作
     * @return 操作结果
     */
    @PostMapping("commentsign")
    public R commentSign(@RequestBody ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO){
        return comActEasyPhotoService.commentSign(comActEasyPhotoCommentUserDTO);
    }
    /**
     * 随手拍--评论--新增评论
     * @param comActEasyPhotoCommentDTO 新增内容
     * @return 新增结果
     */
    @PostMapping("addcomacteasyphotocomment")
    public R addComActEasyPhotoComment(@RequestBody ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO){
        return comActEasyPhotoService.addComActEasyPhotoComment(comActEasyPhotoCommentDTO);
    }
}