Compare commits

..

No commits in common. "d5157ce4812053c2968c9b45ad3820a6f626010a" and "a8bf9b73908c06b4115d8b6a6993405f082cedf9" have entirely different histories.

31 changed files with 203 additions and 365 deletions

View File

@ -6,15 +6,18 @@ 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.Community;
import com.mcwl.communityCenter.domain.dto.CommunityRes;
import com.mcwl.communityCenter.domain.dto.CommunityDto;
import com.mcwl.communityCenter.domain.vo.CommunityVo;
import com.mcwl.communityCenter.service.CommunityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
*
@ -43,13 +46,15 @@ public class CommunityController {
/**
*
*
* @param communityRes
* @param communityDto
* @return
*/
@ApiOperation(value = "添加社区")
@PostMapping("add")
public AjaxResult addCommunity(@RequestBody CommunityRes communityRes) {
communityService.addCommunity(communityRes);
public AjaxResult addCommunity(@RequestBody CommunityDto communityDto) {
Community community = new Community();
BeanUtil.copyProperties(communityDto, community);
communityService.save(community);
return AjaxResult.success();
}
@ -60,7 +65,7 @@ public class CommunityController {
* @return
*/
@ApiOperation(value = "删除社区")
@GetMapping("delete")
@PostMapping("delete")
public AjaxResult deleteCommunity(@NotNull(message = "id不能为空")
@ApiParam(value = "id", required = true)
Long id) {

View File

@ -7,7 +7,6 @@ import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.service.InviteService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
@ -35,9 +34,7 @@ public class InviteController {
*/
@ApiOperation(value = "邀请码链接")
@GetMapping("inviteCode")
public AjaxResult inviteCode(@NotNull(message = "社区不能为空")
@ApiParam(value = "社区", required = true)
Long communityId) {
public AjaxResult inviteCode(Long communityId) {
// 获取邀请码链接
String inviteCode = inviteService.getInviteCode(communityId);
if (StringUtils.isBlank(inviteCode)) {

View File

@ -1,27 +1,30 @@
package com.mcwl.web.controller.communityCenter;
import cn.hutool.core.bean.BeanUtil;
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.dto.PublishDetailRes;
import com.mcwl.communityCenter.domain.dto.PublishPageRes;
import com.mcwl.communityCenter.domain.Community;
import cn.hutool.core.bean.BeanUtil;
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.vo.PublishVo;
import com.mcwl.communityCenter.service.PublishService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.Objects;
/**
*
*/
@Api(tags = "社区帖子发布")
@Api(tags = "发布")
@RestController
@RequestMapping("publish")
@RequiredArgsConstructor
@ -32,21 +35,23 @@ public class PublishController {
/**
*
*
* @return
*/
@ApiOperation(value = "获取发布列表")
@PostMapping("list")
public TableDataInfo list(@RequestBody PublishPageRes publishPageRes) {
return publishService.getPublishList(publishPageRes);
public TableDataInfo getCommunityList(@RequestBody PageDomain pageDomain) {
return publishService.listByPage(pageDomain);
}
/**
*
*/
@ApiOperation(value = "获取发布详情")
@PostMapping("detail")
public AjaxResult getPublishDetail(@RequestBody PublishDetailRes publishDetailRes) {
@GetMapping("detail")
public AjaxResult getPublishDetail(Long id) {
PublishVo publishVo = publishService.getDetail(publishDetailRes);
PublishVo publishVo = publishService.getDetail(id);
if (Objects.isNull(publishVo)) {
return AjaxResult.error("获取详情失败");
}
@ -56,10 +61,12 @@ public class PublishController {
/**
*
*/
@ApiOperation(value = "发布")
@PostMapping("publish")
public AjaxResult publish(@RequestBody PublishRes publishRes) {
return publishService.publish(publishRes);
@ApiOperation(value = "添加")
@PostMapping("add")
public AjaxResult addPublish(@RequestBody PublishRes publishRes) {
Publish publish = new Publish();
BeanUtil.copyProperties(publishRes, publish);
return AjaxResult.success(publishService.save(publish));
}
/**

View File

@ -2,17 +2,20 @@ package com.mcwl.web.controller.communityCenter;
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.dto.QuestionPageRes;
import com.mcwl.communityCenter.domain.dto.QuestionReplyRes;
import com.mcwl.communityCenter.domain.dto.QuestionReplyDto;
import com.mcwl.communityCenter.domain.dto.QuestionRes;
import com.mcwl.communityCenter.domain.vo.QuestionVo;
import com.mcwl.communityCenter.service.QuestionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Objects;
@ -45,9 +48,8 @@ public class QuestionController {
/**
*
*/
@PostMapping("listUnReplied")
@ApiOperation(value = "获取未回复问题列表")
public TableDataInfo listUnReplied(@RequestBody QuestionPageRes questionPageRes) {
@GetMapping("listUnReplied")
public TableDataInfo listUnReplied(QuestionPageRes questionPageRes) {
return questionService.listUnReplied(questionPageRes);
}
@ -56,7 +58,6 @@ public class QuestionController {
*
*/
@GetMapping("detail")
@ApiOperation(value = "获取问题详情")
public AjaxResult getQuestionDetail(@NotNull(message = "id不能为空") Long id) {
QuestionVo questionVo = questionService.getDetail(id);
if (Objects.isNull(questionVo)) {
@ -69,10 +70,9 @@ public class QuestionController {
*
*/
@PostMapping("reply")
@ApiOperation(value = "回复")
public AjaxResult reply(@RequestBody QuestionReplyRes questionReplyRes) {
public AjaxResult reply(QuestionReplyDto questionReplyDto) {
questionService.reply(questionReplyRes);
questionService.reply(questionReplyDto);
return AjaxResult.success();

View File

@ -132,7 +132,7 @@ swagger:
# 是否开启swagger
enabled: true
# 请求前缀
pathMapping:
pathMapping: /dev-api
# 防止XSS攻击
xss:

View File

@ -21,12 +21,6 @@ public class Community extends BaseEntity {
@ApiModelProperty(value = "社区id")
private Long id;
/**
* id
*/
@ApiModelProperty(value = "用户id")
private Long userId;
/**
*
*/

View File

@ -29,11 +29,6 @@ public class Publish extends BaseEntity {
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* id
*/
private Long communityId;
/**
*
*/

View File

@ -37,7 +37,6 @@ public class Question extends BaseEntity {
/**
* id
*/
@ApiModelProperty(value = "社区id")
private Long communityId;
/**
@ -67,7 +66,6 @@ public class Question extends BaseEntity {
/**
*
*/
@ApiModelProperty(value = "答复时间")
private Date replyTime;
/**

View File

@ -0,0 +1,35 @@
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;
}

View File

@ -1,9 +1,12 @@
package com.mcwl.communityCenter.domain.dto;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ -14,7 +17,7 @@ import javax.validation.constraints.NotNull;
@Data
@TableName("cc_community")
@ApiModel(value = "社区请求参数")
public class CommunityRes {
public class CommunityDto {
/**
*

View File

@ -1,27 +0,0 @@
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;
}

View File

@ -1,25 +0,0 @@
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;
}

View File

@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
@ -14,18 +13,6 @@ import java.util.Date;
@Data
@ApiModel(description = "发布请求参数")
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;
/**
*
*/
@ -39,4 +26,9 @@ public class PublishRes {
@ApiModelProperty(value = "发布时间 - 定时发布")
private Date publishTime;
/**
*
*/
@ApiModelProperty(value = "状态")
private Integer status;
}

View File

@ -1,8 +1,6 @@
package com.mcwl.communityCenter.domain.dto;
import com.mcwl.common.core.page.PageDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -10,11 +8,9 @@ import javax.validation.constraints.NotNull;
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "提问分页请求参数")
public class QuestionPageRes extends PageDomain {
@NotNull(message = "社区不能为空")
@ApiModelProperty(value = "社区id", required = true)
private Long communityId;
}

View File

@ -1,28 +1,23 @@
package com.mcwl.communityCenter.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "回复问题")
public class QuestionReplyRes {
public class QuestionReplyDto {
/**
* id
*/
@NotNull(message = "问题id不能为空")
@ApiModelProperty(value = "问题id", required = true)
private Long questionId;
/**
*
*/
@NotBlank(message = "回复内容不能为空")
@ApiModelProperty(value = "回复内容", required = true)
private String content;
}

View File

@ -1,77 +1,47 @@
package com.mcwl.communityCenter.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Date;
/**
*
*/
@Data
@ApiModel(description = "发布信息")
public class PublishVo {
/**
*
*/
@ApiModelProperty(value = "主键")
private Long id;
/**
* id - id
*/
@ApiModelProperty(value = "租户id", hidden = true)
private Long tenantId;
/**
* id
*/
@ApiModelProperty(value = "社区id")
private Long communityId;
/**
* id
*/
@ApiModelProperty(value = "用户id")
private Long userId;
/**
*
*/
@ApiModelProperty(value = "用户名")
private String userName;
/**
*
*/
@ApiModelProperty(value = "头像")
private String avatar;
/**
*
*/
@ApiModelProperty(value = "内容")
private String content;
/**
* -
*/
@ApiModelProperty(value = "发布时间 - 定时发布")
private Date publishTime;
/**
*
*/
@ApiModelProperty(value = "点赞数")
private Integer likeNum;
/**
*
*/
@ApiModelProperty(value = "评论数")
private Integer commentNum;

View File

@ -21,10 +21,9 @@ public class CustomTenantHandler implements TenantLineHandler {
* .
*/
static {
// 发布表
// tables.add("cc_publish");
// 提问表
tables.add("cc_publish");
tables.add("cc_question");
tables.add("cc_user_community");
}

View File

@ -3,16 +3,7 @@ package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Community;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import javax.validation.constraints.NotNull;
@Mapper
public interface CommunityMapper extends BaseMapper<Community> {
Community getByUserIdAndCommunityId(@NotNull(message = "租户id不能为空")
@Param("userId")
Long userId,
@NotNull(message = "社区id不能为空")
@Param("communityId")
Long communityId);
}

View File

@ -3,18 +3,7 @@ package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Invite;
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
public interface InviteMapper extends BaseMapper<Invite> {
Set<Long> selectInviteIds(@NotNull(message = "租户id不能为空")
@Param("tenantId")
Long tenantId,
@NotNull(message = "社区id不能为空")
@Param("communityId")
Long communityId);
}

View File

@ -0,0 +1,10 @@
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> {
}

View File

@ -4,14 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.dto.CommunityRes;
public interface CommunityService extends IService<Community> {
TableDataInfo listByPage(PageDomain pageDomain);
/**
*
* @param communityRes
*/
void addCommunity(CommunityRes communityRes);
}

View File

@ -1,28 +1,14 @@
package com.mcwl.communityCenter.service;
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.TableDataInfo;
import com.mcwl.communityCenter.domain.Community;
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 javax.validation.constraints.NotNull;
import java.util.List;
public interface PublishService extends IService<Publish> {
TableDataInfo listByPage(PageDomain pageDomain);
PublishVo getDetail(PublishDetailRes publishDetailRes);
/**
*
* @param publishRes
*/
AjaxResult publish(PublishRes publishRes);
TableDataInfo getPublishList(PublishPageRes publishPageRes);
PublishVo getDetail(Long id);
}

View File

@ -2,9 +2,10 @@ package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
import com.mcwl.communityCenter.domain.dto.QuestionReplyRes;
import com.mcwl.communityCenter.domain.dto.QuestionReplyDto;
import com.mcwl.communityCenter.domain.dto.QuestionRes;
import com.mcwl.communityCenter.domain.vo.QuestionVo;
@ -25,7 +26,7 @@ public interface QuestionService extends IService<Question> {
/**
*
* @param questionReplyRes
* @param questionReplyDto
*/
void reply(QuestionReplyRes questionReplyRes);
void reply(QuestionReplyDto questionReplyDto);
}

View File

@ -0,0 +1,8 @@
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> {
}

View File

@ -1,22 +1,18 @@
package com.mcwl.communityCenter.service.impl;
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.extension.plugins.pagination.Page;
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.HttpUtil;
import com.mcwl.common.utils.StringUtils;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.dto.CommunityRes;
import com.mcwl.communityCenter.domain.vo.CommunityVo;
import com.mcwl.communityCenter.mapper.CommunityMapper;
import com.mcwl.communityCenter.service.CommunityService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -24,7 +20,6 @@ import java.util.List;
import java.util.Objects;
@Service
@RequiredArgsConstructor
public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community> implements CommunityService {
@ -42,7 +37,7 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
OrderItem orderItem = new OrderItem(pageDomain.getOrderByColumn(), isAsc);
page.addOrder(orderItem);
baseMapper.selectPage(page, new LambdaQueryWrapper<Community>().eq(Community::getUserId, SecurityUtils.getUserId()));
baseMapper.selectPage(page, null);
List<Community> communityList = page.getRecords();
List<CommunityVo> communityVoList = new ArrayList<>();
@ -61,14 +56,5 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
return tableDataInfo;
}
@Override
public void addCommunity(CommunityRes communityRes) {
Community community = new Community();
BeanUtil.copyProperties(communityRes, community);
community.setUserId(SecurityUtils.getUserId());
baseMapper.insert(community);
}
}

View File

@ -1,30 +1,43 @@
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.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.ShareCodeUtils;
import com.mcwl.communityCenter.constant.InviteConstant;
import com.mcwl.communityCenter.constant.StatusConstant;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.Invite;
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.service.CommunityService;
import com.mcwl.communityCenter.mapper.PublishMapper;
import com.mcwl.communityCenter.service.InviteCodeMappingService;
import com.mcwl.communityCenter.service.InviteService;
import com.mcwl.communityCenter.service.PublishService;
import com.mcwl.communityCenter.service.UserCommunityService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Service
@RequiredArgsConstructor
public class InviteServiceImpl extends ServiceImpl<InviteMapper, Invite> implements InviteService {
private final InviteCodeMappingService inviteCodeMappingService;
private final UserCommunityService userCommunityService;
private final CommunityService communityService;
private final InviteCodeMappingService inviteCodeMappingService;
@Override
@ -32,9 +45,8 @@ public class InviteServiceImpl extends ServiceImpl<InviteMapper, Invite> impleme
// 查询用户的社区
Community userCommunity = communityService.lambdaQuery()
.eq(Community::getId, communityId)
.eq(Community::getUserId, SecurityUtils.getUserId())
UserCommunity userCommunity = userCommunityService.lambdaQuery()
.eq(UserCommunity::getCommunityId, communityId)
.one();
if (Objects.isNull(userCommunity)) {

View File

@ -1,143 +1,79 @@
package com.mcwl.communityCenter.service.impl;
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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.mcwl.common.constant.HttpStatus;
import com.mcwl.common.core.domain.AjaxResult;
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.domain.Community;
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.mapper.CommunityMapper;
import com.mcwl.communityCenter.mapper.InviteMapper;
import com.mcwl.communityCenter.mapper.PublishMapper;
import com.mcwl.communityCenter.mapper.QuestionMapper;
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 java.util.*;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Service
@RequiredArgsConstructor
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
public PublishVo getDetail(PublishDetailRes publishDetailRes) {
Long id = publishDetailRes.getId();
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));
public PublishVo getDetail(Long id) {
Publish publish = baseMapper.selectById(id);
if (Objects.isNull(publish)) {
return null;
}
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());
publishVo.setUserName(SecurityUtils.getUsername());
publishVo.setAvatar(SecurityUtils.getLoginUser().getUser().getAvatar());
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;
}
}

View File

@ -1,6 +1,7 @@
package com.mcwl.communityCenter.service.impl;
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.extension.plugins.pagination.Page;
@ -12,13 +13,18 @@ import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.common.utils.StringUtils;
import com.mcwl.communityCenter.constant.StatusConstant;
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.dto.QuestionPageRes;
import com.mcwl.communityCenter.domain.dto.QuestionReplyRes;
import com.mcwl.communityCenter.domain.dto.QuestionReplyDto;
import com.mcwl.communityCenter.domain.dto.QuestionRes;
import com.mcwl.communityCenter.domain.vo.QuestionVo;
import com.mcwl.communityCenter.mapper.CommunityAdviceMapper;
import com.mcwl.communityCenter.mapper.PublishMapper;
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.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
@ -146,12 +152,12 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
/**
*
*
* @param questionReplyRes
* @param questionReplyDto
*/
@Override
public void reply(QuestionReplyRes questionReplyRes) {
public void reply(QuestionReplyDto questionReplyDto) {
Long questionId = questionReplyRes.getQuestionId();
Long questionId = questionReplyDto.getQuestionId();
LambdaQueryWrapper<Question> lqw = new LambdaQueryWrapper<>();
lqw.eq(Question::getId, questionId)
.eq(Question::getStatus, StatusConstant.STATUS_UNREPLIED);
@ -163,7 +169,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
return;
}
question.setContent(questionReplyRes.getContent());
question.setContent(questionReplyDto.getContent());
question.setStatus(StatusConstant.STATUS_REPLIED);
question.setReplyTime(new Date());

View File

@ -0,0 +1,14 @@
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 {
}

View File

@ -1,14 +0,0 @@
<?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>

View File

@ -1,14 +0,0 @@
<?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>