Merge branch 'feature/community-center' into preview

feature/resource
yang 2025-01-17 16:31:38 +08:00
commit 2ba9f440d3
14 changed files with 264 additions and 6 deletions

View File

@ -39,8 +39,8 @@ public class InviteController {
*
*/
@GetMapping("acceptInvite")
public AjaxResult acceptInvite(@NotNull(message = "communityId不能为空") Long communityId,
@NotBlank(message = "inviteCode不能为空") String inviteCode) {
public AjaxResult acceptInvite(@NotNull(message = "社区不能为空") Long communityId,
@NotBlank(message = "邀请码不能为空") String inviteCode) {
// 接受邀请
boolean result = inviteService.acceptInvite(communityId, inviteCode);
if (result) {

View File

@ -1,9 +1,14 @@
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.QuestionRes;
import com.mcwl.communityCenter.service.QuestionService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
*
@ -14,6 +19,30 @@ import org.springframework.web.bind.annotation.RestController;
public class QuestionController {
private final QuestionService questionService;
/**
*
*/
@PostMapping("addQuestion")
public AjaxResult addQuestion(@RequestBody QuestionRes questionRes) {
questionService.addQuestion(questionRes);
return AjaxResult.success();
}
/**
*
*/
@GetMapping("list")
public TableDataInfo getQuestionList(@NotNull(message = "社区不能为空") Long communityId) {
// return questionService.getQuestionList(communityId);
return null;
}
}

View File

@ -14,4 +14,14 @@ public class StatusConstant {
*/
public static final int STATUS_UNAVAILABLE = 0;
/**
*
*/
public static final int STATUS_REPLIED = 1;
/**
*
*/
public static final int STATUS_UNREPLIED = 0;
}

View File

@ -0,0 +1,50 @@
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_advice")
public class CommunityAdvice extends BaseEntity {
@TableId
private Long id;
/**
* id
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* id
*/
private Long communityId;
/**
*
*/
private Long userId;
/**
*
*/
private String title;
/**
*
*/
private String content;
/**
*
*/
private String isRead;
}

View File

@ -1,6 +1,8 @@
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;
@ -20,7 +22,12 @@ public class Invite extends BaseEntity {
/**
* id - id
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* id
*/
private Long communityId;
/**
*
*/

View File

@ -21,6 +21,10 @@ public class InviteCodeMapping extends BaseEntity {
* id
*/
private Long userId;
/**
* id
*/
private Long communityId;
/**
*
*/

View File

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

View File

@ -0,0 +1,49 @@
package com.mcwl.communityCenter.domain.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
*
*/
@Data
public class QuestionRes {
/**
* id
*/
@NotNull(message = "租户不能为空")
private Long tenantId;
/**
* id
*/
@NotNull(message = "社区不能为空")
private Long communityId;
/**
* id
*/
@NotNull(message = "提问用户不能为空")
private Long questionUserId;
/**
*
*/
@NotBlank(message = "提问内容不能为空")
private String content;
/**
*
*/
private String questionUrl;
/**
* 0 1
*/
private Integer isAnonymous = 0;
}

View File

@ -0,0 +1,10 @@
package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.CommunityAdvice;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CommunityAdviceMapper extends BaseMapper<CommunityAdvice> {
}

View File

@ -0,0 +1,8 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.CommunityAdvice;
public interface CommunityAdviceService extends IService<CommunityAdvice> {
}

View File

@ -3,6 +3,17 @@ package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.dto.QuestionRes;
public interface QuestionService extends IService<Question> {
/**
*
* @param questionRes
*/
void addQuestion(QuestionRes questionRes);
}

View File

@ -0,0 +1,17 @@
package com.mcwl.communityCenter.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.CommunityAdvice;
import com.mcwl.communityCenter.mapper.CommunityAdviceMapper;
import com.mcwl.communityCenter.mapper.CommunityMapper;
import com.mcwl.communityCenter.service.CommunityAdviceService;
import com.mcwl.communityCenter.service.CommunityService;
import org.springframework.stereotype.Service;
@Service
public class CommunityAdviceServiceImpl extends ServiceImpl<CommunityAdviceMapper, CommunityAdvice>
implements CommunityAdviceService {
}

View File

@ -61,7 +61,8 @@ public class InviteServiceImpl extends ServiceImpl<InviteMapper, Invite> impleme
InviteCodeMapping inviteCodeMapping = new InviteCodeMapping();
inviteCodeMapping.setUserId(SecurityUtils.getUserId());
inviteCodeMapping.setInviteCode(idCode);
inviteCodeMapping.setStatus(1);
inviteCodeMapping.setCommunityId(communityId);
inviteCodeMapping.setStatus(StatusConstant.STATUS_AVAILABLE);
inviteCodeMappingService.save(inviteCodeMapping);
return inviteCode;
@ -86,7 +87,7 @@ public class InviteServiceImpl extends ServiceImpl<InviteMapper, Invite> impleme
InviteCodeMapping inviteCodeMapping = inviteCodeMappingService.lambdaQuery()
.eq(InviteCodeMapping::getUserId, userId)
.eq(InviteCodeMapping::getInviteCode, inviteCode)
.eq(InviteCodeMapping::getStatus, 1)
.eq(InviteCodeMapping::getStatus, StatusConstant.STATUS_AVAILABLE)
.one();
if (Objects.isNull(inviteCodeMapping)) {

View File

@ -1,14 +1,71 @@
package com.mcwl.communityCenter.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.utils.SecurityUtils;
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.QuestionRes;
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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Objects;
@Service
@RequiredArgsConstructor
public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> implements QuestionService {
private final CommunityAdviceMapper communityAdviceMapper;
/**
*
* @param questionRes
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void addQuestion(QuestionRes questionRes) {
Long questionUserId = questionRes.getQuestionUserId();
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);
if (isInviteUser) {
return;
}
Question question = new Question();
BeanUtil.copyProperties(questionRes, question);
baseMapper.insert(question);
CommunityAdvice communityAdvice = new CommunityAdvice();
communityAdvice.setTenantId(tenantId);
communityAdvice.setCommunityId(communityId);
communityAdvice.setUserId(questionUserId);
communityAdvice.setTitle("您有新的问题");
communityAdvice.setContent(questionRes.getContent());
communityAdviceMapper.insert(communityAdvice);
}
}