diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityController.java index d4d0da5..fb8e1b5 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/CommunityController.java @@ -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(); } diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/InviteController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/InviteController.java index ca9854b..ea1e238 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/InviteController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/InviteController.java @@ -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) { diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java index 1555df2..7938929 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/PublishController.java @@ -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)); } diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/QuestionController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/QuestionController.java index 1f3b545..48328e7 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/QuestionController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/communityCenter/QuestionController.java @@ -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); diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/Question.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/Question.java index a005ed0..6a935b7 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/Question.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/Question.java @@ -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; - /** * 是否匿名 */ diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/QuestionRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/QuestionRes.java index b74924c..503c3a8 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/QuestionRes.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/QuestionRes.java @@ -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; diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/QuestionService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/QuestionService.java index 2e0fd0c..8b413f3 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/QuestionService.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/QuestionService.java @@ -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 { * 添加问题 * @param questionRes 问题信息 */ - void addQuestion(QuestionRes questionRes); + AjaxResult addQuestion(QuestionRes questionRes); TableDataInfo listUnReplied(QuestionPageRes questionPageRes); diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionServiceImpl.java index 186cfeb..0d2b781 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/QuestionServiceImpl.java @@ -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 i private final CommunityAdviceMapper communityAdviceMapper; + private final CommunityService communityService; + private final ISysUserService sysUserService; /** @@ -46,27 +52,30 @@ public class QuestionServiceImpl extends ServiceImpl 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 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