puhanshu
2021-09-18 1e3b97098151f2d0471de6e8103b6cdaa6b5099d
Merge branch 'test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into auth

 Conflicts:
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml
11个文件已添加
65个文件已修改
3746 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussDetailDTO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussPublishResultDTO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionUserVO.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordExcleVO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java 131 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java 179 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java 154 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java 984 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideClassifyServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentUserDOMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml 260 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionDOMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussUserDOMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/DiscussJobHandler.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
@@ -108,7 +108,7 @@
        if (loginUserInfo != null) {
            userId = loginUserInfo.getUserId();
        }
        return communityService.detailActivity(id, userId);
        return communityService.detailActivity(id, userId,null,null);
    }
    @ApiOperation(value = "分页查询活动评价记录", response = ComActActEvaluateVO.class)
@@ -144,7 +144,7 @@
        signactivityVO.setUserId(userId);
        R r = communityService.signActivity(signactivityVO);
        if (R.isOk(r) && signactivityVO.getType().intValue() == 1) {
            R r2 = communityService.detailActivity(activityId, userId);
            R r2 = communityService.detailActivity(activityId, userId,null,null);
            ComActActivityVO comActActivityVO =
                JSONObject.parseObject(JSONObject.toJSONString(r2.getData()), ComActActivityVO.class);
            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java
@@ -1,27 +1,48 @@
package com.panzhihua.applets.api;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import javax.annotation.Resource;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import com.panzhihua.common.model.dtos.community.DiscussVoteOptionDTO;
import com.panzhihua.common.validated.PutGroup;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
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 com.panzhihua.applets.weixin.CheckService;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.dtos.community.ComActDiscussCommentDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussCommentUserDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussOptionDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussOptionUserDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussUserDTO;
import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO;
import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO;
import com.panzhihua.common.model.vos.community.ComActDiscussVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.validated.AddGroup;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
/**
@@ -58,6 +79,11 @@
            if (ObjectUtils.isEmpty(discussOptions)) {
                return R.fail("选项不能为空");
            }
            if (discussOptions.size() < 2) {
                return R.fail("请至少设置两个投票选项");
            }
            //设置投票开始时间 nowDate
            comActDiscussDTO.setStartTime(DateUtils.format(new Date(), DateUtils.ymdhms_format));
        }
        String address = comActDiscussDTO.getAddress();
        if (ObjectUtils.isEmpty(address)) {
@@ -70,12 +96,17 @@
        Long communityId = loginUserInfo.getCommunityId();
        comActDiscussDTO.setUserId(userId);
        comActDiscussDTO.setCommunityId(communityId);
        comActDiscussDTO.setIsApplets(true);
        comActDiscussDTO.setLoginUserInfo(loginUserInfo);
        return communityService.addDiscuss(comActDiscussDTO);
    }
    @ApiOperation(value = "一起议-分页查询", response = ComActDiscussVO.class)
    @PostMapping("pagediscuss")
    public R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
        if (Objects.isNull(pageComActDiscussDTO.getType())) {
            return R.fail("查询类型不能为空");
        }
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
        if (loginUserInfo != null) {
            pageComActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
@@ -168,21 +199,37 @@
    }
    @ApiOperation(value = "一起议-投票")
    @GetMapping("discussoptionuser")
    @ApiImplicitParam(name = "id", value = "一起议选项主键", required = true)
    public R addDiscussOptionUser(@RequestParam("id") Long id) {
        if (null == id || 0 == id) {
    @PostMapping("discussoptionuser")
    public R addDiscussOptionUser(@RequestBody @Valid DiscussVoteOptionDTO discussVoteOptionDTO) {
        List<Long> optionIds = discussVoteOptionDTO.getOptionIds();
        if (optionIds.isEmpty()) {
            return R.fail("选项主键不能为空");
        }
        ComActDiscussOptionUserDTO comActDiscussOptionUserDTO = new ComActDiscussOptionUserDTO();
        comActDiscussOptionUserDTO.setDiscussOptionId(id);
        comActDiscussOptionUserDTO.setDiscussOptionIds(optionIds);
        comActDiscussOptionUserDTO.setUserId(this.getUserId());
        // 议事投票计算积分
        AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(id,
            AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
        integralUserDTO.setIsComment(2);
        communityService.addIntegralTradeAdmin(integralUserDTO);
        optionIds.forEach(optionId -> {
            // 议事投票计算积分
            AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(optionId,
                    AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
            integralUserDTO.setIsComment(2);
            communityService.addIntegralTradeAdmin(integralUserDTO);
        });
        return communityService.addDiscussOptionUser(comActDiscussOptionUserDTO);
    }
    @ApiOperation(value = "一起议-增加浏览量")
    @PostMapping("discuss/increase-view-num")
    public void increaseViewNum(@RequestParam("discussId")
                             @ApiParam(value = "一起议主键id", required = true)
                             Long discussId) {
        communityService.increaseViewNum(discussId);
    }
    @ApiOperation(value = "一起议-公布/编辑投票结果")
    @PostMapping("discuss/edit-result")
    public R editDiscussResult(@RequestBody @Validated(PutGroup.class) ComActDiscussDTO comActDiscussDTO) {
        comActDiscussDTO.setUserId(this.getUserId());
        return communityService.editDiscussResult(comActDiscussDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java
@@ -191,4 +191,9 @@
     * 高德地图获取天气key
     */
    public static final String G_D_WEATHER_KEY = "02019a956b118ac7956c8539ab02b0f5";
    /**
     * 社区议事投票小程序身份验证参数默认key
     */
    public static final String DISCUSS_IDENTITY_KEY = "DISCUSS_IDENTITY_";
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java
@@ -1,34 +1,39 @@
package com.panzhihua.common.model.dtos.community;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.validated.AddGroup;
import com.panzhihua.common.validated.PutGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 一起议新增编辑
 * @description: 议事投票新增编辑
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-01-22 15:34
 **/
@Data
@ApiModel("一起议新增编辑")
@ApiModel("议事投票新增编辑")
public class ComActDiscussDTO {
    @ApiModelProperty("主键")
    @NotNull(message = "一起议id不能为空", groups = {PutGroup.class})
    private Long id;
    @ApiModelProperty("主题")
    @NotBlank(groups = {AddGroup.class}, message = "主题不能为空")
    private String discussSubject;
    @ApiModelProperty("类型 1 图文 2 投票")
    @ApiModelProperty("类型 1 议事 2 投票")
    @Min(value = 1, groups = {AddGroup.class}, message = "类型不能为空")
    private Integer type;
@@ -56,4 +61,39 @@
    @ApiModelProperty("选项集合")
    private List<ComActDiscussOptionDTO> discussOptions;
    @ApiModelProperty(value = "单张图片宽度")
    private BigDecimal imgWidth;
    @ApiModelProperty(value = "单张图片高度")
    private BigDecimal imgHeight;
    @ApiModelProperty(value = "投票开始时间(格式:yyyy-MM-dd HH:mm:ss)")
    private String startTime;
    @ApiModelProperty(value = "投票结束时间(格式:yyyy-MM-dd HH:mm:ss)")
    private String endTime;
    @ApiModelProperty(value = "是否可重复投票(1.是 2.否)")
    private Integer isRepeat;
    @ApiModelProperty(value = "每人可投票数")
    private Integer count;
    @ApiModelProperty(value = "是否是小程序用户", hidden = true)
    private Boolean isApplets;
    @ApiModelProperty(value = "当前登录用户信息", hidden = true)
    private LoginUserInfoVO loginUserInfo;
    @ApiModelProperty("投票结果")
    @NotBlank(message = "投票结果不能为空", groups = {PutGroup.class})
    private String publishResult;
    /**
     * 类型 1 议事 2 投票
     */
    public interface type{
        int ys = 1;
        int tp = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java
@@ -4,6 +4,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 选项投票
@@ -14,8 +16,8 @@
@ApiModel("选项投票")
public class ComActDiscussOptionUserDTO {
    @ApiModelProperty("一起议选项id")
    private Long discussOptionId;
    @ApiModelProperty("一起议选项id集合")
    private List<Long> discussOptionIds;
    @ApiModelProperty("投票人id")
    private Long userId;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.dtos.community;
import java.util.List;
import javax.validation.constraints.NotEmpty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @title: DiscussVoteOptionDTO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 一起议投票请求参数
 * @author: hans
 * @date: 2021/09/16 17:03
 */
@Data
@ApiModel("一起议投票请求参数")
public class DiscussVoteOptionDTO {
    @ApiModelProperty("主键")
    @NotEmpty(message = "投票选项不能为空")
    private List<Long> optionIds;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java
@@ -15,10 +15,10 @@
public class PageComActDiscussCommentDTO {
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum;
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize;
    private Long pageSize = 10L;
    @ApiModelProperty(value = "账号")
    private String account;
@@ -34,4 +34,7 @@
    @ApiModelProperty(value = "登录用户", required = true)
    private Long loginUserId;
    @ApiModelProperty(value = "关键词")
    private String keyWord;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java
@@ -18,10 +18,10 @@
@ApiModel("分页查询一起议")
public class PageComActDiscussDTO {
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum;
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize;
    private Long pageSize = 10L;
    @ApiModelProperty("主题")
    private String subject;
@@ -45,4 +45,16 @@
    @ApiModelProperty("小程序使用 1 表示查询我的议题")
    private Integer isMy;
    @ApiModelProperty("状态(1.未开始 2.进行中 3.待公布 4.已公布 5.已发布)")
    private Integer status;
    @ApiModelProperty("关键词")
    private String keyWord;
    @ApiModelProperty(value = "类型: 1.议事 2.投票,小程序必须传入类型", allowableValues = "1,2")
    private Integer type;
    @ApiModelProperty(value = "展示状态,小程序获取不同状态的投票列表 1.进行中 2.已结束", allowableValues = "1,2")
    private Integer displayStatus;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussDetailDTO.java
New file
@@ -0,0 +1,24 @@
package com.panzhihua.common.model.dtos.community.discuss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 议事投票公布结果请求参数
 */
@Data
@ApiModel("议事投票公布结果请求参数")
public class ComActDiscussDetailDTO {
    @ApiModelProperty("主键id")
    private Long id;
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize = 10L;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussPublishResultDTO.java
New file
@@ -0,0 +1,36 @@
package com.panzhihua.common.model.dtos.community.discuss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author lyq
 * 议事投票公布结果请求参数
 */
@Data
@ApiModel("议事投票公布结果请求参数")
public class ComActDiscussPublishResultDTO {
    @ApiModelProperty("议事投票id")
    private Long id;
    @ApiModelProperty("公布结果")
    private String result;
    @ApiModelProperty(value = "用户id",hidden = true)
    private Long userId;
    @ApiModelProperty("类型(1.新增公布结果  2.修改公布结果)")
    private Integer type;
    /**
     * 类型(1.新增公布结果  2.修改公布结果)
     */
    public interface type{
        int add = 1;
        int edit = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java
@@ -1,5 +1,6 @@
package com.panzhihua.common.model.vos.community;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -123,10 +124,10 @@
    private List<ComActActEvaluateVO> comActActEvaluateVOList;
    @ApiModelProperty("活动评价总数")
    private Integer evaluateAmount;
    private Long evaluateAmount;
    @ApiModelProperty("活动评分星级平均数")
    private Double evaluateLevel;
    private BigDecimal evaluateLevel;
    @ApiModelProperty("当前用户对活动的评分")
    private Integer myRating;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java
@@ -80,4 +80,7 @@
    @ApiModelProperty("评论人用户类型(1.小程序用户(其他均为后台用户))")
    private Integer userType;
    @ApiModelProperty("回复量")
    private Integer replyNum;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionUserVO.java
New file
@@ -0,0 +1,40 @@
package com.panzhihua.common.model.vos.community;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @title: ComActDiscussOptionUserVO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 一起议投票记录详情
 * @author: hans
 * @date: 2021/09/08 16:14
 */
@Data
@ApiModel("一起议投票记录详情")
public class ComActDiscussOptionUserVO {
    @ApiModelProperty("投票记录主键id")
    private Long id;
    @ApiModelProperty("一起议选项id")
    private Long discussOptionId;
    @ApiModelProperty("投票人id")
    private Long userId;
    @ApiModelProperty("投票时间")
    private Date createAt;
    @ApiModelProperty("一起议id")
    private Long discussId;
    @ApiModelProperty("投票人昵称")
    private String userNickName;
    @ApiModelProperty("投票人头像")
    private String imageUrl;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java
@@ -1,5 +1,6 @@
package com.panzhihua.common.model.vos.community;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -36,6 +37,12 @@
    @ApiModelProperty("投票数量")
    private Integer num;
    @ApiModelProperty("投票总数量")
    private Integer allNum;
    @ApiModelProperty("是否已经投票 1 是 0 否")
    private Integer haveVote = 0;
    @ApiModelProperty("投票选项占比")
    private BigDecimal percent;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java
@@ -1,5 +1,6 @@
package com.panzhihua.common.model.vos.community;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -24,7 +25,7 @@
    @ApiModelProperty("主题")
    private String discussSubject;
    @ApiModelProperty("类型 1 图文 2 投票")
    @ApiModelProperty("类型 1 议事 2 投票")
    private Integer type;
    @ApiModelProperty("图片地址 多个用逗号隔开")
@@ -58,6 +59,9 @@
    @ApiModelProperty("点赞数量")
    private Integer signNum;
    @ApiModelProperty("浏览量")
    private Integer viewsNum;
    @ApiModelProperty("发布人名字")
    private String userName;
@@ -76,4 +80,60 @@
    @ApiModelProperty("用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台")
    private Integer userType;
    @ApiModelProperty("状态(1.未开始 2.进行中 3.待公布 4.已公布 5.已发布)")
    private Integer status;
    @ApiModelProperty("公布结果")
    private String publishResult;
    @ApiModelProperty("公布时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date publishAt;
    @ApiModelProperty("发布时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date releaseAt;
    @ApiModelProperty("投票开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;
    @ApiModelProperty("投票结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
    @ApiModelProperty("参与讨论人数")
    private Integer joinNum;
    @ApiModelProperty("单张图片宽度")
    private BigDecimal imgWidth;
    @ApiModelProperty("单张图片高度")
    private BigDecimal imgHeight;
    @ApiModelProperty("是否可重复投票(1.是 2.否)")
    private Integer isRepeat;
    @ApiModelProperty("每人票数")
    private Integer count;
    @ApiModelProperty("议事投票评论列表")
    private List<ComActDiscussCommentVO> discussCommentList;
    @ApiModelProperty("剩余可投票数")
    private Integer remainingVotes;
    @ApiModelProperty("已投票记录列表")
    private List<ComActDiscussOptionUserVO> comActDiscussOptionUserVOList;
    @ApiModelProperty("已参与投票人数")
    private Integer votedPersonNum;
    /**
     * 类型 1 议事 2 投票
     */
    public interface type{
        int ys = 1;
        int tp = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java
@@ -37,7 +37,7 @@
    private Date time;
    @ApiModelProperty("用户昵称")
    private String nickName;
    @ApiModelProperty("选项类型(0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框)")
    @ApiModelProperty("选项类型(0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择 11文件上传)")
    private Integer optionType;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordExcleVO.java
@@ -62,9 +62,12 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date authDate;
    @ExcelProperty(value = "标记", index = 12)
    @ExcelProperty(value = "认证方式", index = 12)
    private String authMethod;
    @ExcelProperty(value = "标记", index = 13)
    private String mark;
    @ExcelProperty(value = "审核状态", index = 13)
    @ExcelProperty(value = "审核状态", index = 14)
    private String approvalStatus;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java
@@ -56,9 +56,13 @@
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date authDate;
    @ExcelProperty(value = "标记", index = 11)
    @ExcelProperty(value = "认证方式", index = 11)
    private String authMethod;
    @ExcelProperty(value = "标记", index = 12)
    private String mark;
    @ExcelProperty(value = "认证状态", index = 12)
    @ExcelProperty(value = "认证状态", index = 13)
    private String authStatus;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java
@@ -33,6 +33,9 @@
    @ApiModelProperty(value = "提交用户id")
    private Long submitUserId;
    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸认证)")
    private Integer authMethod;
    @ApiModelProperty(value = "提交用户姓名")
    private String submitUserName;
@@ -99,4 +102,13 @@
    @ApiModelProperty(value = "更新时间")
    private Date updateAt;
    @ApiModelProperty(value = "本期认证总人数")
    private Integer authAmount;
    @ApiModelProperty(value = "本期认证成功人数")
    private Integer authSucceedAmount;
    @ApiModelProperty(value = "本期未认证人数")
    private Integer authNoAmount;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java
@@ -27,6 +27,9 @@
    @ApiModelProperty(value = "养老金用户id")
    private Long pensionerId;
    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸认证)")
    private Integer authMethod;
    @ApiModelProperty(value = "认证期数")
    private String authPeriod;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -4,6 +4,8 @@
import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
import com.panzhihua.common.model.dtos.neighbor.*;
import com.panzhihua.common.model.vos.community.*;
import io.swagger.annotations.ApiOperation;
@@ -320,7 +322,7 @@
     * @return 详情
     */
    @PostMapping("detailactivity")
    R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId", required = false) Long userId);
    R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId", required = false) Long userId,@RequestParam(value = "pageNum", required = false) Long pageNum,@RequestParam(value = "pageSize", required = false) Long pageSize);
    /**
     * 分页活动报名名单
@@ -1289,12 +1291,20 @@
    /**
     * 议事投票-详情
     *
     * @param id
     *            主键
     * @param discussDetailDTO
     *            请求参数
     * @return ComActDiscussVO
     */
    @PostMapping("detaildiscuss")
    R detailDiscuss(@RequestParam("id") Long id);
    R detailDiscuss(@RequestBody ComActDiscussDetailDTO discussDetailDTO);
    /**
     * 分页查询评论下回复列表
     * @param discussDetailDTO  请求参数
     * @return  回复列表
     */
    @PostMapping("discussCommentReplyAdmin")
    R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO);
    /**
     * 议事投票-删除
@@ -1327,6 +1337,16 @@
    R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
    /**
     * 议事投票-后台分页查询
     *
     * @param pageComActDiscussDTO
     *            查询参数
     * @return ComActDiscussVO
     */
    @PostMapping("pagediscussAdmin")
    R pageDiscussAdmin(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
    /**
     * 议事投票-评论-查看
     *
     * @param id
@@ -1335,6 +1355,14 @@
     */
    @PostMapping("detaildiscusscomment")
    R detailDiscussComment(@RequestParam("id") Long id);
    /**
     * 议事投票评论详情
     * @param pageComActDiscussCommentDTO   请求参数
     * @return  议事投票详情
     */
    @PostMapping("detaildiscusscommentAdmin")
    R detailDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    /**
     * 议事投票-评论-置顶
@@ -1365,6 +1393,16 @@
     */
    @PostMapping("pagediscusscomment")
    R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    /**
     * 议事投票-评论-后台分页查询
     *
     * @param pageComActDiscussCommentDTO
     *            分页查询参数
     * @return ComActDiscussCommentVO
     */
    @PostMapping("pagediscusscommentAdmin")
    R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    /**
     * 议事投票-分页查询 小程序
@@ -3764,6 +3802,27 @@
    R exportPensionAuthRecordsStatistic(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
    /**
     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
     * @param    eldersAuthTypeQueryDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    @PostMapping("/elders/pensionAuthRecords/authtype")
    R communityPensionAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
    /**
     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验) setPensionAuthType  设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
     * @param    communityId   社区id
     * @param    type         检验类型
     * @return    R  设置结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    @PutMapping("/elders/pensionAuthRecords/authType/{type}")
    R setPensionAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
    /**
     * 小程序-查询疫苗分类列表
     *
     * @return 疫苗分类列表
@@ -5635,6 +5694,67 @@
    R editSysConfValue(@RequestParam("communityId") Long communityId,@RequestParam("status") Integer status);
    /**
     * 议事投票后台公布结果
     * @param publishResultDTO  请求参数
     * @return  公布结果
     */
    @PostMapping("publishResultAdmin")
    R publishResultAdmin(@RequestBody ComActDiscussPublishResultDTO publishResultDTO);
    /**
     * 议事投票-评论/回复删除
     * @param id    评论/回复id
     * @return  删除结果
     */
    @GetMapping("deleteDiscussCommentAdmin")
    R deleteDiscussCommentAdmin(@RequestParam("id") Long id);
    /**
     * 查询社区可发布议事投票权限配置
     * @param communityId   社区id
     * @return  社区可发布议事投票权限配置
     */
    @GetMapping("discussJurisdictionGet")
    R discussJurisdictionGet(@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId);
    /**
     * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
     * @param communityId   社区id
     * @param value 需要设置的参数值
     * @return  设置结果
     */
    @GetMapping("discussJurisdictionSet")
    R discussJurisdictionSet(@RequestParam("communityId") Long communityId, @RequestParam("value") String value);
    /**
     * 议事投票检测状态定时任务
     * @return  执行结果
     */
    @GetMapping("timedTaskDiscussInspectStatus")
    R timedTaskDiscussInspectStatus();
    /**
     * 一起议增加浏览量
     * @param discussId 一起议主键id
     */
    @PostMapping("discuss/increase-view-num")
    void increaseViewNum(@RequestParam("discussId") Long discussId);
    /**
     * 定时任务每半小时执行一次将一起议浏览量写入到表中
     */
    @PostMapping("discuss/write-view-num")
    R timedTaskWriteDiscussViewNumToTable();
    /**
     * 公布/编辑一起议投票结果
     * @param comActDiscussDTO
     * @return 请求结果
     */
    @PostMapping("discuss/edit-result")
    R editDiscussResult(@RequestBody ComActDiscussDTO comActDiscussDTO);
    /**
     * 定时任务扫描高龄认证记录信息
     * @return  执行结果
     */
@@ -5687,6 +5807,23 @@
    R reserveListApplets(@RequestParam("communityId") Long communityId);
    /**
     * 查询社区高龄认证方式(1.视频认证 2.人脸核验)
     * @param eldersAuthTypeQueryDTO    请求参数
     * @return  社区高龄认证方式(1.视频认证 2.人脸核验)
     */
    @PostMapping("/elders/new/authtype")
    R communityEldersAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
    /**
     * 设置当前社区高龄认证方式:核验类型(1.视频认证 2.人脸核验)
     * @param    communityId   社区id
     * @param    type         检验类型
     * @return    R  设置结果
     */
    @PutMapping("/elders/new/authType/{type}")
    R setEldersAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
    /**
     * 新增身份认证
     * @param addIdentityAuthDTO 新增身份认证请求参数
     * @return 新增结果结果
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -988,4 +988,13 @@
     */
    @GetMapping("getUserListByCommunityId")
    R getUserListByCommunityId(@RequestParam("communityId") Long communityId);
    /**
     * 检查当前用户是否是社区工作人员
     * @param phone
     * @param communityId
     * @return
     */
    @GetMapping("checkIsTeam")
    R checkCurrentUserIsTeam(@RequestParam("phone") String phone, @RequestParam("communityId") Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
@@ -22,6 +22,7 @@
    public static SimpleDateFormat ymdhm_format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    public static DateTimeFormatter format_ymd_String = DateTimeFormatter.ofPattern("yyMMdd");
    public static SimpleDateFormat yyyyMM_format = new SimpleDateFormat("yyyy-MM");
    public static SimpleDateFormat format_yyymmdd = new SimpleDateFormat("yyyyMMdd");
    private static DateTimeFormatter format_ymdhmssss = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
    private static DateTimeFormatter format_ymds = DateTimeFormatter.ofPattern("yyyyMMdd");
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -76,7 +76,7 @@
            stringEntity.setContentEncoding(HttpConstant.UTF8_ENCODE);
            stringEntity.setContentType(HttpConstant.APPLICATION_JSON);
            httpPost.setEntity(stringEntity);
            log.info("请求{}接口的参数为{}", url, jsonParam);
//            log.info("请求{}接口的参数为{}", url, jsonParam);
            // 执行发送,获取相应结果
            httpResponse = httpClient.execute(httpPost);
            httpEntity = httpResponse.getEntity();
@@ -99,7 +99,7 @@
        }
        // 请求接口的响应时间
        endTime = System.currentTimeMillis();
        log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime));
//        log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime));
        return result;
    }
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java
@@ -56,7 +56,7 @@
        BufferedReader in = null;
        try {
            String urlNameString = url + "?" + param;
            log.info("sendGet - {}", urlNameString);
//            log.info("sendGet - {}", urlNameString);
            URL realUrl = new URL(urlNameString);
            URLConnection connection = realUrl.openConnection();
            connection.setRequestProperty("accept", "*/*");
@@ -68,7 +68,7 @@
            while ((line = in.readLine()) != null) {
                result.append(line);
            }
            log.info("recv - {}", result);
//            log.info("recv - {}", result);
        } catch (ConnectException e) {
            log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e);
        } catch (SocketTimeoutException e) {
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
@@ -37,6 +37,7 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -486,7 +487,7 @@
                    String firstRowContent = "登记明细";
                    List<String> head0 = new ArrayList<>();
                    head0.add(firstRowContent);
                    head0.add("姓名");
                    head0.add("登记人昵称");
                    headList.add(head0);
                    List<String> head1 = new ArrayList<>();
                    head1.add(firstRowContent);
@@ -496,7 +497,11 @@
                        if (sub.getType() != 5) {
                            List<String> headn = new ArrayList<>();
                            headn.add(firstRowContent);
                            headn.add(sub.getContent());
                            if(sub.getType() == 11){
                                headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
                            }else{
                                headn.add(sub.getContent());
                            }
                            headList.add(headn);
                        }
                    });
@@ -592,18 +597,15 @@
                if (!reserveRecordId.equals(userAnswers.getReserveRecordId())) {
                    reserveSubId = 0L;
                    String answer = sb.toString();
                    userData.add(answer.substring(0, answer.length() - 1));
                    sb = new StringBuffer();
                    resultList.add(userData);
                    userData = new ArrayList<>();
                    reserveRecordId = userAnswers.getReserveRecordId();
                    userData.add(userAnswers.getNickName());
                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
                    answer = sb.toString();
                    if(StringUtils.isEmpty(answer)){
                    if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
                        userData.add(userAnswers.getAnswerContent());
                    }else{
                        userData.add(" ");
                    }
                }else{
                    if(reserveSubId.equals(0L)){
@@ -612,23 +614,45 @@
                    if(!reserveSubId.equals(userAnswers.getReserveSubId())){
                        reserveSubId = userAnswers.getReserveSubId();
                        String answer = sb.toString();
                        if(StringUtils.isEmpty(answer)){
                            sb.append(userAnswers.getAnswerContent() + ",");
                            answer = sb.toString();
                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
                        if(userAnswers.getOptionType().equals(11)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                userData.add(new URL(userAnswers.getAnswerContent()));
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                        sb.append(userAnswers.getAnswerContent() + ",");
                    }else{
                        sb.append(userAnswers.getAnswerContent() + ",");
                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
                        if(userAnswers.getOptionType().equals(11)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                userData.add(new URL(userAnswers.getAnswerContent()));
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                    }
                }
            }
            String answer = sb.toString();
            if(StringUtils.isNotEmpty(answer)){
                userData.add(answer.substring(0, answer.length() - 1));
            }
//            String answer = sb.toString();
//            if(StringUtils.isNotEmpty(answer)){
//                userData.add(answer.substring(0, answer.length() - 1));
//            }
            resultList.add(userData);
        }
        return resultList;
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java
@@ -157,7 +157,7 @@
        if (R.isOk(r)) {
            ActivitySignVO activitySignVO = new ActivitySignVO();
            activitySignVO.setActivityId(id);
            R r3 = this.detailActivity(id);
            R r3 = this.detailActivity(id,null,null);
            if (R.isOk(r3)) {
                Object data = r3.getData();
                ComActActivityVO comActActivityVO =
@@ -208,9 +208,9 @@
    @ApiOperation(value = "活动详情", response = ComActActivityVO.class)
    @GetMapping("detailactivity")
    public R detailActivity(@RequestParam("id") Long id) {
    public R detailActivity(@RequestParam("id") Long id,@RequestParam(value = "pageNum", required = false) Long pageNum,@RequestParam(value = "pageSize", required = false) Long pageSize) {
        Long userId = this.getUserId();
        return communityService.detailActivity(id, userId);
        return communityService.detailActivity(id, userId,pageNum,pageSize);
    }
    @ApiOperation(value = "查询活动报名名单集合")
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
@@ -3,12 +3,14 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.annotation.Resource;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.StringUtils;
import org.springframework.web.bind.annotation.*;
import com.alibaba.excel.EasyExcel;
@@ -173,7 +175,7 @@
                    String firstRowContent = "调查结果";
                    List<String> head0 = new ArrayList<>();
                    head0.add(firstRowContent);
                    head0.add("姓名");
                    head0.add("调查人昵称");
                    headList.add(head0);
                    List<String> head1 = new ArrayList<>();
                    head1.add(firstRowContent);
@@ -182,53 +184,14 @@
                    subVOList.forEach(sub -> {
                        List<String> headn = new ArrayList<>();
                        headn.add(firstRowContent);
                        headn.add(sub.getContent());
                        if(sub.getType() == 11){
                            headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
                        }else{
                            headn.add(sub.getContent());
                        }
                        headList.add(headn);
                    });
                    List<List<Object>> datalist = new ArrayList<>();
                    List<ComActQuestnaireAnswerContentVO> answerContentVOList = questnaireAnswersDTOS.getAnswers();
                    if (answerContentVOList != null && answerContentVOList.size() > 0) {
                        List<Object> userData = new ArrayList<>();
                        List<ComActQuestnaireAnswerContentVO> usersAnswers = questnaireAnswersDTOS.getAnswers();
                        //查询用户回答的所有答案,并新增到答案列表中
                        Long reserveRecordId = null;
                        StringBuffer sb = new StringBuffer();
                        Boolean isDX = false;
                        for (ComActQuestnaireAnswerContentVO userAnswers:usersAnswers) {
                            if(reserveRecordId == null){
                                reserveRecordId = userAnswers.getReserveRecordId();
                                userData.add(userAnswers.getNickName());
                                userData.add(DateUtils.format(userAnswers.getTime(),DateUtils.ymdhms_format));
                            }
                            if(!reserveRecordId.equals(userAnswers.getReserveRecordId())){
                                if(isDX){
                                    String answer = sb.toString();
                                    userData.add(answer.substring(0,answer.length()-1));
                                    sb = new StringBuffer();
                                    isDX = false;
                                }
                                datalist.add(userData);
                                userData = new ArrayList<>();
                                reserveRecordId = userAnswers.getReserveRecordId();
                                userData.add(userAnswers.getNickName());
                                userData.add(DateUtils.format(userAnswers.getTime(),DateUtils.ymdhms_format));
                            }
                            //判断是否是多选框
                            if(userAnswers.getOptionType().equals(1)){
                                isDX = true;
                                sb.append(userAnswers.getAnswerContent() + ",");
                                continue;
                            }
                            userData.add(userAnswers.getAnswerContent());
                        }
                        if(isDX){
                            String answer = sb.toString();
                            userData.add(answer.substring(0,answer.length()-1));
                        }
                        datalist.add(userData);
                    }
                    List<List<Object>> datalist = dataList(questnaireAnswersDTOS.getAnswers());
                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
@@ -346,4 +309,90 @@
        return communityService.statisticsSummaryHeader(questId, loginUserInfo.getCommunityId());
    }
    /**
     * 数据转换
     * @param answerContentVOList   用户问答列表数据
     * @return  调查问卷需要导出数据
     */
    private List<List<Object>> dataList(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
        //结果数据集合
        List<List<Object>> resultList = new ArrayList<>();
        //构建单个用户数据
        List<Object> userData = new ArrayList<>();
        //遍历答案列表
        Long reserveRecordId = 0L;
        Long reserveSubId = 0L;
        StringBuffer sb = new StringBuffer();
        if (answerContentVOList != null && answerContentVOList.size() > 0) {
            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
                //判断是文字描述直接跳过
                if (userAnswers.getOptionType().equals(5)) {
                    continue;
                }
                //判断reserveRecordId为空则为第一条记录,默认加上昵称和灯谜是
                if (reserveRecordId.equals(0L)) {
                    reserveRecordId = userAnswers.getReserveRecordId();
                    userData.add(userAnswers.getNickName());
                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
                }
                //根据reserveRecordId判断是否是第二条填报记录
                if (!reserveRecordId.equals(userAnswers.getReserveRecordId())) {
                    reserveSubId = 0L;
                    userData = new ArrayList<>();
                    reserveRecordId = userAnswers.getReserveRecordId();
                    userData.add(userAnswers.getNickName());
                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
                    if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
                        userData.add(userAnswers.getAnswerContent());
                    }else{
                        userData.add(" ");
                    }
                }else{
                    if(reserveSubId.equals(0L)){
                        reserveSubId = userAnswers.getReserveSubId();
                    }
                    if(!reserveSubId.equals(userAnswers.getReserveSubId())){
                        reserveSubId = userAnswers.getReserveSubId();
                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
                        if(userAnswers.getOptionType().equals(11)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                userData.add(new URL(userAnswers.getAnswerContent()));
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                    }else{
                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
                        if(userAnswers.getOptionType().equals(11)){
                            reserveSubId = userAnswers.getReserveSubId();
                            try {
                                userData.add(new URL(userAnswers.getAnswerContent()));
                            }catch (Exception e){
                                userData.add(" ");
                                log.error("导出转换图片失败!");
                            }
                            continue;
                        }
                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
                        String answer = sb.toString();
                        userData.add(answer.substring(0, answer.length() - 1));
                        sb = new StringBuffer();
                    }
                }
            }
            resultList.add(userData);
        }
        return resultList;
    }
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java
@@ -1,10 +1,11 @@
package com.panzhihua.community_backstage.api;
import java.util.List;
import javax.annotation.Resource;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -23,54 +24,78 @@
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 一起议
 * @description: 议事投票
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-01-22 15:30
 **/
@Slf4j
@Api(tags = {"一起议"})
@Api(tags = {"议事投票"})
@RestController
@RequestMapping("/")
public class DiscussApi extends BaseController {
    @Resource
    private CommunityService communityService;
    @ApiOperation(value = "一起议-新增")
    @ApiOperation(value = "议事投票-新增-")
    @PostMapping("discuss")
    public R addDiscuss(@RequestBody @Validated(AddGroup.class) ComActDiscussDTO comActDiscussDTO) {
        Integer type = comActDiscussDTO.getType();
        String voteTitle = comActDiscussDTO.getVoteTitle();
        List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
        if (type.equals(2)) {
            if (ObjectUtils.isEmpty(voteTitle)) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        comActDiscussDTO.setUserId(loginUserInfo.getUserId());
        comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
        if (comActDiscussDTO.getType().equals(ComActDiscussDTO.type.tp)) {
            if (ObjectUtils.isEmpty(comActDiscussDTO.getVoteTitle())) {
                return R.fail("投票标题不能为空");
            }
            if (ObjectUtils.isEmpty(discussOptions)) {
            if (ObjectUtils.isEmpty(comActDiscussDTO.getDiscussOptions())) {
                return R.fail("选项不能为空");
            }
        }
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Long userId = loginUserInfo.getUserId();
        Long communityId = loginUserInfo.getCommunityId();
        comActDiscussDTO.setUserId(userId);
        comActDiscussDTO.setCommunityId(communityId);
        return communityService.addDiscuss(comActDiscussDTO);
    }
    @ApiOperation(value = "一起议-详情", response = ComActDiscussVO.class)
    @GetMapping("discuss")
    public R detailDiscuss(@RequestParam("id") Long id) {
        return communityService.detailDiscuss(id);
    @ApiOperation(value = "议事投票-编辑-")
    @PostMapping("editDiscuss")
    public R editDiscuss(@RequestBody @Validated(AddGroup.class) ComActDiscussDTO comActDiscussDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请先登录");
        }
        comActDiscussDTO.setUserId(loginUserInfo.getUserId());
        comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
        if (comActDiscussDTO.getType().equals(ComActDiscussDTO.type.tp)) {
            if (ObjectUtils.isEmpty(comActDiscussDTO.getVoteTitle())) {
                return R.fail("投票标题不能为空");
            }
            if (ObjectUtils.isEmpty(comActDiscussDTO.getDiscussOptions())) {
                return R.fail("选项不能为空");
            }
        }
        return communityService.editDiscuss(comActDiscussDTO);
    }
    @ApiOperation(value = "一起议-删除")
    @ApiOperation(value = "议事投票-详情-", response = ComActDiscussVO.class)
    @PostMapping("discussDetail")
    public R detailDiscuss(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
        return communityService.detailDiscuss(discussDetailDTO);
    }
    @ApiOperation(value = "议事投票-分页查询评论下回复列表-", response = ComActDiscussCommentVO.class)
    @PostMapping("discuss/commment/reply")
    public R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
        return communityService.discussCommentReplyAdmin(discussDetailDTO);
    }
    @ApiOperation(value = "议事投票-删除-")
    @DeleteMapping("discuss")
    public R deleteDiscuss(@RequestParam("id") Long id) {
        return communityService.deleteDiscuss(id);
    }
    @ApiOperation(value = "一起议-回复")
    @PostMapping("discusscomment")
    @ApiOperation(value = "议事投票-回复-")
    @PostMapping("addDiscussComment")
    public R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
        String comment = comActDiscussCommentDTO.getComment();
        if (ObjectUtils.isEmpty(comment)) {
@@ -78,33 +103,39 @@
        }
        Long discussId = comActDiscussCommentDTO.getDiscussId();
        if (null == discussId || 0 == discussId) {
            return R.fail("一起议主键不能为空");
            return R.fail("议事投票主键不能为空");
        }
        comActDiscussCommentDTO.setUserId(this.getUserId());
        return communityService.addDiscussComment(comActDiscussCommentDTO);
    }
    @ApiOperation(value = "一起议-分页查询", response = ComActDiscussVO.class)
    @ApiOperation(value = "议事投票-分页查询-", response = ComActDiscussVO.class)
    @PostMapping("pagediscuss")
    public R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
        pageComActDiscussDTO.setCommunityId(this.getCommunityId());
        return communityService.pageDiscuss(pageComActDiscussDTO);
        return communityService.pageDiscussAdmin(pageComActDiscussDTO);
    }
    @ApiOperation(value = "一起议-评论-查看", response = ComActDiscussCommentVO.class)
    @ApiOperation(value = "议事投票-评论详情", response = ComActDiscussCommentVO.class)
    @GetMapping("discusscomment")
    public R detailDiscussComment(@RequestParam("id") Long id) {
        return communityService.detailDiscussComment(id);
    }
    @ApiOperation(value = "一起议-评论-置顶")
    @ApiOperation(value = "议事投票-评论详情-改版后", response = ComActDiscussCommentVO.class)
    @PostMapping("discusscomment")
    public R detailDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
        return communityService.detailDiscussCommentAdmin(pageComActDiscussCommentDTO);
    }
    @ApiOperation(value = "议事投票-评论-置顶-")
    @GetMapping("discusscommenttop")
    public R putDiscussCommentTop(@RequestParam("id") Long id) {
        return communityService.putDiscussCommentTop(id);
    }
    @ApiOperation(value = "一起议-评论-回复")
    @ApiOperation(value = "议事投票-评论-回复-")
    @PostMapping("discusscommentback")
    public R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
        String comment = comActDiscussCommentDTO.getComment();
@@ -119,13 +150,49 @@
        return communityService.addDiscussCommentBack(comActDiscussCommentDTO);
    }
    @ApiOperation(value = "一起议-评论-分页查询", response = ComActDiscussCommentVO.class)
    @ApiOperation(value = "议事投票-评论列表分页查询-", response = ComActDiscussCommentVO.class)
    @PostMapping("pagediscusscomment")
    public R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
        Long id = pageComActDiscussCommentDTO.getId();
        if (null == id || 0 == id) {
            return R.fail("一起议主键不能为空");
            return R.fail("议事投票主键不能为空");
        }
        return communityService.pageDiscussComment(pageComActDiscussCommentDTO);
        return communityService.pageDiscussCommentAdmin(pageComActDiscussCommentDTO);
    }
    @ApiOperation(value = "议事投票-公布结果/修改公布结果-")
    @PostMapping("publishResult")
    public R publishResult(@RequestBody ComActDiscussPublishResultDTO publishResultDTO) {
        String result = publishResultDTO.getResult();
        if (ObjectUtils.isEmpty(result)) {
            return R.fail("公布的结果不能为空");
        }
        Long id = publishResultDTO.getId();
        if (null == id || 0 == id) {
            return R.fail("议事投票id不能为空");
        }
        publishResultDTO.setUserId(this.getUserId());
        return communityService.publishResultAdmin(publishResultDTO);
    }
    @ApiOperation(value = "议事投票-评论/回复删除-")
    @DeleteMapping("discuss/comment/del")
    public R deleteDiscussCommentAdmin(@RequestParam("id") Long id) {
        return communityService.deleteDiscussCommentAdmin(id);
    }
    @ApiOperation(value = "查询社区可发布议事投票权限配置")
    @GetMapping("discuss/jurisdiction/get")
    public R discussJurisdictionGet() {
        return communityService.discussJurisdictionGet(this.getCommunityId(),this.getUserId());
    }
    @PutMapping("/discuss/jurisdiction/set/{value}")
    @ApiOperation(value = "设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)")
    public R discussJurisdictionSet(@PathVariable("value") String value) {
        if (StringUtils.isEmpty(value)) {
            return R.fail("参数错误");
        }
        return communityService.discussJurisdictionSet(this.getCommunityId(), value);
    }
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
@@ -707,6 +707,48 @@
        }
    }
    /**
     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    @ApiOperation(value = "查询社区养老认证方式", response = R.class)
    @GetMapping("/pensionAuthRecords/authtype")
    public R communityPensionAuthType() {
        Long communityId = this.getCommunityId();
        EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO = new EldersAuthTypeQueryDTO();
        eldersAuthTypeQueryDTO.setCommunityId(communityId);
        return communityService.communityPensionAuthType(eldersAuthTypeQueryDTO);
    }
    @PutMapping("/pensionAuthRecords/authType/{type}")
    @ApiOperation(value = "设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)", response = R.class)
    R setPensionAuthType(@PathVariable("type") Integer type) {
        if (type != 1 && type != 2) {
            return R.fail("参数错误");
        }
        return communityService.setPensionAuthType(this.getCommunityId(), type);
    }
    @ApiOperation(value = "查询社区高龄认证方式", response = R.class)
    @GetMapping("/authtype")
    public R communityAuthType() {
        Long communityId = this.getCommunityId();
        EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO = new EldersAuthTypeQueryDTO();
        eldersAuthTypeQueryDTO.setCommunityId(communityId);
        return communityService.communityPensionAuthType(eldersAuthTypeQueryDTO);
    }
    @PutMapping("/authType/{type}")
    @ApiOperation(value = "设置当前社区高龄认证方式:核验类型(1.视频认证 2.人脸核验)", response = R.class)
    public R setAuthType(@PathVariable("type") Integer type) {
        if (type != 1 && type != 2) {
            return R.fail("参数错误");
        }
        return communityService.setPensionAuthType(this.getCommunityId(), type);
    }
    private List<List<String>> headDataFilling() {
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -11,6 +11,7 @@
import javax.annotation.Resource;
import com.panzhihua.service_community.dao.ComActActEvaluateDAO;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.*;
import org.springframework.beans.BeanUtils;
@@ -149,6 +150,8 @@
    private ComEldersAuthElderlyService comEldersAuthElderlyService;
    @Resource
    private ComActMicroWishOperationRecordService wishOperationRecordService;
    @Resource
    private ComActActEvaluateDAO comActActEvaluateDAO;
    /**
     * 新增社区活动
@@ -334,7 +337,9 @@
     */
    @PostMapping("detailactivity")
    public R detailActivity(@RequestParam("id") Long id,
        @RequestParam(value = "userId", required = false) Long userId) {
        @RequestParam(value = "userId", required = false) Long userId,
                            @RequestParam(value = "pageNum",defaultValue = "1", required = false) Long pageNum,
                            @RequestParam(value = "pageSize",defaultValue = "10", required = false) Long pageSize) {
        ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id, userId);
        if (ObjectUtils.isEmpty(comActActivityVO)) {
            return R.fail("活动不存在");
@@ -352,26 +357,14 @@
            comActActivityVO.setComActActPrizeVOList(comActActPrizeVOS);
        }
        //活动评价
        List<ComActActEvaluateDO> comActActEvaluateDOList = comActActEvaluateService
                .list(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, id));
        if (!ObjectUtils.isEmpty(comActActEvaluateDOList)) {
            List<ComActActEvaluateVO> comActActEvaluateVOList = new ArrayList<>();
            comActActEvaluateDOList.forEach(comActActEvaluateDO -> {
                ComActActEvaluateVO comActActEvaluateVO = new ComActActEvaluateVO();
                BeanUtils.copyProperties(comActActEvaluateDO, comActActEvaluateVO);
                comActActEvaluateVOList.add(comActActEvaluateVO);
            });
            comActActivityVO.setComActActEvaluateVOList(comActActEvaluateVOList);
            //活动评价总数
            comActActivityVO.setEvaluateAmount(comActActEvaluateDOList.size());
            //当前用户对活动的评分
            Optional.ofNullable(userId).ifPresent(currentUserId -> {
                Optional<ComActActEvaluateDO> optional = comActActEvaluateDOList.stream()
                        .filter(comActActEvaluateDO -> comActActEvaluateDO.getUserId().equals(currentUserId)).findFirst();
                if (optional.isPresent()) {
                    comActActivityVO.setMyRating(optional.get().getStarLevel());
                }
            });
        IPage<ComActActEvaluateVO> comActActEvaluatePage = comActActEvaluateDAO.getEvaluateListPage(new Page(pageNum,pageSize),id);
        comActActivityVO.setComActActEvaluateVOList(comActActEvaluatePage.getRecords());
        //活动评价总数
        comActActivityVO.setEvaluateAmount(comActActEvaluatePage.getTotal());
        //当前用户对活动的评分
        ComActActEvaluateVO userActEvaluateVO = comActActEvaluateDAO.getEvaluateListByUserId(id,userId);
        if(userActEvaluateVO != null){
            comActActivityVO.setMyRating(userActEvaluateVO.getStarLevel());
        }
        fillActivitySignList(id, comActActivityVO);
        comActActivityVO.setIntegral(0);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java
@@ -2,6 +2,8 @@
import javax.annotation.Resource;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
import org.springframework.web.bind.annotation.*;
import com.panzhihua.common.model.dtos.community.*;
@@ -12,7 +14,7 @@
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 一起议
 * @description: 议事投票
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-01-22 14:52
 **/
@@ -24,7 +26,7 @@
    private ComActDiscussService comActDiscussService;
    /**
     * 一起议-新增
     * 议事投票-新增
     * 
     * @param comActDiscussDTO
     *            新增参数
@@ -36,19 +38,39 @@
    }
    /**
     * 一起议-详情
     *
     * @param id
     *            主键
     * @return ComActDiscussVO
     * 议事投票-编辑
     * @param comActDiscussDTO  请求参数
     * @return  编辑结果
     */
    @PostMapping("detaildiscuss")
    public R detailDiscuss(@RequestParam("id") Long id) {
        return comActDiscussService.detailDiscuss(id);
    @PostMapping("editdiscuss")
    public R editDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO) {
        return comActDiscussService.editDiscuss(comActDiscussDTO);
    }
    /**
     * 一起议-删除
     * 议事投票-详情
     *
     * @param discussDetailDTO
     *            请求参数
     * @return ComActDiscussVO
     */
    @PostMapping("detaildiscuss")
    public R detailDiscuss(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
        return comActDiscussService.detailDiscuss(discussDetailDTO);
    }
    /**
     * 分页查询评论下回复列表
     * @param discussDetailDTO  请求参数
     * @return  回复列表
     */
    @PostMapping("discussCommentReplyAdmin")
    public R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
        return comActDiscussService.discussCommentReplyAdmin(discussDetailDTO);
    }
    /**
     * 议事投票-删除
     * 
     * @param id
     *            主键
@@ -60,7 +82,7 @@
    }
    /**
     * 一起议-回复
     * 议事投票-回复
     * 
     * @param comActDiscussCommentDTO
     *            评论内容
@@ -72,7 +94,7 @@
    }
    /**
     * 一起议-分页查询
     * 议事投票-分页查询
     * 
     * @param pageComActDiscussDTO
     *            查询参数
@@ -84,7 +106,19 @@
    }
    /**
     * 一起议-评论-查看
     * 议事投票-后台分页查询
     *
     * @param pageComActDiscussDTO
     *            查询参数
     * @return ComActDiscussVO
     */
    @PostMapping("pagediscussAdmin")
    public R pageDiscussAdmin(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
        return comActDiscussService.pageDiscussAdmin(pageComActDiscussDTO);
    }
    /**
     * 议事投票-评论-查看
     * 
     * @param id
     *            主键
@@ -96,7 +130,17 @@
    }
    /**
     * 一起议-评论-置顶
     * 议事投票评论详情
     * @param pageComActDiscussCommentDTO   请求参数
     * @return  议事投票详情
     */
    @PostMapping("detaildiscusscommentAdmin")
    public R detailDiscusscommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
        return comActDiscussService.detailDiscussCommentAdmin(pageComActDiscussCommentDTO);
    }
    /**
     * 议事投票-评论-置顶
     * 
     * @param id
     *            主键
@@ -108,7 +152,7 @@
    }
    /**
     * 一起议-评论-回复
     * 议事投票-评论-回复
     * 
     * @param comActDiscussCommentDTO
     *            回复内容
@@ -120,7 +164,7 @@
    }
    /**
     * 一起议-评论-分页查询
     * 议事投票-评论-分页查询
     * 
     * @param pageComActDiscussCommentDTO
     *            分页查询参数
@@ -132,7 +176,19 @@
    }
    /**
     * 一起议-分页查询 小程序
     * 议事投票-评论-后台分页查询
     *
     * @param pageComActDiscussCommentDTO
     *            分页查询参数
     * @return ComActDiscussCommentVO
     */
    @PostMapping("pagediscusscommentAdmin")
    public R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
        return comActDiscussService.pageDiscussCommentAdmin(pageComActDiscussCommentDTO);
    }
    /**
     * 议事投票-分页查询 小程序
     * 
     * @param pageComActDiscussDTO
     *            查询参数
@@ -144,7 +200,7 @@
    }
    /**
     * 一起议-点赞、取消点赞
     * 议事投票-点赞、取消点赞
     * 
     * @param comActDiscussUserDTO
     *            操作类型
@@ -156,7 +212,7 @@
    }
    /**
     * 一起议-评论-分页查询 小程序
     * 议事投票-评论-分页查询 小程序
     * 
     * @param pageComActDiscussCommentDTO
     *            分页参数
@@ -168,7 +224,7 @@
    }
    /**
     * 一起议-详情 小程序
     * 议事投票-详情 小程序
     * 
     * @param id
     *            主键
@@ -182,7 +238,7 @@
    }
    /**
     * 一起议-投票
     * 议事投票-投票
     * 
     * @param comActDiscussOptionUserDTO
     *            投票信息
@@ -194,7 +250,7 @@
    }
    /**
     * 一起议-评论-点赞、取消点赞
     * 议事投票-评论-点赞、取消点赞
     * 
     * @param comActDiscussUserDTO
     *            评论点赞
@@ -205,4 +261,81 @@
        return comActDiscussService.putDiscussCommentUser(comActDiscussUserDTO);
    }
    /**
     * 议事投票后台公布结果
     * @param publishResultDTO  请求参数
     * @return  公布结果
     */
    @PostMapping("publishResultAdmin")
    public R publishResultAdmin(@RequestBody ComActDiscussPublishResultDTO publishResultDTO) {
        return comActDiscussService.publishResultAdmin(publishResultDTO);
    }
    /**
     * 议事投票-评论/回复删除
     * @param id    评论/回复id
     * @return  删除结果
     */
    @GetMapping("deleteDiscussCommentAdmin")
    public R deleteDiscussCommentAdmin(@RequestParam("id") Long id) {
        return comActDiscussService.deleteDiscussCommentAdmin(id);
    }
    /**
     * 查询社区可发布议事投票权限配置
     * @param communityId   社区id
     * @return  社区可发布议事投票权限配置
     */
    @GetMapping("discussJurisdictionGet")
    public R discussJurisdictionGet(@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId) {
        return comActDiscussService.discussJurisdictionGet(communityId,userId);
    }
    /**
     * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
     * @param communityId   社区id
     * @param value 需要设置的参数值
     * @return  设置结果
     */
    @GetMapping("discussJurisdictionSet")
    public R discussJurisdictionSet(@RequestParam("communityId") Long communityId,@RequestParam("value") String value) {
        return comActDiscussService.discussJurisdictionSet(communityId,value);
    }
    /**
     * 议事投票检测状态定时任务
     * @return  执行结果
     */
    @GetMapping("timedTaskDiscussInspectStatus")
    public R timedTaskDiscussInspectStatus() {
        return comActDiscussService.timedTaskDiscussInspectStatus();
    }
    /**
     * 一起议增加浏览量
     * @param discussId 一起议主键id
     */
    @PostMapping("discuss/increase-view-num")
    public void increaseViewNum(@RequestParam("discussId") Long discussId) {
        comActDiscussService.increaseViewNum(discussId);
    }
    /**
     * 公布/编辑一起议投票结果
     * @param comActDiscussDTO
     * @return 请求结果
     */
    @PostMapping("discuss/edit-result")
    public R editDiscussResult(@RequestBody ComActDiscussDTO comActDiscussDTO) {
        return comActDiscussService.editDiscussResult(comActDiscussDTO);
    }
    /**
     * 定时任务每半小时执行一次将一起议浏览量写入到表中
     */
    @PostMapping("discuss/write-view-num")
    public R timedTaskWriteDiscussViewNumToTable() {
        return comActDiscussService.writeDiscussViewNumToTable();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
@@ -167,7 +167,7 @@
     * @return
     */
    @PostMapping("/authtype")
    R communityElderAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
    public R elderAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
        return eldersAuthService.communityAuthType(eldersAuthTypeQueryDTO);
    }
@@ -384,6 +384,31 @@
    }
    /**
     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验) setPensionAuthType  设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
     * @param    communityId   社区id
     * @param    type         检验类型
     * @return    R  设置结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    @PutMapping("/pensionAuthRecords/authType/{type}")
    public R setPensionAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type) {
        return comPensionAuthRecordService.setPensionAuthType(communityId, type);
    }
    /**
     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
     * @param    eldersAuthTypeQueryDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    @PostMapping("/pensionAuthRecords/authtype")
    public R communityPensionAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
        return comPensionAuthRecordService.communityPensionAuthType(eldersAuthTypeQueryDTO);
    }
    /**
     * 定时任务每月1号0点统计高龄老人本期应该认证总人数
     * @return  执行结果
     */
@@ -401,5 +426,30 @@
        return comPensionAuthRecordService.timedTaskPensionAuthStatisticsJobHandler();
    }
    /**
     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
     * @param    communityId   社区id
     * @param    type         检验类型
     * @return    R  设置结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    @PutMapping("/new/authType/{type}")
    public R setAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type) {
        return eldersAuthService.setAuthType(communityId, type);
    }
    /**
     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
     * @param    eldersAuthTypeQueryDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    @PostMapping("/new/authtype")
    public R communityAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
        return eldersAuthService.getAuthType(eldersAuthTypeQueryDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java
@@ -28,4 +28,20 @@
    List<ComActActEvaluateExcelVO> getEvaluateLists(@Param("comActActEvaluateVO") ComActActEvaluateVO comActActEvaluateVO);
    /**
     * 分页查询活动评价列表
     * @param page  分页参数
     * @param activityId    活动id
     * @return  活动评价列表
     */
    IPage<ComActActEvaluateVO> getEvaluateListPage(Page page, @Param("activityId") Long activityId);
    /**
     * 查询某活动的用户评价
     * @param activityId    活动id
     * @param userId    用户id
     * @return  用户评价记录
     */
    ComActActEvaluateVO getEvaluateListByUserId(@Param("activityId") Long activityId,@Param("userId") Long userId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
@@ -95,13 +95,13 @@
        + "</foreach> " + "</script>")
    int updateIdBatch(@Param("longs") List<Long> longs);
    @Update("update com_act_activity set `status`=2 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),publish_at)<=0")
    @Update("update com_act_activity set `status`=3 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),publish_at)<=0")
    int updateStatusToNotBegin();
    @Update("update com_act_activity set `status`=3 where `status`=2 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_begin)<=0")
    int updateStatusToBeginSign();
    @Update("update com_act_activity set `status`=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
    @Update("update com_act_activity set `status`=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),end_at)<=0")
    int updateStatusToBeginActiveOrEnd();
    @Select("<script> " + "select t.* from ( " + "SELECT  " + "a.id, " + "a.activity_name, " + "u.`name` sponsorName, "
@@ -132,10 +132,10 @@
    IPage<ComActActivityVO> pageActivityCommunityBack(Page page,
        @Param("comActActivityVO") ComActActivityVO comActActivityVO);
    @Select("select id from com_act_activity where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
    @Select("select id from com_act_activity where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),end_at)<=0")
    List<Long> getActivityEndIds();
    @Update("update com_act_activity set `status`=5 where `status`=3 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
    @Update("update com_act_activity set `status`=4 where `status`=3 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
    int updateStatusToBeginAfterSingEnd();
    @Select("select GROUP_CONCAT(t.x1,',',t.x2,',',t.x3,',',t.x4) from ( " + "SELECT "
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java
@@ -2,7 +2,11 @@
import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -52,4 +56,12 @@
            "ORDER BY\n" +
            "create_at desc")
    List<ComActDiscussCommentVO> selectChilds(Long id);
    /**
     * 该评论下所有回复内容
     * @param page  分页参数
     * @param id    评论id
     * @return  回复列表
     */
    IPage<ComActDiscussCommentVO> getDiscussCommentList(Page page, @Param("id") Long id);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java
@@ -1,5 +1,6 @@
package com.panzhihua.service_community.dao;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -43,18 +44,21 @@
    @Select("select type,name,phone,image_url,nick_name from sys_user where user_id=#{userId}")
    LoginUserInfoVO selectUserByUserId(Long userId);
    @Select("<script> " + "select t.* from (" + "SELECT " + "d.id, " + "d.`discuss_subject`, " + "d.type, "
        + "COUNT( DISTINCT c.id ) commentNum, " + "u.name userName, " + "u.nick_name userNickName, " + "d.create_at  "
        + "FROM " + "com_act_discuss d " + "JOIN sys_user u ON d.user_id = u.user_id "
        + "LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id  "
        + " where d.community_id=#{pageComActDiscussDTO.communityId}"
        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
        + "AND #{pageComActDiscussDTO.end}  " + " </if> " + "GROUP BY " + "d.id" + ")t order by t.create_at desc "
        + "</script>")
//    @Select("<script> " + "select t.* from (" + "SELECT " + "d.id, " + "d.`discuss_subject`, " + "d.type, "
//        + "COUNT( DISTINCT c.id ) commentNum, " + "u.name userName, " + "u.nick_name userNickName, " + "d.create_at  "
//        + "FROM " + "com_act_discuss d " + "JOIN sys_user u ON d.user_id = u.user_id "
//        + "LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id  "
//        + " where d.community_id=#{pageComActDiscussDTO.communityId}"
//        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
//        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
//        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
//        + "AND #{pageComActDiscussDTO.end}  " + " </if> " + "GROUP BY " + "d.id" + ")t order by t.create_at desc "
//        + "</script>")
    IPage<ComActDiscussVO> pageDiscuss(Page page,
        @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
    IPage<ComActDiscussVO> pageDiscussAdmin(Page page,
                                       @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
    @Select("<script> " + "select * from (" + "SELECT " + "u.`name` userName, " + "u.nick_name userNickName, "
        + "u.phone, " + "c.`comment`, " + "c.`parent_id`, " + "COUNT(DISTINCT  cu.id ) num, " + "c.create_at, "
@@ -71,44 +75,69 @@
    IPage<ComActDiscussCommentVO> pageDiscussComment(Page page,
        @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    @Select("<script> " + "select t.* from (" + "SELECT " + "d.id, " + "d.vote_title, "
        + "if(d.address is null or d.address='null',a.name,d.address )address, " + "d.photo_pah, "
        + "d.`discuss_subject`, " + "d.type, " + "u.type as userType, " + "COUNT( DISTINCT c.id ) commentNum, "
        + "COUNT( DISTINCT du.id ) signNum, " + "if(u.type=1,u.name,a.name) userName, "
        + "if(u.type=1,u.nick_name,a.name) userNickName, " + "<if test='pageComActDiscussDTO.loginUserId != null '>"
        + "if(du.id is not null,1,0) haveSign, " + "if(ou.id is not null,1,0) haveVote, " + " </if> " + "u.image_url, "
        + "d.create_at  " + "FROM " + "com_act_discuss d " + "JOIN sys_user u ON d.user_id = u.user_id "
        + "JOIN com_act a ON d.community_id = a.community_id "
        + "LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id  "
        + "LEFT JOIN com_act_discuss_option do ON d.id = do.discuss_id  "
        + "LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id  "
        + "<if test='pageComActDiscussDTO.loginUserId != null '>"
        + "LEFT JOIN com_act_discuss_option_user ou on do.id=ou.discuss_option_id and ou.user_id=#{pageComActDiscussDTO.loginUserId} "
        + " </if> " + " where d.community_id=#{pageComActDiscussDTO.communityId}"
        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
        + "<if test='pageComActDiscussDTO.userId != null and pageComActDiscussDTO.userId !=0 '>"
        + " and d.`user_id` = #{pageComActDiscussDTO.userId}  " + " </if> "
        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
        + "AND #{pageComActDiscussDTO.end}  " + " </if> " + "GROUP BY " + "d.id" + ")t order by t.create_at desc "
        + "</script>")
    /**
     * 议事投票-评论-后台分页查询
     *
     * @param pageComActDiscussCommentDTO
     *            分页查询参数
     * @return ComActDiscussCommentVO
     */
    IPage<ComActDiscussCommentVO> pageDiscussCommentAdmin(Page page,
                                                     @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    /**
     * 默认查询评论下两条回复信息
     * @param commentId 评论id
     * @return  回复列表
     */
    List<ComActDiscussCommentVO> getDiscussCommentReplyList(@Param("commentId") Long commentId);
//    @Select("<script> " + "select t.* from (" + "SELECT " + "d.id, " + "d.vote_title, "
//        + "if(d.address is null or d.address='null',a.name,d.address )address, " + "d.photo_pah, "
//        + "d.`discuss_subject`, " + "d.type, " + "d.end_time, " + "d.status, " + "d.views_num, " + "d.join_num, "
//        + "d.fabulous_num as signNum, " + "d.comment_num as commentNum, " + "d.release_at, " + "u.type as userType, "
//        + "if(u.type=1,u.name,a.name) userName, "
//        + "if(u.type=1,u.nick_name,a.name) userNickName, " + "<if test='pageComActDiscussDTO.loginUserId != null '>"
//        + "if(du.id is not null,1,0) haveSign, " + "if(ou.id is not null,1,0) haveVote, " + " </if> " + "u.image_url, "
//        + "d.create_at  " + "FROM " + "com_act_discuss d " + "JOIN sys_user u ON d.user_id = u.user_id "
//        + "JOIN com_act a ON d.community_id = a.community_id "
//        + "LEFT JOIN com_act_discuss_option do ON d.id = do.discuss_id  "
//        + "LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id  "
//        + "<if test='pageComActDiscussDTO.loginUserId != null '>"
//        + "LEFT JOIN com_act_discuss_option_user ou on do.id=ou.discuss_option_id and ou.user_id=#{pageComActDiscussDTO.loginUserId} "
//        + " </if> " + " where d.community_id=#{pageComActDiscussDTO.communityId}" + " and d.is_del = 2"
//        + "<if test='pageComActDiscussDTO.type != null '>"
//        + " and d.`type` = #{pageComActDiscussDTO.type}  " + " </if> "
//        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
//        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
//        + "<if test='pageComActDiscussDTO.userId != null and pageComActDiscussDTO.userId !=0 '>"
//        + " and d.`user_id` = #{pageComActDiscussDTO.userId}  " + " </if> "
//        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
//        + "AND #{pageComActDiscussDTO.end}  " + " </if> "
//        + "<if test='pageComActDiscussDTO.displayStatus != null and pageComActDiscussDTO.displayStatus == 1'>"
//        + " and d.`end_time` &gt; now() " + " </if> "
//        + "<if test='pageComActDiscussDTO.displayStatus != null and pageComActDiscussDTO.displayStatus == 2'>"
//        + " and d.`end_time` &lt; now() " + " </if> "
//        + "GROUP BY " + "d.id" + ")t order by t.create_at desc "
//        + "</script>")
    IPage<ComActDiscussVO> pageDiscussApplets(Page page,
        @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
    @Select("<script> " + "select * from (" + "SELECT " + "u.`name` userName, " + "IFNULL(u.`nick_name`,'社区管理员') as userNickName, "
        + "u.`image_url`, " + "u.phone, " + "u.type as userType, " + "c.`comment`, " + "c.`parent_id`, "
        + "c.`is_author`, " + "c.`is_topping`, " + "COUNT( cu.id ) num, " + "c.create_at, " + "c.id  " + "FROM "
        + "com_act_discuss_comment c " + "JOIN sys_user u ON c.user_id = u.user_id  "
        + "JOIN com_act_discuss d ON c.discuss_id = d.id  "
        + "<if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != &quot;&quot;'>"
        + "AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' )  " + " </if> "
        + "<if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != &quot;&quot;'>"
        + "AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' ) " + " </if> "
        + "LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id  "
        + " where c.discuss_id=#{pageComActDiscussCommentDTO.id} and parent_id=0 "
        + "<if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != &quot;&quot;'>"
        + " and c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment" + "}, '%' )  " + " </if> "
        + "GROUP BY " + "c.id " + ")t order by t.is_topping desc , t.create_at desc" + "</script>")
//    @Select("<script> " + "select * from (" + "SELECT " + "u.`name` userName, " + "IFNULL(u.`nick_name`,'社区管理员') as userNickName, "
//        + "u.`image_url`, " + "u.phone, " + "u.type as userType, " + "c.`comment`, " + "c.`parent_id`, "
//        + "c.`is_author`, " + "c.`is_topping`, " + "COUNT( cu.id ) num, " + "c.create_at, " + "c.id  " + "FROM "
//        + "com_act_discuss_comment c " + "JOIN sys_user u ON c.user_id = u.user_id  "
//        + "JOIN com_act_discuss d ON c.discuss_id = d.id  "
//        + "<if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != &quot;&quot;'>"
//        + "AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' )  " + " </if> "
//        + "<if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != &quot;&quot;'>"
//        + "AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' ) " + " </if> "
//        + "LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id  "
//        + " where c.discuss_id=#{pageComActDiscussCommentDTO.id} and parent_id=0 and c.is_del = 2"
//        + "<if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != &quot;&quot;'>"
//        + " and c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment" + "}, '%' )  " + " </if> "
//        + "GROUP BY " + "c.id " + ")t order by t.is_topping desc , t.create_at desc" + "</script>")
    IPage<ComActDiscussCommentVO> pageDiscussCommentApplets(Page page,
        @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
@@ -155,4 +184,39 @@
        + ",( SELECT count( id ) FROM com_act_discuss_option_user WHERE discuss_option_id = c.id ) AS num " + " FROM "
        + " com_act_discuss_option AS c " + " WHERE c.discuss_id = #{discussId}" + " ORDER BY " + " num DESC")
    List<ComActDiscussOptionVO> getScreenDiscussOptionList(@Param("discussId") Long discussId);
    /**
     * 添加议事投票评论数
     * @param discussId 议事投票
     * @param num   添加数量
     */
    void addCommentCount(@Param("discussId") Long discussId,@Param("num") Integer num);
    /**
     * 更新一起议主题状态
     * @param discussId
     * @param status
     */
    void updateStatusById(@Param("discussId") Long discussId, @Param("status") int status);
    /**
     * 增加评论总数和参与讨论总数
     * @param discussId 一起议主键id
     * @param isFirstComment 是否首次参与
     */
    void incrCommentAndJoinNumById(@Param("discussId") Long discussId, @Param("isFirstComment") boolean isFirstComment);
    /**
     * 一起议点赞/取消点赞 增加/减少点赞总数
     * @param discussId 一起议主键id
     * @param isIncr 是否是新增
     */
    void incrOrDecrFabulousNumByType(@Param("discussId") Long discussId, @Param("isIncr") Boolean isIncr);
    /**
     * 批量更新浏览量
     * @param needDealMap id-viewNum参数合集
     * @return
     */
    int batchUpdateViewNum(@Param("needDealMap") HashMap<Long, Integer> needDealMap);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java
@@ -1,9 +1,13 @@
package com.panzhihua.service_community.dao;
import com.panzhihua.common.model.vos.community.ComActDiscussOptionVO;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComActDiscussOptionDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -23,4 +27,6 @@
    // " </if> " +
    // " </where>" +
    // "</script>")
    List<ComActDiscussOptionVO> getDiscussOptionList(@Param("discussId") Long discussId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java
@@ -1,11 +1,14 @@
package com.panzhihua.service_community.dao;
import com.panzhihua.common.model.vos.community.ComActDiscussOptionUserVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComActDiscussOptionUserDO;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -32,4 +35,33 @@
    @Select("select count(id) from com_act_discuss_option_user where discuss_option_id = #{discussOptionId} and user_id = #{userId}")
    int selectHaveVotes(@Param("discussOptionId") Long discussOptionId, @Param("userId") Long userId);
    /**
     * 查询用户当天当前投票栏目下已投次数
     * @param discussId 一起议主键id
     * @param userId 用户id
     * @return 总数
     */
    int selectVotedVotesInToday(@Param("discussId") Long discussId, @Param("userId") Long userId);
    /**
     * 查询当前投票主题下的记录 最多6条用于展示
     * @param discussId 一起议主键id
     * @return
     */
    List<ComActDiscussOptionUserVO> selectVotedRecords(@Param("discussId") Long discussId);
    /**
     * 查询当前投票主题参与人数
     * @param discussId 一起议主键id
     * @return
     */
    int selectVotedPersonNum(@Param("discussId") Long discussId);
    /**
     * 批量插入投票记录
     * @param comActDiscussOptionUserDOList
     * @return
     */
    int batchInsert(@Param("comActDiscussOptionUserDOList") List<ComActDiscussOptionUserDO> comActDiscussOptionUserDOList);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
@@ -41,10 +41,6 @@
     * @param questId
     *            问卷ID
     */
//    @Select("<script> " + "SELECT ac.* \n"
//        + "FROM com_act_questnaire_answer_content ac left JOIN com_act_questnaire_sub qs  ON ac.sub_id = qs.id \n"
//        + " LEFT JOIN   com_act_questnaire qn ON qs.que_Id = qn.id \n" + "WHERE qn.id=#{questId}\n"
//        + "ORDER BY ac.user_id, qs.id " + "</script>")
    List<ComActQuestnaireAnswerContentVO> selectListByQuestnaire(@Param("questId") Long questId);
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java
@@ -3,9 +3,12 @@
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@@ -61,7 +64,7 @@
    private Date publishAt;
    /**
     * 互动结束时间
     * 活动结束时间
     */
    private Date endAt;
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java
@@ -59,4 +59,22 @@
     * 用户主键
     */
    private Long userId;
    /**
     * 回复量
     */
    private Integer replyNum;
    /**
     * 是否删除(1.是  2.否)
     */
    private Integer isDel;
    /**
     * 是否删除枚举(1.是  2.否)
     */
    public interface isDelete{
        int yes = 1;
        int no = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java
@@ -1,6 +1,7 @@
package com.panzhihua.service_community.model.dos;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
@@ -9,7 +10,7 @@
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 一起议
 * @description: 议事投票
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-01-22 14:48
 **/
@@ -30,7 +31,7 @@
    private String discussSubject;
    /**
     * 类型 1 图文 2 投票
     * 类型 1 议事 2 投票
     */
    private Integer type;
@@ -70,4 +71,116 @@
     */
    private String voteTitle;
    /**
     * 是否可重复投票(1.是 2.否)
     */
    private Integer isRepeat;
    /**
     * 每人票数
     */
    private Integer count;
    /**
     * 单张图片宽度
     */
    private BigDecimal imgWidth;
    /**
     * 单张图片高度
     */
    private BigDecimal imgHeight;
    /**
     * 开始时间
     */
    private Date startTime;
    /**
     * 结束时间
     */
    private Date endTime;
    /**
     * 评论数
     */
    private Integer commentNum;
    /**
     * 点赞数
     */
    private Integer fabulousNum;
    /**
     * 浏览量
     */
    private Integer viewsNum;
    /**
     * 参与人数
     */
    private Integer joinNum;
    /**
     * 状态(1.未开始 2.进行中 3.待公布 4.已公布 5.已发布)
     */
    private Integer status;
    /**
     * 是否已删除(1.是 2.否)
     */
    private Integer isDel;
    /**
     * 公布结果
     */
    private String publishResult;
    /**
     * 公布时间
     */
    private Date publishAt;
    /**
     * 发布时间
     */
    private Date releaseAt;
    /**
     * 修改时间
     */
    private Date updateAt;
    /**
     * 公布人id
     */
    private Long publishBy;
    /**
     * 类型 1 议事 2 投票
     */
    public interface type{
        int ys = 1;
        int tp = 2;
    }
    /**
     * 是否枚举(1.是  2.否)
     */
    public interface isOk{
        int yes = 1;
        int no = 2;
    }
    /**
     * 状态(1.未开始 2.进行中 3.待公布 4.已公布 5.已发布)
     */
    public interface status{
        int wks = 1;
        int jxz = 2;
        int dgb = 3;
        int ygb = 4;
        int yfb = 5;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java
@@ -37,4 +37,9 @@
     * 投票时间
     */
    private Date createAt;
    /**
     * 一起议id
     */
    private Long discussId;
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java
@@ -22,7 +22,7 @@
    /**
     * 类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择
     */
    private int type;
    private Integer type;
    /**
     * 题目内容
     */
@@ -41,4 +41,22 @@
     */
    @TableField("`key`")
    private String key;
    /**
     * 类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择 11图片上传
     */
    public interface type {
        int danxuan = 0;
        int duoxuan = 1;
        int wenda = 2;
        int phone = 3;
        int card = 4;
        int describe = 5;
        int date = 6;
        int time = 7;
        int input = 8;
        int name = 9;
        int imgselect = 10;
        int imgopload = 11;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java
@@ -37,6 +37,12 @@
     *提交用户id
     */
    private Long submitUserId;
    /**
     * 认证方式(1.视频认证 2.人脸认证)
     */
    private Integer authMethod;
    /**
     *认证期数
     */
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java
@@ -2,17 +2,19 @@
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
import com.panzhihua.common.model.vos.R;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 一起议
 * @description: 议事投票
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-01-22 14:50
 **/
public interface ComActDiscussService {
    /**
     * 一起议-新增
     * 议事投票-新增
     * 
     * @param comActDiscussDTO
     *            新增参数
@@ -21,16 +23,23 @@
    R addDiscuss(ComActDiscussDTO comActDiscussDTO);
    /**
     * 一起议-详情
     *
     * @param id
     *            主键
     * @return ComActDiscussVO
     * 议事投票-编辑
     * @param comActDiscussDTO  请求参数
     * @return  编辑结果
     */
    R detailDiscuss(Long id);
    R editDiscuss(ComActDiscussDTO comActDiscussDTO);
    /**
     * 一起议-删除
     * 议事投票-详情
     *
     * @param discussDetailDTO
     *            请求参数
     * @return ComActDiscussVO
     */
    R detailDiscuss(ComActDiscussDetailDTO discussDetailDTO);
    /**
     * 议事投票-删除
     * 
     * @param id
     *            主键
@@ -39,7 +48,7 @@
    R deleteDiscuss(Long id);
    /**
     * 一起议-回复
     * 议事投票-回复
     * 
     * @param comActDiscussCommentDTO
     *            评论内容
@@ -48,7 +57,7 @@
    R addDiscussComment(ComActDiscussCommentDTO comActDiscussCommentDTO);
    /**
     * 一起议-分页查询
     * 议事投票-分页查询
     * 
     * @param pageComActDiscussDTO
     *            查询参数
@@ -57,7 +66,14 @@
    R pageDiscuss(PageComActDiscussDTO pageComActDiscussDTO);
    /**
     * 一起议-评论-查看
     * 议事投票-后台分页查询
     * @param pageComActDiscussDTO  请求参数
     * @return  议事投票列表
     */
    R pageDiscussAdmin(PageComActDiscussDTO pageComActDiscussDTO);
    /**
     * 议事投票-评论-查看
     * 
     * @param id
     *            主键
@@ -66,7 +82,14 @@
    R detailDiscusscomment(Long id);
    /**
     * 一起议-评论-置顶
     * 议事投票评论详情
     * @param pageComActDiscussCommentDTO   请求参数
     * @return  议事投票详情
     */
    R detailDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    /**
     * 议事投票-评论-置顶
     * 
     * @param id
     *            主键
@@ -75,7 +98,7 @@
    R putDiscussCommentTop(Long id);
    /**
     * 一起议-评论-回复
     * 议事投票-评论-回复
     * 
     * @param comActDiscussCommentDTO
     *            回复内容
@@ -84,7 +107,7 @@
    R addDiscussCommentBack(ComActDiscussCommentDTO comActDiscussCommentDTO);
    /**
     * 一起议-评论-分页查询
     * 议事投票-评论-分页查询
     * 
     * @param pageComActDiscussCommentDTO
     *            分页查询参数
@@ -93,7 +116,16 @@
    R pageDiscussComment(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    /**
     * 一起议-分页查询 小程序
     * 议事投票-评论-后台分页查询
     *
     * @param pageComActDiscussCommentDTO
     *            分页查询参数
     * @return ComActDiscussCommentVO
     */
    R pageDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    /**
     * 议事投票-分页查询 小程序
     * 
     * @param pageComActDiscussDTO
     *            查询参数
@@ -102,7 +134,7 @@
    R pageDiscussApplets(PageComActDiscussDTO pageComActDiscussDTO);
    /**
     * 一起议-点赞、取消点赞
     * 议事投票-点赞、取消点赞
     * 
     * @param comActDiscussUserDTO
     *            操作类型
@@ -111,7 +143,7 @@
    R putDiscussUser(ComActDiscussUserDTO comActDiscussUserDTO);
    /**
     * 一起议-评论-分页查询 小程序
     * 议事投票-评论-分页查询 小程序
     * 
     * @param pageComActDiscussCommentDTO
     *            分页参数
@@ -120,7 +152,7 @@
    R pageDiscussCommentApplets(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
    /**
     * 一起议-详情 小程序
     * 议事投票-详情 小程序
     * 
     * @param id
     *            主键
@@ -131,7 +163,7 @@
    R detailDiscussApplets(Long id, Long userId);
    /**
     * 一起议-投票
     * 议事投票-投票
     * 
     * @param comActDiscussOptionUserDTO
     *            投票信息
@@ -140,7 +172,7 @@
    R addDiscussOptionUser(ComActDiscussOptionUserDTO comActDiscussOptionUserDTO);
    /**
     * 一起议-评论-点赞、取消点赞
     * 议事投票-评论-点赞、取消点赞
     * 
     * @param comActDiscussUserDTO
     *            评论点赞
@@ -149,11 +181,72 @@
    R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussUserDTO);
    /**
     * 工作大屏-一起议列表
     * 工作大屏-议事投票列表
     * 
     * @param discussListDTO
     *            请求参数
     * @return 一起议列表
     * @return 议事投票列表
     */
    R getScreenDiscussList(ScreenDiscussListDTO discussListDTO);
    /**
     * 议事投票后台公布结果
     * @param publishResultDTO  请求参数
     * @return  公布结果
     */
    R publishResultAdmin(ComActDiscussPublishResultDTO publishResultDTO);
    /**
     * 议事投票-评论/回复删除
     * @param id    评论/回复id
     * @return  删除结果
     */
    R deleteDiscussCommentAdmin(Long id);
    /**
     * 分页查询评论下回复列表
     * @param discussDetailDTO  请求参数
     * @return  回复列表
     */
    R discussCommentReplyAdmin(ComActDiscussDetailDTO discussDetailDTO);
    /**
     * 查询社区可发布议事投票权限配置
     * @param communityId   社区id
     * @return  社区可发布议事投票权限配置
     */
    R discussJurisdictionGet(Long communityId,Long userId);
    /**
     * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
     * @param communityId   社区id
     * @param value 需要设置的参数值
     * @return  设置结果
     */
    R discussJurisdictionSet(Long communityId,String value);
    /**
     * 议事投票检测状态定时任务
     * @return  执行结果
     */
    R timedTaskDiscussInspectStatus();
    /**
     * 一起议增加浏览量
     * @param discussId
     */
    void increaseViewNum(Long discussId);
    /**
     * 将redis中前一天浏览量写入表中
     * @return 执行结果
     */
    R writeDiscussViewNumToTable();
    /**
     * 公布/编辑一起议投票结果
     * @param comActDiscussDTO
     * @return
     */
    R editDiscussResult(ComActDiscussDTO comActDiscussDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
import com.panzhihua.common.model.vos.R;
@@ -86,6 +87,25 @@
    R exportPensionAuthRecordsStatistic(PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
    /**
     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验) setPensionAuthType  设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
     * @param    communityId   社区id
     * @param    type         检验类型
     * @return    R  设置结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    R setPensionAuthType(Long communityId, Integer type);
    /**
     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
     * @param    eldersAuthTypeQueryDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/10 16:03
     */
    R communityPensionAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
    /**
     * 定时任务每年3月1号0点统计养老认证本期应该认证总人数
     * @return  执行结果
     */
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java
@@ -177,4 +177,19 @@
     */
    R timedTaskEldersRecordAuthJobHandler();
    /**
     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验) setPensionAuthType  设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
     * @param    communityId   社区id
     * @param    type         检验类型
     * @return    R  设置结果
     */
    R setAuthType(Long communityId, Integer type);
    /**
     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
     * @param    eldersAuthTypeQueryDTO   查询参数
     * @return    R  查询结果
     */
    R getAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java
@@ -1,5 +1,8 @@
package com.panzhihua.service_community.service.impl;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -19,9 +22,11 @@
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
import com.panzhihua.service_community.dao.ComActActEvaluateDAO;
import com.panzhihua.service_community.dao.ComActActRegistDAO;
import com.panzhihua.service_community.dao.ComActActSignDAO;
import com.panzhihua.service_community.dao.ComActActivityDAO;
import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
import com.panzhihua.service_community.model.dos.ComActActRegistDO;
import com.panzhihua.service_community.model.dos.ComActActSignDO;
import com.panzhihua.service_community.model.dos.ComActActivityDO;
import com.panzhihua.service_community.service.ComActActEvaluateService;
@@ -44,6 +49,8 @@
    private ComActActivityDAO comActActivityDAO;
    @Resource
    private ComActActSignDAO comActActSignDAO;
    @Resource
    private ComActActRegistDAO comActActRegistDAO;
    /**
     * 社区活动评价
     *
@@ -52,9 +59,33 @@
     */
    @Override
    public R activityEvaluate(ComActActEvaluateVO comActActEvaluateVO) {
        ComActActEvaluateDO currentUserEvaluateForThisActivity = this.baseMapper.selectOne(new QueryWrapper<ComActActEvaluateDO>().lambda()
                .eq(ComActActEvaluateDO::getActivityId, comActActEvaluateVO.getActivityId())
                .eq(ComActActEvaluateDO::getUserId, comActActEvaluateVO.getUserId()));
        Long activityId = comActActEvaluateVO.getActivityId();
        Long userId = comActActEvaluateVO.getUserId();
        if (isNull(activityId)) {
            return R.fail("参数有误");
        }
        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
        if (isNull(comActActivityDO)) {
            return R.fail("活动不存在");
        }
        Date beginAt = comActActivityDO.getBeginAt();
        Date nowDate = new Date();
        Integer isQrCode = comActActivityDO.getIsQrCode();
        if (nonNull(isQrCode) && isQrCode.equals(1)) {
            //需要签到类型
            int registCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
                    .lambda().eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getActivityId, activityId));
            if (registCount <= 0) {
                //未签到,不能评价
                return R.fail("未签到,不能评价");
            }
        } else {
            if (nowDate.before(beginAt)) {
                return R.fail("活动还未开始,暂不支持评价");
            }
        }
        ComActActEvaluateDO currentUserEvaluateForThisActivity = this.baseMapper.selectOne(new QueryWrapper<ComActActEvaluateDO>()
                .lambda().eq(ComActActEvaluateDO::getActivityId, activityId).eq(ComActActEvaluateDO::getUserId, userId));
        if (Objects.nonNull(currentUserEvaluateForThisActivity)) {
            return R.fail("该用户已评论过了,请勿重复评论");
        }
@@ -76,7 +107,7 @@
        List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectList(new QueryWrapper<ComActActivityDO>().lambda()
                .eq(ComActActivityDO::getStatus, 5)
                .eq(ComActActivityDO::getIsDefaultPraise, 0)
                .le(ComActActivityDO::getEndAt, DateUtils.addDays(new Date(), 7)));
                .le(ComActActivityDO::getEndAt, DateUtils.addDays(new Date(), -7)));
        //获取报名记录
        if (!ObjectUtils.isEmpty(comActActivityDOS)) {
            List<Long> activityIds = comActActivityDOS.stream().map(ComActActivityDO::getId).collect(Collectors.toList());
@@ -90,6 +121,7 @@
                    comActActEvaluateDO.setUserId(comActActSignDO.getUserId());
                    comActActEvaluateDO.setCreateAt(new Date());
                    comActActEvaluateDO.setStarLevel(5);
                    comActActEvaluateDO.setEvaluateContent("系统默认好评!");
                    return comActActEvaluateDO;
                }).collect(Collectors.toList());
                boolean result = this.saveBatch(comActActEvaluateDOList);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -1,21 +1,24 @@
package com.panzhihua.service_community.service.impl;
import static java.util.Objects.isNull;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.screen.ComActPopulationCultureVO;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
import com.panzhihua.service_community.model.dos.ComActActPictureDO;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@@ -30,26 +33,32 @@
import com.panzhihua.common.model.vos.IndexDataVO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ActivitySignVO;
import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
import com.panzhihua.common.model.vos.community.ComActActPictureVO;
import com.panzhihua.common.model.vos.community.ComActActRegistVO;
import com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO;
import com.panzhihua.common.model.vos.community.ComActActivityVO;
import com.panzhihua.common.model.vos.community.CommunityActivitiesVO;
import com.panzhihua.common.model.vos.community.CommunityGovernanceTrendsVO;
import com.panzhihua.common.model.vos.community.SignactivityVO;
import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.WxUtil;
import com.panzhihua.common.utlis.WxXCXTempSend;
import com.panzhihua.service_community.dao.ComActActEvaluateDAO;
import com.panzhihua.service_community.dao.ComActActPictureDAO;
import com.panzhihua.service_community.dao.ComActActRegistDAO;
import com.panzhihua.service_community.dao.ComActActSignDAO;
import com.panzhihua.service_community.dao.ComActActivityDAO;
import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
import com.panzhihua.service_community.model.dos.ComActActPictureDO;
import com.panzhihua.service_community.model.dos.ComActActRegistDO;
import com.panzhihua.service_community.model.dos.ComActActSignDO;
import com.panzhihua.service_community.model.dos.ComActActivityDO;
import com.panzhihua.service_community.service.ComActActivityService;
import lombok.extern.slf4j.Slf4j;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -101,7 +110,7 @@
        if (status.intValue() == 2) {// 点击‘保存并发布’ 按钮
            // 报名结束时间大于当前时间则设置为“进行中”
            if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) {
                comActActivityDO.setStatus(4);
                comActActivityDO.setStatus(3);
            }
        }
@@ -170,7 +179,7 @@
        // 结束时间大于当前时间则设置为“进行中”
        Date now = new Date();
        if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) {
            comActActivityDO.setStatus(4);
            comActActivityDO.setStatus(3);
        }
        boolean b = this.updateById(comActActivityDO);
        if (b) {
@@ -200,15 +209,15 @@
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComActActivityVO> iPage = comActActivityDAO.pageActivity(page, comActActivityVO);
        List<ComActActivityVO> records = iPage.getRecords();
        if (!ObjectUtils.isEmpty(records)) {
            records.forEach(comActActivityVO1 -> {
                Integer status = comActActivityVO1.getStatus();
                if (status.intValue() == 3) {
                    comActActivityVO1.setStatus(4);
                }
            });
        }
//        List<ComActActivityVO> records = iPage.getRecords();
//        if (!ObjectUtils.isEmpty(records)) {
//            records.forEach(comActActivityVO1 -> {
//                Integer status = comActActivityVO1.getStatus();
//                if (status.intValue() == 3) {
//                    comActActivityVO1.setStatus(4);
//                }
//            });
//        }
        return R.ok(iPage);
    }
@@ -221,20 +230,11 @@
     */
    @Override
    public R releaseActivity(ComActActivityVO comActActivityVO) {
        ComActActivityDO comActActivityDO = new ComActActivityDO();
//        comActActivityDO.setId(comActActivityVO.getId());
//        comActActivityDO.setPublishAt(comActActivityVO.getPublishAt());
//        comActActivityDO.setStatus(comActActivityVO.getStatus());
        comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId());
        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId());
        comActActivityDO.setPublishAt(comActActivityVO.getPublishAt());
        if (comActActivityVO.getPublishAt().before(comActActivityDO.getSignUpBegin())) {
            comActActivityVO.setStatus(2);
        }
        comActActivityDO.setStatus(3);
        if (comActActivityVO.getPublishAt().after(comActActivityDO.getSignUpEnd())) {
            comActActivityVO.setStatus(5);
        }
        if (comActActivityVO.getPublishAt().after(comActActivityDO.getSignUpBegin()) && comActActivityVO.getPublishAt().before(comActActivityDO.getSignUpEnd())) {
            comActActivityVO.setStatus(3);
            comActActivityVO.setStatus(4);
        }
        int update = comActActivityDAO.updateById(comActActivityDO);
        if (update > 0) {
@@ -599,15 +599,15 @@
        int num = comActActivityDAO.updateStatusToNotBegin();
        log.info("定时任务--修改社区活动发布状态活动数量【{}】", num);
        // 修改报名状态 变为报名中
        int num1 = comActActivityDAO.updateStatusToBeginSign();
        log.info("定时任务--修改社区活动报名状态活动数量【{}】", num1);
//        int num1 = comActActivityDAO.updateStatusToBeginSign();
//        log.info("定时任务--修改社区活动报名状态活动数量【{}】", num1);
        int num3 = comActActivityDAO.updateStatusToBeginAfterSingEnd();
        log.info("定时任务--报名结束修改社区活动进行状态活动数量【{}】", num3);
        // 查询已经结束的活动,需要计算积分
        List<Long> activityEndIds = comActActivityDAO.getActivityEndIds();
        // 修改进行状态 变为进行中或者已结束
        int num2 = comActActivityDAO.updateStatusToBeginActiveOrEnd();
        log.info("定时任务--修改社区活动进行状态活动数量【{}】", num2);
        int num3 = comActActivityDAO.updateStatusToBeginAfterSingEnd();
        log.info("定时任务--报名结束修改社区活动进行状态活动数量【{}】", num3);
        return R.ok(activityEndIds);
    }
@@ -635,11 +635,20 @@
        iPage.getRecords().forEach(vo ->{
            List<ComActActEvaluateDO> comActActEvaluateDOList = comActActEvaluateDAO
                    .selectList(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, vo.getId()));
            if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() != 0) {
            if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() > 0) {
                BigDecimal starNum = BigDecimal.ZERO;
                //总星级
                int starNum = comActActEvaluateDOList.stream().mapToInt(ComActActEvaluateDO::getStarLevel).sum();
                //评分星级=总星级/总评价人数
                vo.setEvaluateLevel(Double.valueOf(starNum/comActActEvaluateDOList.size()));
                for (ComActActEvaluateDO evaluateDO:comActActEvaluateDOList) {
                    starNum = starNum.add(BigDecimal.valueOf(evaluateDO.getStarLevel()==null?0:evaluateDO.getStarLevel()));
                }
                //评分星级(如果无评分默认5分)=总星级/总评价人数
                if(starNum.compareTo(BigDecimal.ZERO) == 0){
                    vo.setEvaluateLevel(BigDecimal.valueOf(5));
                }else{
                    vo.setEvaluateLevel(starNum.divide(BigDecimal.valueOf(comActActEvaluateDOList.size()),2, RoundingMode.HALF_UP));
                }
            }else{
                vo.setEvaluateLevel(BigDecimal.valueOf(5));
            }
        });
        return R.ok(iPage);
@@ -773,6 +782,7 @@
    @Override
    public R activitySignIn(ComActActRegistVO comActActRegistVO) {
        Long activityId = comActActRegistVO.getActivityId();
        Long userId = comActActRegistVO.getUserId();
        if (isNull(activityId)) {
            return R.fail("签到所属活动id不能为空!");
        }
@@ -780,22 +790,37 @@
        if (isNull(comActActivityDO)) {
            return R.fail("活动不存在!");
        }
        Long userId = comActActRegistVO.getUserId();
        String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString());
        if (stringRedisTemplate.hasKey(activitySignInKey)) {
            return R.fail("你已签到,如要再次签到请三十分钟后尝试!");
        Date beginAt = comActActivityDO.getBeginAt();
        Date endAt = comActActivityDO.getEndAt();
        Date nowDate = new Date();
        if (nowDate.before(beginAt) || nowDate.after(endAt)) {
            return R.fail("不在活动时间范围内");
        }
        int signCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
                .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
        if (signCount > 0) {
            return R.fail("请勿重复签到");
        }
//        String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString());
//        if (stringRedisTemplate.hasKey(activitySignInKey)) {
//            return R.fail("你已签到,如要再次签到请三十分钟后尝试!");
//        }
        ComActActRegistDO comActActRegistDO = new ComActActRegistDO();
        comActActRegistDO.setActivityId(activityId);
        comActActRegistDO.setUserId(userId);
        comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer());
        comActActRegistDO.setCreateAt(new Date());
        comActActRegistDO.setCreateAt(nowDate);
        int result = comActActRegistDAO.insert(comActActRegistDO);
        if (result > 0) {
            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
            opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS);
//            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
//            opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS);
            return R.ok();
        }
        return R.ok();
        return R.fail("网络错误,请重试");
    }
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -1,44 +1,97 @@
package com.panzhihua.service_community.service.impl;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isBlank;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.connection.StringRedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.SetOperations;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.constants.Constants;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.ComActDiscussCommentDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussCommentUserDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussOptionDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussOptionUserDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussUserDTO;
import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO;
import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO;
import com.panzhihua.common.model.vos.community.ComActDiscussOptionUserVO;
import com.panzhihua.common.model.vos.community.ComActDiscussOptionVO;
import com.panzhihua.common.model.vos.community.ComActDiscussVO;
import com.panzhihua.common.model.vos.community.ComActVO;
import com.panzhihua.common.model.vos.community.SysConfVO;
import com.panzhihua.common.model.vos.community.screen.work.DiscussListVO;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.service_community.dao.ComActDiscussCommentDAO;
import com.panzhihua.service_community.dao.ComActDiscussCommentUserDAO;
import com.panzhihua.service_community.dao.ComActDiscussDAO;
import com.panzhihua.service_community.dao.ComActDiscussOptionDAO;
import com.panzhihua.service_community.dao.ComActDiscussOptionUserDAO;
import com.panzhihua.service_community.dao.ComActDiscussUserDAO;
import com.panzhihua.service_community.dao.SysConfMapper;
import com.panzhihua.service_community.model.dos.ComActDiscussCommentDO;
import com.panzhihua.service_community.model.dos.ComActDiscussCommentUserDO;
import com.panzhihua.service_community.model.dos.ComActDiscussDO;
import com.panzhihua.service_community.model.dos.ComActDiscussOptionDO;
import com.panzhihua.service_community.model.dos.ComActDiscussOptionUserDO;
import com.panzhihua.service_community.model.dos.ComActDiscussUserDO;
import com.panzhihua.service_community.model.dos.SysConfDO;
import com.panzhihua.service_community.service.ComActDiscussOptionService;
import com.panzhihua.service_community.service.ComActDiscussService;
import com.panzhihua.service_community.service.SysConfService;
import lombok.extern.slf4j.Slf4j;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 一起议
 * @description: 议事投票
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2021-01-22 14:51
 **/
@Service
@Slf4j
public class ComActDiscussServiceImpl implements ComActDiscussService {
    private static final String DISCUSS_VIEW_NUM_PREFIX = "DISCUSS_VIEW_NUM";
    private static final String INCR_VIEW_DISCUSS_IDS_KEY = "INCR_VIEW_DISCUSS_IDS";
    private static final long DISCUSS_EXPIRE_TIME = 2678400L;
    @Resource
    private ComActDiscussCommentDAO comActDiscussCommentDAO;
    @Resource
@@ -53,33 +106,56 @@
    private ComActDiscussCommentUserDAO comActDiscussCommentUserDAO;
    @Resource
    private ComActDiscussOptionService comActDiscussOptionService;
    @Resource
    private SysConfMapper sysConfDao;
    @Resource
    private SysConfService sysConfService;
    @Resource
    private UserService userService;
    @Resource
    private StringRedisTemplate stringRedisTemplate;
    /**
     * 一起议-新增
     * 议事投票-新增
     *
     * @param comActDiscussDTO
     *            新增参数
     * @param comActDiscussDTO 新增参数
     * @return 新增结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addDiscuss(ComActDiscussDTO comActDiscussDTO) {
        if (!checkCurrentUserDiscussIdentity(comActDiscussDTO)) {
            return R.fail("权限验证失败,请确认是否有发布权限");
        }
        ComActDiscussDO comActDiscussDO = new ComActDiscussDO();
        BeanUtils.copyProperties(comActDiscussDTO, comActDiscussDO);
        ComActVO comActVO = comActDiscussDAO.selectCommunity(comActDiscussDTO.getCommunityId());
        Integer type = comActDiscussDTO.getType();
        Date nowDate = new Date();
        if (type.equals(ComActDiscussDO.type.tp)) {//判断是投票,需要转义时间
            Date startTime = DateUtils.stringToDate(comActDiscussDTO.getStartTime(), DateUtils.ymdhms_format);
            Date endTime = DateUtils.stringToDate(comActDiscussDTO.getEndTime(), DateUtils.ymdhms_format);
            comActDiscussDO.setStartTime(startTime);
            comActDiscussDO.setEndTime(endTime);
            comActDiscussDO.setStatus(ComActDiscussDO.status.wks);
            //根据时间判断状态是否开始
            if (startTime != null && startTime.getTime() <= nowDate.getTime()) {
                comActDiscussDO.setStatus(ComActDiscussDO.status.jxz);
                comActDiscussDO.setReleaseAt(nowDate);
            }
        } else {
            comActDiscussDO.setStatus(ComActDiscussDO.status.yfb);
        }
        String address = comActDiscussDO.getAddress();
        if (ObjectUtils.isEmpty(address)) {
            //查询社区地址
            ComActVO comActVO = comActDiscussDAO.selectCommunity(comActDiscussDTO.getCommunityId());
            comActDiscussDO.setAddress(comActVO.getAddress());
        }
        int insert = comActDiscussDAO.insert(comActDiscussDO);
        if (insert > 0) {
            ComActDiscussDO comActDiscussDO1 = comActDiscussDAO.selectOne(new QueryWrapper<ComActDiscussDO>().lambda()
                .eq(ComActDiscussDO::getDiscussSubject, comActDiscussDTO.getDiscussSubject())
                .eq(ComActDiscussDO::getUserId, comActDiscussDTO.getUserId())
                .last(" order by create_at desc limit 1 "));
            Long comActDiscussDO1Id = comActDiscussDO1.getId();
            Integer type = comActDiscussDTO.getType();
            //如果是投票,需要把投票的选项存储
            if (type.equals(2)) {
                Long comActDiscussDO1Id = comActDiscussDO.getId();
                List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
                List<ComActDiscussOptionDO> comActDiscussOptionDOS = new ArrayList<>();
                discussOptions.forEach(s -> {
@@ -97,72 +173,170 @@
    }
    /**
     * 一起议-详情
     *
     * @param id
     *            主键
     * @return ComActDiscussVO
     * 小程序用户验证是否拥有发布权限
     * @param comActDiscussDTO
     * @return
     */
    @Override
    public R detailDiscuss(Long id) {
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id);
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("一起议不存在");
    private boolean checkCurrentUserDiscussIdentity(ComActDiscussDTO comActDiscussDTO) {
        //小程序用户验证是否拥有发布权限
        boolean checkResult = true;
        Boolean isApplets = comActDiscussDTO.getIsApplets();
        if (nonNull(isApplets) && isApplets) {
            String discussIdentityPrefix = "DISCUSS_IDENTITY_";
            Long communityId = comActDiscussDTO.getCommunityId();
            R sysConfValue = sysConfService.getSysConfValue(discussIdentityPrefix + communityId, communityId);
            String discussIdentityConfig = (String) sysConfValue.getData();
            if (isBlank(discussIdentityConfig)) {
                checkResult = false;
            } else {
                List<String> currentUserRoles = new ArrayList<>();
                List<String> sysAllowedRoles = Arrays.asList(discussIdentityConfig.split(","));
                LoginUserInfoVO loginUserInfo = comActDiscussDTO.getLoginUserInfo();
                if (loginUserInfo.getIsPartymember() == 1) {
                    currentUserRoles.add("2");
                }
                if (loginUserInfo.getIsVolunteer().intValue() == 1) {
                    currentUserRoles.add("3");
                }
                R isTeamResult = userService.checkCurrentUserIsTeam(loginUserInfo.getPhone(), loginUserInfo.getCommunityId());
                if (R.isOk(isTeamResult) && (Boolean) isTeamResult.getData()) {
                    currentUserRoles.add("4");
                }
                if (currentUserRoles.isEmpty()) {
                    checkResult = false;
                }
                boolean result = sysAllowedRoles.stream().anyMatch(role -> currentUserRoles.contains(role));
                if (!result) {
                    checkResult = false;
                }
            }
        }
        ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
        BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
        Integer integer = comActDiscussCommentDAO.selectCount(
            new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
        comActDiscussVO.setCommentNum(integer);
        Integer integer1 = comActDiscussUserDAO
            .selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
        comActDiscussVO.setSignNum(integer1);
        Integer type = comActDiscussVO.getType();
        if (type.equals(2)) {
            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
                new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
            List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
            comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                Long discussOptionDOId = comActDiscussOptionDO.getId();
                Integer selectCount =
                    comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda()
                        .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
                BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
                comActDiscussOptionVO.setNum(selectCount);
                comActDiscussOptionVOS.add(comActDiscussOptionVO);
            });
            comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
        }
        Long userId = comActDiscussDO.getUserId();
        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
        comActDiscussVO.setUserName(loginUserInfoVO.getName());
        return R.ok(comActDiscussVO);
        return checkResult;
    }
    /**
     * 一起议-删除
     * 议事投票-编辑
     *
     * @param id
     *            主键
     * @return 删除结果
     * @param comActDiscussDTO 请求参数
     * @return 编辑结果
     */
    @Override
    public R deleteDiscuss(Long id) {
        int delete = comActDiscussDAO.deleteById(id);
        if (delete > 0) {
    @Transactional(rollbackFor = Exception.class)
    public R editDiscuss(ComActDiscussDTO comActDiscussDTO) {
        Long comActDiscussDO1Id = comActDiscussDTO.getId();
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(comActDiscussDO1Id);
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("议事投票不存在");
        }
        if (!comActDiscussDO.getStatus().equals(ComActDiscussDO.status.wks) && !comActDiscussDO.getStatus().equals(ComActDiscussDO.status.yfb)) {
            return R.fail("该状态不可修改");
        }
        Integer type = comActDiscussDO.getType();
        Integer isRepeat = comActDiscussDO.getIsRepeat();
        BeanUtils.copyProperties(comActDiscussDTO, comActDiscussDO);
        comActDiscussDO.setType(type);
        comActDiscussDO.setIsRepeat(isRepeat);
        Date nowDate = new Date();
        if (type.equals(ComActDiscussDO.type.tp)) {//判断是投票,需要转义时间
            Date startTime = DateUtils.stringToDate(comActDiscussDTO.getStartTime(), DateUtils.ymdhms_format);
            Date endTime = DateUtils.stringToDate(comActDiscussDTO.getEndTime(), DateUtils.ymdhms_format);
            comActDiscussDO.setStartTime(startTime);
            comActDiscussDO.setEndTime(endTime);
            comActDiscussDO.setStatus(ComActDiscussDO.status.wks);
            //根据时间判断状态是否开始
            if (startTime != null && startTime.getTime() <= nowDate.getTime()) {
                comActDiscussDO.setStatus(ComActDiscussDO.status.jxz);
                comActDiscussDO.setReleaseAt(nowDate);
            }
        } else {
            comActDiscussDO.setStatus(ComActDiscussDO.status.yfb);
        }
        comActDiscussDO.setUpdateAt(new Date());
        int insert = comActDiscussDAO.updateById(comActDiscussDO);
        if (insert > 0) {
            //如果是投票,需要把投票的选项存储
            if (type.equals(2)) {
                comActDiscussOptionService.remove(new QueryWrapper<ComActDiscussOptionDO>().lambda()
                        .eq(ComActDiscussOptionDO::getDiscussId, comActDiscussDO1Id));
                List<ComActDiscussOptionDO> comActDiscussOptionDOS = new ArrayList<>();
                comActDiscussDTO.getDiscussOptions().forEach(s -> {
                    ComActDiscussOptionDO comActDiscussOptionDO = new ComActDiscussOptionDO();
                    comActDiscussOptionDO.setDiscussId(comActDiscussDO1Id);
                    comActDiscussOptionDO.setOptionContent(s.getOptionContent());
                    comActDiscussOptionDO.setOptionUrl(s.getOptionUrl());
                    comActDiscussOptionDOS.add(comActDiscussOptionDO);
                });
                comActDiscussOptionService.saveBatch(comActDiscussOptionDOS);
            }
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 一起议-回复
     * 议事投票-详情
     *
     * @param comActDiscussCommentDTO
     *            评论内容
     * @param discussDetailDTO 请求参数
     * @return ComActDiscussVO
     */
    @Override
    public R detailDiscuss(ComActDiscussDetailDTO discussDetailDTO) {
        Long id = discussDetailDTO.getId();
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id);
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("议事投票不存在");
        }
        ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
        BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
        comActDiscussVO.setSignNum(comActDiscussDO.getFabulousNum());
        Integer type = comActDiscussVO.getType();
        if (type.equals(ComActDiscussVO.type.tp)) {
            //查询选项列表
            List<ComActDiscussOptionVO> comActDiscussOptionList = comActDiscussOptionDAO.getDiscussOptionList(id);
            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionList);
        }
        Long userId = comActDiscussDO.getUserId();
        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
        comActDiscussVO.setUserName(loginUserInfoVO.getName());
        comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
        //分页查询评论列表
        PageComActDiscussCommentDTO pageComActDiscussCommentDTO = new PageComActDiscussCommentDTO();
        BeanUtils.copyProperties(discussDetailDTO, pageComActDiscussCommentDTO);
        IPage<ComActDiscussCommentVO> discussComments = comActDiscussDAO.pageDiscussCommentAdmin(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO);
        discussComments.getRecords().forEach(comment -> {
            if (comment.getReplyNum() > 0) {
                List<ComActDiscussCommentVO> childList = comActDiscussDAO.getDiscussCommentReplyList(comment.getId());
                if (!childList.isEmpty()) {
                    comment.setComActDiscussCommentVOList(childList);
                }
            }
        });
        comActDiscussVO.setDiscussCommentList(discussComments.getRecords());
        return R.ok(comActDiscussVO);
    }
    /**
     * 议事投票-删除
     *
     * @param id 主键
     * @return 删除结果
     */
    @Override
    public R deleteDiscuss(Long id) {
        ComActDiscussDO comActDiscussDO = new ComActDiscussDO();
        comActDiscussDO.setId(id);
        comActDiscussDO.setIsDel(ComActDiscussDO.isOk.yes);
        if (comActDiscussDAO.updateById(comActDiscussDO) > 0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 议事投票-回复
     *
     * @param comActDiscussCommentDTO 评论内容
     * @return 回复结果
     */
    @Override
@@ -170,52 +344,62 @@
        Long discussId = comActDiscussCommentDTO.getDiscussId();
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId);
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("一起议不存在");
            return R.fail("议事投票不存在");
        }
        Long currentUser = comActDiscussCommentDTO.getUserId();
        //判断当前用户是否参与过评论
        int currentUserCommentCount = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>()
                .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId).eq(ComActDiscussCommentDO::getUserId, currentUser));
        ComActDiscussCommentDO comActDiscussCommentDO = new ComActDiscussCommentDO();
        BeanUtils.copyProperties(comActDiscussCommentDTO, comActDiscussCommentDO);
        Long userId = comActDiscussCommentDTO.getUserId();
        Long userId1 = comActDiscussDO.getUserId();
        if (userId.equals(userId1)) {
        Long discussUser = comActDiscussDO.getUserId();
        if (currentUser.equals(discussUser)) {
            comActDiscussCommentDO.setIsAuthor(1);
        }
        int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO);
        if (insert > 0) {
//            comActDiscussDAO.addCommentCount(discussId, 1);
            //评论成功,评论总数+1
            //若首次参与评论,参与讨论人数+1
            if (currentUserCommentCount > 0) {
                comActDiscussDAO.incrCommentAndJoinNumById(discussId, false);
            } else {
                comActDiscussDAO.incrCommentAndJoinNumById(discussId, true);
            }
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 一起议-分页查询
     * 议事投票-分页查询
     *
     * @param pageComActDiscussDTO
     *            查询参数
     * @param pageComActDiscussDTO 查询参数
     * @return ComActDiscussVO
     */
    @Override
    public R pageDiscuss(PageComActDiscussDTO pageComActDiscussDTO) {
        Page page = new Page<>();
        Long pageNum = pageComActDiscussDTO.getPageNum();
        Long pageSize = pageComActDiscussDTO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscuss(page, pageComActDiscussDTO);
        IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscuss(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO);
        return R.ok(iPage);
    }
    /**
     * 一起议-评论-查看
     * 议事投票-后台分页查询
     *
     * @param id
     *            主键
     * @param pageComActDiscussDTO 请求参数
     * @return 议事投票列表
     */
    @Override
    public R pageDiscussAdmin(PageComActDiscussDTO pageComActDiscussDTO) {
        return R.ok(comActDiscussDAO.pageDiscussAdmin(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO));
    }
    /**
     * 议事投票-评论-查看
     *
     * @param id 主键
     * @return 详情 ComActDiscussCommentVO
     */
    @Override
@@ -237,7 +421,7 @@
            comActDiscussCommentVO.setParentId(parentId);
        }
        Integer count = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
            .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id));
                .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id));
        comActDiscussCommentVO.setNum(count);
        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(comActDiscussCommentDO.getUserId());
        comActDiscussCommentVO.setUserName(loginUserInfoVO.getName());
@@ -246,10 +430,50 @@
    }
    /**
     * 一起议-评论-置顶
     * 议事投票评论详情
     *
     * @param id
     *            主键
     * @param pageComActDiscussCommentDTO 请求参数
     * @return 议事投票详情
     */
    @Override
    public R detailDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
        Long id = pageComActDiscussCommentDTO.getId();
        ComActDiscussCommentDO comActDiscussCommentDO = comActDiscussCommentDAO.selectById(id);
        if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
            return R.fail("评论不存在");
        }
        ComActDiscussCommentVO comActDiscussCommentVO = new ComActDiscussCommentVO();
        Long parentId = comActDiscussCommentDO.getParentId();
        if (parentId.intValue() == 0) {
            // 一级评论
            BeanUtils.copyProperties(comActDiscussCommentDO, comActDiscussCommentVO);
        } else {
            ComActDiscussCommentDO comActDiscussCommentDO1 = comActDiscussCommentDAO.selectById(parentId);
            BeanUtils.copyProperties(comActDiscussCommentDO1, comActDiscussCommentVO);
            comActDiscussCommentVO.setCommentBack(comActDiscussCommentDO.getComment());
            comActDiscussCommentVO.setTimeBack(comActDiscussCommentDO.getCreateAt());
            comActDiscussCommentVO.setParentId(parentId);
        }
        Integer count = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id));
        comActDiscussCommentVO.setNum(count);
        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(comActDiscussCommentDO.getUserId());
        comActDiscussCommentVO.setUserName(loginUserInfoVO.getName());
        comActDiscussCommentVO.setPhone(loginUserInfoVO.getPhone());
        comActDiscussCommentVO.setImageUrl(loginUserInfoVO.getImageUrl());
        //查询该评论下所有回复内容
        IPage<ComActDiscussCommentVO> discussCommentList = comActDiscussCommentDAO.getDiscussCommentList(new Page(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO.getId());
        if (!discussCommentList.getRecords().isEmpty()) {
            comActDiscussCommentVO.setComActDiscussCommentVOList(discussCommentList.getRecords());
        }
        return R.ok(comActDiscussCommentVO);
    }
    /**
     * 议事投票-评论-置顶
     *
     * @param id 主键
     * @return 置顶结果
     */
    @Override
