feat: 提问
parent
d5157ce481
commit
8fda8397f2
|
@ -14,6 +14,7 @@ import io.swagger.annotations.ApiParam;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
|
@ -35,7 +36,7 @@ public class CommunityController {
|
|||
*/
|
||||
@ApiOperation(value = "社区列表")
|
||||
@PostMapping("list")
|
||||
public TableDataInfo getCommunityList(@RequestBody PageDomain pageDomain) {
|
||||
public TableDataInfo getCommunityList(@RequestBody @Valid PageDomain pageDomain) {
|
||||
return communityService.listByPage(pageDomain);
|
||||
}
|
||||
|
||||
|
@ -48,7 +49,7 @@ public class CommunityController {
|
|||
*/
|
||||
@ApiOperation(value = "添加社区")
|
||||
@PostMapping("add")
|
||||
public AjaxResult addCommunity(@RequestBody CommunityRes communityRes) {
|
||||
public AjaxResult addCommunity(@RequestBody @Valid CommunityRes communityRes) {
|
||||
communityService.addCommunity(communityRes);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
@ -62,8 +63,9 @@ public class CommunityController {
|
|||
@ApiOperation(value = "删除社区")
|
||||
@GetMapping("delete")
|
||||
public AjaxResult deleteCommunity(@NotNull(message = "id不能为空")
|
||||
@ApiParam(value = "id", required = true)
|
||||
Long id) {
|
||||
@ApiParam(value = "id", required = true)
|
||||
@Valid
|
||||
Long id) {
|
||||
communityService.removeById(id);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
|
@ -37,6 +38,7 @@ public class InviteController {
|
|||
@GetMapping("inviteCode")
|
||||
public AjaxResult inviteCode(@NotNull(message = "社区不能为空")
|
||||
@ApiParam(value = "社区", required = true)
|
||||
@Valid
|
||||
Long communityId) {
|
||||
// 获取邀请码链接
|
||||
String inviteCode = inviteService.getInviteCode(communityId);
|
||||
|
@ -51,8 +53,13 @@ public class InviteController {
|
|||
*/
|
||||
@ApiOperation(value = "接受邀请")
|
||||
@GetMapping("acceptInvite")
|
||||
public AjaxResult acceptInvite(@NotNull(message = "社区不能为空") Long communityId,
|
||||
@NotBlank(message = "邀请码不能为空") String inviteCode) {
|
||||
@Valid
|
||||
public AjaxResult acceptInvite(@NotNull(message = "社区不能为空")
|
||||
@ApiParam(value = "社区", required = true)
|
||||
Long communityId,
|
||||
@NotBlank(message = "邀请码不能为空")
|
||||
@ApiParam(value = "邀请码", required = true)
|
||||
String inviteCode) {
|
||||
// 接受邀请
|
||||
boolean result = inviteService.acceptInvite(communityId, inviteCode);
|
||||
if (result) {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.mcwl.web.controller.communityCenter;
|
||||
|
||||
|
||||
|
||||
import com.mcwl.common.core.domain.AjaxResult;
|
||||
import com.mcwl.common.core.page.TableDataInfo;
|
||||
import com.mcwl.communityCenter.domain.dto.PublishDetailRes;
|
||||
|
@ -15,6 +14,7 @@ import io.swagger.annotations.ApiParam;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Objects;
|
||||
|
||||
|
@ -35,7 +35,7 @@ public class PublishController {
|
|||
*/
|
||||
@ApiOperation(value = "获取发布列表")
|
||||
@PostMapping("list")
|
||||
public TableDataInfo list(@RequestBody PublishPageRes publishPageRes) {
|
||||
public TableDataInfo list(@RequestBody @Valid PublishPageRes publishPageRes) {
|
||||
return publishService.getPublishList(publishPageRes);
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ public class PublishController {
|
|||
*/
|
||||
@ApiOperation(value = "获取发布详情")
|
||||
@PostMapping("detail")
|
||||
public AjaxResult getPublishDetail(@RequestBody PublishDetailRes publishDetailRes) {
|
||||
public AjaxResult getPublishDetail(@RequestBody @Valid PublishDetailRes publishDetailRes) {
|
||||
|
||||
PublishVo publishVo = publishService.getDetail(publishDetailRes);
|
||||
if (Objects.isNull(publishVo)) {
|
||||
|
@ -58,7 +58,7 @@ public class PublishController {
|
|||
*/
|
||||
@ApiOperation(value = "发布")
|
||||
@PostMapping("publish")
|
||||
public AjaxResult publish(@RequestBody PublishRes publishRes) {
|
||||
public AjaxResult publish(@RequestBody @Valid PublishRes publishRes) {
|
||||
return publishService.publish(publishRes);
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ public class PublishController {
|
|||
*/
|
||||
@ApiOperation(value = "删除")
|
||||
@GetMapping("remove")
|
||||
public AjaxResult deletePublish(Long id) {
|
||||
public AjaxResult deletePublish(@NotNull(message = "id不能为空") @ApiParam(value = "id") @Valid Long id) {
|
||||
return AjaxResult.success(publishService.removeById(id));
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ import io.swagger.annotations.ApiOperation;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Objects;
|
||||
|
||||
|
@ -33,11 +34,10 @@ public class QuestionController {
|
|||
*/
|
||||
@PostMapping("addQuestion")
|
||||
@ApiOperation(value = "提问")
|
||||
public AjaxResult addQuestion(@RequestBody QuestionRes questionRes) {
|
||||
public AjaxResult addQuestion(@RequestBody @Valid QuestionRes questionRes) {
|
||||
|
||||
questionService.addQuestion(questionRes);
|
||||
|
||||
return AjaxResult.success();
|
||||
return questionService.addQuestion(questionRes);
|
||||
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ public class QuestionController {
|
|||
*/
|
||||
@PostMapping("listUnReplied")
|
||||
@ApiOperation(value = "获取未回复问题列表")
|
||||
public TableDataInfo listUnReplied(@RequestBody QuestionPageRes questionPageRes) {
|
||||
public TableDataInfo listUnReplied(@RequestBody @Valid QuestionPageRes questionPageRes) {
|
||||
|
||||
return questionService.listUnReplied(questionPageRes);
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ public class QuestionController {
|
|||
*/
|
||||
@GetMapping("detail")
|
||||
@ApiOperation(value = "获取问题详情")
|
||||
public AjaxResult getQuestionDetail(@NotNull(message = "id不能为空") Long id) {
|
||||
public AjaxResult getQuestionDetail(@NotNull(message = "id不能为空") @Valid Long id) {
|
||||
QuestionVo questionVo = questionService.getDetail(id);
|
||||
if (Objects.isNull(questionVo)) {
|
||||
return AjaxResult.error("获取详情失败");
|
||||
|
@ -70,7 +70,7 @@ public class QuestionController {
|
|||
*/
|
||||
@PostMapping("reply")
|
||||
@ApiOperation(value = "回复")
|
||||
public AjaxResult reply(@RequestBody QuestionReplyRes questionReplyRes) {
|
||||
public AjaxResult reply(@RequestBody @Valid QuestionReplyRes questionReplyRes) {
|
||||
|
||||
questionService.reply(questionReplyRes);
|
||||
|
||||
|
|
|
@ -53,10 +53,10 @@ public class Question extends BaseEntity {
|
|||
private String content;
|
||||
|
||||
/**
|
||||
* 答复用户id
|
||||
* 提问图片
|
||||
*/
|
||||
@ApiModelProperty(value = "答复用户id")
|
||||
private Long replyUserId;
|
||||
@ApiModelProperty(value = "提问图片")
|
||||
private String questionUrl;
|
||||
|
||||
/**
|
||||
* 回复内容
|
||||
|
@ -70,12 +70,6 @@ public class Question extends BaseEntity {
|
|||
@ApiModelProperty(value = "答复时间")
|
||||
private Date replyTime;
|
||||
|
||||
/**
|
||||
* 提问图片
|
||||
*/
|
||||
@ApiModelProperty(value = "提问图片")
|
||||
private String questionUrl;
|
||||
|
||||
/**
|
||||
* 是否匿名
|
||||
*/
|
||||
|
|
|
@ -18,7 +18,7 @@ public class QuestionRes {
|
|||
* 租户id
|
||||
*/
|
||||
@NotNull(message = "租户不能为空")
|
||||
@ApiModelProperty(value = "租户ID", hidden = true)
|
||||
@ApiModelProperty(value = "租户ID", required = true)
|
||||
private Long tenantId;
|
||||
|
||||
/**
|
||||
|
@ -28,13 +28,6 @@ public class QuestionRes {
|
|||
@ApiModelProperty(value = "社区ID", required = true, position = 1)
|
||||
private Long communityId;
|
||||
|
||||
/**
|
||||
* 提问用户id
|
||||
*/
|
||||
@NotNull(message = "提问用户不能为空")
|
||||
@ApiModelProperty(value = "提问用户id", required = true, position = 2)
|
||||
private Long questionUserId;
|
||||
|
||||
/**
|
||||
* 提问内容
|
||||
*/
|
||||
|
@ -52,7 +45,7 @@ public class QuestionRes {
|
|||
* 是否匿名 0 否 1 是
|
||||
*/
|
||||
//swagger给上默认值
|
||||
@ApiModelProperty(value = "是否匿名", example = "0", allowableValues = "0,1", position = 5)
|
||||
@ApiModelProperty(value = "是否匿名", position = 5)
|
||||
private Integer isAnonymous = 0;
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
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.TableDataInfo;
|
||||
import com.mcwl.communityCenter.domain.Question;
|
||||
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
|
||||
|
@ -16,7 +17,7 @@ public interface QuestionService extends IService<Question> {
|
|||
* 添加问题
|
||||
* @param questionRes 问题信息
|
||||
*/
|
||||
void addQuestion(QuestionRes questionRes);
|
||||
AjaxResult addQuestion(QuestionRes questionRes);
|
||||
|
||||
|
||||
TableDataInfo listUnReplied(QuestionPageRes questionPageRes);
|
||||
|
|
|
@ -6,11 +6,13 @@ 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.AjaxResult;
|
||||
import com.mcwl.common.core.domain.entity.SysUser;
|
||||
import com.mcwl.common.core.page.TableDataInfo;
|
||||
import com.mcwl.common.utils.SecurityUtils;
|
||||
import com.mcwl.common.utils.StringUtils;
|
||||
import com.mcwl.communityCenter.constant.StatusConstant;
|
||||
import com.mcwl.communityCenter.domain.Community;
|
||||
import com.mcwl.communityCenter.domain.CommunityAdvice;
|
||||
import com.mcwl.communityCenter.domain.Question;
|
||||
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
|
||||
|
@ -18,7 +20,9 @@ import com.mcwl.communityCenter.domain.dto.QuestionReplyRes;
|
|||
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.CommunityMapper;
|
||||
import com.mcwl.communityCenter.mapper.QuestionMapper;
|
||||
import com.mcwl.communityCenter.service.CommunityService;
|
||||
import com.mcwl.communityCenter.service.QuestionService;
|
||||
import com.mcwl.system.service.ISysUserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
@ -37,6 +41,8 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
|
|||
|
||||
private final CommunityAdviceMapper communityAdviceMapper;
|
||||
|
||||
private final CommunityService communityService;
|
||||
|
||||
private final ISysUserService sysUserService;
|
||||
|
||||
/**
|
||||
|
@ -46,27 +52,30 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void addQuestion(QuestionRes questionRes) {
|
||||
|
||||
Long questionUserId = questionRes.getQuestionUserId();
|
||||
public AjaxResult addQuestion(QuestionRes questionRes) {
|
||||
Long communityId = questionRes.getCommunityId();
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
if (Objects.equals(questionUserId, userId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取租户id
|
||||
Long tenantId = questionRes.getTenantId();
|
||||
|
||||
// 答复人是否是群主
|
||||
boolean isInviteUser = !Objects.equals(tenantId, questionUserId);
|
||||
Community community = communityService.lambdaQuery()
|
||||
.eq(Community::getId, communityId)
|
||||
.eq(Community::getUserId, tenantId).one();
|
||||
|
||||
if (isInviteUser) {
|
||||
return;
|
||||
if (Objects.isNull(community)) {
|
||||
return AjaxResult.error("租户或社区不存在");
|
||||
}
|
||||
|
||||
if (Objects.equals(tenantId, userId)) {
|
||||
return AjaxResult.error("您不能提问自己的问题");
|
||||
}
|
||||
|
||||
//TODO 再加个判断,提问人(userId)是否在社区中
|
||||
|
||||
Question question = new Question();
|
||||
BeanUtil.copyProperties(questionRes, question);
|
||||
question.setQuestionUserId(userId);
|
||||
question.setStatus(StatusConstant.STATUS_UNREPLIED);
|
||||
baseMapper.insert(question);
|
||||
|
||||
|
@ -74,12 +83,14 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
|
|||
CommunityAdvice communityAdvice = new CommunityAdvice();
|
||||
communityAdvice.setTenantId(tenantId);
|
||||
communityAdvice.setCommunityId(communityId);
|
||||
communityAdvice.setUserId(questionUserId);
|
||||
communityAdvice.setUserId(tenantId);
|
||||
communityAdvice.setTitle("您有新的问题");
|
||||
communityAdvice.setContent(questionRes.getContent());
|
||||
communityAdviceMapper.insert(communityAdvice);
|
||||
|
||||
|
||||
return AjaxResult.success();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue