From 70d3d32bc5f6a6b7ff6e604c4d73572044f72f0b Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Tue, 15 Apr 2025 10:57:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(communityCenter):=20=E7=A4=BE=E5=8C=BA?= =?UTF-8?q?=E6=94=B6=E7=9B=8A=E5=8A=9F=E8=83=BD=E3=80=81=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=8B=89=E9=BB=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../communityCenter/IncomeInfoController.java | 55 ++++++++++++ .../communityCenter/PersonHomeController.java | 51 +++++++++-- .../PublishCommentController.java | 4 +- .../com/mcwl/common/constant/Constants.java | 3 +- .../communityCenter/domain/CommunityUser.java | 2 +- .../communityCenter/domain/IncomeInfo.java | 44 ++++++++++ .../domain/PublishCollect.java | 44 ++++++++++ .../domain/dto/BlackListRes.java | 6 ++ .../domain/dto/IncomeInfoListPageRes.java | 27 ++++++ .../domain/dto/IncomeInfoRes.java | 26 ++++++ .../domain/dto/MyPublishCollectPageRes.java | 40 +++++++++ .../domain/dto/MyPublishPageRes.java | 27 ++++++ .../domain/vo/IncomeAmountVo.java | 28 +++++++ .../domain/vo/IncomeInfoListVo.java | 50 +++++++++++ .../domain/vo/IncomeInfoVo.java | 38 +++++++++ .../communityCenter/domain/vo/PublishVo.java | 6 ++ .../mapper/CommunityUserMapper.java | 11 +++ .../mapper/IncomeInfoMapper.java | 33 ++++++++ .../mapper/PublishCollectMapper.java | 24 ++++++ .../communityCenter/mapper/PublishMapper.java | 9 +- .../mapper/QuestionMapper.java | 7 ++ .../service/CommunityUserService.java | 5 ++ .../service/IncomeInfoService.java | 20 +++++ .../service/PublishCollectService.java | 20 +++++ .../service/PublishService.java | 3 + .../service/QuestionService.java | 2 + .../service/impl/CommunityServiceImpl.java | 2 +- .../impl/CommunityUserServiceImpl.java | 47 +++++++++-- .../service/impl/IncomeInfoServiceImpl.java | 84 +++++++++++++++++++ .../service/impl/InviteServiceImpl.java | 2 +- .../impl/PublishCollectServiceImpl.java | 58 +++++++++++++ .../impl/PublishCommentServiceImpl.java | 14 ++++ .../service/impl/PublishLikeServiceImpl.java | 15 ++++ .../service/impl/PublishServiceImpl.java | 43 +++++++--- .../impl/QuestionCommentServiceImpl.java | 15 +++- .../service/impl/QuestionServiceImpl.java | 43 ++++++---- .../task/CommunityUserTask.java | 39 +++++++++ .../communityCenter/CommunityUserMapper.xml | 45 +++++++++- .../communityCenter/IncomeInfoMapper.xml | 47 +++++++++++ .../communityCenter/PublishCollectMapper.xml | 20 +++++ .../mapper/communityCenter/PublishMapper.xml | 13 +++ .../mapper/communityCenter/QuestionMapper.xml | 8 ++ 42 files changed, 1025 insertions(+), 55 deletions(-) create mode 100644 mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/IncomeInfoController.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/IncomeInfo.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/PublishCollect.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/IncomeInfoListPageRes.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/IncomeInfoRes.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/MyPublishCollectPageRes.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/MyPublishPageRes.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeAmountVo.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeInfoListVo.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeInfoVo.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/IncomeInfoMapper.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishCollectMapper.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/IncomeInfoService.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishCollectService.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/IncomeInfoServiceImpl.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCollectServiceImpl.java create mode 100644 mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/task/CommunityUserTask.java create mode 100644 mcwl-communityCenter/src/main/resources/mapper/communityCenter/IncomeInfoMapper.xml create mode 100644 mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishCollectMapper.xml diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/IncomeInfoController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/IncomeInfoController.java new file mode 100644 index 0000000..899f844 --- /dev/null +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/IncomeInfoController.java @@ -0,0 +1,55 @@ +package com.mcwl.web.controller.communityCenter; + +import com.mcwl.common.core.domain.R; +import com.mcwl.common.core.page.TableDataInfo; +import com.mcwl.communityCenter.domain.IncomeInfo; +import com.mcwl.communityCenter.domain.dto.*; +import com.mcwl.communityCenter.domain.vo.IncomeInfoVo; +import com.mcwl.communityCenter.service.IncomeInfoService; +import com.mcwl.communityCenter.service.PublishCollectService; +import com.mcwl.communityCenter.service.PublishService; +import com.mcwl.communityCenter.service.QuestionService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; + +/** + * 收益明细 + */ +@Api(tags = "收益明细") +@RestController +@RequiredArgsConstructor +@RequestMapping("incomeInfo") +public class IncomeInfoController { + + private final IncomeInfoService incomeInfoService; + + + /** + * 明细列表 + */ + @ApiOperation(value = "明细列表") + @PostMapping("incomeList") + public TableDataInfo incomeList(@Valid @RequestBody IncomeInfoListPageRes incomeInfoListPageRes) { + return incomeInfoService.incomeList(incomeInfoListPageRes); + } + + + + /** + * 社区收益 + */ + @ApiOperation(value = "社区收益") + @PostMapping("communityIncome") + public R communityIncome(@Valid @RequestBody IncomeInfoRes incomeInfoRes) { + return incomeInfoService.communityIncome(incomeInfoRes); + } + + +} diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PersonHomeController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PersonHomeController.java index f2e9fe0..7e7cc56 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PersonHomeController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PersonHomeController.java @@ -1,11 +1,25 @@ package com.mcwl.web.controller.communityCenter; import com.mcwl.common.core.domain.R; +import com.mcwl.common.core.page.TableDataInfo; +import com.mcwl.communityCenter.domain.dto.MyPublishCollectPageRes; +import com.mcwl.communityCenter.domain.dto.MyPublishPageRes; +import com.mcwl.communityCenter.domain.dto.QuestionPageRes; +import com.mcwl.communityCenter.service.PublishCollectService; +import com.mcwl.communityCenter.service.PublishService; +import com.mcwl.communityCenter.service.QuestionService; +import com.mcwl.communityCenter.service.impl.PublishCommentLikeServiceImpl; +import com.mcwl.communityCenter.service.impl.PublishServiceImpl; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.validation.Valid; + /** * 个人主页 */ @@ -15,17 +29,42 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("personHome") public class PersonHomeController { + private final PublishService publishService; + + private final QuestionService questionService; + + private final PublishCollectService publishCollectService; + + /** * 发布的文章列表 */ - @RequestMapping("list") - public R list(){ + @PostMapping("myPublishList") + @ApiOperation(value = "我发布的文章列表") + public TableDataInfo myPublishList(@RequestBody @Valid MyPublishPageRes myPublishPageRes) { - return R.ok(); + return publishService.myPublishList(myPublishPageRes); + } + + /** + * 我的问答列表 + */ + @PostMapping("myQuestionList") + @ApiOperation(value = "我的问答列表") + public TableDataInfo myQuestionList(@RequestBody @Valid QuestionPageRes questionPageRes) { + + return questionService.myQuestionList(questionPageRes); + } + + /** + * 我的收藏 + */ + @PostMapping("myCollectList") + @ApiOperation(value = "我的收藏") + public TableDataInfo myCollectList(@RequestBody @Valid MyPublishCollectPageRes myPublishCollectPageRes) { + + return publishCollectService.myCollectList(myPublishCollectPageRes); } - - - } diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishCommentController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishCommentController.java index ec7d5e5..74830e5 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishCommentController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishCommentController.java @@ -31,12 +31,12 @@ public class PublishCommentController extends BaseController { /** - * 添加评论 + * 添加发布评论 * * @param commentRes 评论请求参数 * @return */ - @ApiOperation(value = "添加评论") + @ApiOperation(value = "添加发布评论") @PostMapping("/save") public R save(@RequestBody @Valid CommentRes commentRes) { diff --git a/mcwl-common/src/main/java/com/mcwl/common/constant/Constants.java b/mcwl-common/src/main/java/com/mcwl/common/constant/Constants.java index 9372022..a91e683 100644 --- a/mcwl-common/src/main/java/com/mcwl/common/constant/Constants.java +++ b/mcwl-common/src/main/java/com/mcwl/common/constant/Constants.java @@ -178,7 +178,8 @@ public class Constants public static final String[] JOB_WHITELIST_STR = { "com.mcwl.quartz.task", "com.mcwl.memberCenter.task", - "com.mcwl.pay.task" + "com.mcwl.pay.task", + "com.mcwl.communityCenter.task" }; /** diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityUser.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityUser.java index 3f17608..8efc873 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityUser.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/CommunityUser.java @@ -43,7 +43,7 @@ public class CommunityUser extends BaseEntity { private Long userId; /** - * 用户类型 0普通用户 1群主 + * 用户类型 0成员 1管理员 2群主 */ private Integer userType; diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/IncomeInfo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/IncomeInfo.java new file mode 100644 index 0000000..670869d --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/IncomeInfo.java @@ -0,0 +1,44 @@ +package com.mcwl.communityCenter.domain; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mcwl.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 发布 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cc_income_info") +public class IncomeInfo extends BaseEntity { + + @TableId + private Long id; + + /** + * 租户id + */ + @TableField(fill = FieldFill.INSERT) + private Long tenantId; + + /** + * 社区id + */ + private Long communityId; + + /** + * 类型 0付费加入 1付费问答 + */ + private Integer type; + + /** + * 金额 + */ + private Double amount; + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/PublishCollect.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/PublishCollect.java new file mode 100644 index 0000000..f4389de --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/PublishCollect.java @@ -0,0 +1,44 @@ +package com.mcwl.communityCenter.domain; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mcwl.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 发布 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cc_publish_collect") +public class PublishCollect extends BaseEntity { + + @TableId + private Long id; + + /** + * 租户id + */ + @TableField(fill = FieldFill.INSERT) + private Long tenantId; + + /** + * 社区id + */ + private Long communityId; + + /** + * 发布id + */ + private Long publishId; + + /** + * 用户id + */ + private Long userId; + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/BlackListRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/BlackListRes.java index 64ce093..4fd4e22 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/BlackListRes.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/BlackListRes.java @@ -14,6 +14,12 @@ import javax.validation.constraints.NotNull; @Data @ApiModel(value = "拉黑请求参数") public class BlackListRes { + /** + * 租户id + */ + @ApiModelProperty(value = "租户id", required = true) + @NotNull(message = "租户id不能为空") + private Long tenantId; /** * 社区id diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/IncomeInfoListPageRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/IncomeInfoListPageRes.java new file mode 100644 index 0000000..e08faa9 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/IncomeInfoListPageRes.java @@ -0,0 +1,27 @@ +package com.mcwl.communityCenter.domain.dto; + +import com.mcwl.common.core.page.PageDomain; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +/** + * 收益明细请求参数 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "收益明细请求参数") +public class IncomeInfoListPageRes extends PageDomain { + + @NotNull(message = "社区id不能为空") + @ApiParam(value = "社区id", required = true) + private Long communityId; + + @NotNull(message = "租户id不能为空") + @ApiParam(value = "租户id", required = true) + private Long tenantId; + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/IncomeInfoRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/IncomeInfoRes.java new file mode 100644 index 0000000..cd6bd3c --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/IncomeInfoRes.java @@ -0,0 +1,26 @@ +package com.mcwl.communityCenter.domain.dto; + +import com.mcwl.common.core.page.PageDomain; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +/** + * 收益明细请求参数 + */ +@Data +@ApiModel(value = "收益明细请求参数") +public class IncomeInfoRes { + + @NotNull(message = "社区id不能为空") + @ApiParam(value = "社区id", required = true) + private Long communityId; + + @NotNull(message = "租户id不能为空") + @ApiParam(value = "租户id", required = true) + private Long tenantId; + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/MyPublishCollectPageRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/MyPublishCollectPageRes.java new file mode 100644 index 0000000..e4617dd --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/MyPublishCollectPageRes.java @@ -0,0 +1,40 @@ +package com.mcwl.communityCenter.domain.dto; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mcwl.common.core.domain.BaseEntity; +import com.mcwl.common.core.page.PageDomain; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +/** + * 我的发布 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "我的发布分页请求参数") +public class MyPublishCollectPageRes extends PageDomain { + + /** + * 租户id + */ + @NotNull(message = "租户id不能为空") + @ApiModelProperty(value = "租户id", required = true) + private Long tenantId; + + /** + * 社区id + */ + @NotNull(message = "社区id不能为空") + @ApiModelProperty(value = "社区id", required = true) + private Long communityId; + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/MyPublishPageRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/MyPublishPageRes.java new file mode 100644 index 0000000..9674d56 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/MyPublishPageRes.java @@ -0,0 +1,27 @@ +package com.mcwl.communityCenter.domain.dto; + +import com.mcwl.common.core.page.PageDomain; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +/** + * 我的发布分页请求参数 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "我的发布分页请求参数") +public class MyPublishPageRes extends PageDomain { + + @NotNull(message = "社区id不能为空") + @ApiParam(value = "社区id", required = true) + private Long communityId; + + @NotNull(message = "租户id不能为空") + @ApiParam(value = "租户id", required = true) + private Long tenantId; + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeAmountVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeAmountVo.java new file mode 100644 index 0000000..0459d5a --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeAmountVo.java @@ -0,0 +1,28 @@ +package com.mcwl.communityCenter.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 收益vo + */ +@Data +@ApiModel(description = "收益金额") +public class IncomeAmountVo { + + /** + * 今日收益 + */ + @ApiModelProperty(value = "今日收益") + private Double todayIncome; + + /** + * 昨日收益 + */ + @ApiModelProperty(value = "昨日收益") + private Double yesterdayIncome; + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeInfoListVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeInfoListVo.java new file mode 100644 index 0000000..5f0f11c --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeInfoListVo.java @@ -0,0 +1,50 @@ +package com.mcwl.communityCenter.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * 收益列表vo + */ +@Data +@Builder +@ApiModel(description = "收益列表vo") +public class IncomeInfoListVo { + + /** + * 用户名称 + */ + @ApiModelProperty(value = "用户名称") + private String userName; + + /** + * 社区名称 + */ + @ApiModelProperty(value = "社区名称") + private String communityName; + + /** + * 收益类型 + */ + @ApiModelProperty(value = "收益类型") + private Integer type; + + /** + * 收益金额 + */ + @ApiModelProperty(value = "收益金额") + private Double amount; + + /** + * 收益时间 + */ + @ApiModelProperty(value = "收益时间") + private Date createTime; + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeInfoVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeInfoVo.java new file mode 100644 index 0000000..cc847ac --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/IncomeInfoVo.java @@ -0,0 +1,38 @@ +package com.mcwl.communityCenter.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +/** + * 收益vo + */ +@Data +@Builder +@ApiModel(description = "收益vo") +public class IncomeInfoVo { + + /** + * 社区收益 + */ + @ApiModelProperty(value = "社区收益") + private IncomeAmountVo communityIncome; + + /** + * 问答收益 + */ + @ApiModelProperty(value = "问答收益") + private IncomeAmountVo questionIncome; + + /** + * 累计收益 + */ + @ApiModelProperty(value = "累计收益") + private Double totalIncome; + + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/PublishVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/PublishVo.java index 48aa510..0091d99 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/PublishVo.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/PublishVo.java @@ -92,6 +92,12 @@ public class PublishVo { @ApiModelProperty(value = "精选") private Integer isElite; + /** + * 收藏 + */ + @ApiModelProperty(value = "收藏") + private Integer isCollect; + } 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 3b4566b..e057beb 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 @@ -37,4 +37,15 @@ public interface CommunityUserMapper extends BaseMapper { List getCommunityUserList(Page page, @Param("communityUserListPageRes") CommunityUserListPageRes communityUserListPageRes); + + @InterceptorIgnore(tenantLine = "true") + CommunityUser selectCommunityUser(@Param("tenantId") Long tenantId, + @Param("communityId") Long communityId, + @Param("userId") Long userId); + + @InterceptorIgnore(tenantLine = "true") + void updateCommunityUser(@Param("blackCommunityUser") CommunityUser blackCommunityUser); + + @InterceptorIgnore(tenantLine = "true") + List getAllCommunityUser(); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/IncomeInfoMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/IncomeInfoMapper.java new file mode 100644 index 0000000..1cb7399 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/IncomeInfoMapper.java @@ -0,0 +1,33 @@ +package com.mcwl.communityCenter.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mcwl.communityCenter.domain.IncomeInfo; +import com.mcwl.communityCenter.domain.PublishCollect; +import com.mcwl.communityCenter.domain.dto.IncomeInfoListPageRes; +import com.mcwl.communityCenter.domain.dto.IncomeInfoRes; +import com.mcwl.communityCenter.domain.dto.MyPublishCollectPageRes; +import com.mcwl.communityCenter.domain.vo.IncomeAmountVo; +import com.mcwl.communityCenter.domain.vo.IncomeInfoListVo; +import com.mcwl.communityCenter.domain.vo.PublishVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface IncomeInfoMapper extends BaseMapper { + + @InterceptorIgnore(tenantLine = "true") + IncomeAmountVo communityIncome(@Param("incomeInfoRes") IncomeInfoRes incomeInfoRes); + + @InterceptorIgnore(tenantLine = "true") + IncomeAmountVo questionIncome(@Param("incomeInfoRes") IncomeInfoRes incomeInfoRes); + + Double totalIncome(); + + @InterceptorIgnore(tenantLine = "true") + List incomeList(Page page, + @Param("incomeInfoListPageRes") IncomeInfoListPageRes incomeInfoListPageRes); +} 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 new file mode 100644 index 0000000..bfe81d8 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishCollectMapper.java @@ -0,0 +1,24 @@ +package com.mcwl.communityCenter.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +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.PublishPageRes; +import com.mcwl.communityCenter.domain.vo.PublishVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface PublishCollectMapper extends BaseMapper { + + + @InterceptorIgnore(tenantLine = "true") + List myCollectList(Page page, + @Param("myPublishCollectPageRes") MyPublishCollectPageRes myPublishCollectPageRes, + @Param("userId") Long userId); +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishMapper.java index 0708181..c1c1c89 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/PublishMapper.java @@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mcwl.communityCenter.domain.Publish; +import com.mcwl.communityCenter.domain.dto.MyPublishPageRes; import com.mcwl.communityCenter.domain.dto.PublishPageRes; +import com.mcwl.communityCenter.domain.vo.PublishVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.security.core.parameters.P; @@ -44,5 +46,10 @@ public interface PublishMapper extends BaseMapper { void elitePublish(@Param("communityId") Long communityId, @Param("publishId") Long publishId); @InterceptorIgnore(tenantLine = "true") - List publishList(Page page,@Param("publishPageRes") PublishPageRes publishPageRes); + List publishList(Page page, @Param("publishPageRes") PublishPageRes publishPageRes); + + @InterceptorIgnore(tenantLine = "true") + List myPublishList(Page page, + @Param("myPublishPageRes") MyPublishPageRes myPublishPageRes, + @Param("userId") Long userId); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/QuestionMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/QuestionMapper.java index ec49b4a..ab2a076 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/QuestionMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/QuestionMapper.java @@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mcwl.communityCenter.domain.Community; import com.mcwl.communityCenter.domain.Question; +import com.mcwl.communityCenter.domain.dto.QuestionPageRes; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import javax.validation.constraints.NotNull; +import java.util.List; @Mapper public interface QuestionMapper extends BaseMapper { @@ -37,4 +39,9 @@ public interface QuestionMapper extends BaseMapper { @NotNull(message = "社区不能为空") @Param("communityId") Long communityId); + + @InterceptorIgnore(tenantLine = "true") + List myQuestionList(Page page, + @Param("questionPageRes") QuestionPageRes questionPageRes, + @Param("userId") Long userId); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityUserService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityUserService.java index 2478d0d..a061abc 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityUserService.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityUserService.java @@ -11,6 +11,7 @@ import com.mcwl.communityCenter.domain.dto.CommunityRes; import com.mcwl.communityCenter.domain.dto.CommunityUserListPageRes; import javax.validation.Valid; +import java.util.List; public interface CommunityUserService extends IService { @@ -23,4 +24,8 @@ public interface CommunityUserService extends IService { * 拉黑 */ R black(@Valid BlackListRes blackListRes); + + List getAllCommunityUser(); + + void updateCommunityUser(CommunityUser communityUser); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/IncomeInfoService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/IncomeInfoService.java new file mode 100644 index 0000000..46c0fa9 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/IncomeInfoService.java @@ -0,0 +1,20 @@ +package com.mcwl.communityCenter.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.mcwl.common.core.domain.R; +import com.mcwl.common.core.page.TableDataInfo; +import com.mcwl.communityCenter.domain.IncomeInfo; +import com.mcwl.communityCenter.domain.Publish; +import com.mcwl.communityCenter.domain.dto.*; +import com.mcwl.communityCenter.domain.vo.IncomeInfoVo; +import com.mcwl.communityCenter.domain.vo.PublishVo; + +import javax.validation.Valid; + +public interface IncomeInfoService extends IService { + + + R communityIncome(@Valid IncomeInfoRes incomeInfoRes); + + TableDataInfo incomeList(@Valid IncomeInfoListPageRes incomeInfoListPageRes); +} 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 new file mode 100644 index 0000000..3e856ce --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/PublishCollectService.java @@ -0,0 +1,20 @@ +package com.mcwl.communityCenter.service; + +import com.baomidou.mybatisplus.extension.service.IService; +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.vo.PublishVo; + +import javax.validation.Valid; + +public interface PublishCollectService extends IService { + + + TableDataInfo myCollectList(@Valid MyPublishCollectPageRes myPublishCollectPageRes); +} 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 b45b473..632d2ce 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,6 +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; @@ -35,4 +36,6 @@ public interface PublishService extends IService { void elitePublish(Long communityId, Long publishId); TableDataInfo publishList(PublishPageRes publishPageRes); + + TableDataInfo myPublishList(MyPublishPageRes myPublishPageRes); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/QuestionService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/QuestionService.java index b2eb495..6c6ddc4 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/QuestionService.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/QuestionService.java @@ -34,4 +34,6 @@ public interface QuestionService extends IService { // AjaxResult reply(QuestionReplyRes questionReplyRes); TableDataInfo listImage(@Valid QuestionPageRes questionPageRes); + + TableDataInfo myQuestionList(@Valid QuestionPageRes questionPageRes); } 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 e23fec8..1192a9d 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 @@ -88,7 +88,7 @@ public class CommunityServiceImpl extends ServiceImpl black(BlackListRes blackListRes) { + Long tenantId = blackListRes.getTenantId(); Long communityId = blackListRes.getCommunityId(); Long userId = blackListRes.getUserId(); Integer blackDay = blackListRes.getBlackDay(); String blackReason = blackListRes.getBlackReason(); - CommunityUser communityUser = baseMapper.selectOne(new LambdaQueryWrapper() - .eq(CommunityUser::getCommunityId, communityId) - .eq(CommunityUser::getUserId, userId)); - if (Objects.isNull(communityUser)) { + // 拉黑用户 + CommunityUser blackCommunityUser = baseMapper.selectCommunityUser( + tenantId, communityId, userId + ); + + // 当前用户 + CommunityUser currentCommunityUser = baseMapper.selectCommunityUser( + tenantId, communityId, SecurityUtils.getUserId() + ); + + if (currentCommunityUser.getUserType() == 0) { + return R.fail(HttpStatus.SHOW_ERROR_MSG, "您不是群主/管理员,无法拉黑"); + } + + + if (Objects.isNull(blackCommunityUser)) { return R.fail(HttpStatus.SHOW_ERROR_MSG, "该用户不在该社区中"); } + if ("1".equals(blackCommunityUser.getIsBlank())) { + return R.fail(HttpStatus.SHOW_ERROR_MSG, "该用户已拉黑"); + } + + if (blackCommunityUser.getUserType() != 0) { + return R.fail(HttpStatus.SHOW_ERROR_MSG, "该用户是群主/管理员,无法拉黑"); + } + Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, blackDay); - communityUser.setIsBlank("1"); - communityUser.setBlankEndTime(calendar.getTime()); - communityUser.setBlackReason(blackReason); + blackCommunityUser.setIsBlank("1"); + blackCommunityUser.setBlankEndTime(calendar.getTime()); + blackCommunityUser.setBlackReason(blackReason); + + baseMapper.updateCommunityUser(blackCommunityUser); return R.ok(); } + + @Override + public List getAllCommunityUser() { + return baseMapper.getAllCommunityUser(); + } + + @Override + public void updateCommunityUser(CommunityUser communityUser) { + baseMapper.updateCommunityUser(communityUser); + } } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/IncomeInfoServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/IncomeInfoServiceImpl.java new file mode 100644 index 0000000..68844a3 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/IncomeInfoServiceImpl.java @@ -0,0 +1,84 @@ +package com.mcwl.communityCenter.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mcwl.common.constant.HttpStatus; +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.utils.SecurityUtils; +import com.mcwl.common.utils.StringUtils; +import com.mcwl.communityCenter.constant.AdviceConstant; +import com.mcwl.communityCenter.domain.*; +import com.mcwl.communityCenter.domain.dto.*; +import com.mcwl.communityCenter.domain.vo.IncomeAmountVo; +import com.mcwl.communityCenter.domain.vo.IncomeInfoListVo; +import com.mcwl.communityCenter.domain.vo.IncomeInfoVo; +import com.mcwl.communityCenter.domain.vo.QuestionVo; +import com.mcwl.communityCenter.mapper.*; +import com.mcwl.communityCenter.service.IncomeInfoService; +import com.mcwl.communityCenter.service.QuestionService; +import com.mcwl.system.service.ISysUserService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@Service +@RequiredArgsConstructor +public class IncomeInfoServiceImpl extends ServiceImpl implements IncomeInfoService { + + + /** + * 社区收益 + */ + @Override + public R communityIncome(IncomeInfoRes incomeInfoRes) { + + // 社区收益 + IncomeAmountVo communityIncome = baseMapper.communityIncome(incomeInfoRes); + + // 问答收益 + IncomeAmountVo questionIncome = baseMapper.questionIncome(incomeInfoRes); + + // 累计收益 + Double totalIncome = baseMapper.totalIncome(); + + IncomeInfoVo incomeInfoVo = IncomeInfoVo.builder() + .communityIncome(communityIncome) + .questionIncome(questionIncome) + .totalIncome(totalIncome) + .build(); + + return R.ok(incomeInfoVo); + } + + @Override + public TableDataInfo incomeList(IncomeInfoListPageRes incomeInfoListPageRes) { + Page page = this.initPage(incomeInfoListPageRes); + List incomeInfoList = baseMapper.incomeList(page, incomeInfoListPageRes); + + + // 封装分页信息 + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(incomeInfoList); + rspData.setTotal(page.getTotal()); + return rspData; + } + + private Page initPage(PageDomain pageDomain) { + Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); + page.addOrder(new OrderItem("create_time", false)); + return page; + } + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/InviteServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/InviteServiceImpl.java index 8801b85..7dcd60a 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/InviteServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/InviteServiceImpl.java @@ -128,7 +128,7 @@ public class InviteServiceImpl extends ServiceImpl impleme .tenantId(userId) .communityId(communityId) .userId(SecurityUtils.getUserId()) - .userType(0) + .userType(1) .inviteId(invite.getId()) .startTime(startTime) .endTime(endTime) 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 new file mode 100644 index 0000000..6507473 --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCollectServiceImpl.java @@ -0,0 +1,58 @@ +package com.mcwl.communityCenter.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mcwl.common.constant.HttpStatus; +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.utils.SecurityUtils; +import com.mcwl.communityCenter.domain.Community; +import com.mcwl.communityCenter.domain.Publish; +import com.mcwl.communityCenter.domain.PublishCollect; +import com.mcwl.communityCenter.domain.Question; +import com.mcwl.communityCenter.domain.dto.*; +import com.mcwl.communityCenter.domain.vo.PublishVo; +import com.mcwl.communityCenter.mapper.CommunityMapper; +import com.mcwl.communityCenter.mapper.InviteMapper; +import com.mcwl.communityCenter.mapper.PublishCollectMapper; +import com.mcwl.communityCenter.mapper.PublishMapper; +import com.mcwl.communityCenter.service.PublishCollectService; +import com.mcwl.communityCenter.service.PublishService; +import com.mcwl.system.service.ISysUserService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +@RequiredArgsConstructor +public class PublishCollectServiceImpl extends ServiceImpl implements PublishCollectService { + + + @Override + public TableDataInfo myCollectList(MyPublishCollectPageRes myPublishCollectPageRes) { + Page page = initPage(myPublishCollectPageRes); + List publishVoList = baseMapper.myCollectList(page, myPublishCollectPageRes, SecurityUtils.getUserId()); + + + // 封装分页信息 + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(publishVoList); + rspData.setTotal(page.getTotal()); + return rspData; + } + + private Page initPage(PageDomain pageDomain) { + Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); + page.addOrder(new OrderItem("create_time", false)); + return page; + } + + +} diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCommentServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCommentServiceImpl.java index bc9d58c..5ba9063 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCommentServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/PublishCommentServiceImpl.java @@ -8,6 +8,7 @@ import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.R; import com.mcwl.common.core.domain.entity.SysUser; import com.mcwl.common.utils.SecurityUtils; +import com.mcwl.communityCenter.domain.CommunityUser; import com.mcwl.communityCenter.domain.Publish; import com.mcwl.communityCenter.domain.dto.CommentDelRes; import com.mcwl.communityCenter.domain.dto.CommentDetailRes; @@ -15,6 +16,7 @@ import com.mcwl.communityCenter.domain.dto.CommentRes; import com.mcwl.communityCenter.domain.vo.CommentVo; import com.mcwl.communityCenter.domain.PublishComment; import com.mcwl.communityCenter.domain.PublishCommentLike; +import com.mcwl.communityCenter.mapper.CommunityUserMapper; import com.mcwl.communityCenter.mapper.PublishCommentLikeMapper; import com.mcwl.communityCenter.mapper.PublishCommentMapper; import com.mcwl.communityCenter.mapper.PublishMapper; @@ -52,6 +54,8 @@ public class PublishCommentServiceImpl extends ServiceImpl getComment(CommentDetailRes commentDetailRes) { Long tenantId = commentDetailRes.getTenantId(); @@ -80,6 +84,16 @@ public class PublishCommentServiceImpl extends ServiceImpl impl private final CommunityMapper communityMapper; + private final CommunityUserMapper communityUserMapper; + @Override public PublishVo getDetail(PublishDetailRes publishDetailRes) { @@ -76,16 +78,17 @@ public class PublishServiceImpl extends ServiceImpl impl return R.fail(HttpStatus.SHOW_ERROR_MSG,"用户社区未创建"); } + CommunityUser communityUser = communityUserMapper.selectCommunityUser(publishRes.getTenantId(), publishRes.getCommunityId(), userId); - Set invites = inviteMapper.selectInviteIds(publishRes.getTenantId(), publishRes.getCommunityId()); - // 判断用户是否是群主 - if (!Objects.equals(userId, publishRes.getTenantId())) { - // 判断用户是否被邀请 - if (invites.isEmpty() || !invites.contains(userId)) { - return R.fail(HttpStatus.SHOW_ERROR_MSG,"您没有被邀请"); - } + if (Objects.isNull(communityUser)) { + return R.fail(HttpStatus.SHOW_ERROR_MSG,"您不是该社区成员"); } + + if ("1".equals(communityUser.getIsBlank())) { + return R.fail(HttpStatus.SHOW_ERROR_MSG,"您已被拉黑"); + } + Publish publish = new Publish(); BeanUtil.copyProperties(publishRes, publish); publish.setUserId(userId); @@ -205,8 +208,22 @@ public class PublishServiceImpl extends ServiceImpl impl return tableDataInfo; } - private Page initPage(PublishPageRes publishPageRes) { - Page page = new Page<>(publishPageRes.getPageNum(), publishPageRes.getPageSize()); + @Override + public TableDataInfo myPublishList(MyPublishPageRes myPublishPageRes) { + Page page = this.initPage(myPublishPageRes); + List publishVoList = baseMapper.myPublishList(page, myPublishPageRes, SecurityUtils.getUserId()); + + // 封装返回 + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setRows(publishVoList); + tableDataInfo.setTotal(page.getTotal()); + tableDataInfo.setCode(HttpStatus.SUCCESS); + tableDataInfo.setMsg("查询成功"); + return tableDataInfo; + } + + private Page initPage(PageDomain pageDomain) { + Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); page.addOrder(new OrderItem("create_time", false)); return page; diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionCommentServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionCommentServiceImpl.java index bebb6f2..e817d12 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionCommentServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionCommentServiceImpl.java @@ -12,10 +12,7 @@ import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.StringUtils; import com.mcwl.communityCenter.constant.AdviceConstant; -import com.mcwl.communityCenter.domain.Community; -import com.mcwl.communityCenter.domain.CommunityAdvice; -import com.mcwl.communityCenter.domain.Question; -import com.mcwl.communityCenter.domain.QuestionComment; +import com.mcwl.communityCenter.domain.*; import com.mcwl.communityCenter.domain.dto.*; import com.mcwl.communityCenter.domain.vo.QuestionCommentVo; import com.mcwl.communityCenter.domain.vo.QuestionVo; @@ -42,6 +39,8 @@ public class QuestionCommentServiceImpl extends ServiceImpl comment(QuestionCommentRes questionCommentRes) { @@ -56,6 +55,14 @@ public class QuestionCommentServiceImpl extends ServiceImpl i private final InviteMapper inviteMapper; + private final CommunityUserMapper communityUserMapper; + /** * 添加问题 * @@ -79,11 +75,15 @@ public class QuestionServiceImpl extends ServiceImpl i } //提问人(userId)是否在社区中 - Invite invite = inviteMapper.selectByTenantIdAndCommunityIdAndInviteeUserId(tenantId, communityId, userId); - if (Objects.isNull(invite)) { + CommunityUser communityUser = communityUserMapper.selectCommunityUser(tenantId, communityId, userId); + if (Objects.isNull(communityUser)) { return R.fail(HttpStatus.SHOW_ERROR_MSG, "您不是该社区成员,不能提问"); } + if ("1".equals(communityUser.getIsBlank())) { + return R.fail(HttpStatus.SHOW_ERROR_MSG,"您已被拉黑"); + } + Question question = new Question(); BeanUtil.copyProperties(questionRes, question); question.setQuestionUserId(userId); @@ -235,15 +235,24 @@ public class QuestionServiceImpl extends ServiceImpl i return rspData; } + @Override + public TableDataInfo myQuestionList(QuestionPageRes questionPageRes) { + Page page = initPage(questionPageRes); + List questionList = baseMapper.myQuestionList(page, questionPageRes, SecurityUtils.getUserId()); + + + // 封装分页信息 + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(questionList); + rspData.setTotal(page.getTotal()); + return rspData; + } + private Page initPage(QuestionPageRes questionPageRes) { Page page = new Page<>(questionPageRes.getPageNum(), questionPageRes.getPageSize()); - OrderItem orderItem = new OrderItem(); - if (StringUtils.isBlank(questionPageRes.getOrderByColumn())) { - questionPageRes.setOrderByColumn("create_time"); - } - orderItem.setColumn(questionPageRes.getOrderByColumn()); - orderItem.setAsc(Objects.equals(questionPageRes.getIsAsc(), "asc")); - page.addOrder(orderItem); + page.addOrder(new OrderItem("create_time", false)); return page; } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/task/CommunityUserTask.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/task/CommunityUserTask.java new file mode 100644 index 0000000..6effb5c --- /dev/null +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/task/CommunityUserTask.java @@ -0,0 +1,39 @@ +package com.mcwl.communityCenter.task; + + +import com.mcwl.communityCenter.domain.CommunityUser; +import com.mcwl.communityCenter.service.CommunityUserService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component("communityUserTask") +@RequiredArgsConstructor +public class CommunityUserTask { + + private final CommunityUserService communityUserService; + + + + /** + * 拉出拉黑的社区用户 每隔30分钟执行 0 0/30 * * * ? * + */ + public void pullOutBlackUser() { + + List communityUserList = communityUserService.getAllCommunityUser(); + for (CommunityUser communityUser : communityUserList) { + String isBlank = communityUser.getIsBlank(); + if ("1".equals(isBlank) && communityUser.getBlankEndTime().getTime() < System.currentTimeMillis()) { + communityUser.setIsBlank("0"); + communityUser.setBlankEndTime(null); + communityUser.setBlackReason(null); + communityUserService.updateCommunityUser(communityUser); + } + } + + } + + + +} diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityUserMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityUserMapper.xml index fc9b98b..4a89bb1 100644 --- a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityUserMapper.xml +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityUserMapper.xml @@ -3,6 +3,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + update cc_community_user + set is_blank = #{blackCommunityUser.isBlank}, + start_time = #{blackCommunityUser.startTime}, + end_time = #{blackCommunityUser.endTime} + where tenant_id = #{blackCommunityUser.tenantId} + and community_id = #{blackCommunityUser.communityId} + and user_id = #{blackCommunityUser.userId} + and del_flag = '0'; + + + \ No newline at end of file diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/IncomeInfoMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/IncomeInfoMapper.xml new file mode 100644 index 0000000..06f1a3d --- /dev/null +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/IncomeInfoMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishCollectMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishCollectMapper.xml new file mode 100644 index 0000000..b5825fe --- /dev/null +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishCollectMapper.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishMapper.xml index fe3eecb..e41fc0b 100644 --- a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishMapper.xml +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/PublishMapper.xml @@ -105,4 +105,17 @@ + \ No newline at end of file diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/QuestionMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/QuestionMapper.xml index 7997e90..536ed0b 100644 --- a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/QuestionMapper.xml +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/QuestionMapper.xml @@ -57,4 +57,12 @@ and question_url is not null order by amount desc, create_time desc + \ No newline at end of file