@@ -266,7 +490,7 @@
        ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO();
        comActDiscussCommentDO1.setIsTopping(0);
        comActDiscussCommentDAO.update(comActDiscussCommentDO1,
            new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId));
                new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId));
        comActDiscussCommentDO1.setIsTopping(1);
        comActDiscussCommentDO1.setId(id);
        int update = comActDiscussCommentDAO.updateById(comActDiscussCommentDO1);
@@ -277,10 +501,9 @@
    }
    /**
     * 一起议-评论-回复
     * 议事投票-评论-回复
     *
     * @param comActDiscussCommentDTO
     *            回复内容
     * @param comActDiscussCommentDTO 回复内容
     * @return 回复结果
     */
    @Override
@@ -293,54 +516,68 @@
        Long discussId = comActDiscussCommentDO.getDiscussId();
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId);
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("一起议不存在");
            return R.fail("议事投票不存在");
        }
        Long userId = comActDiscussDO.getUserId();
        Long userId1 = comActDiscussCommentDTO.getUserId();
        Long parentId = comActDiscussCommentDO.getParentId();
        if (parentId.intValue() != 0) {
            return R.fail("二级评论不能回复");
        }
        Long currentUser = comActDiscussCommentDTO.getUserId();
        //判断当前用户是否参与过评论/回复
        int currentUserCommentCount = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>()
                .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId).eq(ComActDiscussCommentDO::getUserId, currentUser));
        Long discussUser = comActDiscussDO.getUserId();
        ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO();
        comActDiscussCommentDO1.setDiscussId(discussId);
        comActDiscussCommentDO1.setComment(comActDiscussCommentDTO.getComment());
        comActDiscussCommentDO1.setUserId(comActDiscussCommentDTO.getUserId());
        comActDiscussCommentDO1.setParentId(id);
        if (userId.equals(userId1)) {
        if (discussUser.equals(currentUser)) {
            comActDiscussCommentDO1.setIsAuthor(1);
        }
        int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO1);
        if (insert > 0) {
//            comActDiscussDAO.addCommentCount(discussId, 1);
            //回复成功,评论总数+1
            //若首次参与评论,参与讨论人数+1
            if (currentUserCommentCount > 0) {
                comActDiscussDAO.incrCommentAndJoinNumById(discussId, false);
            } else {
                comActDiscussDAO.incrCommentAndJoinNumById(discussId, true);
            }
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 一起议-评论-分页查询
     * 议事投票-评论-分页查询
     *
     * @param pageComActDiscussCommentDTO
     *            分页查询参数
     * @param pageComActDiscussCommentDTO 分页查询参数
     * @return ComActDiscussCommentVO
     */
    @Override
    public R pageDiscussComment(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
        Page page = new Page<>();
        Long pageNum = pageComActDiscussCommentDTO.getPageNum();
        Long pageSize = pageComActDiscussCommentDTO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(page, pageComActDiscussCommentDTO);
        IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO);
        return R.ok(iPage);
    }
    /**
     * 一起议-分页查询 小程序
     * 议事投票-评论-后台分页查询
     *
     * @param pageComActDiscussDTO
     *            查询参数
     * @param pageComActDiscussCommentDTO 分页查询参数
     * @return ComActDiscussCommentVO
     */
    @Override
    public R pageDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
        IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussCommentAdmin(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO);
        return R.ok(iPage);
    }
    /**
     * 议事投票-分页查询 小程序
     *
     * @param pageComActDiscussDTO 查询参数
     * @return ComActDiscussVO 分页
     */
    @Override
