springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java
@@ -183,4 +183,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
@@ -84,4 +84,12 @@ @ApiModelProperty("投票结果") 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/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/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/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/ComActDiscussVO.java
@@ -117,6 +117,9 @@ @ApiModelProperty("每人票数") private Integer count; @ApiModelProperty("议事投票评论列表") private List<ComActDiscussCommentVO> discussCommentList; @ApiModelProperty("剩余可投票数") private Integer remainingVotes; @@ -125,4 +128,12 @@ @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/service/community/CommunityService.java
@@ -3,6 +3,8 @@ import java.util.List; 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; @@ -1141,12 +1143,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); /** * 议事投票-删除 @@ -1199,6 +1209,14 @@ R detailDiscussComment(@RequestParam("id") Long id); /** * 议事投票评论详情 * @param pageComActDiscussCommentDTO 请求参数 * @return 议事投票详情 */ @PostMapping("detaildiscusscommentAdmin") R detailDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 议事投票-评论-置顶 * * @param id @@ -1227,6 +1245,16 @@ */ @PostMapping("pagediscusscomment") R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 议事投票-评论-后台分页查询 * * @param pageComActDiscussCommentDTO * 分页查询参数 * @return ComActDiscussCommentVO */ @PostMapping("pagediscusscommentAdmin") R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 议事投票-分页查询 小程序 @@ -5246,6 +5274,46 @@ 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 */ 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.*; @@ -44,7 +45,7 @@ } comActDiscussDTO.setUserId(loginUserInfo.getUserId()); comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId()); if (comActDiscussDTO.getType().equals(2)) { if (comActDiscussDTO.getType().equals(ComActDiscussDTO.type.tp)) { if (ObjectUtils.isEmpty(comActDiscussDTO.getVoteTitle())) { return R.fail("投票标题不能为空"); } @@ -64,7 +65,7 @@ } comActDiscussDTO.setUserId(loginUserInfo.getUserId()); comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId()); if (comActDiscussDTO.getType().equals(2)) { if (comActDiscussDTO.getType().equals(ComActDiscussDTO.type.tp)) { if (ObjectUtils.isEmpty(comActDiscussDTO.getVoteTitle())) { return R.fail("投票标题不能为空"); } @@ -76,9 +77,15 @@ } @ApiOperation(value = "议事投票-详情-", response = ComActDiscussVO.class) @GetMapping("discuss") public R detailDiscuss(@RequestParam("id") Long id) { return communityService.detailDiscuss(id); @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 = "议事投票-删除-") @@ -87,8 +94,8 @@ 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)) { @@ -110,19 +117,25 @@ 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(); @@ -137,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 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/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.*; @@ -48,13 +50,23 @@ /** * 议事投票-详情 * * @param id * 主键 * @param discussDetailDTO * 请求参数 * @return ComActDiscussVO */ @PostMapping("detaildiscuss") public R detailDiscuss(@RequestParam("id") Long id) { return comActDiscussService.detailDiscuss(id); 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); } /** @@ -118,6 +130,16 @@ } /** * 议事投票评论详情 * @param pageComActDiscussCommentDTO 请求参数 * @return 议事投票详情 */ @PostMapping("detaildiscusscommentAdmin") public R detailDiscusscommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) { return comActDiscussService.detailDiscussCommentAdmin(pageComActDiscussCommentDTO); } /** * 议事投票-评论-置顶 * * @param id @@ -151,6 +173,18 @@ @PostMapping("pagediscusscomment") public R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) { return comActDiscussService.pageDiscussComment(pageComActDiscussCommentDTO); } /** * 议事投票-评论-后台分页查询 * * @param pageComActDiscussCommentDTO * 分页查询参数 * @return ComActDiscussCommentVO */ @PostMapping("pagediscusscommentAdmin") public R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) { return comActDiscussService.pageDiscussCommentAdmin(pageComActDiscussCommentDTO); } /** @@ -228,6 +262,57 @@ } /** * 议事投票后台公布结果 * @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 */ 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
@@ -75,6 +75,24 @@ IPage<ComActDiscussCommentVO> pageDiscussComment(Page page, @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 议事投票-评论-后台分页查询 * * @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, " @@ -168,6 +186,13 @@ 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 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java
@@ -64,4 +64,17 @@ * 回复量 */ 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
@@ -152,6 +152,11 @@ private Date updateAt; /** * 公布人id */ private Long publishBy; /** * 类型 1 议事 2 投票 */ public interface type{ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java
@@ -2,6 +2,8 @@ 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; /** @@ -30,11 +32,11 @@ /** * 议事投票-详情 * * @param id * 主键 * @param discussDetailDTO * 请求参数 * @return ComActDiscussVO */ R detailDiscuss(Long id); R detailDiscuss(ComActDiscussDetailDTO discussDetailDTO); /** * 议事投票-删除 @@ -80,6 +82,13 @@ R detailDiscusscomment(Long id); /** * 议事投票评论详情 * @param pageComActDiscussCommentDTO 请求参数 * @return 议事投票详情 */ R detailDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 议事投票-评论-置顶 * * @param id @@ -105,6 +114,15 @@ * @return ComActDiscussCommentVO */ R pageDiscussComment(PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 议事投票-评论-后台分页查询 * * @param pageComActDiscussCommentDTO * 分页查询参数 * @return ComActDiscussCommentVO */ R pageDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO); /** * 议事投票-分页查询 小程序 @@ -172,6 +190,48 @@ 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 */ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -18,6 +18,13 @@ import javax.annotation.Resource; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.panzhihua.common.constants.Constants; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO; import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.utlis.DateUtils; import org.springframework.beans.BeanUtils; import org.springframework.data.redis.connection.StringRedisConnection; import org.springframework.data.redis.core.RedisCallback; @@ -99,6 +106,8 @@ @Resource private ComActDiscussOptionService comActDiscussOptionService; @Resource private SysConfMapper sysConfDao; @Resource private SysConfService sysConfService; @Resource private UserService userService; @@ -108,8 +117,7 @@ /** * 议事投票-新增 * * @param comActDiscussDTO * 新增参数 * @param comActDiscussDTO 新增参数 * @return 新增结果 */ @Override @@ -206,6 +214,7 @@ /** * 议事投票-编辑 * * @param comActDiscussDTO 请求参数 * @return 编辑结果 */ @@ -265,12 +274,12 @@ /** * 议事投票-详情 * * @param id * 主键 * @param discussDetailDTO 请求参数 * @return ComActDiscussVO */ @Override public R detailDiscuss(Long id) { public R detailDiscuss(ComActDiscussDetailDTO discussDetailDTO) { Long id = discussDetailDTO.getId(); ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id); if (ObjectUtils.isEmpty(comActDiscussDO)) { return R.fail("议事投票不存在"); @@ -279,22 +288,36 @@ BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO); comActDiscussVO.setSignNum(comActDiscussDO.getFabulousNum()); Integer type = comActDiscussVO.getType(); if (type.equals(2)) { if (type.equals(ComActDiscussVO.type.tp)) { //查询选项列表 List<ComActDiscussOptionVO> comActDiscussOptionVOS = comActDiscussOptionDAO.getDiscussOptionList(id); comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS); 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 * 主键 * @param id 主键 * @return 删除结果 */ @Override @@ -311,8 +334,7 @@ /** * 议事投票-回复 * * @param comActDiscussCommentDTO * 评论内容 * @param comActDiscussCommentDTO 评论内容 * @return 回复结果 */ @Override @@ -335,6 +357,7 @@ } int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO); if (insert > 0) { // comActDiscussDAO.addCommentCount(discussId, 1); //评论成功,评论总数+1 //若首次参与评论,参与讨论人数+1 if (currentUserCommentCount > 0) { @@ -350,30 +373,19 @@ /** * 议事投票-分页查询 * * @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 pageComActDiscussDTO 请求参数 * @return 议事投票列表 */ @@ -385,8 +397,7 @@ /** * 议事投票-评论-查看 * * @param id * 主键 * @param id 主键 * @return 详情 ComActDiscussCommentVO */ @Override @@ -417,10 +428,49 @@ } /** * 议事投票评论详情 * * @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()); //查询该评论下所有回复内容 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 * 主键 * @param id 主键 * @return 置顶结果 */ @Override @@ -450,8 +500,7 @@ /** * 议事投票-评论-回复 * * @param comActDiscussCommentDTO * 回复内容 * @param comActDiscussCommentDTO 回复内容 * @return 回复结果 */ @Override @@ -465,6 +514,10 @@ ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId); if (ObjectUtils.isEmpty(comActDiscussDO)) { return R.fail("议事投票不存在"); } Long parentId = comActDiscussCommentDO.getParentId(); if (parentId.intValue() != 0) { return R.fail("二级评论不能回复"); } Long currentUser = comActDiscussCommentDTO.getUserId(); //判断当前用户是否参与过评论/回复 @@ -481,6 +534,7 @@ } int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO1); if (insert > 0) { // comActDiscussDAO.addCommentCount(discussId, 1); //回复成功,评论总数+1 //若首次参与评论,参与讨论人数+1 if (currentUserCommentCount > 0) { @@ -496,32 +550,31 @@ /** * 议事投票-评论-分页查询 * * @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; IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO); return R.ok(iPage); } if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(page, pageComActDiscussCommentDTO); /** * 议事投票-评论-后台分页查询 * * @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 * 查询参数 * @param pageComActDiscussDTO 查询参数 * @return ComActDiscussVO 分页 */ @Override @@ -612,8 +665,7 @@ /** * 议事投票-点赞、取消点赞 * * @param comActDiscussUserDTO * 操作类型 * @param comActDiscussUserDTO 操作类型 * @return 操作结果 */ @Override @@ -641,8 +693,7 @@ /** * 议事投票-评论-分页查询 小程序 * * @param pageComActDiscussCommentDTO * 分页参数 * @param pageComActDiscussCommentDTO 分页参数 * @return ComActDiscussCommentVO */ @Override @@ -734,10 +785,8 @@ /** * 议事投票-详情 小程序 * * @param id * 主键 * @param loginUserId * 登录用户主键 * @param id 主键 * @param loginUserId 登录用户主键 * @return ComActDiscussVO */ @Override @@ -848,8 +897,7 @@ /** * 议事投票-投票 * * @param comActDiscussOptionUserDTO * 投票信息 * @param comActDiscussOptionUserDTO 投票信息 * @return 投票结果 */ @Override @@ -901,8 +949,7 @@ /** * 议事投票-评论-点赞、取消点赞 * * @param comActDiscussCommentUserDTO * 评论点赞 * @param comActDiscussCommentUserDTO 评论点赞 * @return 点赞结果 */ @Override @@ -933,8 +980,7 @@ /** * 工作大屏-议事投票列表 * * @param discussListDTO * 请求参数 * @param discussListDTO 请求参数 * @return 议事投票列表 */ @Override @@ -964,6 +1010,174 @@ } /** * 议事投票后台公布结果 * * @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 */ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
@@ -20,4 +20,18 @@ 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`, 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 </select> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
@@ -30,11 +30,12 @@ <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 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} @@ -196,4 +197,61 @@ ) 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.phone, c.`comment`, c.`parent_id`, COUNT( DISTINCT cu.id ) num, COUNT( c1.id ) replyNum, c.create_at, 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() != ""' > 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.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} limit 2 </select> </mapper> 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; } }