yanghui
2022-11-29 3da01b2a6cf247f90aed86fc37d8cb0ab51a4b4c
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -2,30 +2,29 @@
import static java.util.stream.Collectors.toList;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import javax.annotation.Resource;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.ActivityInviteDTO;
import com.panzhihua.common.model.dtos.community.PageActivityInviteDTO;
import com.panzhihua.common.model.dtos.property.CommonPage;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.community.ComActActivityTypeVO;
import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerExcelVO;
import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
import com.panzhihua.service_community.dao.ComActActEvaluateDAO;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.*;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
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 org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -103,7 +102,7 @@
@Slf4j
@RestController
@RequestMapping("/")
public class CommunityApi {
public class CommunityApi extends BaseController {
    @Resource
    public ComMngPopulationDAO comMngPopulationDAO;
    @Resource
@@ -152,6 +151,12 @@
    private ComActMicroWishOperationRecordService wishOperationRecordService;
    @Resource
    private ComActActEvaluateDAO comActActEvaluateDAO;
    @Resource
    private ComActActivityInviteService comActActivityInviteService;
    @Resource
    private RabbitTemplate rabbitTemplate;
    @Resource
    private AutomessageSysUserService automessageSysUserService;
    /**
     * 新增社区活动
@@ -277,11 +282,13 @@
                        });
                    }
                    comActActivityVO1.setComActActPrizeVOList(comActActPrizeVOList);
                    Integer participantMax = comActActivityVO1.getParticipantMax();
                    if (participantMax.intValue() == 0) {
                        comActActivityVO1.setType(1);
                    } else {
                        comActActivityVO1.setType(2);
                    Integer volunteerMax = comActActivityVO1.getVolunteerMax();
                    if(comActActivityVO1.getType()==null){
                        if (volunteerMax.intValue() != 0) {
                            comActActivityVO1.setType(1);
                        } else {
                            comActActivityVO1.setType(2);
                        }
                    }
                    fillActivitySignList(id, comActActivityVO1);
                });
@@ -294,7 +301,7 @@
    /**
     * 社区后台分页查询社区活动
     *
     *
     * @param comActActivityVO
     *            查询参数
     * @return 返回结果
@@ -356,11 +363,29 @@
            });
            comActActivityVO.setComActActPrizeVOList(comActActPrizeVOS);
        }
        //
        //活动评价
        IPage<ComActActEvaluateVO> comActActEvaluatePage = comActActEvaluateDAO.getEvaluateListPage(new Page(pageNum,pageSize),id);
        comActActivityVO.setComActActEvaluateVOList(comActActEvaluatePage.getRecords());
        //活动评价总数
        comActActivityVO.setEvaluateAmount(comActActEvaluatePage.getTotal());
        List<ComActActEvaluateDO> comActActEvaluateList = comActActEvaluateDAO
                .selectList(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, id));
        if (comActActEvaluateList != null && comActActEvaluateList.size() > 0) {
            BigDecimal starNum = BigDecimal.ZERO;
            //总星级
            for (ComActActEvaluateDO evaluate:comActActEvaluateList) {
                starNum = starNum.add(BigDecimal.valueOf(evaluate.getStarLevel()==null?0:evaluate.getStarLevel()));
            }
            //评分星级(如果无评分默认5分)=总星级/总评价人数
            if(starNum.compareTo(BigDecimal.ZERO) == 0){
                comActActivityVO.setEvaluateLevel(BigDecimal.valueOf(5));
            }else{
                comActActivityVO.setEvaluateLevel(starNum.divide(BigDecimal.valueOf(comActActEvaluateList.size()),2, RoundingMode.HALF_UP));
            }
        }else{
            comActActivityVO.setEvaluateLevel(BigDecimal.valueOf(5));
        }
        //当前用户对活动的评分
        ComActActEvaluateVO userActEvaluateVO = comActActEvaluateDAO.getEvaluateListByUserId(id,userId);
        if(userActEvaluateVO != null){
@@ -380,6 +405,7 @@
        //活动报名名单
        ActivitySignVO activitySignVO = new ActivitySignVO();
        activitySignVO.setActivityId(activityId);
        activitySignVO.setStatus(1);
        R r = comActActivityService.listActivitySigns(activitySignVO);
        if (R.isOk(r)) {
            List<ActivitySignVO> activitySignVOS =
@@ -391,7 +417,7 @@
                    }
                }
                List<ActivitySignVO> collect = activitySignVOS.stream()
                    .filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 1).collect(toList());
                    .filter(activitySignVO1 -> activitySignVO1.getSignIdentity() == 3).collect(toList());
                if (!ObjectUtils.isEmpty(collect)) {
                    int size = collect.size();
                    if (size >= 6) {
@@ -401,13 +427,23 @@
                    }
                }
                List<ActivitySignVO> collect1 = activitySignVOS.stream()
                    .filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 0).collect(toList());
                    .filter(activitySignVO1 -> activitySignVO1.getSignIdentity() == 1).collect(toList());
                if (!ObjectUtils.isEmpty(collect1)) {
                    int size = collect1.size();
                    if (size >= 6) {
                        comActActivityVO.setActivitySignVOList(collect1.subList(0, 6));
                    } else {
                        comActActivityVO.setActivitySignVOList(collect1);
                    }
                }
                List<ActivitySignVO> collect2 = activitySignVOS.stream()
                        .filter(activitySignVO1 -> activitySignVO1.getSignIdentity() == 2).collect(toList());
                if (!ObjectUtils.isEmpty(collect2)) {
                    int size = collect2.size();
                    if (size >= 6) {
                        comActActivityVO.setActivityPbList(collect2.subList(0, 6));
                    } else {
                        comActActivityVO.setActivityPbList(collect2);
                    }
                }
            }
@@ -604,6 +640,10 @@
        BeanUtils.copyProperties(comActDynVO, comActDynDO);
        boolean save = comActDynService.save(comActDynDO);
        if (save) {
            if(comActDynVO.getCategory()!=null&&comActDynVO.getCategory()==4){
                comActDynVO.setId(comActDynDO.getId());
                rabbitTemplate.convertAndSend("huacheng.acid.message.exchange", "huacheng.acid.message.key", comActDynVO);
            }
            // 最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
            Integer isTopping = comActDynVO.getIsTopping();
            boolean b = isTopping.intValue() == 1;
@@ -767,6 +807,20 @@
    }
    /**
     * 随手拍详情-脱敏
     *
     * @param id
     *            随手拍主键
     * @param userId
     *            登录用户
     * @return 详情内容
     */
    @PostMapping("detaileasyphotodesensitize")
    public R detailEasyPhotoDesensitize(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
        return comActEasyPhotoService.detailEasyPhotoDesensitize(id, userId);
    }
    /**
     * 随手拍详情
     *
     * @param id
@@ -820,6 +874,11 @@
        return comActMicroWishService.pageMicroWishApplets(comActMicroWishVO);
    }
    @PostMapping("pagemicrowish/appletsDesensitize")
    public R pageMicroWishAppletsDesensitize(@RequestBody ComActMicroWishVO comActMicroWishVO) {
        return comActMicroWishService.pageMicroWishAppletsDesensitize(comActMicroWishVO);
    }
    /**
     * 心愿详情
     *
@@ -832,6 +891,19 @@
    @PostMapping("detailmicrowish")
    public R detailMicroWish(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
        return comActMicroWishService.detailMicroWish(id, userId);
    }
    /**
     * 心愿详情 - 脱敏
     *
     * @param id
     *            查询主键
     * @param userId
     *            登录用户id
     * @return 心愿内容
     */
    @PostMapping("detailmicrowishdesensitize")
    public R detailMicroWishDesensitize(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
        return comActMicroWishService.detailMicroWishDesensitize(id, userId);
    }
    /**
@@ -884,7 +956,7 @@
    /**
     * 查询随手拍是否有活动
     *
     *
     * @return 活动详情
     */
    @PostMapping("getEasyPhotoActivity")
@@ -1175,17 +1247,17 @@
    /**
     * 查询所有建筑类型
     *
     *
     * @return 类型列表
     */
    @PostMapping("listbuildtype")
    public R listBuildType() {
        return comMngStructOtherBuildService.listBuildType();
    public R listBuildType(@RequestParam("communityId")Long communityId) {
        return comMngStructOtherBuildService.listBuildType(communityId);
    }
    /**
     * 分页查询 其他建筑
     *
     *
     * @param comMngStructOtherBuildVO
     *            分页查询参数
     * @return 查询结果
@@ -1197,19 +1269,28 @@
    /**
     * 增加志愿者
     *
     *
     * @param comMngVolunteerMngVO
     *            志愿者信息
     * @return 增加结果
     */
    @PostMapping("addvolunteer")
    R addVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
        Long submitUserId = comMngVolunteerMngVO.getSubmitUserId();
        if (Objects.nonNull(submitUserId)) {
            //获取小程序用户信息
            R<LoginUserInfoVO> userInfoR = userService.getUserInfoByUserId(submitUserId.toString());
            LoginUserInfoVO userInfo = userInfoR.getData();
            if (Objects.nonNull(userInfo)) {
                comMngVolunteerMngVO.setIdCard(userInfo.getIdCard());
            }
        }
        return comMngVolunteerMngService.addVolunteer(comMngVolunteerMngVO);
    }
    /**
     * 获取志愿者详情
     *
     *
     * @param id
     * @return
     */
@@ -1386,8 +1467,9 @@
     * @return 活动列表
     */
    @PostMapping("listactivity")
    public R listActivity(@RequestParam("userId") Long userId) {
        return comActActivityService.listActivity(userId);
    public R listActivity(@RequestParam("userId") Long userId,
                          @RequestParam(value = "status", required = false) Integer status,@RequestParam(value = "type", required = false) Integer type) {
        return comActActivityService.listActivity(userId, status,type);
    }
    /**
@@ -1493,8 +1575,8 @@
     * @return 社区集合 按照创建顺序倒序排列
     */
    @PostMapping("listcommunityall")
    public R listCommunityAll() {
        return comActService.listCommunityAll();
    public R listCommunityAll(@RequestParam("areaCode") String areaCode) {
        return comActService.listCommunityAll(areaCode);
    }
    /**
@@ -1639,6 +1721,19 @@
        return comActEasyPhotoService.pageEasyPhotoApplets(comActEasyPhotoVO);
    }
    /**
     * 小程序分页查询随手拍 脱敏
     *
     * @param comActEasyPhotoVO
     *            查询参数
     * @return 返回结果
     */
    @PostMapping("pageeasyphotoappletsdesensitize")
    public R pageEasyPhotoAppletsDesensitize(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
        return comActEasyPhotoService.pageEasyPhotoAppletsDesensitize(comActEasyPhotoVO);
    }
    /**
     * 随手拍评论分页查询
     * 
@@ -1649,6 +1744,18 @@
    @PostMapping("pagecomacteasyphotocomment")
    public R pageComActEasyPhotoComment(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) {
        return comActEasyPhotoService.pageComActEasyPhotoComment(pageComActEasyPhotoCommentDTO);
    }
    /**
     * 随手拍评论分页查询 - 脱敏
     *
     * @param pageComActEasyPhotoCommentDTO
     *            查询参数
     * @return 查询结果
     */
    @PostMapping("pagecomacteasyphotocommentdesensitize")
    public R pageComActEasyPhotoCommentDesensitize(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) {
        return comActEasyPhotoService.pageComActEasyPhotoCommentDesensitize(pageComActEasyPhotoCommentDTO);
    }
    /**
@@ -2218,10 +2325,11 @@
                String openid = map.get("openid");
                try {
                    WxXCXTempSend util = new WxXCXTempSend();
                    String accessToken = util.getAppAccessToken();
                    R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(eldersAuthFeedbackAddDTO.getAreaCode(),5);
                    String accessToken = util.getAccessToken();
                    WxUtil.sendSubscribeRZSH(openid, accessToken, "高龄认证",
                        DateUtils.format(eldersAuthDO.getCreateAt(), DateUtils.ymdhms_format),
                        eldersAuthFeedbackAddDTO.getFeedBack());
                        eldersAuthFeedbackAddDTO.getFeedBack(),sysTemplateConfigVO.getData().getTemplateId());
                } catch (Exception e) {
                    log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage());
                }
@@ -2284,7 +2392,17 @@
     */
    @GetMapping("/eventgrid/community/list")
    public R getCommunityLists() {
        return comActService.getCommunityLists();
        return comActService.getCommunityLists(this.getAppId());
    }
    /**
     * 查询西区社区列表
     *
     * @return 社区列表
     */
    @GetMapping("/eventgrid/community/westList")
    public R getWestCommunityLists(@RequestParam(value = "areaCode",required = false)String areaCode) {
        return comActService.getWestCommunityLists(areaCode);
    }
    /**
@@ -2327,6 +2445,10 @@
        return comActEasyPhotoService.getUserReward(userId, communityId);
    }
    @PostMapping("easyphoto/getUserRewardsNew")
    public R getUserRewardsNew(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId) {
        return comActEasyPhotoService.getUserRewardNew(userId, communityId);
    }
    /**
     * 读取用户随手拍奖励
     * 
@@ -2446,4 +2568,207 @@
    public R wishHandleListAdmin(@RequestParam(value = "communityId") Long communityId,@RequestParam("type") Integer type){
        return R.ok(comActMicroWishService.wishHandleListAdmin(communityId,type));
    }
    /**
     * 社区后台分页查询微心愿
     * @param comActMicroWishVO 请求参数
     * @return  微心愿列表
     */
    @PostMapping("pagemicrowishAdmin")
    public R pageMicroWishAdmin(@RequestBody ComActMicroWishVO comActMicroWishVO) {
        return comActMicroWishService.pageMicroWishAdmin(comActMicroWishVO);
    }
    /**
     * 活动报名签到情况
     * @param id 活动主键id
     * @return
     */
    @GetMapping("activity/sign-in/list")
    public R listSignInRecord(@RequestParam("id") Long id) {
        return comActActivityService.listSignInRecord(id);
    }
    /**
     * 活动签到记录
     * @param id 活动主键
     * @param userId 用户id
     * @return
     */
    @GetMapping("activity/regist/list")
    public R listRegistRecord(@RequestParam("id")  Long id, @RequestParam("userId") Long userId) {
        return comActActivityService.listRegistRecord(id, userId);
    }
    /**
     * 获取活动类型(目前只有志愿者活动需要获取)
     * @param communityId
     * @param type
     * @return
     */
    @GetMapping("activity/type/list")
    public R listActivityType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type) {
        return comActActivityService.listActivityType(communityId, type);
    }
    /**
     * 添加活动类型
     * @param comActActivityTypeVO
     * @return
     */
    @PostMapping("activity/type/add")
    public R addActivityType(@RequestBody ComActActivityTypeVO comActActivityTypeVO) {
        return comActActivityService.addActivityType(comActActivityTypeVO);
    }
    /**
     * 我的评价
     * @param userId
     * @param activityId 活动id
     * @return
     */
    @GetMapping("activity/my-evaluate")
    public R listMyActivityEvaluate(@RequestParam("userId") Long userId, @RequestParam("activityId") Long activityId) {
        return comActActEvaluateService.listMyActivityEvaluate(userId, activityId);
    }
    /**
     * 志愿者导入
     *
     * @param list        志愿者数据列表
     * @param communityId 社区id
     * @param userId      用户id
     * @return 导入结果
     */
    @PostMapping("/volunteer/import/admin")
    public R importVolunteerAdmin(@RequestBody List<ComMngVolunteerExcelVO> list,
                                  @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
        return comMngVolunteerMngService.importVolunteerAdmin(list,communityId,userId);
    }
    /**
     * [方法描述] 根据社区ID查询所属城市所在区区域代码,
     *
     * @param communityId
     *            社区ID
     * @return String 区域code
     * @author manailin
     * @date 2022/2/17 10:09
     */
    @GetMapping("act/getActBelongRegionCode")
    public String getActBelongRegionCode(@RequestParam("communityId") Long communityId) {
        return comActActivityService.getActBelongRegionCode(communityId);
    }
    /**
     * 党员活动统计
     * @param communityId
     * @param year
     * @return
     */
    @GetMapping("activity/partyMemberCount")
    public R partyMemberCount(@RequestParam("communityId")Long communityId,@RequestParam("year")String year){
        return comActActivityService.partyMemberCount(communityId,year);
    }
    /**
     * 党员活动详情数据
     * @return
     */
    @PostMapping("activity/partyMemberDetail")
    public R partyMemberDetail(@RequestBody CommonPage commonPage){
        return comActActivityService.partyMemberDetail(commonPage);
    }
    /**
     * 导出党员活动详情数据
     * @return
     */
    @PostMapping("activity/exportPartyMemberDetail")
    public R exportPartyMemberDetail(@RequestBody CommonPage commonPage){
        return comActActivityService.exportPartyMemberDetail(commonPage);
    }
    /**
     * 批量删除活动
     * @param ids
     * @return
     */
    @PostMapping("batchDel")
    public R deleteActivities(@RequestBody List<Long> ids) {
        return R.ok(comActActivityService.removeByIds(ids));
    }
    /**
     * 获取人大代表反馈记录
     * @param id
     * @return
     */
    @GetMapping("dpc/feedback")
    public R getFeedbackList(@RequestParam("id") Long id) {
        return comActEasyPhotoService.getFeedbackList(id);
    }
    /**
     * 人大代表反馈随手拍
     * @param comActEasyPhotoVO
     * @return
     */
    @PostMapping("dpc/feedback")
    public R addEasyPhotoFeedbackForDpc(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
        return comActEasyPhotoService.addEasyPhotoFeedbackForDpc(comActEasyPhotoVO);
    }
    /**
     * 活动邀请列表
     * @param pageActivityInviteDTO
     * @return
     */
    @PostMapping("activity/invite/list")
    public R pageActivityInviteList(@RequestBody PageActivityInviteDTO pageActivityInviteDTO) {
        return comActActivityInviteService.pageActivityInviteList(pageActivityInviteDTO);
    }
    /**
     * 添加邀请人员
     * @param list
     * @return
     */
    @PostMapping("activity/invite/add")
    public R activityInviteAdd(@RequestBody List<ActivityInviteDTO> list) {
        return comActActivityInviteService.activityInviteAdd(list);
    }
    /**
     * 删除邀请人员
     * @param id
     * @return
     */
    @DeleteMapping("activity/invite/delete")
    public R activityInviteDelete(@RequestParam("id") Long id) {
        return comActActivityInviteService.activityInviteDelete(id);
    }
    /**
     * 根据id查询重复的社区id集合
     * @param id
     * @return
     */
    @GetMapping("selectCommunityIds")
    public R selectCommunityIds(@RequestParam("id") Long id){
        return comActService.selectIds(id);
    }
    /**
     * 通过id查询用户
     * @param id
     * @return
     */
    @GetMapping("selectAutomessageSysUserById")
    public R selectAutomessageSysUserById(@RequestParam("id") Long id){
        return automessageSysUserService.selectAutomessageSysUserById(id);
    }
}