@@ -365,13 +602,14 @@
                Long id = comActDiscussVO.getId();
                if (type.equals(2)) {
                    List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
                        new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
                            new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
                    List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
                    List<Integer> votes = new ArrayList<>();
                    comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                        Long discussOptionDOId = comActDiscussOptionDO.getId();
                        Integer selectCount =
                            comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>()
                                .lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                                comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>()
                                        .lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                        ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
                        BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
                        comActDiscussOptionVO.setNum(selectCount);
@@ -379,19 +617,42 @@
                        if (loginUserId != null) {
                            // 判断选项是否已投票
                            int haveVote =
                                comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
                                    comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
                            votes.add(haveVote);
                            comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
                        }
                        comActDiscussOptionVOS.add(comActDiscussOptionVO);
                    });
                    comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
                    fillThePercentAndSort(comActDiscussOptionVOS);
                    checkDiscussStatusIsCorrect(comActDiscussVO);
                    comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
                    //填充剩余可投票数
                    if (loginUserId != null && !loginUserId.equals(0L)) {
                        if (comActDiscussVO.getIsRepeat().intValue() == 1) {
                            //可重复投票
                            int votedVotesInToday = comActDiscussOptionUserDAO.selectVotedVotesInToday(id, loginUserId);
                            int remainingVotes = comActDiscussVO.getCount().intValue() - votedVotesInToday;
                            comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
                        } else {
                            //不可重复投票
                            int alreadyVotedVotes = votes.stream().mapToInt(Integer::intValue).sum();
                            int remainingVotes = comActDiscussVO.getCount().intValue() - alreadyVotedVotes;
                            comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
                        }
                    }
                    //填充投票记录列表
                    List<ComActDiscussOptionUserVO> comActDiscussOptionUserVOList = comActDiscussOptionUserDAO
                            .selectVotedRecords(comActDiscussVO.getId());
                    comActDiscussVO.setComActDiscussOptionUserVOList(comActDiscussOptionUserVOList);
                    //填充已参与投票人数
                    int votedPersonNum = comActDiscussOptionUserDAO.selectVotedPersonNum(comActDiscussVO.getId());
                    comActDiscussVO.setVotedPersonNum(votedPersonNum);
                }
                if (loginUserId != null) {
                    Integer integer = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda()
                        .eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId())
                        .eq(ComActDiscussUserDO::getUserId, loginUserId));
                            .eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId())
                            .eq(ComActDiscussUserDO::getUserId, loginUserId));
                    if (integer > 0) {
                        comActDiscussVO.setHaveSign(1);
                    } else {
@@ -407,10 +668,23 @@
    }
    /**
     * 一起议-点赞、取消点赞
     * 判断discuss状态是否正确
     * @param comActDiscussVO
     */
    private void checkDiscussStatusIsCorrect(ComActDiscussVO comActDiscussVO) {
        //判断discuss状态是否正确
        boolean isIncorrectStatus = comActDiscussVO.getEndTime().before(new Date()) &&
                (comActDiscussVO.getStatus().intValue() == 1 || comActDiscussVO.getStatus().intValue() == 2);
        if (isIncorrectStatus) {
            comActDiscussVO.setStatus(3);
            comActDiscussDAO.updateStatusById(comActDiscussVO.getId(), 3);
        }
    }
    /**
     * 议事投票-点赞、取消点赞
     *
     * @param comActDiscussUserDTO
     *            操作类型
     * @param comActDiscussUserDTO 操作类型
     * @return 操作结果
     */
    @Override
