Merge branch 'feature/community-center' into preview
commit
d5157ce481
|
@ -6,18 +6,15 @@ import com.mcwl.common.core.domain.AjaxResult;
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
import com.mcwl.common.core.page.PageDomain;
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.communityCenter.domain.Community;
|
import com.mcwl.communityCenter.domain.Community;
|
||||||
import com.mcwl.communityCenter.domain.dto.CommunityDto;
|
import com.mcwl.communityCenter.domain.dto.CommunityRes;
|
||||||
import com.mcwl.communityCenter.domain.vo.CommunityVo;
|
|
||||||
import com.mcwl.communityCenter.service.CommunityService;
|
import com.mcwl.communityCenter.service.CommunityService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 社区
|
* 社区
|
||||||
|
@ -46,15 +43,13 @@ public class CommunityController {
|
||||||
/**
|
/**
|
||||||
* 添加社区
|
* 添加社区
|
||||||
*
|
*
|
||||||
* @param communityDto 社区参数
|
* @param communityRes 社区参数
|
||||||
* @return 添加结果
|
* @return 添加结果
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "添加社区")
|
@ApiOperation(value = "添加社区")
|
||||||
@PostMapping("add")
|
@PostMapping("add")
|
||||||
public AjaxResult addCommunity(@RequestBody CommunityDto communityDto) {
|
public AjaxResult addCommunity(@RequestBody CommunityRes communityRes) {
|
||||||
Community community = new Community();
|
communityService.addCommunity(communityRes);
|
||||||
BeanUtil.copyProperties(communityDto, community);
|
|
||||||
communityService.save(community);
|
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +60,7 @@ public class CommunityController {
|
||||||
* @return 删除结果
|
* @return 删除结果
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "删除社区")
|
@ApiOperation(value = "删除社区")
|
||||||
@PostMapping("delete")
|
@GetMapping("delete")
|
||||||
public AjaxResult deleteCommunity(@NotNull(message = "id不能为空")
|
public AjaxResult deleteCommunity(@NotNull(message = "id不能为空")
|
||||||
@ApiParam(value = "id", required = true)
|
@ApiParam(value = "id", required = true)
|
||||||
Long id) {
|
Long id) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import com.mcwl.communityCenter.domain.Community;
|
||||||
import com.mcwl.communityCenter.service.InviteService;
|
import com.mcwl.communityCenter.service.InviteService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
@ -34,7 +35,9 @@ public class InviteController {
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "邀请码链接")
|
@ApiOperation(value = "邀请码链接")
|
||||||
@GetMapping("inviteCode")
|
@GetMapping("inviteCode")
|
||||||
public AjaxResult inviteCode(Long communityId) {
|
public AjaxResult inviteCode(@NotNull(message = "社区不能为空")
|
||||||
|
@ApiParam(value = "社区", required = true)
|
||||||
|
Long communityId) {
|
||||||
// 获取邀请码链接
|
// 获取邀请码链接
|
||||||
String inviteCode = inviteService.getInviteCode(communityId);
|
String inviteCode = inviteService.getInviteCode(communityId);
|
||||||
if (StringUtils.isBlank(inviteCode)) {
|
if (StringUtils.isBlank(inviteCode)) {
|
||||||
|
|
|
@ -1,30 +1,27 @@
|
||||||
package com.mcwl.web.controller.communityCenter;
|
package com.mcwl.web.controller.communityCenter;
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import com.mcwl.common.core.domain.AjaxResult;
|
import com.mcwl.common.core.domain.AjaxResult;
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.communityCenter.domain.Community;
|
import com.mcwl.communityCenter.domain.dto.PublishDetailRes;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import com.mcwl.communityCenter.domain.dto.PublishPageRes;
|
||||||
import com.mcwl.common.core.domain.AjaxResult;
|
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
|
||||||
import com.mcwl.communityCenter.domain.Publish;
|
|
||||||
import com.mcwl.communityCenter.domain.dto.PublishRes;
|
import com.mcwl.communityCenter.domain.dto.PublishRes;
|
||||||
import com.mcwl.communityCenter.domain.vo.PublishVo;
|
import com.mcwl.communityCenter.domain.vo.PublishVo;
|
||||||
import com.mcwl.communityCenter.service.PublishService;
|
import com.mcwl.communityCenter.service.PublishService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发布
|
* 发布
|
||||||
*/
|
*/
|
||||||
@Api(tags = "发布")
|
@Api(tags = "社区帖子发布")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("publish")
|
@RequestMapping("publish")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
@ -35,23 +32,21 @@ public class PublishController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取发布列表
|
* 获取发布列表
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "获取发布列表")
|
@ApiOperation(value = "获取发布列表")
|
||||||
@PostMapping("list")
|
@PostMapping("list")
|
||||||
public TableDataInfo getCommunityList(@RequestBody PageDomain pageDomain) {
|
public TableDataInfo list(@RequestBody PublishPageRes publishPageRes) {
|
||||||
return publishService.listByPage(pageDomain);
|
return publishService.getPublishList(publishPageRes);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取发布详情
|
* 获取发布详情
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "获取发布详情")
|
@ApiOperation(value = "获取发布详情")
|
||||||
@GetMapping("detail")
|
@PostMapping("detail")
|
||||||
public AjaxResult getPublishDetail(Long id) {
|
public AjaxResult getPublishDetail(@RequestBody PublishDetailRes publishDetailRes) {
|
||||||
|
|
||||||
PublishVo publishVo = publishService.getDetail(id);
|
PublishVo publishVo = publishService.getDetail(publishDetailRes);
|
||||||
if (Objects.isNull(publishVo)) {
|
if (Objects.isNull(publishVo)) {
|
||||||
return AjaxResult.error("获取详情失败");
|
return AjaxResult.error("获取详情失败");
|
||||||
}
|
}
|
||||||
|
@ -61,12 +56,10 @@ public class PublishController {
|
||||||
/**
|
/**
|
||||||
* 添加
|
* 添加
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "添加")
|
@ApiOperation(value = "发布")
|
||||||
@PostMapping("add")
|
@PostMapping("publish")
|
||||||
public AjaxResult addPublish(@RequestBody PublishRes publishRes) {
|
public AjaxResult publish(@RequestBody PublishRes publishRes) {
|
||||||
Publish publish = new Publish();
|
return publishService.publish(publishRes);
|
||||||
BeanUtil.copyProperties(publishRes, publish);
|
|
||||||
return AjaxResult.success(publishService.save(publish));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,20 +2,17 @@ package com.mcwl.web.controller.communityCenter;
|
||||||
|
|
||||||
|
|
||||||
import com.mcwl.common.core.domain.AjaxResult;
|
import com.mcwl.common.core.domain.AjaxResult;
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
|
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionReplyDto;
|
import com.mcwl.communityCenter.domain.dto.QuestionReplyRes;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionRes;
|
import com.mcwl.communityCenter.domain.dto.QuestionRes;
|
||||||
import com.mcwl.communityCenter.domain.vo.QuestionVo;
|
import com.mcwl.communityCenter.domain.vo.QuestionVo;
|
||||||
import com.mcwl.communityCenter.service.QuestionService;
|
import com.mcwl.communityCenter.service.QuestionService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@ -48,8 +45,9 @@ public class QuestionController {
|
||||||
/**
|
/**
|
||||||
* 获取未回复问题列表
|
* 获取未回复问题列表
|
||||||
*/
|
*/
|
||||||
@GetMapping("listUnReplied")
|
@PostMapping("listUnReplied")
|
||||||
public TableDataInfo listUnReplied(QuestionPageRes questionPageRes) {
|
@ApiOperation(value = "获取未回复问题列表")
|
||||||
|
public TableDataInfo listUnReplied(@RequestBody QuestionPageRes questionPageRes) {
|
||||||
|
|
||||||
return questionService.listUnReplied(questionPageRes);
|
return questionService.listUnReplied(questionPageRes);
|
||||||
}
|
}
|
||||||
|
@ -58,6 +56,7 @@ public class QuestionController {
|
||||||
* 获取问题详情
|
* 获取问题详情
|
||||||
*/
|
*/
|
||||||
@GetMapping("detail")
|
@GetMapping("detail")
|
||||||
|
@ApiOperation(value = "获取问题详情")
|
||||||
public AjaxResult getQuestionDetail(@NotNull(message = "id不能为空") Long id) {
|
public AjaxResult getQuestionDetail(@NotNull(message = "id不能为空") Long id) {
|
||||||
QuestionVo questionVo = questionService.getDetail(id);
|
QuestionVo questionVo = questionService.getDetail(id);
|
||||||
if (Objects.isNull(questionVo)) {
|
if (Objects.isNull(questionVo)) {
|
||||||
|
@ -70,9 +69,10 @@ public class QuestionController {
|
||||||
* 回复
|
* 回复
|
||||||
*/
|
*/
|
||||||
@PostMapping("reply")
|
@PostMapping("reply")
|
||||||
public AjaxResult reply(QuestionReplyDto questionReplyDto) {
|
@ApiOperation(value = "回复")
|
||||||
|
public AjaxResult reply(@RequestBody QuestionReplyRes questionReplyRes) {
|
||||||
|
|
||||||
questionService.reply(questionReplyDto);
|
questionService.reply(questionReplyRes);
|
||||||
|
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,7 @@ swagger:
|
||||||
# 是否开启swagger
|
# 是否开启swagger
|
||||||
enabled: true
|
enabled: true
|
||||||
# 请求前缀
|
# 请求前缀
|
||||||
pathMapping: /dev-api
|
pathMapping:
|
||||||
|
|
||||||
# 防止XSS攻击
|
# 防止XSS攻击
|
||||||
xss:
|
xss:
|
||||||
|
|
|
@ -21,6 +21,12 @@ public class Community extends BaseEntity {
|
||||||
@ApiModelProperty(value = "社区id")
|
@ApiModelProperty(value = "社区id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 社区名称
|
* 社区名称
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -29,6 +29,11 @@ public class Publish extends BaseEntity {
|
||||||
@TableField(fill = FieldFill.INSERT)
|
@TableField(fill = FieldFill.INSERT)
|
||||||
private Long tenantId;
|
private Long tenantId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 社区id
|
||||||
|
*/
|
||||||
|
private Long communityId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 内容
|
* 内容
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -37,6 +37,7 @@ public class Question extends BaseEntity {
|
||||||
/**
|
/**
|
||||||
* 社区id
|
* 社区id
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "社区id")
|
||||||
private Long communityId;
|
private Long communityId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -66,6 +67,7 @@ public class Question extends BaseEntity {
|
||||||
/**
|
/**
|
||||||
* 回复时间
|
* 回复时间
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "答复时间")
|
||||||
private Date replyTime;
|
private Date replyTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
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_user_community")
|
|
||||||
public class UserCommunity extends BaseEntity {
|
|
||||||
|
|
||||||
@TableId
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户id - 多租户id
|
|
||||||
*/
|
|
||||||
@TableField(fill = FieldFill.INSERT)
|
|
||||||
private Long tenantId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 社区id
|
|
||||||
*/
|
|
||||||
private Long communityId;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,12 +1,9 @@
|
||||||
package com.mcwl.communityCenter.domain.dto;
|
package com.mcwl.communityCenter.domain.dto;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.mcwl.common.core.domain.BaseEntity;
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
@ -17,7 +14,7 @@ import javax.validation.constraints.NotNull;
|
||||||
@Data
|
@Data
|
||||||
@TableName("cc_community")
|
@TableName("cc_community")
|
||||||
@ApiModel(value = "社区请求参数")
|
@ApiModel(value = "社区请求参数")
|
||||||
public class CommunityDto {
|
public class CommunityRes {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 社区名称
|
* 社区名称
|
|
@ -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
|
||||||
|
@ApiModel(value = "发布详情请求参数")
|
||||||
|
public class PublishDetailRes {
|
||||||
|
|
||||||
|
@ApiParam(value = "发布id", required = true)
|
||||||
|
@NotNull(message = "发布id不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiParam(value = "租户id", required = true)
|
||||||
|
@NotNull(message = "租户id不能为空")
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
@ApiParam(value = "社区id", required = true)
|
||||||
|
@NotNull(message = "社区id不能为空")
|
||||||
|
private Long communityId;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.mcwl.communityCenter.domain.dto;
|
||||||
|
|
||||||
|
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 PublishPageRes extends PageDomain {
|
||||||
|
|
||||||
|
@NotNull(message = "社区id不能为空")
|
||||||
|
@ApiParam(value = "社区id", required = true)
|
||||||
|
private Long communityId;
|
||||||
|
|
||||||
|
@NotNull(message = "租户id不能为空")
|
||||||
|
@ApiParam(value = "租户id", required = true)
|
||||||
|
private Long tenantId;
|
||||||
|
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -13,6 +14,18 @@ import java.util.Date;
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "发布请求参数")
|
@ApiModel(description = "发布请求参数")
|
||||||
public class PublishRes {
|
public class PublishRes {
|
||||||
|
/**
|
||||||
|
* 租户id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "租户id", required = true)
|
||||||
|
@NotNull(message = "租户id不能为空")
|
||||||
|
private Long tenantId;
|
||||||
|
/**
|
||||||
|
* 社区id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "社区id", required = true)
|
||||||
|
@NotNull(message = "社区id不能为空")
|
||||||
|
private Long communityId;
|
||||||
/**
|
/**
|
||||||
* 内容
|
* 内容
|
||||||
*/
|
*/
|
||||||
|
@ -26,9 +39,4 @@ public class PublishRes {
|
||||||
@ApiModelProperty(value = "发布时间 - 定时发布")
|
@ApiModelProperty(value = "发布时间 - 定时发布")
|
||||||
private Date publishTime;
|
private Date publishTime;
|
||||||
|
|
||||||
/**
|
|
||||||
* 状态
|
|
||||||
*/
|
|
||||||
@ApiModelProperty(value = "状态")
|
|
||||||
private Integer status;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.mcwl.communityCenter.domain.dto;
|
package com.mcwl.communityCenter.domain.dto;
|
||||||
|
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
import com.mcwl.common.core.page.PageDomain;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@ -8,9 +10,11 @@ import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ApiModel(value = "提问分页请求参数")
|
||||||
public class QuestionPageRes extends PageDomain {
|
public class QuestionPageRes extends PageDomain {
|
||||||
|
|
||||||
@NotNull(message = "社区不能为空")
|
@NotNull(message = "社区不能为空")
|
||||||
|
@ApiModelProperty(value = "社区id", required = true)
|
||||||
private Long communityId;
|
private Long communityId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +1,28 @@
|
||||||
package com.mcwl.communityCenter.domain.dto;
|
package com.mcwl.communityCenter.domain.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class QuestionReplyDto {
|
@ApiModel(value = "回复问题")
|
||||||
|
public class QuestionReplyRes {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 问题id
|
* 问题id
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "问题id不能为空")
|
@NotNull(message = "问题id不能为空")
|
||||||
|
@ApiModelProperty(value = "问题id", required = true)
|
||||||
private Long questionId;
|
private Long questionId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 回复内容
|
* 回复内容
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "回复内容不能为空")
|
@NotBlank(message = "回复内容不能为空")
|
||||||
|
@ApiModelProperty(value = "回复内容", required = true)
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,47 +1,77 @@
|
||||||
package com.mcwl.communityCenter.domain.vo;
|
package com.mcwl.communityCenter.domain.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import springfox.documentation.annotations.ApiIgnore;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布、提问信息
|
||||||
|
*/
|
||||||
@Data
|
@Data
|
||||||
|
@ApiModel(description = "发布信息")
|
||||||
public class PublishVo {
|
public class PublishVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "主键")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户id - 租户id
|
* 用户id - 租户id
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "租户id", hidden = true)
|
||||||
private Long tenantId;
|
private Long tenantId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 社区id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "社区id")
|
||||||
|
private Long communityId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户名
|
* 用户名
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "用户名")
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 头像
|
* 头像
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "头像")
|
||||||
private String avatar;
|
private String avatar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 内容
|
* 内容
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "内容")
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发布时间 - 定时发布
|
* 发布时间 - 定时发布
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "发布时间 - 定时发布")
|
||||||
private Date publishTime;
|
private Date publishTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 点赞数
|
* 点赞数
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "点赞数")
|
||||||
private Integer likeNum;
|
private Integer likeNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 评论数
|
* 评论数
|
||||||
*/
|
*/
|
||||||
|
@ApiModelProperty(value = "评论数")
|
||||||
private Integer commentNum;
|
private Integer commentNum;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,10 @@ public class CustomTenantHandler implements TenantLineHandler {
|
||||||
* 需要根据业务需要进行调整.需要多租户的表名
|
* 需要根据业务需要进行调整.需要多租户的表名
|
||||||
*/
|
*/
|
||||||
static {
|
static {
|
||||||
tables.add("cc_publish");
|
// 发布表
|
||||||
|
// tables.add("cc_publish");
|
||||||
|
// 提问表
|
||||||
tables.add("cc_question");
|
tables.add("cc_question");
|
||||||
tables.add("cc_user_community");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,16 @@ package com.mcwl.communityCenter.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.mcwl.communityCenter.domain.Community;
|
import com.mcwl.communityCenter.domain.Community;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface CommunityMapper extends BaseMapper<Community> {
|
public interface CommunityMapper extends BaseMapper<Community> {
|
||||||
|
Community getByUserIdAndCommunityId(@NotNull(message = "租户id不能为空")
|
||||||
|
@Param("userId")
|
||||||
|
Long userId,
|
||||||
|
@NotNull(message = "社区id不能为空")
|
||||||
|
@Param("communityId")
|
||||||
|
Long communityId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,18 @@ package com.mcwl.communityCenter.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.mcwl.communityCenter.domain.Invite;
|
import com.mcwl.communityCenter.domain.Invite;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface InviteMapper extends BaseMapper<Invite> {
|
public interface InviteMapper extends BaseMapper<Invite> {
|
||||||
|
Set<Long> selectInviteIds(@NotNull(message = "租户id不能为空")
|
||||||
|
@Param("tenantId")
|
||||||
|
Long tenantId,
|
||||||
|
@NotNull(message = "社区id不能为空")
|
||||||
|
@Param("communityId")
|
||||||
|
Long communityId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
package com.mcwl.communityCenter.mapper;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import com.mcwl.communityCenter.domain.Question;
|
|
||||||
import com.mcwl.communityCenter.domain.UserCommunity;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface UserCommunityMapper extends BaseMapper<UserCommunity> {
|
|
||||||
}
|
|
|
@ -4,7 +4,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
import com.mcwl.common.core.page.PageDomain;
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.communityCenter.domain.Community;
|
import com.mcwl.communityCenter.domain.Community;
|
||||||
|
import com.mcwl.communityCenter.domain.dto.CommunityRes;
|
||||||
|
|
||||||
public interface CommunityService extends IService<Community> {
|
public interface CommunityService extends IService<Community> {
|
||||||
TableDataInfo listByPage(PageDomain pageDomain);
|
TableDataInfo listByPage(PageDomain pageDomain);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加社区
|
||||||
|
* @param communityRes 社区信息
|
||||||
|
*/
|
||||||
|
void addCommunity(CommunityRes communityRes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,28 @@
|
||||||
package com.mcwl.communityCenter.service;
|
package com.mcwl.communityCenter.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.mcwl.common.core.domain.AjaxResult;
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
import com.mcwl.common.core.page.PageDomain;
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.communityCenter.domain.Community;
|
import com.mcwl.communityCenter.domain.Community;
|
||||||
import com.mcwl.communityCenter.domain.Publish;
|
import com.mcwl.communityCenter.domain.Publish;
|
||||||
|
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 com.mcwl.communityCenter.domain.vo.PublishVo;
|
||||||
|
|
||||||
public interface PublishService extends IService<Publish> {
|
import javax.validation.constraints.NotNull;
|
||||||
TableDataInfo listByPage(PageDomain pageDomain);
|
import java.util.List;
|
||||||
|
|
||||||
PublishVo getDetail(Long id);
|
public interface PublishService extends IService<Publish> {
|
||||||
|
|
||||||
|
PublishVo getDetail(PublishDetailRes publishDetailRes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布
|
||||||
|
* @param publishRes 发布对象
|
||||||
|
*/
|
||||||
|
AjaxResult publish(PublishRes publishRes);
|
||||||
|
|
||||||
|
TableDataInfo getPublishList(PublishPageRes publishPageRes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,9 @@ package com.mcwl.communityCenter.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.communityCenter.domain.Publish;
|
|
||||||
import com.mcwl.communityCenter.domain.Question;
|
import com.mcwl.communityCenter.domain.Question;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
|
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionReplyDto;
|
import com.mcwl.communityCenter.domain.dto.QuestionReplyRes;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionRes;
|
import com.mcwl.communityCenter.domain.dto.QuestionRes;
|
||||||
import com.mcwl.communityCenter.domain.vo.QuestionVo;
|
import com.mcwl.communityCenter.domain.vo.QuestionVo;
|
||||||
|
|
||||||
|
@ -26,7 +25,7 @@ public interface QuestionService extends IService<Question> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 回复问题
|
* 回复问题
|
||||||
* @param questionReplyDto 回复信息
|
* @param questionReplyRes 回复信息
|
||||||
*/
|
*/
|
||||||
void reply(QuestionReplyDto questionReplyDto);
|
void reply(QuestionReplyRes questionReplyRes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
package com.mcwl.communityCenter.service;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.mcwl.communityCenter.domain.Question;
|
|
||||||
import com.mcwl.communityCenter.domain.UserCommunity;
|
|
||||||
|
|
||||||
public interface UserCommunityService extends IService<UserCommunity> {
|
|
||||||
}
|
|
|
@ -1,18 +1,22 @@
|
||||||
package com.mcwl.communityCenter.service.impl;
|
package com.mcwl.communityCenter.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.mcwl.common.constant.HttpStatus;
|
import com.mcwl.common.constant.HttpStatus;
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
import com.mcwl.common.core.page.PageDomain;
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.common.utils.HttpUtil;
|
import com.mcwl.common.utils.SecurityUtils;
|
||||||
import com.mcwl.common.utils.StringUtils;
|
import com.mcwl.common.utils.StringUtils;
|
||||||
import com.mcwl.communityCenter.domain.Community;
|
import com.mcwl.communityCenter.domain.Community;
|
||||||
|
import com.mcwl.communityCenter.domain.dto.CommunityRes;
|
||||||
import com.mcwl.communityCenter.domain.vo.CommunityVo;
|
import com.mcwl.communityCenter.domain.vo.CommunityVo;
|
||||||
import com.mcwl.communityCenter.mapper.CommunityMapper;
|
import com.mcwl.communityCenter.mapper.CommunityMapper;
|
||||||
import com.mcwl.communityCenter.service.CommunityService;
|
import com.mcwl.communityCenter.service.CommunityService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -20,6 +24,7 @@ import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community> implements CommunityService {
|
public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community> implements CommunityService {
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,7 +42,7 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
|
||||||
OrderItem orderItem = new OrderItem(pageDomain.getOrderByColumn(), isAsc);
|
OrderItem orderItem = new OrderItem(pageDomain.getOrderByColumn(), isAsc);
|
||||||
page.addOrder(orderItem);
|
page.addOrder(orderItem);
|
||||||
|
|
||||||
baseMapper.selectPage(page, null);
|
baseMapper.selectPage(page, new LambdaQueryWrapper<Community>().eq(Community::getUserId, SecurityUtils.getUserId()));
|
||||||
|
|
||||||
List<Community> communityList = page.getRecords();
|
List<Community> communityList = page.getRecords();
|
||||||
List<CommunityVo> communityVoList = new ArrayList<>();
|
List<CommunityVo> communityVoList = new ArrayList<>();
|
||||||
|
@ -56,5 +61,14 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
|
||||||
return tableDataInfo;
|
return tableDataInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addCommunity(CommunityRes communityRes) {
|
||||||
|
Community community = new Community();
|
||||||
|
BeanUtil.copyProperties(communityRes, community);
|
||||||
|
community.setUserId(SecurityUtils.getUserId());
|
||||||
|
baseMapper.insert(community);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,52 +1,40 @@
|
||||||
package com.mcwl.communityCenter.service.impl;
|
package com.mcwl.communityCenter.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.mcwl.common.constant.HttpStatus;
|
|
||||||
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.SecurityUtils;
|
||||||
import com.mcwl.common.utils.ShareCodeUtils;
|
import com.mcwl.common.utils.ShareCodeUtils;
|
||||||
import com.mcwl.communityCenter.constant.InviteConstant;
|
import com.mcwl.communityCenter.constant.InviteConstant;
|
||||||
import com.mcwl.communityCenter.constant.StatusConstant;
|
import com.mcwl.communityCenter.constant.StatusConstant;
|
||||||
|
import com.mcwl.communityCenter.domain.Community;
|
||||||
import com.mcwl.communityCenter.domain.Invite;
|
import com.mcwl.communityCenter.domain.Invite;
|
||||||
import com.mcwl.communityCenter.domain.InviteCodeMapping;
|
import com.mcwl.communityCenter.domain.InviteCodeMapping;
|
||||||
import com.mcwl.communityCenter.domain.Publish;
|
|
||||||
import com.mcwl.communityCenter.domain.UserCommunity;
|
|
||||||
import com.mcwl.communityCenter.domain.vo.PublishVo;
|
|
||||||
import com.mcwl.communityCenter.mapper.InviteMapper;
|
import com.mcwl.communityCenter.mapper.InviteMapper;
|
||||||
import com.mcwl.communityCenter.mapper.PublishMapper;
|
import com.mcwl.communityCenter.service.CommunityService;
|
||||||
import com.mcwl.communityCenter.service.InviteCodeMappingService;
|
import com.mcwl.communityCenter.service.InviteCodeMappingService;
|
||||||
import com.mcwl.communityCenter.service.InviteService;
|
import com.mcwl.communityCenter.service.InviteService;
|
||||||
import com.mcwl.communityCenter.service.PublishService;
|
|
||||||
import com.mcwl.communityCenter.service.UserCommunityService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class InviteServiceImpl extends ServiceImpl<InviteMapper, Invite> implements InviteService {
|
public class InviteServiceImpl extends ServiceImpl<InviteMapper, Invite> implements InviteService {
|
||||||
|
|
||||||
private final UserCommunityService userCommunityService;
|
|
||||||
|
|
||||||
private final InviteCodeMappingService inviteCodeMappingService;
|
private final InviteCodeMappingService inviteCodeMappingService;
|
||||||
|
|
||||||
|
private final CommunityService communityService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getInviteCode(Long communityId) {
|
public String getInviteCode(Long communityId) {
|
||||||
|
|
||||||
|
|
||||||
// 查询用户的社区
|
// 查询用户的社区
|
||||||
UserCommunity userCommunity = userCommunityService.lambdaQuery()
|
Community userCommunity = communityService.lambdaQuery()
|
||||||
.eq(UserCommunity::getCommunityId, communityId)
|
.eq(Community::getId, communityId)
|
||||||
|
.eq(Community::getUserId, SecurityUtils.getUserId())
|
||||||
.one();
|
.one();
|
||||||
|
|
||||||
if (Objects.isNull(userCommunity)) {
|
if (Objects.isNull(userCommunity)) {
|
||||||
|
|
|
@ -1,79 +1,143 @@
|
||||||
package com.mcwl.communityCenter.service.impl;
|
package com.mcwl.communityCenter.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.github.pagehelper.PageInfo;
|
|
||||||
import com.mcwl.common.constant.HttpStatus;
|
import com.mcwl.common.constant.HttpStatus;
|
||||||
import com.mcwl.common.core.page.PageDomain;
|
import com.mcwl.common.core.domain.AjaxResult;
|
||||||
|
import com.mcwl.common.core.domain.entity.SysUser;
|
||||||
import com.mcwl.common.core.page.TableDataInfo;
|
import com.mcwl.common.core.page.TableDataInfo;
|
||||||
import com.mcwl.common.utils.SecurityUtils;
|
import com.mcwl.common.utils.SecurityUtils;
|
||||||
|
import com.mcwl.common.utils.StringUtils;
|
||||||
|
import com.mcwl.communityCenter.domain.Community;
|
||||||
import com.mcwl.communityCenter.domain.Publish;
|
import com.mcwl.communityCenter.domain.Publish;
|
||||||
|
import com.mcwl.communityCenter.domain.Question;
|
||||||
|
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 com.mcwl.communityCenter.domain.vo.PublishVo;
|
||||||
|
import com.mcwl.communityCenter.mapper.CommunityMapper;
|
||||||
|
import com.mcwl.communityCenter.mapper.InviteMapper;
|
||||||
import com.mcwl.communityCenter.mapper.PublishMapper;
|
import com.mcwl.communityCenter.mapper.PublishMapper;
|
||||||
|
import com.mcwl.communityCenter.mapper.QuestionMapper;
|
||||||
import com.mcwl.communityCenter.service.PublishService;
|
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.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> implements PublishService {
|
public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> implements PublishService {
|
||||||
@Override
|
|
||||||
public TableDataInfo listByPage(PageDomain pageDomain) {
|
|
||||||
// 分页查询
|
|
||||||
Page<Publish> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
|
|
||||||
boolean isAsc = Objects.equals(pageDomain.getIsAsc(), "asc");
|
|
||||||
OrderItem orderItem = new OrderItem(pageDomain.getOrderByColumn(), isAsc);
|
|
||||||
page.addOrder(orderItem);
|
|
||||||
|
|
||||||
// 条件设置
|
private final QuestionMapper questionMapper;
|
||||||
LambdaQueryWrapper<Publish> lqw = new LambdaQueryWrapper<>();
|
|
||||||
|
|
||||||
// 查询
|
private final ISysUserService sysUserService;
|
||||||
baseMapper.selectPage(page, lqw);
|
|
||||||
|
|
||||||
// 返回数据
|
private final InviteMapper inviteMapper;
|
||||||
List<PublishVo> publishVoList = new ArrayList<>();
|
|
||||||
|
|
||||||
// 封装数据
|
private CommunityMapper userCommunityMapper;
|
||||||
List<Publish> publishList = page.getRecords();
|
|
||||||
for (Publish publish : publishList) {
|
|
||||||
PublishVo publishVo = new PublishVo();
|
|
||||||
BeanUtil.copyProperties(publish, publishVo);
|
|
||||||
publishVo.setUserName(SecurityUtils.getUsername());
|
|
||||||
publishVo.setAvatar(SecurityUtils.getLoginUser().getUser().getAvatar());
|
|
||||||
// TODO 评论数
|
|
||||||
publishVo.setCommentNum(0);
|
|
||||||
publishVoList.add(publishVo);
|
|
||||||
|
|
||||||
}
|
private final ThreadPoolExecutor threadPoll = new AutoCloseableExecutorService(10);
|
||||||
|
|
||||||
|
|
||||||
TableDataInfo rspData = new TableDataInfo();
|
|
||||||
rspData.setCode(HttpStatus.SUCCESS);
|
|
||||||
rspData.setMsg("查询成功");
|
|
||||||
rspData.setRows(publishVoList);
|
|
||||||
rspData.setTotal(page.getTotal());
|
|
||||||
|
|
||||||
return rspData;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PublishVo getDetail(Long id) {
|
public PublishVo getDetail(PublishDetailRes publishDetailRes) {
|
||||||
|
Long id = publishDetailRes.getId();
|
||||||
Publish publish = baseMapper.selectById(id);
|
Long tenantId = publishDetailRes.getTenantId();
|
||||||
|
Long communityId = publishDetailRes.getCommunityId();
|
||||||
|
Publish publish = baseMapper.selectOne(new LambdaQueryWrapper<Publish>()
|
||||||
|
.eq(Publish::getId, id)
|
||||||
|
.eq(Publish::getTenantId, tenantId)
|
||||||
|
.eq(Publish::getCommunityId, communityId));
|
||||||
if (Objects.isNull(publish)) {
|
if (Objects.isNull(publish)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
PublishVo publishVo = new PublishVo();
|
PublishVo publishVo = new PublishVo();
|
||||||
BeanUtil.copyProperties(publish, publishVo);
|
BeanUtil.copyProperties(publish, publishVo);
|
||||||
publishVo.setUserName(SecurityUtils.getUsername());
|
Long userId = publish.getUserId();
|
||||||
publishVo.setAvatar(SecurityUtils.getLoginUser().getUser().getAvatar());
|
SysUser sysUser = sysUserService.selectUserById(userId);
|
||||||
|
publishVo.setUserName(sysUser.getUserName());
|
||||||
|
publishVo.setAvatar(sysUser.getAvatar());
|
||||||
return publishVo;
|
return publishVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult publish(PublishRes publishRes) {
|
||||||
|
|
||||||
|
Long userId = SecurityUtils.getUserId();
|
||||||
|
|
||||||
|
Community community = userCommunityMapper.getByUserIdAndCommunityId(publishRes.getTenantId(), publishRes.getCommunityId());
|
||||||
|
|
||||||
|
if (Objects.isNull(community)) {
|
||||||
|
return AjaxResult.error(HttpStatus.ERROR, "用户社区未创建");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Set<Long> invites = inviteMapper.selectInviteIds(publishRes.getTenantId(), publishRes.getCommunityId());
|
||||||
|
|
||||||
|
// 判断用户是否是群主
|
||||||
|
if (!Objects.equals(userId, publishRes.getTenantId())) {
|
||||||
|
// 判断用户是否被邀请
|
||||||
|
if (invites.isEmpty() || !invites.contains(userId)) {
|
||||||
|
return AjaxResult.error(HttpStatus.ERROR, "您没有被邀请");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Publish publish = new Publish();
|
||||||
|
BeanUtil.copyProperties(publishRes, publish);
|
||||||
|
publish.setUserId(userId);
|
||||||
|
if (Objects.isNull(publish.getPublishTime())) {
|
||||||
|
publish.setPublishTime(new Date());
|
||||||
|
}
|
||||||
|
baseMapper.insert(publish);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo getPublishList(PublishPageRes publishPageRes) {
|
||||||
|
|
||||||
|
Page<Publish> page = new Page<>(publishPageRes.getPageNum(), publishPageRes.getPageSize());
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(publishPageRes.getOrderByColumn())) {
|
||||||
|
publishPageRes.setOrderByColumn("create_time");
|
||||||
|
}
|
||||||
|
boolean isAsc = Objects.equals(publishPageRes.getIsAsc(), "asc");
|
||||||
|
OrderItem orderItem = new OrderItem(publishPageRes.getOrderByColumn(), isAsc);
|
||||||
|
|
||||||
|
page.addOrder(orderItem);
|
||||||
|
|
||||||
|
// 查询条件
|
||||||
|
LambdaQueryWrapper<Publish> lqw = new LambdaQueryWrapper<>();
|
||||||
|
lqw.eq(Publish::getCommunityId, publishPageRes.getCommunityId())
|
||||||
|
.eq(Publish::getTenantId, publishPageRes.getTenantId());
|
||||||
|
|
||||||
|
baseMapper.selectPage(page, lqw);
|
||||||
|
|
||||||
|
|
||||||
|
List<Publish> publishList = page.getRecords();
|
||||||
|
List<PublishVo> publishVoList = new ArrayList<>();
|
||||||
|
for (Publish publish : publishList) {
|
||||||
|
PublishVo publishVo = new PublishVo();
|
||||||
|
BeanUtil.copyProperties(publish, publishVo);
|
||||||
|
Long userId = publish.getUserId();
|
||||||
|
SysUser sysUser = sysUserService.selectUserById(userId);
|
||||||
|
publishVo.setUserName(sysUser.getUserName());
|
||||||
|
publishVo.setAvatar(sysUser.getAvatar());
|
||||||
|
publishVoList.add(publishVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 封装返回
|
||||||
|
TableDataInfo tableDataInfo = new TableDataInfo();
|
||||||
|
tableDataInfo.setRows(publishVoList);
|
||||||
|
tableDataInfo.setTotal(page.getTotal());
|
||||||
|
tableDataInfo.setCode(HttpStatus.SUCCESS);
|
||||||
|
tableDataInfo.setMsg("查询成功");
|
||||||
|
return tableDataInfo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.mcwl.communityCenter.service.impl;
|
package com.mcwl.communityCenter.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
@ -13,18 +12,13 @@ import com.mcwl.common.utils.SecurityUtils;
|
||||||
import com.mcwl.common.utils.StringUtils;
|
import com.mcwl.common.utils.StringUtils;
|
||||||
import com.mcwl.communityCenter.constant.StatusConstant;
|
import com.mcwl.communityCenter.constant.StatusConstant;
|
||||||
import com.mcwl.communityCenter.domain.CommunityAdvice;
|
import com.mcwl.communityCenter.domain.CommunityAdvice;
|
||||||
import com.mcwl.communityCenter.domain.Invite;
|
|
||||||
import com.mcwl.communityCenter.domain.Publish;
|
|
||||||
import com.mcwl.communityCenter.domain.Question;
|
import com.mcwl.communityCenter.domain.Question;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
|
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionReplyDto;
|
import com.mcwl.communityCenter.domain.dto.QuestionReplyRes;
|
||||||
import com.mcwl.communityCenter.domain.dto.QuestionRes;
|
import com.mcwl.communityCenter.domain.dto.QuestionRes;
|
||||||
import com.mcwl.communityCenter.domain.vo.QuestionVo;
|
import com.mcwl.communityCenter.domain.vo.QuestionVo;
|
||||||
import com.mcwl.communityCenter.mapper.CommunityAdviceMapper;
|
import com.mcwl.communityCenter.mapper.CommunityAdviceMapper;
|
||||||
import com.mcwl.communityCenter.mapper.PublishMapper;
|
|
||||||
import com.mcwl.communityCenter.mapper.QuestionMapper;
|
import com.mcwl.communityCenter.mapper.QuestionMapper;
|
||||||
import com.mcwl.communityCenter.service.InviteService;
|
|
||||||
import com.mcwl.communityCenter.service.PublishService;
|
|
||||||
import com.mcwl.communityCenter.service.QuestionService;
|
import com.mcwl.communityCenter.service.QuestionService;
|
||||||
import com.mcwl.system.service.ISysUserService;
|
import com.mcwl.system.service.ISysUserService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
@ -152,12 +146,12 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
|
||||||
/**
|
/**
|
||||||
* 回复问题
|
* 回复问题
|
||||||
*
|
*
|
||||||
* @param questionReplyDto 回复信息
|
* @param questionReplyRes 回复信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void reply(QuestionReplyDto questionReplyDto) {
|
public void reply(QuestionReplyRes questionReplyRes) {
|
||||||
|
|
||||||
Long questionId = questionReplyDto.getQuestionId();
|
Long questionId = questionReplyRes.getQuestionId();
|
||||||
LambdaQueryWrapper<Question> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Question> lqw = new LambdaQueryWrapper<>();
|
||||||
lqw.eq(Question::getId, questionId)
|
lqw.eq(Question::getId, questionId)
|
||||||
.eq(Question::getStatus, StatusConstant.STATUS_UNREPLIED);
|
.eq(Question::getStatus, StatusConstant.STATUS_UNREPLIED);
|
||||||
|
@ -169,7 +163,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
question.setContent(questionReplyDto.getContent());
|
question.setContent(questionReplyRes.getContent());
|
||||||
question.setStatus(StatusConstant.STATUS_REPLIED);
|
question.setStatus(StatusConstant.STATUS_REPLIED);
|
||||||
question.setReplyTime(new Date());
|
question.setReplyTime(new Date());
|
||||||
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
package com.mcwl.communityCenter.service.impl;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import com.mcwl.communityCenter.domain.Question;
|
|
||||||
import com.mcwl.communityCenter.domain.UserCommunity;
|
|
||||||
import com.mcwl.communityCenter.mapper.QuestionMapper;
|
|
||||||
import com.mcwl.communityCenter.mapper.UserCommunityMapper;
|
|
||||||
import com.mcwl.communityCenter.service.QuestionService;
|
|
||||||
import com.mcwl.communityCenter.service.UserCommunityService;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class UserCommunityServiceImpl extends ServiceImpl<UserCommunityMapper, UserCommunity> implements UserCommunityService {
|
|
||||||
}
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.mcwl.communityCenter.mapper.CommunityMapper">
|
||||||
|
|
||||||
|
<select id="getByUserIdAndCommunityId" resultType="com.mcwl.communityCenter.domain.Community">
|
||||||
|
select id, user_id
|
||||||
|
from cc_community
|
||||||
|
where user_id = #{userId}
|
||||||
|
and id = #{communityId}
|
||||||
|
and del_flag = '0';
|
||||||
|
</select>
|
||||||
|
</mapper>
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.mcwl.communityCenter.mapper.InviteMapper">
|
||||||
|
|
||||||
|
<select id="selectInviteIds" resultType="java.lang.Long">
|
||||||
|
select invitee_user_id
|
||||||
|
from cc_invite
|
||||||
|
where tenant_id = #{tenantId}
|
||||||
|
and community_id = #{communityId}
|
||||||
|
and del_flag = '0'
|
||||||
|
</select>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue