From 906a56c431c7a3be54052271c11b7808608a5129 Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Wed, 16 Apr 2025 13:46:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(community):=20=E5=8F=91=E5=B8=83=E6=94=B6?= =?UTF-8?q?=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../communityCenter/CommunityController.java | 56 ++++++------- .../communityCenter/PublishController.java | 14 +++- .../domain/dto/PublishCollectRes.java | 36 +++++++++ .../domain/dto/PublishDetailRes.java | 3 + .../domain/dto/QuitCommunityRes.java | 29 +++++++ .../handler/CustomTenantHandler.java | 20 ++++- .../mapper/CommunityFileLogMapper.java | 4 +- .../mapper/CommunityMapper.java | 6 +- .../mapper/CommunityUserMapper.java | 2 +- .../communityCenter/mapper/InviteMapper.java | 4 +- .../mapper/PublishCollectMapper.java | 11 +++ .../service/PublishCollectService.java | 12 ++- .../service/PublishService.java | 7 +- .../service/impl/CommunityServiceImpl.java | 20 ++++- .../impl/PublishCollectServiceImpl.java | 15 ++++ .../service/impl/PublishServiceImpl.java | 79 ++++++++++++++++--- .../communityCenter/CommunityMapper.xml | 2 + .../communityCenter/PublishCollectMapper.xml | 20 +++++ .../mcwl/framework/config/SecurityConfig.java | 1 + 19 files changed, 279 insertions(+), 62 deletions(-) create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishCollectRes.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/QuitCommunityRes.java diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityController.java index 2b3707b..b6d86ed 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityController.java @@ -6,10 +6,7 @@ import com.mcwl.common.core.domain.R; import com.mcwl.common.core.page.PageDomain; import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.communityCenter.domain.Community; -import com.mcwl.communityCenter.domain.dto.CommunityListPageRes; -import com.mcwl.communityCenter.domain.dto.CommunityRes; -import com.mcwl.communityCenter.domain.dto.JoinCommunityListPageRes; -import com.mcwl.communityCenter.domain.dto.JoinCommunityRes; +import com.mcwl.communityCenter.domain.dto.*; import com.mcwl.communityCenter.service.CommunityService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; @@ -85,37 +82,32 @@ public class CommunityController { */ @ApiOperation(value = "退出社区") @PostMapping("quit") - public R quitCommunity(@ApiParam(value = "租户id", required = true) - @NotNull(message = "租户id不能为空") - @Valid - Long tenantId, - @ApiParam(value = "社区id", required = true) - @NotNull(message = "社区id不能为空") - @Valid - Long communityId) { + public R quitCommunity(@RequestBody @Valid QuitCommunityRes quitCommunityRes) { + Long tenantId = quitCommunityRes.getTenantId(); + Long communityId = quitCommunityRes.getCommunityId(); return communityService.quitCommunity(tenantId, communityId); } - - /** - * 删除社区 - * - * @param id 社区id - * @return 删除结果 - */ - @ApiOperation(value = "删除社区") - @GetMapping("delete") - public R deleteCommunity(@NotNull(message = "id不能为空") - @ApiParam(value = "id", required = true) - @Valid - Long id) { - Community community = communityService.getById(id); - if (Objects.isNull(community)) { - return R.fail(HttpStatus.SHOW_ERROR_MSG, "该社区不存在"); - } - communityService.removeById(id); - return R.ok(); - } +// +// /** +// * 删除社区 +// * +// * @param id 社区id +// * @return 删除结果 +// */ +// @ApiOperation(value = "删除社区") +// @GetMapping("delete") +// public R deleteCommunity(@NotNull(message = "id不能为空") +// @ApiParam(value = "id", required = true) +// @Valid +// Long id) { +// Community community = communityService.getById(id); +// if (Objects.isNull(community)) { +// return R.fail(HttpStatus.SHOW_ERROR_MSG, "该社区不存在"); +// } +// communityService.removeById(id); +// return R.ok(); +// } /** * 是否加入社区 diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java index a691a60..eadb01f 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java @@ -5,9 +5,7 @@ import com.mcwl.common.constant.HttpStatus; import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.R; import com.mcwl.common.core.page.TableDataInfo; -import com.mcwl.communityCenter.domain.dto.PublishDetailRes; -import com.mcwl.communityCenter.domain.dto.PublishPageRes; -import com.mcwl.communityCenter.domain.dto.PublishRes; +import com.mcwl.communityCenter.domain.dto.*; import com.mcwl.communityCenter.domain.vo.PublishVo; import com.mcwl.communityCenter.service.PublishService; import io.swagger.annotations.Api; @@ -106,4 +104,14 @@ public class PublishController { return R.ok(); } + /** + * 收藏/取消收藏 + */ + @ApiOperation(value = "收藏/取消收藏") + @PostMapping("collect") + public R collectPublish(@RequestBody @Valid PublishCollectRes publishCollectRes) { + publishService.collectPublish(publishCollectRes); + return R.ok(); + } + } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishCollectRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishCollectRes.java new file mode 100644 index 0000000..326cb14 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishCollectRes.java @@ -0,0 +1,36 @@ +package com.mcwl.communityCenter.domain.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 收藏/取消收藏请求参数 + */ +@Data +@ApiModel(value = "收藏/取消收藏请求参数") +public class PublishCollectRes { + + /** + * 租户id + */ + @ApiModelProperty(value = "用户id", required = true) + @NotNull(message = "用户id不能为空") + private Long tenantId; + + /** + * 社区id + */ + @ApiModelProperty(value = "社区id", required = true) + @NotNull(message = "社区id不能为空") + private Long communityId; + + /** + * 发布id + */ + @ApiModelProperty(value = "发布id", required = true) + @NotNull(message = "发布id不能为空") + private Long publishId; +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishDetailRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishDetailRes.java index 7fa2c6c..de9d936 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishDetailRes.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/PublishDetailRes.java @@ -8,6 +8,9 @@ import lombok.EqualsAndHashCode; import javax.validation.constraints.NotNull; +/** + * 发布详情请求参数 + */ @Data @ApiModel(value = "发布详情请求参数") public class PublishDetailRes { diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/QuitCommunityRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/QuitCommunityRes.java new file mode 100644 index 0000000..6ac885d --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/QuitCommunityRes.java @@ -0,0 +1,29 @@ +package com.mcwl.communityCenter.domain.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 退出社区请求参数 + */ +@Data +@ApiModel(value = "退出社区请求参数") +public class QuitCommunityRes { + + + @ApiModelProperty(value = "租户id", required = true) + @NotNull(message = "租户id不能为空") + private Long tenantId; + @ApiModelProperty(value = "社区id", required = true) + @NotNull(message = "社区id不能为空") + private Long communityId; + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/handler/CustomTenantHandler.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/handler/CustomTenantHandler.java index c4c74fa..b1c41ae 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/handler/CustomTenantHandler.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/handler/CustomTenantHandler.java @@ -21,20 +21,36 @@ public class CustomTenantHandler implements TenantLineHandler { * 需要根据业务需要进行调整.需要多租户的表名 */ static { + // 通知表 + tables.add("cc_advice"); // 发布评论表 tables.add("cc_comment"); + // 评论点赞表 + tables.add("cc_comment_like"); // 社区表 tables.add("cc_community"); + // 社区文件表 + tables.add("cc_community_file"); + // 社区文件下载记录表 + tables.add("cc_community_file_log"); + // 社区用户表 + tables.add("cc_community_user"); + // 收益明细 + tables.add("cc_income_info"); // 邀请表 tables.add("cc_invite"); // 发布表 tables.add("cc_publish"); + // 收藏表 + tables.add("cc_publish_collect"); + // 发布点赞表 + tables.add("cc_publish_like"); // 提问表 tables.add("cc_question"); // 提问评论表 tables.add("cc_question_comment"); - // 社区用户表 - tables.add("cc_community_user"); + + // 输出表名 log.info("多租户表:{}", tables); diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java index 7ba2ba7..b6f7493 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java @@ -21,5 +21,7 @@ public interface CommunityFileLogMapper extends BaseMapper { Long communityFileId); @InterceptorIgnore(tenantLine = "true") - Integer getDownloadCount(Long tenantId, Long communityId, Long communityFileId); + Integer getDownloadCount(@Param("tenantId") Long tenantId, + @Param("communityId") Long communityId, + @Param("communityFileId") Long communityFileId); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityMapper.java index d8717f4..c82ad01 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityMapper.java @@ -57,8 +57,10 @@ public interface CommunityMapper extends BaseMapper { String searchContent); @InterceptorIgnore(tenantLine = "true") - void quitCommunity(Long tenantId, Long communityId, Long userId); + void quitCommunity(@Param("tenantId") Long tenantId, + @Param("communityId") Long communityId, + @Param("userId") Long userId); @InterceptorIgnore(tenantLine = "true") - void deleteCommunity(Long tenantId, Long communityId); + void deleteCommunity(@Param("tenantId") Long tenantId, @Param("communityId") Long communityId); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityUserMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityUserMapper.java index e057beb..825e6a4 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityUserMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityUserMapper.java @@ -23,7 +23,7 @@ public interface CommunityUserMapper extends BaseMapper { @Param("userId") Long userId); @InterceptorIgnore(tenantLine = "true") - Integer getJoinNum(Long tenantId, Long communityId); + Integer getJoinNum(@Param("tenantId") Long tenantId, @Param("communityId") Long communityId); @InterceptorIgnore(tenantLine = "true") int isJoinCommunity(@Param("tenantId") diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/InviteMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/InviteMapper.java index 4a18e62..018fd95 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/InviteMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/InviteMapper.java @@ -38,5 +38,7 @@ public interface InviteMapper extends BaseMapper { * @return 邀请记录 */ @InterceptorIgnore(tenantLine = "true") - Invite selectByTenantIdAndCommunityIdAndInviteeUserId(Long tenantId, Long communityId, Long inviteeUserId); + Invite selectByTenantIdAndCommunityIdAndInviteeUserId(@Param("tenantId") Long tenantId, + @Param("communityId") Long communityId, + @Param("inviteeUserId") Long inviteeUserId); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishCollectMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishCollectMapper.java index bfe81d8..ba81667 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishCollectMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishCollectMapper.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mcwl.communityCenter.domain.Publish; import com.mcwl.communityCenter.domain.PublishCollect; import com.mcwl.communityCenter.domain.dto.MyPublishCollectPageRes; +import com.mcwl.communityCenter.domain.dto.PublishCollectRes; import com.mcwl.communityCenter.domain.dto.PublishPageRes; import com.mcwl.communityCenter.domain.vo.PublishVo; import org.apache.ibatis.annotations.Mapper; @@ -21,4 +22,14 @@ public interface PublishCollectMapper extends BaseMapper { List myCollectList(Page page, @Param("myPublishCollectPageRes") MyPublishCollectPageRes myPublishCollectPageRes, @Param("userId") Long userId); + + @InterceptorIgnore(tenantLine = "true") + void savePublishCollect(@Param("publishCollect") PublishCollect publishCollect); + + @InterceptorIgnore(tenantLine = "true") + PublishCollect getPublishCollect(@Param("publishCollect") PublishCollectRes publishCollectRes, + @Param("userId") Long userId); + + @InterceptorIgnore(tenantLine = "true") + void updatePublishCollect(@Param("publishCollect") PublishCollect publishCollect); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishCollectService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishCollectService.java index 3e856ce..3597e06 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishCollectService.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishCollectService.java @@ -5,10 +5,7 @@ import com.mcwl.common.core.domain.R; import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.communityCenter.domain.Publish; import com.mcwl.communityCenter.domain.PublishCollect; -import com.mcwl.communityCenter.domain.dto.MyPublishCollectPageRes; -import com.mcwl.communityCenter.domain.dto.PublishDetailRes; -import com.mcwl.communityCenter.domain.dto.PublishPageRes; -import com.mcwl.communityCenter.domain.dto.PublishRes; +import com.mcwl.communityCenter.domain.dto.*; import com.mcwl.communityCenter.domain.vo.PublishVo; import javax.validation.Valid; @@ -17,4 +14,11 @@ public interface PublishCollectService extends IService { TableDataInfo myCollectList(@Valid MyPublishCollectPageRes myPublishCollectPageRes); + + + void savePublishCollect(PublishCollect publishCollect); + + PublishCollect getPublishCollect(PublishCollectRes publishCollectRes, Long userId); + + void updatePublishCollect(PublishCollect publishCollect); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishService.java index 632d2ce..b43ddd6 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishService.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishService.java @@ -7,10 +7,7 @@ import com.mcwl.common.core.page.PageDomain; import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.communityCenter.domain.Community; import com.mcwl.communityCenter.domain.Publish; -import com.mcwl.communityCenter.domain.dto.MyPublishPageRes; -import com.mcwl.communityCenter.domain.dto.PublishDetailRes; -import com.mcwl.communityCenter.domain.dto.PublishPageRes; -import com.mcwl.communityCenter.domain.dto.PublishRes; +import com.mcwl.communityCenter.domain.dto.*; import com.mcwl.communityCenter.domain.vo.PublishVo; import javax.validation.Valid; @@ -38,4 +35,6 @@ public interface PublishService extends IService { TableDataInfo publishList(PublishPageRes publishPageRes); TableDataInfo myPublishList(MyPublishPageRes myPublishPageRes); + + void collectPublish(@Valid PublishCollectRes publishCollectRes); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityServiceImpl.java index 1192a9d..d9cd0ff 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityServiceImpl.java @@ -188,9 +188,27 @@ public class CommunityServiceImpl extends ServiceImpl quitCommunity(Long tenantId, Long communityId) { + + Long userId = SecurityUtils.getUserId(); + + Community community = baseMapper.getByTenantIdAndCommunityId(tenantId, communityId); + + if (Objects.isNull(community)) { + return R.fail(HttpStatus.SHOW_ERROR_MSG, "社区不存在"); + } + + CommunityUser communityUser = communityUserMapper.selectCommunityUser(tenantId, communityId, userId); + if (Objects.isNull(communityUser)) { + return R.fail(HttpStatus.SHOW_ERROR_MSG,"您不是该社区成员"); + } + Integer communityJoinNum = communityUserMapper.getJoinNum(tenantId, communityId); - baseMapper.quitCommunity(tenantId, communityId, SecurityUtils.getUserId()); + if (communityUser.getUserType() == 2 && communityJoinNum > 1) { + return R.fail(HttpStatus.SHOW_ERROR_MSG,"社区还有成员,无法退出"); + } + + baseMapper.quitCommunity(tenantId, communityId, userId); if (communityJoinNum == 1) { baseMapper.deleteCommunity(tenantId, communityId); diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCollectServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCollectServiceImpl.java index 6507473..f52fb31 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCollectServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCollectServiceImpl.java @@ -48,6 +48,21 @@ public class PublishCollectServiceImpl extends ServiceImpl initPage(PageDomain pageDomain) { Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); page.addOrder(new OrderItem("create_time", false)); diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishServiceImpl.java index 54d1738..1790157 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishServiceImpl.java @@ -12,23 +12,22 @@ import com.mcwl.common.core.domain.R; import com.mcwl.common.core.domain.entity.SysUser; import com.mcwl.common.core.page.PageDomain; import com.mcwl.common.core.page.TableDataInfo; +import com.mcwl.common.exception.BusinessException; +import com.mcwl.common.exception.ServiceException; import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.StringUtils; -import com.mcwl.communityCenter.domain.Community; -import com.mcwl.communityCenter.domain.CommunityUser; -import com.mcwl.communityCenter.domain.Publish; -import com.mcwl.communityCenter.domain.Question; -import com.mcwl.communityCenter.domain.dto.MyPublishPageRes; -import com.mcwl.communityCenter.domain.dto.PublishDetailRes; -import com.mcwl.communityCenter.domain.dto.PublishPageRes; -import com.mcwl.communityCenter.domain.dto.PublishRes; +import com.mcwl.communityCenter.constant.AdviceConstant; +import com.mcwl.communityCenter.domain.*; +import com.mcwl.communityCenter.domain.dto.*; import com.mcwl.communityCenter.domain.vo.PublishVo; import com.mcwl.communityCenter.mapper.*; +import com.mcwl.communityCenter.service.PublishCollectService; import com.mcwl.communityCenter.service.PublishService; import com.mcwl.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import nonapi.io.github.classgraph.concurrency.AutoCloseableExecutorService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.concurrent.ThreadPoolExecutor; @@ -45,6 +44,12 @@ public class PublishServiceImpl extends ServiceImpl impl private final CommunityUserMapper communityUserMapper; + private final PublishCollectService publishCollectService; + + private final PublishMapper publishMapper; + + private final CommunityAdviceMapper communityAdviceMapper; + @Override public PublishVo getDetail(PublishDetailRes publishDetailRes) { @@ -75,18 +80,18 @@ public class PublishServiceImpl extends ServiceImpl impl Community community = communityMapper.getByTenantIdAndCommunityId(publishRes.getTenantId(), publishRes.getCommunityId()); if (Objects.isNull(community)) { - return R.fail(HttpStatus.SHOW_ERROR_MSG,"用户社区未创建"); + return R.fail(HttpStatus.SHOW_ERROR_MSG, "用户社区未创建"); } CommunityUser communityUser = communityUserMapper.selectCommunityUser(publishRes.getTenantId(), publishRes.getCommunityId(), userId); if (Objects.isNull(communityUser)) { - return R.fail(HttpStatus.SHOW_ERROR_MSG,"您不是该社区成员"); + return R.fail(HttpStatus.SHOW_ERROR_MSG, "您不是该社区成员"); } if ("1".equals(communityUser.getIsBlank())) { - return R.fail(HttpStatus.SHOW_ERROR_MSG,"您已被拉黑"); + return R.fail(HttpStatus.SHOW_ERROR_MSG, "您已被拉黑"); } Publish publish = new Publish(); @@ -222,6 +227,58 @@ public class PublishServiceImpl extends ServiceImpl impl return tableDataInfo; } + @Override + @Transactional(rollbackFor = Exception.class) + public void collectPublish(PublishCollectRes publishCollectRes) { + Long tenantId = publishCollectRes.getTenantId(); + Long communityId = publishCollectRes.getCommunityId(); + Long publishId = publishCollectRes.getPublishId(); + Long userId = SecurityUtils.getUserId(); + + + Publish publish = publishMapper.selectByIdAndTenantIdAndCommunityId(publishId, tenantId, communityId); + if (Objects.isNull(publish)) { + throw new ServiceException("该内容不存在", HttpStatus.SHOW_ERROR_MSG); + } + + PublishCollect publishCollect = publishCollectService.getPublishCollect(publishCollectRes, userId); + + if (Objects.isNull(publishCollect)) { + publishCollect = new PublishCollect(); + publishCollect.setTenantId(tenantId); + publishCollect.setCommunityId(communityId); + publishCollect.setPublishId(publishId); + publishCollect.setUserId(userId); + publishCollectService.savePublishCollect(publishCollect); + this.addCollectAdvice(publish); + return; + } + + if (publishCollect.getDelFlag().equals("0")) { + publishCollect.setDelFlag("2"); + } else { + publishCollect.setDelFlag("0"); + } + publishCollectService.updatePublishCollect(publishCollect); + this.addCollectAdvice(publish); + + + } + + private void addCollectAdvice(Publish publish) { + CommunityAdvice communityAdvice = new CommunityAdvice(); + + communityAdvice.setTenantId(publish.getTenantId()); + communityAdvice.setCommunityId(publish.getCommunityId()); + communityAdvice.setSendUserId(SecurityUtils.getUserId()); + communityAdvice.setAdviceType(AdviceConstant.COMMUNITY_NOTICE); + communityAdvice.setUserId(publish.getUserId()); + communityAdvice.setContent(StringUtils.format("{}收藏了你发布的{}", + SecurityUtils.getLoginUser().getUser().getNickName(), publish.getContent())); + + communityAdviceMapper.insert(communityAdvice); + } + private Page initPage(PageDomain pageDomain) { Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); page.addOrder(new OrderItem("create_time", false)); diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityMapper.xml index aa9dcad..2962773 100644 --- a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityMapper.xml +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityMapper.xml @@ -86,7 +86,9 @@ and (community_name like concat('%', #{searchContent}, '%') or `description` like concat('%', #{searchContent}, '%')) + and del_flag = '0' + select p.*, IF(pc.id is not null, 1, 0) as is_collect @@ -17,4 +29,12 @@ and pc.del_flag = '0' + diff --git a/mcwl-framework/src/main/java/com/mcwl/framework/config/SecurityConfig.java b/mcwl-framework/src/main/java/com/mcwl/framework/config/SecurityConfig.java index da5d39b..a0f716b 100644 --- a/mcwl-framework/src/main/java/com/mcwl/framework/config/SecurityConfig.java +++ b/mcwl-framework/src/main/java/com/mcwl/framework/config/SecurityConfig.java @@ -166,6 +166,7 @@ public class SecurityConfig { "/personalCenter/likeModel", "/personalCenter/likeWorkFlow", "/personalCenter/likeImage", + "/community/list", "/api/ucenter/wx/**" ).permitAll() // 静态资源,可匿名访问