@@ -419,24 +693,26 @@
        int num = 0;
        ComActDiscussUserDO comActDiscussUserDO = new ComActDiscussUserDO();
        BeanUtils.copyProperties(comActDiscussUserDTO, comActDiscussUserDO);
        if (type.intValue() == 1) {
        boolean isIncr = type.intValue() == 1;
        if (isIncr) {
            num = comActDiscussUserDAO.insert(comActDiscussUserDO);
        } else {
            num = comActDiscussUserDAO.delete(new QueryWrapper<ComActDiscussUserDO>().lambda()
                .eq(ComActDiscussUserDO::getUserId, comActDiscussUserDTO.getUserId())
                .eq(ComActDiscussUserDO::getDiscussId, comActDiscussUserDTO.getDiscussId()));
                    .eq(ComActDiscussUserDO::getUserId, comActDiscussUserDTO.getUserId())
                    .eq(ComActDiscussUserDO::getDiscussId, comActDiscussUserDTO.getDiscussId()));
        }
        if (num > 0) {
            //点赞成功 总数+1 || 取消点赞成功 总数-1
            comActDiscussDAO.incrOrDecrFabulousNumByType(comActDiscussUserDTO.getDiscussId(), isIncr);
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 一起议-评论-分页查询 小程序
     * 议事投票-评论-分页查询 小程序
     *
     * @param pageComActDiscussCommentDTO
     *            分页参数
     * @param pageComActDiscussCommentDTO 分页参数
     * @return ComActDiscussCommentVO
     */
    @Override
@@ -453,7 +729,7 @@
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComActDiscussCommentVO> iPage =
            comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO);
                comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO);
        List<ComActDiscussCommentVO> records = iPage.getRecords();
        if (!ObjectUtils.isEmpty(records)) {
            records.forEach(comActDiscussCommentVO -> {
@@ -465,8 +741,8 @@
                    comActDiscussCommentVOList.forEach(comActDiscussCommentVO1 -> {
                        Long parentId = comActDiscussCommentVO1.getParentId();
                        List<ComActDiscussCommentVO> collect = comActDiscussCommentVOS.stream()
                            .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
                            .collect(Collectors.toList());
                                .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
                                .collect(Collectors.toList());
                        if (!ObjectUtils.isEmpty(collect)) {
                            String userName = collect.get(0).getUserName();
                            String userNickName = collect.get(0).getUserNickName();
@@ -474,8 +750,8 @@
                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
                        }
                        List<ComActDiscussCommentVO> collect1 = records.stream()
                            .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
                            .collect(Collectors.toList());
                                .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
                                .collect(Collectors.toList());
                        if (!ObjectUtils.isEmpty(collect1)) {
                            ComActDiscussCommentVO comActDiscussCommentVOFirst = collect1.get(0);
                            String userName = comActDiscussCommentVOFirst.getUserName();
@@ -484,13 +760,13 @@
                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
                        }
                        if (pageComActDiscussCommentDTO.getLoginUserId() != null
                            && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
                                && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
                            Integer integer = comActDiscussCommentUserDAO
                                .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId,
                                        comActDiscussCommentVO1.getId())
                                    .eq(ComActDiscussCommentUserDO::getUserId,
                                        pageComActDiscussCommentDTO.getLoginUserId()));
                                    .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                                            .eq(ComActDiscussCommentUserDO::getDisscussCommentId,
                                                    comActDiscussCommentVO1.getId())
                                            .eq(ComActDiscussCommentUserDO::getUserId,
                                                    pageComActDiscussCommentDTO.getLoginUserId()));
                            if (integer > 0) {
                                comActDiscussCommentVO1.setHaveSign(1);
                            } else {
@@ -504,11 +780,11 @@
                    comActDiscussCommentVO.setComActDiscussCommentVOList(comActDiscussCommentVOList);
                }
                if (pageComActDiscussCommentDTO.getLoginUserId() != null
                    && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
                        && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
                    Integer integer =
                        comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                            .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId())
                            .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
                            comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId())
                                    .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
                    if (integer > 0) {
                        comActDiscussCommentVO.setHaveSign(1);
                    } else {
@@ -526,51 +802,68 @@
    }
    /**
     * 一起议-详情 小程序
     * 议事投票-详情 小程序
     *
     * @param id
     *            主键
     * @param loginUserId
     *            登录用户主键
     * @param id          主键
     * @param loginUserId 登录用户主键
     * @return ComActDiscussVO
     */
    @Override
    public R detailDiscussApplets(Long id, Long loginUserId) {
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id);
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("一起议不存在");
            return R.fail("议事投票不存在");
        }
        ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
        BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
        Integer integer = comActDiscussCommentDAO.selectCount(
            new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
        comActDiscussVO.setCommentNum(integer);
        Integer integer1 = comActDiscussUserDAO
            .selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
        comActDiscussVO.setSignNum(integer1);
        comActDiscussVO.setSignNum(comActDiscussDO.getFabulousNum());
        Integer type = comActDiscussVO.getType();
        if (type.equals(2)) {
            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
                new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
                    new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
            List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
            ArrayList<Integer> votes = new ArrayList<>();
            comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                Long discussOptionDOId = comActDiscussOptionDO.getId();
                Integer selectCount =
                    comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda()
                        .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                        comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda()
                                .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
                BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
                comActDiscussOptionVO.setNum(selectCount);
                if (loginUserId != null && !loginUserId.equals(0L)) {
                    // 判断选项是否已投票
                    int haveVote =
                        comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
                            comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
                    votes.add(haveVote);
                    comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
                }
                comActDiscussOptionVOS.add(comActDiscussOptionVO);
            });
            comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
            fillThePercentAndSort(comActDiscussOptionVOS);
            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
            //填充剩余可投票数
            if (loginUserId != null && !loginUserId.equals(0L)) {
                if (comActDiscussVO.getIsRepeat().intValue() == 1) {
                    //可重复投票
                    int votedVotesInToday = comActDiscussOptionUserDAO.selectVotedVotesInToday(id, loginUserId);
                    int remainingVotes = comActDiscussVO.getCount().intValue() - votedVotesInToday;
                    comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
                } else {
                    //不可重复投票
                    int alreadyVotedVotes = votes.stream().mapToInt(Integer::intValue).sum();
                    int remainingVotes = comActDiscussVO.getCount().intValue() - alreadyVotedVotes;
                    comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
                }
            }
            checkDiscussStatusIsCorrect(comActDiscussVO);
            //填充投票记录列表
            List<ComActDiscussOptionUserVO> comActDiscussOptionUserVOList = comActDiscussOptionUserDAO
                    .selectVotedRecords(comActDiscussVO.getId());
            comActDiscussVO.setComActDiscussOptionUserVOList(comActDiscussOptionUserVOList);
            //填充已参与投票人数
            int votedPersonNum = comActDiscussOptionUserDAO.selectVotedPersonNum(comActDiscussVO.getId());
            comActDiscussVO.setVotedPersonNum(votedPersonNum);
        }
        Long userId = comActDiscussDO.getUserId();
        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
@@ -601,15 +894,35 @@
    }
    /**
     * 一起议-投票
     * 计算投票占比以及排序
     * @param comActDiscussOptionVOS
     */
    private void fillThePercentAndSort(List<ComActDiscussOptionVO> comActDiscussOptionVOS) {
        //填充总票数
        int allSum = comActDiscussOptionVOS.stream().mapToInt(ComActDiscussOptionVO::getNum).sum();
        comActDiscussOptionVOS.forEach(option -> {
            if (allSum == 0) {
                option.setPercent(new BigDecimal(0));
            } else {
                //占比
                BigDecimal percent = BigDecimal.valueOf(option.getNum()).divide(BigDecimal.valueOf(allSum), 2, RoundingMode.HALF_UP)
                        .multiply(BigDecimal.valueOf(100)).setScale(0);
                option.setPercent(percent);
            }
        });
        comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
    }
    /**
     * 议事投票-投票
     *
     * @param comActDiscussOptionUserDTO
     *            投票信息
     * @param comActDiscussOptionUserDTO 投票信息
     * @return 投票结果
     */
    @Override
    public R addDiscussOptionUser(ComActDiscussOptionUserDTO comActDiscussOptionUserDTO) {
        Long discussOptionId = comActDiscussOptionUserDTO.getDiscussOptionId();
        List<Long> discussOptionIds = comActDiscussOptionUserDTO.getDiscussOptionIds();
        Long discussOptionId = discussOptionIds.get(0);
        Long userId = comActDiscussOptionUserDTO.getUserId();
        ComActDiscussOptionDO comActDiscussOptionDO = comActDiscussOptionDAO.selectById(discussOptionId);
        if (ObjectUtils.isEmpty(comActDiscussOptionDO)) {
@@ -620,33 +933,54 @@
        // QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, discussId));
        // List<Long> longList=comActDiscussOptionDOS.stream().map(comActDiscussOptionDO1 ->
        // comActDiscussOptionDO1.getId()).collect(Collectors.toList());
        Integer integer = comActDiscussOptionUserDAO.selectCount(
            new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getUserId, userId)
                .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionId));
        if (integer > 0) {
            return R.fail("不要重复投票");
        Long discussId = comActDiscussOptionDO.getDiscussId();
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(comActDiscussOptionDO.getDiscussId());
        if (isNull(comActDiscussOptionDO)) {
            return R.fail("投票主题不存在");
        }
        ComActDiscussOptionUserDO comActDiscussOptionUserDO = new ComActDiscussOptionUserDO();
        comActDiscussOptionUserDO.setUserId(userId);
        comActDiscussOptionUserDO.setDiscussOptionId(discussOptionId);
        int insert = comActDiscussOptionUserDAO.insert(comActDiscussOptionUserDO);
        if (insert > 0) {
        boolean isRepeat = comActDiscussDO.getIsRepeat().intValue() == 1;
        int usableVoteVotes = comActDiscussDO.getCount().intValue();
        int currentVoteNum = discussOptionIds.size();
        if (isRepeat) {
            //可重复投票
            int votedVotesInToday = comActDiscussOptionUserDAO.selectVotedVotesInToday(discussId, userId);
            if (usableVoteVotes <= votedVotesInToday || currentVoteNum > usableVoteVotes - votedVotesInToday) {
                return R.fail("票数不足");
            }
        } else {
            //不可重复投票
            int alreadyVotedVotes = comActDiscussOptionUserDAO.selectCount(
                new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getUserId, userId)
                    .eq(ComActDiscussOptionUserDO::getDiscussId, discussId));
            if (usableVoteVotes <= alreadyVotedVotes || currentVoteNum > usableVoteVotes - alreadyVotedVotes) {
                return R.fail("票数不足");
            }
        }
        List<ComActDiscussOptionUserDO> comActDiscussOptionUserDOList = new ArrayList<>();
        discussOptionIds.forEach(optionId -> {
            ComActDiscussOptionUserDO comActDiscussOptionUserDO = new ComActDiscussOptionUserDO();
            comActDiscussOptionUserDO.setUserId(userId);
            comActDiscussOptionUserDO.setDiscussOptionId(optionId);
            comActDiscussOptionUserDO.setDiscussId(discussId);
            comActDiscussOptionUserDOList.add(comActDiscussOptionUserDO);
        });
        int result = comActDiscussOptionUserDAO.batchInsert(comActDiscussOptionUserDOList);
        if (result > 0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 一起议-评论-点赞、取消点赞
     * 议事投票-评论-点赞、取消点赞
     *
     * @param comActDiscussCommentUserDTO
     *            评论点赞
     * @param comActDiscussCommentUserDTO 评论点赞
     * @return 点赞结果
     */
    @Override
    public R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussCommentUserDTO) {
        ComActDiscussCommentDO comActDiscussCommentDO =
            comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId());
                comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId());
        if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
            return R.fail("评论不存在");
        }
@@ -659,8 +993,8 @@
            num = comActDiscussCommentUserDAO.insert(comActDiscussCommentUserDO);
        } else {
            num = comActDiscussCommentUserDAO.delete(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                .eq(ComActDiscussCommentUserDO::getUserId, comActDiscussCommentUserDTO.getUserId())
                .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentUserDTO.getId()));
                    .eq(ComActDiscussCommentUserDO::getUserId, comActDiscussCommentUserDTO.getUserId())
                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentUserDTO.getId()));
        }
        if (num > 0) {
            return R.ok();
@@ -669,29 +1003,28 @@
    }
    /**
     * 工作大屏-一起议列表
     * 工作大屏-议事投票列表
     *
     * @param discussListDTO
     *            请求参数
     * @return 一起议列表
     * @param discussListDTO 请求参数
     * @return 议事投票列表
     */
    @Override
    public R getScreenDiscussList(ScreenDiscussListDTO discussListDTO) {
        IPage<DiscussListVO> discussListVOIPage = comActDiscussDAO
            .getScreenDiscussList(new Page(discussListDTO.getPageNum(), discussListDTO.getPageSize()), discussListDTO);
                .getScreenDiscussList(new Page(discussListDTO.getPageNum(), discussListDTO.getPageSize()), discussListDTO);
        if (!discussListVOIPage.getRecords().isEmpty()) {
            discussListVOIPage.getRecords().forEach(discussListVO -> {
                // 查询评论数量和点赞数量
                Integer integer = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>()
                    .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussListVO.getId()));
                        .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussListVO.getId()));
                discussListVO.setCommentCount(integer);
                Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda()
                    .eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId()));
                        .eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId()));
                discussListVO.setFabulousCount(integer1);
                if (discussListVO.getType().equals(ScreenDiscussListDTO.type.tp)) {// 投票
                    List<ComActDiscussOptionVO> discussOptionList =
                        comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId());
                            comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId());
                    if (!discussOptionList.isEmpty()) {
                        discussListVO.setDiscussOptionList(discussOptionList);
                    }
@@ -700,4 +1033,269 @@
        }
        return R.ok(discussListVOIPage);
    }
    /**
     * 议事投票后台公布结果
     *
     * @param publishResultDTO 请求参数
     * @return 公布结果
     */
    @Override
    public R publishResultAdmin(ComActDiscussPublishResultDTO publishResultDTO) {
        ComActDiscussDO discussDO = comActDiscussDAO.selectById(publishResultDTO.getId());
        if (discussDO == null) {
            return R.fail("议事投票记录不存在");
        }
        Date nowDate = new Date();
        if (publishResultDTO.getType().equals(ComActDiscussPublishResultDTO.type.add)) {
            if (!discussDO.getStatus().equals(ComActDiscussDO.status.dgb)) {
                return R.fail("该议事投票不是待公布状态,不可公布结果操作");
            }
            discussDO.setStatus(ComActDiscussDO.status.ygb);
        }
        discussDO.setPublishAt(nowDate);
        discussDO.setPublishResult(publishResultDTO.getResult());
        discussDO.setUpdateAt(nowDate);
        discussDO.setPublishBy(publishResultDTO.getUserId());
        if (comActDiscussDAO.updateById(discussDO) > 0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 议事投票-评论/回复删除
     *
     * @param id 评论/回复id
     * @return 删除结果
     */
    @Override
    public R deleteDiscussCommentAdmin(Long id) {
        ComActDiscussCommentDO discussCommentDO = comActDiscussCommentDAO.selectById(id);
        if (discussCommentDO == null) {
            return R.fail("未查询到该记录");
        }
        if (discussCommentDO.getIsDel().equals(ComActDiscussCommentDO.isDelete.yes)) {
            return R.fail("该记录已被删除");
        }
        discussCommentDO.setIsDel(ComActDiscussCommentDO.isDelete.yes);
        if (comActDiscussCommentDAO.updateById(discussCommentDO) > 0) {
            ComActDiscussDO discussDO = comActDiscussDAO.selectById(discussCommentDO.getDiscussId());
            if (discussDO != null) {
                if (discussDO.getCommentNum() > 0) {
                    if (discussCommentDO.getParentId().equals(0L)) {
                        Integer count = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>().lambda()
                                .eq(ComActDiscussCommentDO::getParentId, id).eq(ComActDiscussCommentDO::getIsDel, ComActDiscussCommentDO.isDelete.no));
                        if (count != null && count > 0 && discussDO.getCommentNum() > count) {
                            discussDO.setCommentNum(discussDO.getCommentNum() - count);
                        } else {
                            discussDO.setCommentNum(discussDO.getCommentNum() - 1);
                        }
                        comActDiscussDAO.updateById(discussDO);
                    } else {
                        discussDO.setCommentNum(discussDO.getCommentNum() - 1);
                        comActDiscussDAO.updateById(discussDO);
                    }
                }
            }
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 分页查询评论下回复列表
     *
     * @param discussDetailDTO 请求参数
     * @return 回复列表
     */
    @Override
    public R discussCommentReplyAdmin(ComActDiscussDetailDTO discussDetailDTO) {
        return R.ok(comActDiscussCommentDAO.getDiscussCommentList(new Page(discussDetailDTO.getPageNum(), discussDetailDTO.getPageSize()), discussDetailDTO.getId()));
    }
    /**
     * 查询社区可发布议事投票权限配置
     *
     * @param communityId 社区id
     * @return 社区可发布议事投票权限配置
     */
    @Override
    public R discussJurisdictionGet(Long communityId, Long userId) {
        List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                .eq(SysConfDO::getCommunityId, communityId).orderByDesc(SysConfDO::getCreateAt));
        if (confDOList == null || confDOList.size() == 0) {
            SysConfDO sysConfDO = new SysConfDO();
            sysConfDO.setCode(Constants.DISCUSS_IDENTITY_KEY + communityId);
            sysConfDO.setName("社区议事投票小程序身份验证参数");
            sysConfDO.setValue("");// 社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
            sysConfDO.setDescription("社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)");
            sysConfDO.setCommunityId(communityId);
            sysConfDO.setCreateBy(userId);
            int inserted = sysConfDao.insert(sysConfDO);
            if (inserted != 1) {
                throw new ServiceException("添加社区议事投票小程序身份验证参数失败");
            }
            confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                    .eq(SysConfDO::getCommunityId, communityId)
                    .orderByDesc(SysConfDO::getCreateAt));
        }
        if (confDOList != null && confDOList.size() > 0) {
            SysConfDO latest = confDOList.get(0);
            SysConfVO sysConfVO = new SysConfVO();
            BeanUtils.copyProperties(latest, sysConfVO);
            return R.ok(sysConfVO.getValue());
        }
        return R.ok();
    }
    /**
     * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
     *
     * @param communityId 社区id
     * @param value       需要设置的参数值
     * @return 设置结果
     */
    @Override
    public R discussJurisdictionSet(Long communityId, String value) {
        List<SysConfDO> authConf =
                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
                        .eq(SysConfDO::getCode, Constants.DISCUSS_IDENTITY_KEY + communityId).orderByDesc(SysConfDO::getCreateAt));
        if (authConf != null && authConf.size() > 0) {
            SysConfDO first = authConf.get(0);
            first.setValue(value);
            int updated = sysConfDao.updateById(first);
            if (updated == 1) {
                return R.ok();
            }
        }
        return R.fail();
    }
    /**
     * 议事投票检测状态定时任务
     * @return  执行结果
     */
    @Override
    public R timedTaskDiscussInspectStatus() {
        Date nowDate = new Date();
        //查询已过开始时间未开始投票列表
        List<ComActDiscussDO> wksDiscussList = comActDiscussDAO.selectList(new QueryWrapper<ComActDiscussDO>().lambda()
                .eq(ComActDiscussDO::getType, ComActDiscussDO.type.tp).eq(ComActDiscussDO::getIsDel, ComActDiscussDO.isOk.no)
                .eq(ComActDiscussDO::getStatus,ComActDiscussDO.status.wks).le(ComActDiscussDO::getStartTime, nowDate));
        wksDiscussList.forEach(wksDiscuss -> {
            wksDiscuss.setStatus(ComActDiscussDO.status.jxz);
            wksDiscuss.setUpdateAt(nowDate);
            wksDiscuss.setReleaseAt(nowDate);
            comActDiscussDAO.updateById(wksDiscuss);
        });
        //查询已过结束时间未结束的投票列表
        List<ComActDiscussDO> jxzDiscussList = comActDiscussDAO.selectList(new QueryWrapper<ComActDiscussDO>().lambda()
                .eq(ComActDiscussDO::getType, ComActDiscussDO.type.tp).eq(ComActDiscussDO::getIsDel, ComActDiscussDO.isOk.no)
                .eq(ComActDiscussDO::getStatus,ComActDiscussDO.status.jxz).le(ComActDiscussDO::getEndTime, nowDate));
        jxzDiscussList.forEach(jxzDiscuss -> {
            jxzDiscuss.setStatus(ComActDiscussDO.status.dgb);
            jxzDiscuss.setUpdateAt(nowDate);
            comActDiscussDAO.updateById(jxzDiscuss);
        });
        return R.ok();
    }
    /**
     * 一起议增加浏览量
     * @param discussId 一起议主键id
     */
    @Override
    public void increaseViewNum(Long discussId) {
        String incrKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, discussId.toString());
        Boolean isExist = stringRedisTemplate.hasKey(incrKey);
        ValueOperations opsForValue = stringRedisTemplate.opsForValue();
        if (isExist) {
            opsForValue.increment(incrKey);
        } else {
            ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId);
            if (nonNull(comActDiscussDO)) {
                stringRedisTemplate.executePipelined((RedisCallback<Object>) redisConnection -> {
                    StringRedisConnection stringRedisConnection = (StringRedisConnection) redisConnection;
                    Integer nowViewNum = Math.addExact(comActDiscussDO.getViewsNum().intValue(), 1);
                    stringRedisConnection.set(incrKey, nowViewNum.toString());
                    stringRedisConnection.expire(incrKey, DISCUSS_EXPIRE_TIME);
                    stringRedisConnection.sAdd(INCR_VIEW_DISCUSS_IDS_KEY, discussId.toString());
                    stringRedisConnection.expire(INCR_VIEW_DISCUSS_IDS_KEY, DISCUSS_EXPIRE_TIME);
                    return null;
                });
            }
        }
    }
    /**
     * 公布/编辑一起议投票结果
     * @param comActDiscussDTO
     * @return 请求结果
     */
    @Override
    public R editDiscussResult(ComActDiscussDTO comActDiscussDTO) {
        if (isNull(comActDiscussDTO.getId()) || isNull(comActDiscussDTO.getPublishResult())) {
            return R.fail("缺少参数!");
        }
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(comActDiscussDTO.getId());
        if (isNull(comActDiscussDO)) {
            return R.fail("当前一起议主题不存在!");
        }
        if (!comActDiscussDTO.getUserId().equals(comActDiscussDO.getUserId())) {
            return R.fail("只能公布或编辑自己发布的主题!");
        }
        comActDiscussDO.setPublishResult(comActDiscussDTO.getPublishResult());
        comActDiscussDO.setStatus(4);
        int result = comActDiscussDAO.updateById(comActDiscussDO);
        if (result > 0) {
            return R.ok();
        }
        return R.fail("网络错误,请重试!");
    }
    /**
     * 将redis中浏览量写入表中
     * @return 执行结果
     */
    @Override
    public R writeDiscussViewNumToTable() {
        try {
            if (stringRedisTemplate.hasKey(INCR_VIEW_DISCUSS_IDS_KEY)) {
                SetOperations opsForSet = stringRedisTemplate.opsForSet();
                Set<String> needWriteDiscussIdSet = opsForSet.members(INCR_VIEW_DISCUSS_IDS_KEY);
                //组装viewNum key
                List<String> viewNumKeys = new ArrayList<>();
                Iterator<String> iterator = needWriteDiscussIdSet.iterator();
                while (iterator.hasNext()) {
                    viewNumKeys.add(String.join("_", DISCUSS_VIEW_NUM_PREFIX, iterator.next()));
                }
                ValueOperations opsForValue = stringRedisTemplate.opsForValue();
                List<String> viewNumList = opsForValue.multiGet(viewNumKeys);
                //待处理集合,以key-value/discussId-viewNum 存放
                HashMap<Long, Integer> needDealMap = new HashMap<>();
                for (String discussId : needWriteDiscussIdSet) {
                    try {
                        needDealMap.put(Long.parseLong(discussId), Integer.parseInt(viewNumList.get(0)));
                        viewNumList.remove(0);
                    } catch (IndexOutOfBoundsException e) {
                        //数据存在异常了,跳过,继续执行正确的
                        continue;
                    }
                }
                int result = comActDiscussDAO.batchUpdateViewNum(needDealMap);
                if (result <= 0) {
                    return R.fail("处理失败");
                }
            }
        } catch (Exception e) {
            log.error("写入浏览量失败【{}】", e.getMessage());
            return R.fail("处理失败");
        }
        return R.ok();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
@@ -151,7 +151,7 @@
                        subSelectionDO.setCreateBy(userId);
                        subSelectionDO.setType(subSelect.getType());
                        subSelectionDO.setKey(subSelect.getKey());
                        subSelectionDO.setKey(subSelect.getUrl());
                        subSelectionDO.setUrl(subSelect.getUrl());
                        subSelectionList.add(subSelectionDO);
                    }
                }
@@ -478,12 +478,15 @@
         * 查询题目
         */
        List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(
            new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId));
            new QueryWrapper<ComActQuestnaireSubDO>().lambda()
                    .eq(ComActQuestnaireSubDO::getQueId, questId).orderByAsc(ComActQuestnaireSubDO::getCreateAt));
        List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>();
        list.forEach(subDo -> {
            ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
            BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
            listSubVo.add(comActQuestnaireSubVO);
            if(!subDo.getType().equals(ComActQuestnaireSubDO.type.describe)){
                ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
                BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
                listSubVo.add(comActQuestnaireSubVO);
            }
        });
        questnaireAnswersDTO.setSubs(listSubVo);
        /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
@@ -51,7 +51,8 @@
        QuestnaireAnswersDTO result = new QuestnaireAnswersDTO();
        //查询题目
        List<ComActReserveSubDO> list = comActReserveSubMapper.selectList(new QueryWrapper<ComActReserveSubDO>().lambda().eq(ComActReserveSubDO::getReserveId, reserveId));
        List<ComActReserveSubDO> list = comActReserveSubMapper.selectList(new QueryWrapper<ComActReserveSubDO>().lambda()
                .eq(ComActReserveSubDO::getReserveId, reserveId).orderByAsc(ComActReserveSubDO::getCreateAt));
        List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>();
        list.forEach(subDo -> {
            if(!subDo.getType().equals(5)){
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideClassifyServiceImpl.java
@@ -15,7 +15,9 @@
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.ComActWorkGuideClassifyDAO;
import com.panzhihua.service_community.dao.ComActWorkGuideDAO;
import com.panzhihua.service_community.model.dos.ComActWorkGuideClassifyDO;
import com.panzhihua.service_community.model.dos.ComActWorkGuideDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
import com.panzhihua.service_community.model.dos.ComMngUserTagDO;
import com.panzhihua.service_community.service.ComActWorkGuideClassifyService;
@@ -43,6 +45,8 @@
    @Resource
    private ComActWorkGuideClassifyDAO comActWorkGuideClassifyDAO;
    @Resource
    private ComActWorkGuideDAO comActWorkGuideDAO;
    @Override
    public R pageWorkGuideClassify(ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
@@ -105,6 +109,13 @@
        if (comActWorkGuideClassifyDO == null) {
            return R.fail("办事指南分类不存在");
        }
        Integer count = comActWorkGuideDAO.selectCount(new QueryWrapper<ComActWorkGuideDO>()
                .lambda().eq(ComActWorkGuideDO::getClassify,workGuideClassifyId));
        if(count > 0){
            return R.fail("该分类下存在办事指南,不可删除");
        }
        int delete = comActWorkGuideClassifyDAO.deleteById(workGuideClassifyId);
        if (delete > 0) {
            return R.ok();
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -11,6 +11,7 @@
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -6555,6 +6556,83 @@
        // comMngPopulationHouseUserDO.setCreateAt(new Date());
        // comMngPopulationHouseUserDAO.insert(comMngPopulationHouseUserDO);
        // }
        //修改吸毒人员信息
        if (null != vo.getComDrugPopulationVO()) {
            ComDrugPopulationVO comDrugPopulationVO = vo.getComDrugPopulationVO();
            ComDrugPopulationDO comDrugPopulationDO = comDrugPopulationDAO.selectById(comDrugPopulationVO.getId());
            BeanUtils.copyProperties(comDrugPopulationVO, comDrugPopulationDO);
            comDrugPopulationDAO.updateById(comDrugPopulationDO);
        }
        //修改社区矫正人员信息
        if (null != vo.getComCorrectPopulationVO()) {
            ComCorrectPopulationVO comCorrectPopulationVO = vo.getComCorrectPopulationVO();
            ComCorrectPopulationDO comCorrectPopulationDO = comCorrectPopulationDAO.selectById(comCorrectPopulationVO.getId());
            BeanUtils.copyProperties(comCorrectPopulationVO, comCorrectPopulationDO);
            comCorrectPopulationDAO.updateById(comCorrectPopulationDO);
        }
        //修改精神障碍信息
        if (null != vo.getComMajorPopulationVO()) {
            ComMajorPopulationVO comMajorPopulationVO = vo.getComMajorPopulationVO();
            ComMajorPopulationDO comCorrectPopulationDO = comMajorPopulationDAO.selectById(comMajorPopulationVO.getId());
            BeanUtils.copyProperties(comMajorPopulationVO, comCorrectPopulationDO);
            comMajorPopulationDAO.updateById(comCorrectPopulationDO);
        }
        //修改邪教信息
        if (null != vo.getComCultPopulationVO()) {
            ComCultPopulationVO comCultPopulationVO = vo.getComCultPopulationVO();
            ComCultPopulationDO comCultPopulationDO = comCultPopulationDAO.selectById(comCultPopulationVO.getId());
            BeanUtils.copyProperties(comCultPopulationVO, comCultPopulationDO);
            comCultPopulationDAO.updateById(comCultPopulationDO);
        }
        //修改刑释信息
        if (null != vo.getComRehabilitationPopulationVO()) {
            ComRehabilitationPopulationVO comRehabilitationPopulationVO = vo.getComRehabilitationPopulationVO();
            ComRehabilitationPopulationDO comRehabilitationPopulationDO = comRehabilitationPopulationDAO.selectById(comRehabilitationPopulationVO.getId());
            BeanUtils.copyProperties(comRehabilitationPopulationVO, comRehabilitationPopulationDO);
            comRehabilitationPopulationDAO.updateById(comRehabilitationPopulationDO);
        }
        //修改上访信息
        if (null != vo.getComKeyPopulationVO()) {
            ComKeyPopulationVO comKeyPopulationVO = vo.getComKeyPopulationVO();
            ComKeyPopulationDO comKeyPopulationDO = comKeyPopulationDAO.selectById(comKeyPopulationVO.getId());
            BeanUtils.copyProperties(comKeyPopulationVO, comKeyPopulationDO);
            comKeyPopulationDAO.updateById(comKeyPopulationDO);
        }
        //修改退役军人信息
        if (null != vo.getComVeteransPopulationVO()) {
            ComVeteransPopulationVO comVeteransPopulationVO = vo.getComVeteransPopulationVO();
            ComVeteransPopulationDO comVeteransPopulationDO = comVeteransPopulationDAO.selectById(comVeteransPopulationVO.getId());
            BeanUtils.copyProperties(comVeteransPopulationVO, comVeteransPopulationDO);
            comVeteransPopulationDAO.updateById(comVeteransPopulationDO);
        }
        //修改残疾人信息
        if (null != vo.getComDisabilityPopulationVO()) {
            ComDisabilityPopulationVO comDisabilityPopulationVO = vo.getComDisabilityPopulationVO();
            ComDisabilityPopulationDO comDisabilityPopulationDO = comDisabilityPopulationDAO.selectById(comDisabilityPopulationVO.getId());
            BeanUtils.copyProperties(comDisabilityPopulationVO, comDisabilityPopulationDO);
            comDisabilityPopulationDAO.updateById(comDisabilityPopulationDO);
        }
        //修改低保户信息
        if (null != vo.getComLowSecurityPopulationVO()) {
            ComLowSecurityPopulationVO comLowSecurityPopulationVO = vo.getComLowSecurityPopulationVO();
            ComLowSecurityPopulationDO comLowSecurityPopulationDO = comLowSecurityPopulationDAO.selectById(comLowSecurityPopulationVO.getId());
            BeanUtils.copyProperties(comLowSecurityPopulationVO, comLowSecurityPopulationDO);
            comLowSecurityPopulationDAO.updateById(comLowSecurityPopulationDO);
        }
        //修改高龄老人信息
        if (null != vo.getComElderAuthElderliesVO()) {
            ComElderAuthElderliesVO comElderAuthElderliesVO = vo.getComElderAuthElderliesVO();
            ComElderAuthElderliesDO comElderAuthElderliesDO = comElderAuthElderliesDAO.selectById(comElderAuthElderliesVO.getId());
            BeanUtils.copyProperties(comElderAuthElderliesVO, comElderAuthElderliesDO);
            comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO);
        }
        //修改养老人员信息
        if (null != vo.getComPensionAuthPensionerVO()) {
            ComPensionAuthPensionerVO comPensionAuthPensionerVO = vo.getComPensionAuthPensionerVO();
            ComPensionAuthPensionerDO comPensionAuthPensionerDO = comPensionAuthPensionerDAO.selectById(comPensionAuthPensionerVO.getId());
            BeanUtils.copyProperties(comPensionAuthPensionerVO, comPensionAuthPensionerDO);
            comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
        }
        if (populationDAO.updateById(populationDO) > 0) {
            return R.ok();
        } else {
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
@@ -1,5 +1,10 @@
package com.panzhihua.service_community.service.impl;
import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PASS_THROUGH;
import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PENDING_REVIEW;
import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
import static com.panzhihua.common.enums.IdentityAuthStatusEnum.CERTIFIED;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -9,29 +14,31 @@
import javax.annotation.Resource;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportMistakeExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO;
import com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO;
import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.enums.PopulHouseUseEnum;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
import com.panzhihua.common.model.helper.AESUtil;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportMistakeExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
import com.panzhihua.common.model.vos.community.SysConfVO;
import com.panzhihua.common.utlis.AgeUtils;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.Snowflake;
@@ -40,18 +47,17 @@
import com.panzhihua.service_community.dao.ComMngPopulationDAO;
import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO;
import com.panzhihua.service_community.dao.ComPensionAuthRecordDAO;
import com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO;
import com.panzhihua.service_community.dao.SysConfMapper;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
import com.panzhihua.service_community.model.dos.SysConfDO;
import com.panzhihua.service_community.service.ComPensionAuthRecordService;
import lombok.extern.slf4j.Slf4j;
import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PASS_THROUGH;
import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PENDING_REVIEW;
import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
import static com.panzhihua.common.enums.IdentityAuthStatusEnum.CERTIFIED;
/**
 * @title: ComPensionAuthRecordServiceImpl
@@ -75,6 +81,8 @@
    private ComActDAO comActDAO;
    @Resource
    private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
    @Resource
    private SysConfMapper sysConfDao;
    @Value("${domain.aesKey:}")
    private String aesKey;
@@ -273,6 +281,52 @@
    }
    @Override
    public R setPensionAuthType(Long communityId, Integer type) {
        List<SysConfDO> authConf =
                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
                        .eq(SysConfDO::getCode, "PENSION_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
        if (authConf != null && authConf.size() > 0) {
            SysConfDO first = authConf.get(0);
            first.setValue(type + "");
            int updated = sysConfDao.updateById(first);
            if (updated == 1) {
                return R.ok();
            }
        }
        return R.fail();
    }
    @Override
    public R communityPensionAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
        Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
        List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"PENSION_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
        if (confDOList == null || confDOList.size() == 0) {
            SysConfDO sysConfDO = new SysConfDO();
            sysConfDO.setCode("PENSION_AUTH_TYPE_" + communityId);
            sysConfDO.setName("养老认证类型");
            sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验)
            sysConfDO.setDescription("养老认证默认添加的核验类型");
            sysConfDO.setCommunityId(communityId);
            sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId());
            int inserted = sysConfDao.insert(sysConfDO);
            if (inserted != 1) {
                throw new ServiceException("添加养老认证默认添加的核验类型失败");
            }
            confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                    .eq(SysConfDO::getCommunityId, communityId)
                    .orderByDesc(SysConfDO::getCreateAt));
        }
        if (confDOList != null && confDOList.size() > 0) {
            SysConfDO latest = confDOList.get(0);
            SysConfVO sysConfVO = new SysConfVO();
            BeanUtils.copyProperties(latest, sysConfVO);
            return R.ok(sysConfVO.getValue());
        }
        return R.ok();
    }
    @Override
    public R timedTaskPensionAuthStatisticsJobHandler() {
        Date nowDate = new Date();
        int month = DateUtils.getMonth(nowDate) + 1;
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -595,4 +595,50 @@
        });
        return R.ok();
    }
    @Override
    public R setAuthType(Long communityId, Integer type){
        List<SysConfDO> authConf =
                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
                        .eq(SysConfDO::getCode, "ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
        if (authConf != null && authConf.size() > 0) {
            SysConfDO first = authConf.get(0);
            first.setValue(type + "");
            int updated = sysConfDao.updateById(first);
            if (updated == 1) {
                return R.ok();
            }
        }
        return R.fail();
    }
    @Override
    public R getAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO){
        Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
        List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
        if (confDOList == null || confDOList.size() == 0) {
            SysConfDO sysConfDO = new SysConfDO();
            sysConfDO.setCode("ELDER_AUTH_TYPE_" + communityId);
            sysConfDO.setName("高龄认证类型");
            sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验)
            sysConfDO.setDescription("高龄认证默认添加的核验类型");
            sysConfDO.setCommunityId(communityId);
            sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId());
            int inserted = sysConfDao.insert(sysConfDO);
            if (inserted != 1) {
                throw new ServiceException("添加高龄认证默认添加的核验类型失败");
            }
            confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                    .eq(SysConfDO::getCommunityId, communityId)
                    .orderByDesc(SysConfDO::getCreateAt));
        }
        if (confDOList != null && confDOList.size() > 0) {
            SysConfDO latest = confDOList.get(0);
            SysConfVO sysConfVO = new SysConfVO();
            BeanUtils.copyProperties(latest, sysConfVO);
            return R.ok(sysConfVO.getValue());
        }
        return R.ok();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml
@@ -94,4 +94,25 @@
        </if>
        order by caae.create_at desc
    </select>
    <select id="getEvaluateListPage" resultType="com.panzhihua.common.model.vos.community.ComActActEvaluateVO">
        SELECT
            caae.*,su.`name`,su.nick_name,su.image_url
        FROM
            com_act_act_evaluate AS caae
            LEFT JOIN sys_user AS su ON su.user_id = caae.user_id
        where caae.activity_id = #{activityId}
        order by caae.create_at desc
    </select>
    <select id="getEvaluateListByUserId" resultType="com.panzhihua.common.model.vos.community.ComActActEvaluateVO">
        SELECT
            caae.*,su.`name`,su.nick_name,su.image_url
        FROM
            com_act_act_evaluate AS caae
            LEFT JOIN sys_user AS su ON su.user_id = caae.user_id
        where caae.activity_id = #{activityId} and caae.user_id = #{userId}
        order by caae.create_at desc
        limit 1
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml
@@ -47,7 +47,7 @@
            AND su.`name` = #{comActActRegistVO.name}
        </if>
        <if test="comActActRegistVO.tags != null and comActActRegistVO.tags !=''">
            AND su.tags like ('%', #{comActActRegistVO.tags}, '%')
            AND su.tags like concat ('%', #{comActActRegistVO.tags}, '%')
        </if>
        <if test="comActActRegistVO.createAt != null">
            AND caar.create_at = #{comActActRegistVO.createAt}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
New file
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussCommentDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussCommentDO">
        <id column="id" property="id"/>
        <result column="discuss_id" property="discussId"/>
        <result column="comment" property="comment"/>
        <result column="is_topping" property="isTopping"/>
        <result column="create_at" property="createAt"/>
        <result column="is_author" property="isAuthor"/>
        <result column="parent_id" property="parentId"/>
        <result column="user_id" property="userId"/>
        <result column="reply_num" property="replyNum"/>
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, discuss_id, comment, is_topping, create_at, is_author, parent_id, user_id, reply_num
    </sql>
    <select id="getDiscussCommentList" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO"
            resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
        SELECT
            cadc.id,
            cadc.`comment`,
            cadc.`is_author`,
            su.`image_url`,
            IFNULL( su.`name`, su.nick_name ) AS userNameBack,
            cadc.create_at
        FROM
            com_act_discuss_comment AS cadc
            LEFT JOIN sys_user AS su ON su.user_id = cadc.user_id
            where cadc.parent_id = #{id} and cadc.is_del = 2
        order by cadc.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentUserDOMapper.xml
New file
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussCommentUserDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussCommentUserDO">
        <id column="id" property="id"/>
        <result column="disscuss_comment_id" property="disscussCommentId"/>
        <result column="user_id" property="userId"/>
        <result column="create_at" property="createAt"/>
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, disscuss_comment_id, user_id, create_at
    </sql>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
New file
@@ -0,0 +1,260 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussDO">
        <id column="id" property="id"/>
        <result column="discuss_subject" property="discussSubject"/>
        <result column="type" property="type"/>
        <result column="photo_pah" property="photoPah"/>
        <result column="address" property="address"/>
        <result column="user_id" property="userId"/>
        <result column="community_id" property="communityId"/>
        <result column="create_at" property="createAt"/>
        <result column="discuss_option" property="discussOption"/>
        <result column="vote_title" property="voteTitle"/>
        <result column="is_repeat" property="isRepeat"/>
        <result column="count" property="count"/>
        <result column="img_width" property="imgWidth"/>
        <result column="img_height" property="imgHeight"/>
        <result column="start_time" property="startTime"/>
        <result column="end_time" property="endTime"/>
        <result column="comment_num" property="commentNum"/>
        <result column="fabulous_num" property="fabulousNum"/>
        <result column="views_num" property="viewsNum"/>
        <result column="join_num" property="joinNum"/>
        <result column="status" property="status"/>
        <result column="is_del" property="isDel"/>
        <result column="publish_result" property="publishResult"/>
        <result column="publish_at" property="publishAt"/>
        <result column="release_at" property="releaseAt"/>
        <result column="update_at" property="updateAt"/>
        <result column="publish_by" property="publishBy"/>
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, discuss_subject, type, photo_pah, address, user_id, community_id, create_at, discuss_option, vote_title, is_repeat, count, img_width, img_height, start_time, end_time, comment_num, fabulous_num, views_num, join_num, status, is_del, publish_result, publish_at, release_at, update_at, publish_by
    </sql>
    <update id="updateStatusById">
        UPDATE `com_act_discuss` SET status = #{status}, update_at = NOW() WHERE id = #{discussId}
    </update>
    <update id="incrCommentAndJoinNumById">
        UPDATE `com_act_discuss`
        SET comment_num = comment_num + 1,
        <if test="isFirstComment">
            join_num = join_num + 1,
        </if>
        update_at = NOW() WHERE id = #{discussId}
    </update>
    <update id="incrOrDecrFabulousNumByType">
        UPDATE `com_act_discuss`
        SET fabulous_num = IF(IF(#{isIncr},fabulous_num + 1,fabulous_num - 1) &gt;= 0,IF(#{isIncr},fabulous_num + 1,fabulous_num - 1),0), update_at = NOW()
        WHERE id = #{discussId}
    </update>
    <update id="batchUpdateViewNum" parameterType="java.util.Map">
        UPDATE `com_act_discuss` SET views_num = CASE id
            <foreach collection="needDealMap.entrySet()" item="value" index="key">
                WHEN #{key} THEN #{value}
            </foreach>
            END,update_at = NOW()
        WHERE id = CASE id
            <foreach collection="needDealMap.entrySet()" index="key">
                WHEN #{key} THEN #{key}
            </foreach>
            END
    </update>
    <select id="pageDiscuss" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussDTO"
            resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
        SELECT
        t.*
        FROM
        (
        SELECT
        d.id,
        d.`discuss_subject`,
        d.type,
        COUNT( DISTINCT c.id ) commentNum,
        u.NAME userName,
        u.nick_name userNickName,
        d.create_at
        FROM
        com_act_discuss d
        JOIN sys_user u ON d.user_id = u.user_id
        LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id
        WHERE
        d.community_id = #{pageComActDiscussDTO.communityId} and d.is_del = 2
        <if test = 'pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;' >
            AND d.`discuss_subject` LIKE concat(#{pageComActDiscussDTO.subject}, '%' )
        </if>
        <if test = 'pageComActDiscussDTO.begin != null ' >
            AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}
            AND #{pageComActDiscussDTO.end}
        </if>
        <if test="pageComActDiscussDTO.status != null">
            and d.status = #{pageComActDiscussDTO.status}
        </if>
        GROUP BY   d.id  )t
        order by t.create_at desc
    </select>
    <select id="pageDiscussAdmin" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussDTO"
            resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
        SELECT
        d.id,
        d.`discuss_subject`,
        d.type,
        d.comment_num,
        d.fabulous_num as signNum,
        d.views_num,
        d.status,
        u.NAME userName,
        u.nick_name userNickName,
        d.create_at
        FROM
        com_act_discuss d
        JOIN sys_user u ON d.user_id = u.user_id
        WHERE
        d.community_id = #{pageComActDiscussDTO.communityId} and d.is_del = 2
        <if test = 'pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;' >
            AND d.`discuss_subject` LIKE concat(#{pageComActDiscussDTO.subject}, '%' )
        </if>
        <if test = 'pageComActDiscussDTO.begin != null ' >
            AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}
            AND #{pageComActDiscussDTO.end}
        </if>
        <if test="pageComActDiscussDTO.status != null">
            and d.status = #{pageComActDiscussDTO.status}
        </if>
        <if test="pageComActDiscussDTO.keyWord != null and pageComActDiscussDTO.keyWord != &quot;&quot;">
            and (d.`discuss_subject` LIKE concat(#{pageComActDiscussDTO.keyWord}, '%' ) or
            u.`name` LIKE concat(#{pageComActDiscussDTO.keyWord}, '%' ))
        </if>
        order by d.create_at desc
    </select>
    <select id="pageDiscussCommentApplets" resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
        SELECT * FROM (
            SELECT u.`name` userName, IFNULL(u.`nick_name`, '社区管理员') AS userNickName, u.`image_url`, u.phone,
                u.type AS userType, c.`comment`, c.`parent_id`, c.`is_author`, c.`is_topping`, COUNT( cu.id ) num, c.create_at, c.id
            FROM com_act_discuss_comment c
            JOIN sys_user u ON c.user_id = u.user_id
            JOIN com_act_discuss d ON c.discuss_id = d.id
                <if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != &quot;&quot;'>
                    AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' )
                </if>
                <if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != &quot;&quot;'>
                    AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' )
                </if>
            LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id
            WHERE c.discuss_id=#{pageComActDiscussCommentDTO.id} AND parent_id=0 AND c.is_del = 2
                <if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != &quot;&quot;'>
                    AND c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment}, '%' )
                </if>
            GROUP BY c.id
        ) t ORDER BY t.is_topping DESC , t.create_at DESC
    </select>
    <select id="pageDiscussApplets" resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
        SELECT t.* FROM (
            SELECT d.id, d.vote_title, if(d.address IS NULL OR d.address='null',a.name,d.address )address, d.photo_pah,
                d.`discuss_subject`, d.type, d.end_time, d.status, d.views_num, d.join_num, d.fabulous_num AS signNum,
                d.comment_num AS commentNum, d.release_at, d.img_width, d.img_height, d.is_repeat, d.count, u.type AS userType, if(u.type=1,u.name,a.name) userName,
                if(u.type=1,u.nick_name,a.name) userNickName,
                <if test='pageComActDiscussDTO.loginUserId != null '>
                    if(du.id IS NOT NULL,1,0) haveSign, if(ou.id IS NOT NULL,1,0) haveVote,
                </if>
                u.image_url, d.create_at
            FROM com_act_discuss d
            JOIN sys_user u ON d.user_id = u.user_id
            JOIN com_act a ON d.community_id = a.community_id
            LEFT JOIN com_act_discuss_option do ON d.id = do.discuss_id
            LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id
            <if test='pageComActDiscussDTO.loginUserId != null '>
                LEFT JOIN com_act_discuss_option_user ou ON do.id=ou.discuss_option_id AND ou.user_id=#{pageComActDiscussDTO.loginUserId}
            </if>
            WHERE d.community_id=#{pageComActDiscussDTO.communityId} AND d.is_del = 2
                <if test='pageComActDiscussDTO.type != null '>
                    AND d.`type` = #{pageComActDiscussDTO.type}
                </if>
                <if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>
                    AND d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )
                </if>
                <if test='pageComActDiscussDTO.userId != null and pageComActDiscussDTO.userId !=0 '>
                    AND d.`user_id` = #{pageComActDiscussDTO.userId}
                </if>
                <if test='pageComActDiscussDTO.begin != null '>
                    AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  AND #{pageComActDiscussDTO.end}
                </if>
                <if test='pageComActDiscussDTO.displayStatus != null and pageComActDiscussDTO.displayStatus == 1'>
                    AND d.`end_time` &gt; now()
                </if>
                <if test='pageComActDiscussDTO.displayStatus != null and pageComActDiscussDTO.displayStatus == 2'>
                    AND d.`end_time` &lt; now()
                </if>
            GROUP BY d.id
        ) t ORDER BY t.create_at DESC
    </select>
    <update id="addCommentCount">
        update com_act_discuss set comment_num = comment_num + #{num} where id = #{discussId}
    </update>
    <select id="pageDiscussCommentAdmin" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO"
            resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
        SELECT
            *
        FROM
            (
            SELECT
                u.`name` userName,
                u.nick_name userNickName,
                u.image_url,
                u.phone,
                c.`comment`,
                c.`parent_id`,
                COUNT( DISTINCT cu.id ) num,
                COUNT( c1.id ) replyNum,
                c.create_at,
                c.is_topping,
                c.id
            FROM
                com_act_discuss_comment c
                JOIN sys_user u ON c.user_id = u.user_id
                LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id
                LEFT JOIN com_act_discuss_comment c1 ON c1.parent_id = c.id and c1.is_del = 2
            WHERE
                c.discuss_id = #{pageComActDiscussCommentDTO.id} and c.parent_id = 0 and c.is_del = 2
            <if test = 'pageComActDiscussCommentDTO.keyWord != null and pageComActDiscussCommentDTO.keyWord.trim() != &quot;&quot;' >
                AND (c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.keyWord  }, '%' ) or
                u.`name` LIKE concat(#{pageComActDiscussCommentDTO.keyWord}, '%' ) or
                u.phone LIKE concat(#{pageComActDiscussCommentDTO.keyWord}, '%' ))
            </if>
            GROUP BY
                c.id
            ) t
        ORDER BY
            t.is_topping DESC,t.create_at DESC
    </select>
    <select id="getDiscussCommentReplyList" resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
        SELECT
            cadc.id,
            cadc.discuss_id,
            cadc.`comment`,
            cadc.create_at,
            cadc.is_author,
            cadc.user_id,
            IFNULL( su.`name`, su.nick_name ) AS userName
        FROM
            com_act_discuss_comment AS cadc
            LEFT JOIN sys_user AS su ON su.user_id = cadc.user_id
        WHERE
            cadc.is_del = 2
            AND cadc.parent_id = #{commentId}
        order by cadc.create_at desc
        limit 10
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionDOMapper.xml
New file
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussOptionDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussOptionDO">
        <id column="id" property="id"/>
        <result column="discuss_id" property="discussId"/>
        <result column="option_content" property="optionContent"/>
        <result column="create_at" property="createAt"/>
        <result column="option_url" property="optionUrl"/>
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, discuss_id, option_content, create_at, option_url
    </sql>
    <select id="getDiscussOptionList" resultType="com.panzhihua.common.model.vos.community.ComActDiscussOptionVO">
        SELECT
            cado.id,
            cado.option_content,
            cado.option_url,
            ( SELECT count( id ) FROM com_act_discuss_option_user WHERE discuss_option_id = cado.id ) AS num,
            ( SELECT count( id ) FROM com_act_discuss_option_user WHERE discuss_id = cado.discuss_id ) AS allNum
        FROM
            com_act_discuss_option AS cado
        WHERE
            discuss_id = #{discussId}
        ORDER BY
            num DESC
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml
New file
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussOptionUserDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussOptionUserDO">
        <id column="id" property="id"/>
        <result column="discuss_option_id" property="discussOptionId"/>
        <result column="user_id" property="userId"/>
        <result column="create_at" property="createAt"/>
        <result column="discuss_id" property="discussId"/>
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, discuss_option_id, user_id, create_at, discuss_id
    </sql>
    <insert id="batchInsert" parameterType="java.util.List">
        INSERT INTO `com_act_discuss_option_user`(discuss_option_id,user_id,create_at,discuss_id)
        VALUES
        <foreach collection="comActDiscussOptionUserDOList" item="item" index="index" separator="," >
            (#{item.discussOptionId}, #{item.userId}, now(), #{item.discussId})
        </foreach>
    </insert>
    <select id="selectVotedVotesInToday" resultType="java.lang.Integer">
        SELECT COUNT(1) FROM `com_act_discuss_option_user`
        WHERE discuss_id = #{discussId} AND user_id = #{userId} AND DATE(create_at) &gt;= DATE(now())
        AND DATE(create_at) &lt; DATE_ADD(DATE(now()),INTERVAL 1 DAY)
    </select>
    <select id="selectVotedRecords" resultType="com.panzhihua.common.model.vos.community.ComActDiscussOptionUserVO">
        SELECT
            cadou.*,
            su.nick_name,
            su.image_url
        FROM `com_act_discuss_option_user` cadou
        LEFT JOIN `sys_user` su ON cadou.user_id = su.user_id
        WHERE cadou.discuss_id = #{discussId} limit 6
    </select>
    <select id="selectVotedPersonNum" resultType="java.lang.Integer">
        SELECT COUNT(DISTINCT `user_id`)
        FROM `com_act_discuss_option_user`
        WHERE discuss_id = #{discussId}
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussUserDOMapper.xml
New file
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussUserDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussUserDO">
        <id column="id" property="id"/>
        <result column="discuss_id" property="discussId"/>
        <result column="user_id" property="userId"/>
        <result column="create_at" property="createAt"/>
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, discuss_id, user_id, create_at
    </sql>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml
@@ -25,19 +25,24 @@
    <select id="selectListByQuestnaire" resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO">
        SELECT
            qs.type AS optionType,
            ac.answer_id as reserveRecordId,
            ac.answer_content,
            caqs.type AS optionType,
            caqac.answer_id as reserveRecordId,
            caqac.sub_id as reserveSubId,
            caqac.answer_content,
            caqac.type,
            caqac.id,
            su.nick_name,
            carr.create_at AS `time`
            caqua.create_at AS `time`
        FROM
            com_act_questnaire_answer_content ac
            LEFT JOIN com_act_questnaire_sub qs ON ac.sub_id = qs.id
            LEFT JOIN com_act_questnaire qn ON qs.que_Id = qn.id
            LEFT JOIN sys_user su ON ac.user_id = su.user_id
            LEFT JOIN com_act_questnaire_user_answer carr ON carr.id = ac.answer_id
            com_act_questnaire_answer_content caqac
            LEFT JOIN com_act_questnaire_sub caqs ON caqac.selection_id = caqs.id
            LEFT JOIN com_act_questnaire caq ON caqs.que_Id = caq.id
            LEFT JOIN sys_user su ON caqac.user_id = su.user_id
            LEFT JOIN com_act_questnaire_user_answer caqua ON caqua.id = caqac.answer_id
        WHERE
            qn.id = #{questId}
            caq.id = #{questId}
        ORDER BY
            caqac.answer_id asc,caqac.id ASC
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
@@ -34,7 +34,7 @@
            LEFT JOIN com_act_reserve_record carr ON carr.id = ac.reserve_record_id
        WHERE
            qn.id = #{reserveId}
            order by ac.id asc
            order by ac.reserve_record_id asc,ac.id asc
    </select>
    <select id="pageRegisterDetailedListAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO"
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
@@ -39,6 +39,7 @@
            ceae.personnel_category,
            ceae.address,
            ceae.is_alive,
            cear.auth_method,
            cear.auth_period,
            cear.auth_date,
            cear.mark,
@@ -52,6 +53,9 @@
            ceae.community_id = #{pageElderAuthRecordsDTO.communityId}
        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
            and cear.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
        </if>
        <if test="pageElderAuthRecordsDTO.authMethod != null and pageElderAuthRecordsDTO.authMethod != 0">
            and cear.auth_method = #{pageElderAuthRecordsDTO.authMethod}
        </if>
        <if test="pageElderAuthRecordsDTO.authDateBegin != null and pageElderAuthRecordsDTO.authDateBegin != ''">
            and cear.auth_date after #{pageElderAuthRecordsDTO.authDateBegin}
@@ -89,6 +93,7 @@
            ceae.personnel_category,
            ceae.address,
            ceae.is_alive,
            cear.auth_method,
            cear.auth_period,
            cear.auth_date,
            cear.mark,
@@ -132,12 +137,19 @@
                END personnelCategory,
            ceae.address,
            CASE
                ceae.isAlive
                ceae.is_alive
                WHEN 1 THEN
                    '是'
                WHEN 0 THEN
                    '否'
                END is_alive,
                END isAlive,
            CASE
                cear.auth_method
                WHEN 1 THEN
                '视频认证'
                WHEN 2 THEN
                '人脸认证'
                END authMethod,
            cear.auth_period,
            cear.auth_date,
            cear.mark,
@@ -171,6 +183,9 @@
                </if>
                <if test="item.elderliesId != null">
                    `elderlies_id` = #{item.elderliesId},
                </if>
                <if test="item.authMethod != null and item.authMethod != 0">
                    `auth_method` = #{item.authMethod},
                </if>
                <if test="item.authPeriod != null and item.authPeriod != ''">
                    `auth_period` = #{item.authPeriod},
@@ -239,7 +254,7 @@
        END personnelCategory,
        ceae.address,
        CASE
            ceae.isAlive
            ceae.is_alive
            WHEN 1 THEN
            '是'
            WHEN 0 THEN
@@ -247,6 +262,13 @@
        END is_alive,
        cear.auth_period,
        cear.auth_date,
        CASE
            cear.auth_method
            WHEN 1 THEN
            '视频认证'
            WHEN 2 THEN
            '人脸认证'
        END authMethod,
        cear.mark,
        CASE
            cear.auth_status
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml
@@ -41,6 +41,7 @@
        cpap.is_alive,
        cpar.auth_period,
        cpar.auth_date,
        cpar.auth_method,
        cpar.mark,
        cpar.approval_status,
        cpar.auth_status
@@ -52,6 +53,9 @@
        cpap.community_id = #{pageElderAuthRecordsDTO.communityId}
        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
            and cpar.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
        </if>
        <if test="pageElderAuthRecordsDTO.authMethod != null and pageElderAuthRecordsDTO.authMethod != 0">
            and cpar.auth_method = #{pageElderAuthRecordsDTO.authMethod}
        </if>
        <if test="pageElderAuthRecordsDTO.authDateBegin != null and pageElderAuthRecordsDTO.authDateBegin != ''">
            and cpar.auth_date after #{pageElderAuthRecordsDTO.authDateBegin}
@@ -92,6 +96,7 @@
            cpar.auth_period,
            cpar.auth_date,
            cpar.mark,
            cpar.auth_method,
            cpar.auth_video,
            cpar.approval_status,
            su1.`name` as approverName,
@@ -140,6 +145,13 @@
        END is_alive,
        cpar.auth_period,
        cpar.auth_date,
        CASE
        cpar.auth_method
        WHEN 1 THEN
        '视频认证'
        WHEN 2 THEN
        '人脸认证'
        END authMethod,
        cpar.mark,
        CASE
        cpar.approval_status
@@ -171,6 +183,9 @@
                </if>
                <if test="item.pensionerId != null">
                    `pensioner_id` = #{item.pensionerId},
                </if>
                <if test="item.authMethod != null and item.authMethod != 0">
                    `auth_method` = #{item.authMethod},
                </if>
                <if test="item.authPeriod != null and item.authPeriod != ''">
                    `auth_period` = #{item.authPeriod},
@@ -247,6 +262,13 @@
        END is_alive,
        cpar.auth_period,
        cpar.auth_date,
        CASE
        cpar.auth_method
        WHEN 1 THEN
        '视频认证'
        WHEN 2 THEN
        '人脸认证'
        END authMethod,
        cpar.mark,
        CASE
        cpar.auth_status
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
@@ -1112,4 +1112,14 @@
        return userService.getUserListByCommunityId(communityId);
    }
    /**
     * 检查当前用户是否是社区工作人员
     * @param phone
     * @param communityId
     * @return
     */
    @GetMapping("checkIsTeam")
    public R checkCurrentUserIsTeam(String phone, Long communityId) {
        return userService.checkCurrentUserIsTeam(phone, communityId);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
@@ -678,4 +678,11 @@
     */
    R getUserListByCommunityId(Long communityId);
    /**
     * 检查当前用户是否是社区工作人员
     * @param phone
     * @param communityId
     * @return
     */
    R checkCurrentUserIsTeam(String phone, Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -2422,4 +2422,19 @@
    public R getUserListByCommunityId(Long communityId) {
        return R.ok(this.userDao.getUserListByCommunityId(communityId));
    }
    /**
     * 检查当前用户是否是社区工作人员
     * @param phone
     * @param communityId
     * @return
     */
    @Override
    public R checkCurrentUserIsTeam(String phone, Long communityId) {
        int result = this.userDao.selectCountTeam(phone, communityId);
        if (result > 0) {
            return R.ok(true);
        }
        return R.ok(false);
    }
}
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
@@ -205,6 +205,17 @@
        return ReturnT.SUCCESS;
    }
    /**
     * 定时任务每半小时执行一次将一起议浏览量写入到表中
     */
    @XxlJob("timedTaskWriteDiscussViewNumToTableJobHandler")
    public ReturnT<String> timedTaskWriteDiscussViewNumToTableJobHandler(String param) throws Exception {
        log.info("定时任务每半小时执行一次将一起议浏览量写入到表中");
        R r = communityService.timedTaskWriteDiscussViewNumToTable();
        log.info("执行结果【{}】", r.toString());
        return ReturnT.SUCCESS;
    }
    @XxlJob("timedTaskEldersAuthJobHandler")
    public ReturnT<String> timedTaskEldersAuthJobHandler(String param) throws Exception {
        log.info("定时任务扫描上月高龄认证使用视频认证的用户添加成功记录");
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/DiscussJobHandler.java
New file
@@ -0,0 +1,30 @@
package com.panzhihua.timejob.jobhandler;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.service.community.CommunityService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
 * @author lyq
 * 议事投票定时任务
 */
@Slf4j
@Component
public class DiscussJobHandler {
    @Resource
    private CommunityService communityService;
    @XxlJob("timedTaskDiscussInspectStatusJobHandler")
    public ReturnT<String> timedTaskDiscussInspectStatusJobHandler(String param) throws Exception {
        log.info("定时任务扫描议事投票状态");
        R r = communityService.timedTaskDiscussInspectStatus();
        log.info("执行结果【{}】", r.toString());
        return ReturnT.SUCCESS;
    }
}
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -247,8 +247,8 @@
                noLoginUrl.add("/api/applets/partybuilding/pageactivity");
                noLoginUrl.add("/api/applets/community/pagevolunteer");
                noLoginUrl.add("/api/applets/community/volunteer");
                noLoginUrl.add("/api/applets/discuss/increase-view-num");
                noLoginUrl.add("/api/applets/community/evaluate/page");
                if (noLoginUrl.contains(requestURI)) {
                    List<SimpleGrantedAuthority> authorities = new ArrayList<>();
                    authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS));