Compare commits

...

2 Commits

57 changed files with 1112 additions and 352 deletions

View File

@ -42,11 +42,15 @@ public class CommunityController {
@ApiOperation(value = "社区详情")
@GetMapping("detail")
public R<CommunityDetailVo> getCommunityDetail(@Valid
@ApiParam(value = "社区id", required = true)
@NotNull(message = "社区id不能为空")
Long tenantId,
@Valid
@ApiParam(value = "社区id", required = true)
@NotNull(message = "社区id不能为空")
Long communityId) {
CommunityDetailVo communityDetailVo = communityService.getCommunityDetail(communityId);
CommunityDetailVo communityDetailVo = communityService.getCommunityDetail(tenantId, communityId);
return R.ok(communityDetailVo);
}

View File

@ -24,7 +24,7 @@ import javax.validation.Valid;
/**
*
*/
@Api(tags = "个人主页")
@Api(tags = "社区个人主页")
@RestController
@RequiredArgsConstructor
@RequestMapping("personHome")

View File

@ -1,12 +1,13 @@
package com.mcwl.web.controller.communityCenter;
import com.mcwl.common.core.controller.BaseController;
import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.domain.R;
import com.mcwl.communityCenter.domain.dto.CommentDelRes;
import com.mcwl.communityCenter.domain.dto.CommentDetailRes;
import com.mcwl.communityCenter.domain.dto.CommentRes;
import com.mcwl.communityCenter.domain.dto.PublishCommentLikeRes;
import com.mcwl.communityCenter.domain.vo.CommentVo;
import com.mcwl.communityCenter.service.PublishCommentLikeService;
import com.mcwl.communityCenter.service.PublishCommentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -30,6 +31,17 @@ import java.util.List;
public class PublishCommentController extends BaseController {
private final PublishCommentService publishCommentService;
private final PublishCommentLikeService publishCommentLikeService;
/**
*
*/
@ApiOperation(value = "获取评论")
@PostMapping("/list")
public R<List<CommentVo>> list(@RequestBody @Valid CommentDetailRes commentDetailRes) {
return publishCommentService.getComment(commentDetailRes);
}
/**
@ -46,33 +58,31 @@ public class PublishCommentController extends BaseController {
}
/**
*
*
* @param commentDetailRes
* @return
*/
@ApiOperation(value = "获取评论详情")
@PostMapping("/detail")
public R<List<CommentVo>> getComment(@RequestBody @Valid CommentDetailRes commentDetailRes) {
return publishCommentService.getComment(commentDetailRes);
}
// /**
// * 点赞或取消点赞评论
// * @param commentDetailRes 评论请求参数
// * @return 更新后的点赞数
// * 获取评论详情
// *
// * @param commentDetailRes 评论详情请求参数
// * @return 评论详情
// */
// @ApiOperation(value = "点赞或取消点赞评论")
// @PostMapping("/like")
// public AjaxResult like(@RequestBody @Valid CommentDetailRes commentDetailRes) {
// @ApiOperation(value = "获取评论详情")
// @PostMapping("/detail")
// public R<List<CommentVo>> getComment(@RequestBody @Valid CommentDetailRes commentDetailRes) {
//
// return publishCommentService.like(commentDetailRes);
// return publishCommentService.getComment(commentDetailRes);
// }
/**
*
*/
@ApiOperation(value = "点赞或取消点赞评论")
@PostMapping("/like")
public R<Integer> like(@RequestBody @Valid PublishCommentLikeRes publishCommentLikeRes) {
return publishCommentLikeService.like(publishCommentLikeRes);
}
@ApiOperation(value = "删除评论")
@PostMapping("/delete")
public R<Object> delete(@RequestBody @Valid CommentDelRes commentDelRes) {

View File

@ -1,10 +1,12 @@
package com.mcwl.web.controller.communityCenter;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mcwl.common.constant.HttpStatus;
import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.domain.R;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.dto.*;
import com.mcwl.communityCenter.domain.vo.PublishVo;
import com.mcwl.communityCenter.service.PublishService;
@ -83,9 +85,11 @@ public class PublishController {
*
*/
@ApiOperation(value = "删除")
@GetMapping("remove")
public R<Object> deletePublish(@NotNull(message = "id不能为空") @ApiParam(value = "id") @Valid Long id) {
publishService.removeById(id);
@PostMapping("remove")
public R<Object> deletePublish(@RequestBody @Valid PublishRemoveRes publishRemoveRes) {
Long communityId = publishRemoveRes.getCommunityId();
Long publishId = publishRemoveRes.getPublishId();
publishService.remove(new LambdaQueryWrapper<Publish>().eq(Publish::getId, publishId).eq(Publish::getCommunityId, communityId));
return R.ok();
}
@ -114,4 +118,14 @@ public class PublishController {
return R.ok();
}
/**
*
*/
@ApiOperation(value = "举报")
@PostMapping("report")
public R<Object> reportPublish(@RequestBody @Valid PublishReportRes publishReportRes) {
publishService.reportPublish(publishReportRes);
return R.ok();
}
}

View File

@ -57,11 +57,5 @@ public class PublishComment extends BaseEntity {
@ApiModelProperty(value = "点赞数")
private Integer likeNum;
/**
* 0 1
*/
@ApiModelProperty(value = "评论类型 0发布 1提问")
private Integer type;
}

View File

@ -0,0 +1,57 @@
package com.mcwl.communityCenter.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import lombok.*;
/**
*
*/
@Builder
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@TableName("cc_report")
public class PublishReport extends BaseEntity {
private Long id;
/**
* id
*/
private Long tenantId;
/**
* id
*/
private Long communityId;
/**
* id
*/
private Long publishId;
/**
*
*/
private Long userId;
/**
*
*/
private Long reportType;
/**
*
*/
private Long content;
/**
* 0 1 )
*/
private Long status;
}

View File

@ -32,11 +32,11 @@ public class CommentDelRes {
@NotNull(message = "社区id不能为空")
private Long communityId;
/**
* id
* id
*/
@ApiModelProperty(value = "运营id", required = true)
@NotNull(message = "运营id不能为空")
private Long operatorId;
@ApiModelProperty(value = "发布id", required = true)
@NotNull(message = "id不能为空")
private Long publishId;
}

View File

@ -28,11 +28,11 @@ public class CommentDetailRes {
@NotNull(message = "社区id不能为空")
private Long communityId;
/**
* id
* id
*/
@ApiModelProperty(value = "运营id", required = true)
@NotNull(message = "运营id不能为空")
private Long operatorId;
@ApiModelProperty(value = "发布id", required = true)
@NotNull(message = "发布id不能为空")
private Long publishId;
}

View File

@ -0,0 +1,44 @@
package com.mcwl.communityCenter.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
*
*/
@Data
@ApiModel(value = "评论请求参数")
public class CommentLikeDetailRes {
/**
* id
*/
@ApiModelProperty(value = "租户id", required = true)
@NotNull(message = "租户id不能为空")
private Long tenantId;
/**
* id
*/
@ApiModelProperty(value = "社区id", required = true)
@NotNull(message = "社区id不能为空")
private Long communityId;
/**
* id
*/
@ApiModelProperty(value = "发布id", required = true)
@NotNull(message = "发布id不能为空")
private Long publishId;
/**
* id
*/
@ApiModelProperty(value = "评论id", required = true)
@NotNull(message = "评论id不能为空")
private Long publishCommentId;
}

View File

@ -28,11 +28,11 @@ public class CommentRes {
@NotNull(message = "社区id不能为空")
private Long communityId;
/**
* id
* id
*/
@ApiModelProperty(value = "运营id", required = true)
@NotNull(message = "运营id不能为空")
private Long operatorId;
@ApiModelProperty(value = "发布id", required = true)
@NotNull(message = "发布id不能为空")
private Long publishId;
/**
*
*/
@ -40,5 +40,11 @@ public class CommentRes {
@NotBlank(message = "内容不能为空")
private String content;
/**
* id
*/
@ApiModelProperty(value = "父评论id", required = true)
private Long parentId;
}

View File

@ -0,0 +1,30 @@
package com.mcwl.communityCenter.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* /
*/
@Data
@ApiModel(value = "点赞/取消点赞请求参数")
public class PublishRemoveRes {
/**
* id
*/
@ApiModelProperty(value = "社区id", required = true)
@NotNull(message = "社区id不能为空")
private Long communityId;
/**
* id
*/
@ApiModelProperty(value = "发布id", required = true)
@NotNull(message = "发布id不能为空")
private Long publishId;
}

View File

@ -0,0 +1,50 @@
package com.mcwl.communityCenter.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
*
*/
@Data
@ApiModel(value = "举报请求参数")
public class PublishReportRes {
/**
* id
*/
@ApiModelProperty(value = "租户id", required = true)
@NotNull(message = "租户id不能为空")
private Long tenantId;
/**
* id
*/
@ApiModelProperty(value = "社区id", required = true)
@NotNull(message = "社区id不能为空")
private Long communityId;
/**
* id
*/
@ApiModelProperty(value = "发布id", required = true)
@NotNull(message = "发布id不能为空")
private Long publishId;
/**
*
*/
@ApiModelProperty(value = "举报类型", required = true)
@NotNull(message = "举报类型不能为空")
private Integer reportType;
/**
*
*/
@ApiModelProperty(value = "举报内容")
private String content;
}

View File

@ -57,6 +57,12 @@ public class CommentVo {
@ApiModelProperty(value = "用户头像")
private String userAvatar;
/**
*
*/
@ApiModelProperty(value = "回复人名称")
private String replyUserName;
/**
* id
*/
@ -69,6 +75,11 @@ public class CommentVo {
@ApiModelProperty(value = "评论内容")
private String content;
/**
*
*/
@ApiModelProperty(value = "是否点赞")
private Integer isLike;
/**
*
@ -76,6 +87,12 @@ public class CommentVo {
@ApiModelProperty(value = "评论点赞数")
private Integer likeNum;
/**
*
*/
@ApiModelProperty(value = "是否接受")
private Integer isAccept;
/**
*
*/

View File

@ -1,12 +1,15 @@
package com.mcwl.communityCenter.domain.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
*
@ -20,6 +23,12 @@ public class CommunityDetailVo {
@ApiModelProperty(value = "社区id")
private Long id;
/**
* id
*/
@ApiModelProperty(value = "租户id")
private Long tenantId;
/**
*
*/
@ -32,38 +41,54 @@ public class CommunityDetailVo {
@ApiModelProperty(value = "社区名称")
private String communityName;
/**
* id
*/
@ApiModelProperty(value = "社区标签")
@NotNull(message = "社区标签不能为空")
private Integer communityTag;
/**
*
*/
@ApiModelProperty(value = "社区类型 0免费 1付费")
@NotNull(message = "社区类型不能为空")
private Integer type;
/**
*
*/
@ApiModelProperty(value = "价格")
@NotNull(message = "价格不能为空")
private Double price;
/**
*
*/
@ApiModelProperty(value = "有效期天数")
@NotNull(message = "有效期天数")
private Integer validityDay;
/**
*
*/
@ApiModelProperty(value = "描述")
private String description;
/**
*
*/
@ApiModelProperty(value = "创建天数")
private Long createDay;
/**
*
*/
@ApiModelProperty(value = "成员数")
private Integer userNum;
/**
*
*/
@ApiModelProperty(value = "成员头像")
private List<String> avatarList;
/**
*
*/
@ApiModelProperty(value = "更新内容数")
private Integer updateNum;
/**
*
*/
@ApiModelProperty(value = "最近更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date lastUpdateTime;
/**
*
*/
@ApiModelProperty(value = "当前用户到期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date expireTime;
}

View File

@ -93,5 +93,11 @@ public class CommunityVo {
@ApiModelProperty(value = "发布数量")
private Integer publishNum;
/**
*
*/
@ApiModelProperty(value = "是否加入")
private Integer isJoin;
}

View File

@ -37,6 +37,24 @@ public class PersonHomeVo {
@ApiModelProperty(value = "社区id")
private Long communityId;
/**
* id
*/
@ApiModelProperty(value = "用户id")
private Long userId;
/**
*
*/
@ApiModelProperty(value = "用户名")
private String userName;
/**
*
*/
@ApiModelProperty(value = "用户头像")
private String avatar;
/**
*
*/
@ -69,6 +87,13 @@ public class PersonHomeVo {
@ApiModelProperty(value = "点赞数")
private Integer likeNum;
/**
*
*/
@ApiModelProperty(value = "是否点赞")
private Integer isLike;
/**
*
*/
@ -81,6 +106,24 @@ public class PersonHomeVo {
@ApiModelProperty(value = "评论")
private List<CommentVo> commentList;
/**
*
*/
@ApiModelProperty(value = "是否匿名")
private Integer isAnonymous;
/**
* 0 1
*/
@ApiModelProperty(value = "提问类型 0免费 1付费")
private Integer type;
/**
*
*/
@ApiModelProperty(value = "付费金额 当提问类型为付费时必填")
private Double amount;
/**
*
*/

View File

@ -7,6 +7,7 @@ import lombok.Data;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Date;
import java.util.List;
/**
*
@ -105,6 +106,13 @@ public class PublishVo {
@ApiModelProperty(value = "收藏")
private Integer isCollect;
/**
*
*/
@ApiModelProperty(value = "评论")
private List<CommentVo> commentList;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;

View File

@ -1,46 +1,74 @@
package com.mcwl.communityCenter.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel(description = "提问评论")
public class QuestionCommentVo {
@ApiModelProperty(value = "id")
private Long id;
/**
* id
*/
@ApiModelProperty(value = "租户id")
private Long tenantId;
/**
* id
*/
@ApiModelProperty(value = "社区id")
private Long communityId;
/**
* id
*/
@ApiModelProperty(value = "提问id")
private Long questionId;
/**
* 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 Long isAccept;
private Integer isAccept;
/**
*
*/
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
}

View File

@ -1,6 +1,7 @@
package com.mcwl.communityCenter.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -8,6 +9,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@Data
@ApiModel(description = "问题信息")
@ -17,6 +19,12 @@ public class QuestionVo {
@ApiModelProperty(value = "主键")
private Long id;
/**
* id
*/
@ApiModelProperty(value = "租户id")
private Long tenantId;
/**
* id
*/
@ -54,28 +62,10 @@ public class QuestionVo {
private String questionUrl;
/**
*
*
*/
@ApiModelProperty(value = "提问时间")
private Date createTime;
// /**
// * 答复用户id
// */
// @ApiModelProperty(value = "答复用户id")
// private Long replyUserId;
//
// /**
// * 回复内容
// */
// @ApiModelProperty(value = "回复内容")
// private String reply;
//
// /**
// * 回复时间
// */
// @ApiModelProperty(value = "回复时间")
// private Date replyTime;
@ApiModelProperty(value = "评论")
private List<QuestionCommentVo> commentList;
/**
*
@ -86,14 +76,21 @@ public class QuestionVo {
/**
* 0 1
*/
@ApiModelProperty(value = "提问类型 0免费 1付费")
private Integer type;
/**
*
*/
@ApiModelProperty(value = "付费金额 当提问类型为付费时必填")
private Double amount;
/**
*
*/
@ApiModelProperty(value = "提问时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;

View File

@ -65,4 +65,7 @@ public interface CommunityMapper extends BaseMapper<Community> {
@InterceptorIgnore(tenantLine = "true")
void deleteCommunity(@Param("tenantId") Long tenantId, @Param("communityId") Long communityId);
@InterceptorIgnore(tenantLine = "true")
Community getCommunity(@Param("tenantId") Long tenantId, @Param("communityId") Long communityId);
}

View File

@ -12,6 +12,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -51,4 +52,12 @@ public interface CommunityUserMapper extends BaseMapper<CommunityUser> {
List<CommunityUser> getAllCommunityUser();
void updateManageCommunityUser(@Param("manageCommunityUser") CommunityUser manageCommunityUser);
@InterceptorIgnore(tenantLine = "true")
Date getExpireTime(@Param("tenantId") Long tenantId,
@Param("communityId") Long communityId,
@Param("userId") Long userId);
@InterceptorIgnore(tenantLine = "true")
List<String> getCommunityUserAvatar(@Param("tenantId") Long tenantId, @Param("communityId") Long communityId);
}

View File

@ -3,6 +3,7 @@ package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.PublishCommentLike;
import com.mcwl.communityCenter.domain.dto.CommentLikeDetailRes;
import com.mcwl.communityCenter.domain.dto.PublishCommentLikeRes;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -31,4 +32,8 @@ public interface PublishCommentLikeMapper extends BaseMapper<PublishCommentLike>
@InterceptorIgnore(tenantLine = "true")
PublishCommentLike selectLike(@Param("publishCommentLikeRes") PublishCommentLikeRes publishCommentLikeRes,
@Param("userId") Long userId);
@InterceptorIgnore(tenantLine = "true")
PublishCommentLike publishCommentLike(@Param("commentLikeDetailRes") CommentLikeDetailRes commentLikeDetailRes,
@Param("userId") Long userId);
}

View File

@ -20,23 +20,23 @@ import java.util.List;
public interface PublishCommentMapper extends BaseMapper<PublishComment> {
@InterceptorIgnore(tenantLine = "true")
List<PublishComment> selectByTenantIdAndCommunityIdAndOperatorId(@Param("tenantId")
List<PublishComment> selectByTenantIdAndCommunityIdAndPublishIdList(@Param("tenantId")
Long tenantId,
@Param("communityId")
Long communityId,
@Param("operatorId")
Long operatorId);
@Param("publishId")
Long publishId);
@InterceptorIgnore(tenantLine = "true")
PublishComment selectByIdAndTenantIdAndCommunityIdAndOperatorId(@Param("id")
PublishComment selectByIdAndTenantIdAndCommunityIdAndPublishId(@Param("id")
Long id,
@Param("tenantId")
Long tenantId,
@Param("communityId")
Long communityId,
@Param("operatorId")
Long operatorId);
@Param("publishId")
Long publishId);
@InterceptorIgnore(tenantLine = "true")
Integer deleteByIdAndTenantIdAndCommunityIdAndOperatorId(@Param("id")
@ -45,6 +45,6 @@ public interface PublishCommentMapper extends BaseMapper<PublishComment> {
Long tenantId,
@Param("communityId")
Long communityId,
@Param("operatorId")
Long operatorId);
@Param("publishId")
Long publishId);
}

View File

@ -46,7 +46,7 @@ public interface PublishMapper extends BaseMapper<Publish> {
void elitePublish(@Param("communityId") Long communityId, @Param("publishId") Long publishId);
@InterceptorIgnore(tenantLine = "true")
List<Publish> publishList(Page<Publish> page, @Param("publishPageRes") PublishPageRes publishPageRes);
List<PublishVo> publishList(Page<Publish> page, @Param("publishPageRes") PublishPageRes publishPageRes);
@InterceptorIgnore(tenantLine = "true")
List<PublishVo> myPublishList(Page<Publish> page,
@ -55,4 +55,7 @@ public interface PublishMapper extends BaseMapper<Publish> {
@InterceptorIgnore(tenantLine = "true")
void insertPublish(@Param("publish") Publish publish);
@InterceptorIgnore(tenantLine = "true")
Publish getLastPublish(@Param("tenantId") Long tenantId, @Param("communityId") Long communityId);
}

View File

@ -0,0 +1,21 @@
package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.PublishReport;
import com.mcwl.communityCenter.domain.dto.MyPublishPageRes;
import com.mcwl.communityCenter.domain.dto.PublishPageRes;
import com.mcwl.communityCenter.domain.vo.PublishVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface PublishReportMapper extends BaseMapper<PublishReport> {
@InterceptorIgnore(tenantLine = "true")
void insertReport(@Param("publishReport") PublishReport publishReport);
}

View File

@ -6,10 +6,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.QuestionComment;
import com.mcwl.communityCenter.domain.dto.QuestionDetailRes;
import com.mcwl.communityCenter.domain.vo.QuestionCommentVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import javax.validation.constraints.NotNull;
import java.util.List;
@Mapper
public interface QuestionCommentMapper extends BaseMapper<QuestionComment> {
@ -33,4 +36,7 @@ public interface QuestionCommentMapper extends BaseMapper<QuestionComment> {
Long questionId,
@Param("commentId")
Long commentId);
@InterceptorIgnore(tenantLine = "true")
List<QuestionCommentVo> getComment(@Param("questionDetailRes") QuestionDetailRes questionDetailRes);
}

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
import com.mcwl.communityCenter.domain.vo.QuestionVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -15,13 +16,13 @@ import java.util.List;
@Mapper
public interface QuestionMapper extends BaseMapper<Question> {
@InterceptorIgnore(tenantLine = "true")
Page<Question> list(Page<Question> page,
@NotNull(message = "租户不能为空")
@Param("tenantId")
Long tenantId,
@NotNull(message = "社区不能为空")
@Param("communityId")
Long communityId);
List<QuestionVo> list(Page<Question> page,
@NotNull(message = "租户不能为空")
@Param("tenantId")
Long tenantId,
@NotNull(message = "社区不能为空")
@Param("communityId")
Long communityId);
@InterceptorIgnore(tenantLine = "true")
Question selectByIdAndTenantIdAndCommunityId(@Param("id")
@ -33,15 +34,15 @@ public interface QuestionMapper extends BaseMapper<Question> {
@InterceptorIgnore(tenantLine = "true")
Page<Question> listImage(Page<Question> page,
@NotNull(message = "租户不能为空")
@Param("tenantId")
Long tenantId,
@NotNull(message = "社区不能为空")
@Param("communityId")
Long communityId);
@NotNull(message = "租户不能为空")
@Param("tenantId")
Long tenantId,
@NotNull(message = "社区不能为空")
@Param("communityId")
Long communityId);
@InterceptorIgnore(tenantLine = "true")
List<Question> myQuestionList(Page<Question> page,
List<QuestionVo> myQuestionList(Page<Question> page,
@Param("questionPageRes") QuestionPageRes questionPageRes,
@Param("userId") Long userId);
}

View File

@ -41,7 +41,7 @@ public interface CommunityService extends IService<Community> {
*/
R<Object> isJoinCommunity(JoinCommunityRes joinCommunityRes);
CommunityDetailVo getCommunityDetail(Long communityId);
CommunityDetailVo getCommunityDetail(Long tenantId, Long communityId);
void editCommunity(@Valid EditCommunityRes editCommunityRes);
}

View File

@ -1,7 +1,9 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.domain.R;
import com.mcwl.communityCenter.domain.PublishCommentLike;
import com.mcwl.communityCenter.domain.dto.CommentLikeDetailRes;
import com.mcwl.communityCenter.domain.dto.PublishCommentLikeRes;
import org.springframework.stereotype.Service;
@ -19,5 +21,7 @@ import javax.validation.constraints.NotNull;
@Service
public interface PublishCommentLikeService extends IService<PublishCommentLike> {
void like(PublishCommentLikeRes publishCommentLikeRes);
R<Integer> like(PublishCommentLikeRes publishCommentLikeRes);
PublishCommentLike publishCommentLike(CommentLikeDetailRes commentLikeDetailRes, Long userId);
}

View File

@ -1,14 +1,12 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.domain.R;
import com.mcwl.communityCenter.domain.dto.CommentDelRes;
import com.mcwl.communityCenter.domain.dto.CommentDetailRes;
import com.mcwl.communityCenter.domain.dto.CommentRes;
import com.mcwl.communityCenter.domain.vo.CommentVo;
import com.mcwl.communityCenter.domain.PublishComment;
import org.springframework.http.ResponseEntity;
import javax.validation.Valid;
import java.util.List;

View File

@ -0,0 +1,17 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.domain.R;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.PublishReport;
import com.mcwl.communityCenter.domain.dto.*;
import com.mcwl.communityCenter.domain.vo.PublishVo;
import javax.validation.Valid;
public interface PublishReportService extends IService<PublishReport> {
void saveReport(PublishReport publishReport);
}

View File

@ -2,6 +2,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.domain.BaseEntity;
import com.mcwl.common.core.domain.R;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
@ -39,4 +40,8 @@ public interface PublishService extends IService<Publish> {
void collectPublish(@Valid PublishCollectRes publishCollectRes);
TableDataInfo getPersonHomeList(@Valid PersonHomePageRes personHomePageRes);
void reportPublish(@Valid PublishReportRes publishReportRes);
Publish getLastPublish(Long tenantId, Long communityId);
}

View File

@ -7,9 +7,11 @@ import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.QuestionComment;
import com.mcwl.communityCenter.domain.dto.*;
import com.mcwl.communityCenter.domain.vo.QuestionCommentVo;
import com.mcwl.communityCenter.domain.vo.QuestionVo;
import javax.validation.Valid;
import java.util.List;
public interface QuestionCommentService extends IService<QuestionComment> {
@ -18,4 +20,6 @@ public interface QuestionCommentService extends IService<QuestionComment> {
TableDataInfo listByPage(@Valid QuestionCommentPageRes questionCommentPageRes);
R<Object> adopt(@Valid QuestionCommentAdoptRes questionCommentAdoptRes);
List<QuestionCommentVo> getComment(QuestionDetailRes questionDetailRes);
}

View File

@ -17,6 +17,7 @@ import com.mcwl.communityCenter.constant.AdviceConstant;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.CommunityAdvice;
import com.mcwl.communityCenter.domain.CommunityUser;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.dto.*;
import com.mcwl.communityCenter.domain.vo.CommunityDetailVo;
import com.mcwl.communityCenter.domain.vo.CommunityVo;
@ -24,6 +25,7 @@ import com.mcwl.communityCenter.mapper.CommunityAdviceMapper;
import com.mcwl.communityCenter.mapper.CommunityMapper;
import com.mcwl.communityCenter.mapper.CommunityUserMapper;
import com.mcwl.communityCenter.service.CommunityService;
import com.mcwl.communityCenter.service.PublishService;
import com.mcwl.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -35,6 +37,8 @@ import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@ -48,6 +52,8 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
private final CommunityAdviceMapper communityAdviceMapper;
private final PublishService publishService;
@Override
public TableDataInfo listByPage(CommunityListPageRes communityListPageRes) {
@ -194,13 +200,13 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
CommunityUser communityUser = communityUserMapper.selectCommunityUser(tenantId, communityId, userId);
if (Objects.isNull(communityUser)) {
return R.fail(HttpStatus.SHOW_ERROR_MSG,"您不是该社区成员");
return R.fail(HttpStatus.SHOW_ERROR_MSG, "您不是该社区成员");
}
Integer communityJoinNum = communityUserMapper.getJoinNum(tenantId, communityId);
if (communityUser.getUserType() == 2 && communityJoinNum > 1) {
return R.fail(HttpStatus.SHOW_ERROR_MSG,"社区还有成员,无法退出");
return R.fail(HttpStatus.SHOW_ERROR_MSG, "社区还有成员,无法退出");
}
baseMapper.quitCommunity(tenantId, communityId, userId);
@ -219,9 +225,41 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
}
@Override
public CommunityDetailVo getCommunityDetail(Long communityId) {
Community community = baseMapper.selectById(communityId);
return BeanUtil.toBean(community, CommunityDetailVo.class);
public CommunityDetailVo getCommunityDetail(Long tenantId, Long communityId) {
// Community community = baseMapper.selectById(communityId);
Community community = baseMapper.getCommunity(tenantId, communityId);
CommunityDetailVo communityDetailVo = BeanUtil.toBean(community, CommunityDetailVo.class);
communityDetailVo.setUserNum(getCommunityJoinNum(communityId));
communityDetailVo.setUpdateNum(getCommunityPublishNum(communityId));
// 当前时间和创建时间差
LocalDate currentLocalDate = LocalDate.now(ZoneId.systemDefault());
LocalDate createLocalDate = community.getCreateTime().toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
long daysBetween = ChronoUnit.DAYS.between(createLocalDate, currentLocalDate);
communityDetailVo.setCreateDay(daysBetween);
Publish lastPublish = publishService.getLastPublish(tenantId, communityId);
if (Objects.nonNull(lastPublish)) {
communityDetailVo.setLastUpdateTime(lastPublish.getCreateTime());
} else {
communityDetailVo.setLastUpdateTime(community.getCreateTime());
}
List<String> avatarList = communityUserMapper.getCommunityUserAvatar(tenantId, communityId);
communityDetailVo.setAvatarList(avatarList);
// 获取当前用户到期时间
communityDetailVo.setExpireTime(communityUserMapper.getExpireTime(tenantId, communityId, SecurityUtils.getUserId()));
return communityDetailVo;
}
@Override
@ -232,36 +270,12 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
private TableDataInfo getCommunityVoTableDataInfo(List<Community> communityList, Long total) {
List<Community> myJoinCommunityList = baseMapper.getMyJoinCommunity(new Page<>(1, 100),
SecurityUtils.getUserId(),
new JoinCommunityListPageRes());
// 查询社区加入人数以map形式返回key为社区idvalue为加入人数
Map<String, Object> communityJoinNumMap = redisCache.getCacheMap("communityJoinNumMap");
if (communityJoinNumMap.isEmpty()) {
Map<Long, Map<String, Object>> joinMap = baseMapper.selectCommunityJoinNum();
if (joinMap != null && !joinMap.isEmpty()) {
joinMap.forEach((key, value) -> {
communityJoinNumMap.put(key.toString(), Integer.valueOf(value.get("joinNum").toString()));
});
redisCache.setCacheMap("communityJoinNumMap", communityJoinNumMap);
} else {
redisCache.setCacheMap("communityJoinNumMap", new HashMap<>());
}
redisCache.expire("communityJoinNumMap", 1, TimeUnit.HOURS);
}
// 查询社区发布数以map形式返回key为社区idvalue为发布数
Map<String, Object> communityPublishNumMap = redisCache.getCacheMap("communityPublishNumMap");
if (communityPublishNumMap.isEmpty()) {
Map<Long, Map<String, Object>> publishMap = baseMapper.selectCommunityPublishNum();
if (publishMap != null && !publishMap.isEmpty()) {
publishMap.forEach((key, value) -> {
communityPublishNumMap.put(key.toString(), Integer.valueOf(value.get("publishNum").toString()));
});
redisCache.setCacheMap("communityPublishNumMap", communityPublishNumMap);
} else {
redisCache.setCacheMap("communityPublishNumMap", new HashMap<>());
}
redisCache.expire("communityPublishNumMap", 1, TimeUnit.HOURS);
}
Map<Long, Community> myJoinCommunityMap = myJoinCommunityList.stream()
.collect(Collectors.toMap(Community::getId, Function.identity()));
List<CommunityVo> communityVoList = new ArrayList<>();
@ -284,8 +298,15 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
communityVo.setAvatar(sysUser.getAvatar());
communityVo.setNickName(sysUser.getNickName());
communityVo.setCreateDay(daysBetween);
communityVo.setJoinNum((Integer) communityJoinNumMap.getOrDefault(community.getId().toString(), 0));
communityVo.setPublishNum((Integer) communityPublishNumMap.getOrDefault(community.getId().toString(), 0));
communityVo.setJoinNum(this.getCommunityJoinNum(community.getId()));
communityVo.setPublishNum(this.getCommunityPublishNum(community.getId()));
if (myJoinCommunityMap.get(community.getId()) != null) {
communityVo.setIsJoin(1);
} else {
communityVo.setIsJoin(0);
}
communityVoList.add(communityVo);
}
@ -299,4 +320,43 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
}
private int getCommunityJoinNum(Long communityId) {
// 查询社区加入人数以map形式返回key为社区idvalue为加入人数
Map<String, Object> communityJoinNumMap = redisCache.getCacheMap("communityJoinNumMap");
if (communityJoinNumMap.isEmpty()) {
Map<Long, Map<String, Object>> joinMap = baseMapper.selectCommunityJoinNum();
if (joinMap != null && !joinMap.isEmpty()) {
joinMap.forEach((key, value) -> {
communityJoinNumMap.put(key.toString(), Integer.valueOf(value.get("joinNum").toString()));
});
redisCache.setCacheMap("communityJoinNumMap", communityJoinNumMap);
} else {
redisCache.setCacheMap("communityJoinNumMap", new HashMap<>());
}
redisCache.expire("communityJoinNumMap", 1, TimeUnit.HOURS);
}
return Integer.parseInt(communityJoinNumMap.getOrDefault(communityId.toString(), 0).toString());
}
private int getCommunityPublishNum(Long communityId) {
// 查询社区发布数以map形式返回key为社区idvalue为发布数
Map<String, Object> communityPublishNumMap = redisCache.getCacheMap("communityPublishNumMap");
if (communityPublishNumMap.isEmpty()) {
Map<Long, Map<String, Object>> publishMap = baseMapper.selectCommunityPublishNum();
if (publishMap != null && !publishMap.isEmpty()) {
publishMap.forEach((key, value) -> {
communityPublishNumMap.put(key.toString(), Integer.valueOf(value.get("publishNum").toString()));
});
redisCache.setCacheMap("communityPublishNumMap", communityPublishNumMap);
} else {
redisCache.setCacheMap("communityPublishNumMap", new HashMap<>());
}
redisCache.expire("communityPublishNumMap", 1, TimeUnit.HOURS);
}
return Integer.parseInt(communityPublishNumMap.getOrDefault(communityId.toString(), 0).toString());
}
}

View File

@ -10,18 +10,12 @@ 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.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.PublishCollect;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.*;
import com.mcwl.communityCenter.domain.dto.*;
import com.mcwl.communityCenter.domain.vo.CommentVo;
import com.mcwl.communityCenter.domain.vo.PersonHomeVo;
import com.mcwl.communityCenter.domain.vo.PublishVo;
import com.mcwl.communityCenter.mapper.CommunityMapper;
import com.mcwl.communityCenter.mapper.InviteMapper;
import com.mcwl.communityCenter.mapper.PublishCollectMapper;
import com.mcwl.communityCenter.mapper.PublishMapper;
import com.mcwl.communityCenter.mapper.*;
import com.mcwl.communityCenter.service.PublishCollectService;
import com.mcwl.communityCenter.service.PublishCommentService;
import com.mcwl.communityCenter.service.PublishService;
@ -37,6 +31,9 @@ public class PublishCollectServiceImpl extends ServiceImpl<PublishCollectMapper,
private final PublishCommentService publishCommentService;
private final PublishLikeMapper publishLikeMapper;
@Override
public TableDataInfo myCollectList(MyPublishCollectPageRes myPublishCollectPageRes) {
@ -51,7 +48,7 @@ public class PublishCollectServiceImpl extends ServiceImpl<PublishCollectMapper,
CommentDetailRes commentDetailRes = new CommentDetailRes();
commentDetailRes.setTenantId(myPublishCollectPageRes.getTenantId());
commentDetailRes.setCommunityId(myPublishCollectPageRes.getCommunityId());
commentDetailRes.setOperatorId(publishVo.getId());
commentDetailRes.setPublishId(publishVo.getId());
List<CommentVo> commentVoList = publishCommentService.getComment(commentDetailRes).getData();
personHomeVo.setCommentList(commentVoList);

View File

@ -2,18 +2,23 @@ package com.mcwl.communityCenter.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.constant.HttpStatus;
import com.mcwl.common.core.domain.R;
import com.mcwl.common.exception.ServiceException;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.common.utils.StringUtils;
import com.mcwl.communityCenter.constant.AdviceConstant;
import com.mcwl.communityCenter.domain.CommunityAdvice;
import com.mcwl.communityCenter.domain.PublishComment;
import com.mcwl.communityCenter.domain.PublishCommentLike;
import com.mcwl.communityCenter.domain.*;
import com.mcwl.communityCenter.domain.dto.CommentLikeDetailRes;
import com.mcwl.communityCenter.domain.dto.PublishCommentLikeRes;
import com.mcwl.communityCenter.mapper.CommunityAdviceMapper;
import com.mcwl.communityCenter.mapper.CommunityUserMapper;
import com.mcwl.communityCenter.mapper.PublishCommentLikeMapper;
import com.mcwl.communityCenter.mapper.PublishCommentMapper;
import com.mcwl.communityCenter.service.CommunityAdviceService;
import com.mcwl.communityCenter.service.PublishCommentLikeService;
import com.mcwl.communityCenter.service.PublishCommentService;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.implementation.bytecode.Throw;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -33,14 +38,90 @@ import java.util.Objects;
@RequiredArgsConstructor
public class PublishCommentLikeServiceImpl extends ServiceImpl<PublishCommentLikeMapper, PublishCommentLike> implements PublishCommentLikeService {
private final PublishCommentMapper publishCommentMapper;
private final CommunityUserMapper communityUserMapper;
private final CommunityAdviceMapper communityAdviceMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void like(PublishCommentLikeRes publishCommentLikeRes) {
public R<Integer> like(PublishCommentLikeRes publishCommentLikeRes) {
Long tenantId = publishCommentLikeRes.getTenantId();
Long communityId = publishCommentLikeRes.getCommunityId();
Long publishId = publishCommentLikeRes.getPublishId();
Long commentId = publishCommentLikeRes.getCommentId();
PublishComment publishComment = publishCommentMapper.selectByIdAndTenantIdAndCommunityIdAndPublishId(commentId, tenantId, communityId, publishId);
if (Objects.isNull(publishComment)) {
throw new ServiceException("点赞失败,该内容不存在", HttpStatus.SHOW_ERROR_MSG);
}
CommunityUser communityUser = communityUserMapper.selectCommunityUser(tenantId,
communityId, SecurityUtils.getUserId());
if (Objects.isNull(communityUser)) {
throw new ServiceException("点赞失败,您不是该社区成员", HttpStatus.SHOW_ERROR_MSG);
}
if ("1".equals(communityUser.getIsBlack())) {
throw new ServiceException("点赞失败,您已被拉黑", HttpStatus.SHOW_ERROR_MSG);
}
PublishCommentLike publishCommentLike = baseMapper.selectLike(publishCommentLikeRes, SecurityUtils.getUserId());
if (Objects.isNull(publishCommentLike)) {
publishCommentLike = new PublishCommentLike();
publishCommentLike.setTenantId(tenantId);
publishCommentLike.setCommunityId(communityId);
publishCommentLike.setPublishId(publishId);
publishCommentLike.setPublishCommentId(commentId);
publishCommentLike.setUserId(SecurityUtils.getUserId());
baseMapper.insert(publishCommentLike);
publishComment.setLikeNum(publishComment.getLikeNum() + 1);
publishCommentMapper.updateById(publishComment);
this.addLikeAdvice(publishComment);
return R.ok(publishComment.getLikeNum());
}
if (Objects.equals(publishCommentLike.getDelFlag(), "0")) {
publishCommentLike.setDelFlag("2");
int likeNum = publishComment.getLikeNum() - 1;
likeNum = Math.max(likeNum, 0);
publishComment.setLikeNum(likeNum);
} else {
publishCommentLike.setDelFlag("0");
publishComment.setLikeNum(publishComment.getLikeNum() + 1);
this.addLikeAdvice(publishComment);
}
baseMapper.updateDelFlagById(publishCommentLike);
publishCommentMapper.updateById(publishComment);
return R.ok(publishComment.getLikeNum());
}
@Override
public PublishCommentLike publishCommentLike(CommentLikeDetailRes commentLikeDetailRes, Long userId) {
return baseMapper.publishCommentLike(commentLikeDetailRes, userId);
}
private void addLikeAdvice(PublishComment publishComment) {
CommunityAdvice communityAdvice = new CommunityAdvice();
communityAdvice.setTenantId(publishComment.getTenantId());
communityAdvice.setCommunityId(publishComment.getCommunityId());
communityAdvice.setSendUserId(SecurityUtils.getUserId());
communityAdvice.setAdviceType(AdviceConstant.LIKE);
communityAdvice.setUserId(publishComment.getUserId());
communityAdvice.setContent(StringUtils.format("{}点赞了你的评论{}",
SecurityUtils.getLoginUser().getUser().getNickName(), publishComment.getContent()));
communityAdviceMapper.insert(communityAdvice);
}

View File

@ -1,36 +1,30 @@
package com.mcwl.communityCenter.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.R;
import com.mcwl.common.core.domain.entity.SysUser;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.communityCenter.domain.CommunityUser;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.*;
import com.mcwl.communityCenter.domain.dto.CommentDelRes;
import com.mcwl.communityCenter.domain.dto.CommentDetailRes;
import com.mcwl.communityCenter.domain.dto.CommentLikeDetailRes;
import com.mcwl.communityCenter.domain.dto.CommentRes;
import com.mcwl.communityCenter.domain.vo.CommentVo;
import com.mcwl.communityCenter.domain.PublishComment;
import com.mcwl.communityCenter.domain.PublishCommentLike;
import com.mcwl.communityCenter.mapper.CommunityUserMapper;
import com.mcwl.communityCenter.mapper.PublishCommentLikeMapper;
import com.mcwl.communityCenter.mapper.PublishCommentMapper;
import com.mcwl.communityCenter.mapper.PublishMapper;
import com.mcwl.communityCenter.service.PublishCommentLikeService;
import com.mcwl.communityCenter.service.PublishCommentService;
import com.mcwl.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
*
@ -48,31 +42,69 @@ public class PublishCommentServiceImpl extends ServiceImpl<PublishCommentMapper,
private final PublishCommentMapper publishCommentMapper;
private final PublishCommentLikeMapper likeMapper;
private final ISysUserService sysUserService;
private final PublishMapper publishMapper;
private final CommunityUserMapper communityUserMapper;
private final PublishCommentLikeService publishCommentLikeService;
@Override
public R<List<CommentVo>> getComment(CommentDetailRes commentDetailRes) {
Long tenantId = commentDetailRes.getTenantId();
Long communityId = commentDetailRes.getCommunityId();
Long operatorId = commentDetailRes.getOperatorId();
Long publishId = commentDetailRes.getPublishId();
// 查询评论
List<PublishComment> publishComment = publishCommentMapper
.selectByTenantIdAndCommunityIdAndOperatorId(tenantId, communityId, operatorId);
.selectByTenantIdAndCommunityIdAndPublishIdList(tenantId, communityId, publishId);
List<CommentVo> commentVoList = BeanUtil.copyToList(publishComment, CommentVo.class);
Map<Long, CommentVo> commentVoMap = commentVoList.stream()
.collect(Collectors.toMap(CommentVo::getId, Function.identity()));
// 收集所有需要查询的用户ID包括回复对象ID
Set<Long> userIds = new HashSet<>();
for (CommentVo commentVo : commentVoList) {
userIds.add(commentVo.getUserId());
}
// 批量查询用户信息并建立缓存映射
Map<Long, SysUser> userMap = sysUserService.selectUserByIds(userIds).stream()
.collect(Collectors.toMap(SysUser::getUserId, Function.identity()));
for (CommentVo commentVo : commentVoList) {
Long userId = commentVo.getUserId();
SysUser sysUser = sysUserService.selectUserById(userId);
SysUser sysUser = userMap.get(userId);
commentVo.setUserName(sysUser.getNickName());
commentVo.setUserAvatar(sysUser.getAvatar());
if (commentVo.getParentId() != null) {
Long parentId = commentVo.getParentId();
CommentVo parentCommentVo = commentVoMap.get(parentId);
if (Objects.nonNull(parentCommentVo)) {
SysUser su = userMap.get(parentCommentVo.getUserId());
commentVo.setReplyUserName(su.getNickName());
}
}
CommentLikeDetailRes commentLikeDetailRes = new CommentLikeDetailRes();
commentLikeDetailRes.setTenantId(tenantId);
commentLikeDetailRes.setCommunityId(communityId);
commentLikeDetailRes.setPublishId(publishId);
commentLikeDetailRes.setPublishCommentId(commentVo.getId());
PublishCommentLike publishCommentLike = publishCommentLikeService.publishCommentLike(commentLikeDetailRes, SecurityUtils.getUserId());
if (Objects.isNull(publishCommentLike)) {
commentVo.setIsLike(0);
} else {
String delFlag = publishCommentLike.getDelFlag();
if (Objects.equals(delFlag, "0")) {
commentVo.setIsLike(1);
} else {
commentVo.setIsLike(0);
}
}
}
return R.ok(commentVoList);
@ -82,28 +114,27 @@ public class PublishCommentServiceImpl extends ServiceImpl<PublishCommentMapper,
public R<Object> addComment(CommentRes commentRes) {
Long tenantId = commentRes.getTenantId();
Long communityId = commentRes.getCommunityId();
Long operatorId = commentRes.getOperatorId();
Long publishId = commentRes.getPublishId();
CommunityUser communityUser = communityUserMapper.selectCommunityUser(tenantId, communityId, SecurityUtils.getUserId());
if (Objects.isNull(communityUser)) {
return R.fail(HttpStatus.SHOW_ERROR_MSG,"评论失败,您不是该社区成员");
return R.fail(HttpStatus.SHOW_ERROR_MSG, "评论失败,您不是该社区成员");
}
if ("1".equals(communityUser.getIsBlack())) {
return R.fail(HttpStatus.SHOW_ERROR_MSG,"评论失败,您已被拉黑");
return R.fail(HttpStatus.SHOW_ERROR_MSG, "评论失败,您已被拉黑");
}
Publish publish = publishMapper.selectByIdAndTenantIdAndCommunityId(operatorId, tenantId, communityId);
Publish publish = publishMapper.selectByIdAndTenantIdAndCommunityId(publishId, tenantId, communityId);
if (Objects.isNull(publish)) {
return R.fail(HttpStatus.SHOW_ERROR_MSG,"评论失败,该内容不存在");
return R.fail(HttpStatus.SHOW_ERROR_MSG, "评论失败,该内容不存在");
}
PublishComment publishComment = new PublishComment();
BeanUtil.copyProperties(commentRes, publishComment);
publishComment.setPublishId(operatorId);
// publishComment.setPublishId(publishId);
publishComment.setUserId(SecurityUtils.getUserId());
publishComment.setType(0);
publishCommentMapper.insert(publishComment);
@ -115,15 +146,15 @@ public class PublishCommentServiceImpl extends ServiceImpl<PublishCommentMapper,
Long id = commentDelRes.getId();
Long tenantId = commentDelRes.getTenantId();
Long communityId = commentDelRes.getCommunityId();
Long operatorId = commentDelRes.getOperatorId();
Long publishId = commentDelRes.getPublishId();
PublishComment publishComment = publishCommentMapper.selectByIdAndTenantIdAndCommunityIdAndOperatorId(id, tenantId, communityId, operatorId);
PublishComment publishComment = publishCommentMapper.selectByIdAndTenantIdAndCommunityIdAndPublishId(id, tenantId, communityId, publishId);
if (Objects.isNull(publishComment)) {
return R.fail(HttpStatus.SHOW_ERROR_MSG,"删除失败,该评论不存在");
return R.fail(HttpStatus.SHOW_ERROR_MSG, "删除失败,该评论不存在");
}
publishCommentMapper.deleteByIdAndTenantIdAndCommunityIdAndOperatorId(id, tenantId, communityId, operatorId);
publishCommentMapper.deleteByIdAndTenantIdAndCommunityIdAndOperatorId(id, tenantId, communityId, publishId);
return R.ok(null, "删除成功");
}

View File

@ -35,17 +35,20 @@ public class PublishLikeServiceImpl extends ServiceImpl<PublishLikeMapper, Publi
@Override
public void like(PublishLikeRes publishLikeRes) {
Publish publish = publishMapper.selectByIdAndTenantIdAndCommunityId(publishLikeRes.getPublishId(),
publishLikeRes.getTenantId(),
publishLikeRes.getCommunityId());
Long publishId = publishLikeRes.getPublishId();
Long tenantId = publishLikeRes.getTenantId();
Long communityId = publishLikeRes.getCommunityId();
Publish publish = publishMapper.selectByIdAndTenantIdAndCommunityId(publishId,
tenantId,
communityId);
if (Objects.isNull(publish)) {
throw new ServiceException("点赞失败,该内容不存在", HttpStatus.SHOW_ERROR_MSG);
}
CommunityUser communityUser = communityUserMapper.selectCommunityUser(publishLikeRes.getTenantId(),
publishLikeRes.getCommunityId(), SecurityUtils.getUserId());
CommunityUser communityUser = communityUserMapper.selectCommunityUser(tenantId,
communityId, SecurityUtils.getUserId());
if (Objects.isNull(communityUser)) {
throw new ServiceException("点赞失败,您不是该社区成员", HttpStatus.SHOW_ERROR_MSG);
@ -60,9 +63,9 @@ public class PublishLikeServiceImpl extends ServiceImpl<PublishLikeMapper, Publi
if (Objects.isNull(publishLike)) {
publishLike = PublishLike.builder()
.tenantId(publishLikeRes.getTenantId())
.communityId(publishLikeRes.getCommunityId())
.publishId(publishLikeRes.getPublishId())
.tenantId(tenantId)
.communityId(communityId)
.publishId(publishId)
.userId(SecurityUtils.getUserId())
.build();
baseMapper.insert(publishLike);
@ -95,7 +98,7 @@ public class PublishLikeServiceImpl extends ServiceImpl<PublishLikeMapper, Publi
communityAdvice.setTenantId(publish.getTenantId());
communityAdvice.setCommunityId(publish.getCommunityId());
communityAdvice.setSendUserId(SecurityUtils.getUserId());
communityAdvice.setAdviceType(AdviceConstant.COMMUNITY_NOTICE);
communityAdvice.setAdviceType(AdviceConstant.LIKE);
communityAdvice.setUserId(publish.getUserId());
communityAdvice.setContent(StringUtils.format("{}点赞了你发布的{}",
SecurityUtils.getLoginUser().getUser().getNickName(), publish.getContent()));

View File

@ -0,0 +1,44 @@
package com.mcwl.communityCenter.service.impl;
import cn.hutool.core.bean.BeanUtil;
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.R;
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.exception.ServiceException;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.common.utils.StringUtils;
import com.mcwl.communityCenter.constant.AdviceConstant;
import com.mcwl.communityCenter.domain.*;
import com.mcwl.communityCenter.domain.dto.*;
import com.mcwl.communityCenter.domain.vo.CommentVo;
import com.mcwl.communityCenter.domain.vo.PersonHomeVo;
import com.mcwl.communityCenter.domain.vo.PublishVo;
import com.mcwl.communityCenter.mapper.*;
import com.mcwl.communityCenter.service.*;
import com.mcwl.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@Service
@RequiredArgsConstructor
public class PublishReportServiceImpl extends ServiceImpl<PublishReportMapper, PublishReport> implements PublishReportService {
@Override
public void saveReport(PublishReport publishReport) {
baseMapper.insertReport(publishReport);
}
}

View File

@ -58,6 +58,7 @@ public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> impl
private final QuestionService questionService;
private final PublishReportMapper publishReportMapper;
@Override
@ -215,18 +216,27 @@ public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> impl
public TableDataInfo publishList(PublishPageRes publishPageRes) {
Page<Publish> page = this.initPage(publishPageRes);
List<Publish> publishList = baseMapper.publishList(page, publishPageRes);
List<PublishVo> publishVoList = baseMapper.publishList(page, publishPageRes);
List<PublishVo> publishVoList = BeanUtil.copyToList(publishList, PublishVo.class);
for (PublishVo publishVo : publishVoList) {
SysUser sysUser = sysUserService.selectUserById(publishVo.getUserId());
publishVo.setUserName(sysUser.getNickName());
publishVo.setAvatar(sysUser.getAvatar());
CommentDetailRes commentDetailRes = new CommentDetailRes();
commentDetailRes.setTenantId(publishVo.getTenantId());
commentDetailRes.setCommunityId(publishVo.getCommunityId());
commentDetailRes.setPublishId(publishVo.getId());
List<CommentVo> commentList = publishCommentService.getComment(commentDetailRes).getData();
PublishLikeRes publishLikeRes = new PublishLikeRes(publishVo.getTenantId(), publishVo.getCommunityId(), publishVo.getId());
PublishLike publishLike = publishLikeMapper.selectPublishLike(publishLikeRes, SecurityUtils.getUserId());
if (Objects.nonNull(publishLike)) {
publishVo.setIsLike(1);
String delFlag = publishLike.getDelFlag();
if ("0".equals(delFlag)) {
publishVo.setIsLike(1);
} else {
publishVo.setIsLike(0);
}
} else {
publishVo.setIsLike(0);
}
@ -234,11 +244,18 @@ public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> impl
PublishCollectRes publishCollectRes = new PublishCollectRes(publishVo.getTenantId(), publishVo.getCommunityId(), publishVo.getId());
PublishCollect publishCollect = publishCollectService.getPublishCollect(publishCollectRes, SecurityUtils.getUserId());
if (Objects.nonNull(publishCollect)) {
publishVo.setIsCollect(1);
String delFlag = publishCollect.getDelFlag();
if ("0".equals(delFlag)) {
publishVo.setIsCollect(1);
} else {
publishVo.setIsCollect(0);
}
} else {
publishVo.setIsCollect(0);
}
publishVo.setCommentList(commentList);
}
@ -266,7 +283,7 @@ public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> impl
CommentDetailRes commentDetailRes = new CommentDetailRes();
commentDetailRes.setTenantId(myPublishPageRes.getTenantId());
commentDetailRes.setCommunityId(myPublishPageRes.getCommunityId());
commentDetailRes.setOperatorId(publishVo.getId());
commentDetailRes.setPublishId(publishVo.getId());
List<CommentVo> commentVoList = publishCommentService.getComment(commentDetailRes).getData();
personHomeVo.setCommentList(commentVoList);
@ -326,7 +343,7 @@ public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> impl
communityAdvice.setTenantId(publish.getTenantId());
communityAdvice.setCommunityId(publish.getCommunityId());
communityAdvice.setSendUserId(SecurityUtils.getUserId());
communityAdvice.setAdviceType(AdviceConstant.COMMUNITY_NOTICE);
communityAdvice.setAdviceType(AdviceConstant.LIKE);
communityAdvice.setUserId(publish.getUserId());
communityAdvice.setContent(StringUtils.format("{}收藏了你发布的{}",
SecurityUtils.getLoginUser().getUser().getNickName(), publish.getContent()));
@ -347,6 +364,39 @@ public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> impl
}
}
@Override
public void reportPublish(PublishReportRes publishReportRes) {
Long tenantId = publishReportRes.getTenantId();
Long communityId = publishReportRes.getCommunityId();
Long publishId = publishReportRes.getPublishId();
CommunityUser communityUser = communityUserMapper.selectCommunityUser(tenantId, communityId, SecurityUtils.getUserId());
if (Objects.isNull(communityUser)) {
throw new ServiceException("您不是该社区成员", HttpStatus.SHOW_ERROR_MSG);
}
if ("1".equals(communityUser.getIsBlack())) {
throw new ServiceException("您已被拉黑", HttpStatus.SHOW_ERROR_MSG);
}
Publish publish = publishMapper.selectByIdAndTenantIdAndCommunityId(publishId, tenantId, communityId);
if (Objects.isNull(publish)) {
throw new ServiceException("该内容不存在", HttpStatus.SHOW_ERROR_MSG);
}
PublishReport publishReport = BeanUtil.toBean(publishReportRes, PublishReport.class);
publishReport.setUserId(SecurityUtils.getUserId());
publishReportMapper.insertReport(publishReport);
}
@Override
public Publish getLastPublish(Long tenantId, Long communityId) {
return baseMapper.getLastPublish(tenantId, communityId);
}
private Page<Publish> initPage(PageDomain pageDomain) {
return new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
}

View File

@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@ -74,7 +75,7 @@ public class QuestionCommentServiceImpl extends ServiceImpl<QuestionCommentMappe
communityAdvice.setTenantId(tenantId);
communityAdvice.setCommunityId(communityId);
communityAdvice.setSendUserId(SecurityUtils.getUserId());
communityAdvice.setAdviceType(AdviceConstant.COMMUNITY_NOTICE);
communityAdvice.setAdviceType(AdviceConstant.REPLY_ME);
communityAdvice.setUserId(question.getQuestionUserId());
communityAdvice.setTitle(StringUtils.format("{}回复{}",
SecurityUtils.getLoginUser().getUser().getNickName(),
@ -164,6 +165,11 @@ public class QuestionCommentServiceImpl extends ServiceImpl<QuestionCommentMappe
return R.ok();
}
@Override
public List<QuestionCommentVo> getComment(QuestionDetailRes questionDetailRes) {
return baseMapper.getComment(questionDetailRes);
}
private Page<QuestionComment> initPage(QuestionCommentPageRes questionCommentPageRes) {

View File

@ -26,6 +26,7 @@ import com.mcwl.communityCenter.service.QuestionCommentService;
import com.mcwl.communityCenter.service.QuestionService;
import com.mcwl.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -101,15 +102,15 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
sysUserService.updateUser(sysUser);
CommunityAdvice communityAdvice = new CommunityAdvice();
communityAdvice.setTenantId(tenantId);
communityAdvice.setCommunityId(communityId);
communityAdvice.setSendUserId(SecurityUtils.getUserId());
communityAdvice.setAdviceType(AdviceConstant.WAIT_ME_ANSWER);
communityAdvice.setUserId(questionUserId);
communityAdvice.setTitle(StringUtils.format("{}向你提问:", SecurityUtils.getLoginUser().getUser().getNickName()));
communityAdvice.setContent(questionRes.getContent());
communityAdviceMapper.insert(communityAdvice);
// CommunityAdvice communityAdvice = new CommunityAdvice();
// communityAdvice.setTenantId(tenantId);
// communityAdvice.setCommunityId(communityId);
// communityAdvice.setSendUserId(SecurityUtils.getUserId());
// communityAdvice.setAdviceType(AdviceConstant.WAIT_ME_ANSWER);
// communityAdvice.setUserId(questionUserId);
// communityAdvice.setTitle(StringUtils.format("{}向你提问:", SecurityUtils.getLoginUser().getUser().getNickName()));
// communityAdvice.setContent(questionRes.getContent());
// communityAdviceMapper.insert(communityAdvice);
return R.ok();
@ -121,22 +122,17 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
Page<Question> page = initPage(questionPageRes);
// baseMapper.list(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId(), questionPageRes.getStatus());
baseMapper.list(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId());
List<QuestionVo> questionVoList = baseMapper.list(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId());
for (QuestionVo questionVo : questionVoList) {
// 获取分页数据
List<Question> questionList = page.getRecords();
// Question数据转为QuestionVo
List<QuestionVo> questionVoList = new ArrayList<>();
for (Question question : questionList) {
QuestionVo questionVo = new QuestionVo();
BeanUtil.copyProperties(question, questionVo);
Long questionUserId = question.getQuestionUserId();
SysUser sysUser = sysUserService.selectUserById(questionUserId);
questionVo.setQuestionUserName(sysUser.getNickName());
questionVo.setQuestionUserAvatar(sysUser.getAvatar());
questionVoList.add(questionVo);
QuestionDetailRes questionDetailRes = new QuestionDetailRes();
questionDetailRes.setTenantId(questionVo.getTenantId());
questionDetailRes.setCommunityId(questionVo.getCommunityId());
questionDetailRes.setQuestionId(questionVo.getId());
List<QuestionCommentVo> commentList = questionCommentService.getComment(questionDetailRes);
questionVo.setCommentList(commentList);
}
// 封装分页信息
@ -237,34 +233,34 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
@Override
public TableDataInfo myQuestionList(QuestionPageRes questionPageRes) {
Page<Question> page = initPage(questionPageRes);
List<Question> questionList = baseMapper.myQuestionList(page, questionPageRes, SecurityUtils.getUserId());
List<QuestionVo> questionList = baseMapper.myQuestionList(page, questionPageRes, SecurityUtils.getUserId());
List<PersonHomeVo> personHomeVoList = new ArrayList<>();
for (Question question : questionList) {
PersonHomeVo personHomeVo = BeanUtil.toBean(question, PersonHomeVo.class);
personHomeVo.setImageUrl(question.getQuestionUrl());
for (QuestionVo questionVo : questionList) {
PersonHomeVo personHomeVo = BeanUtil.toBean(questionVo, PersonHomeVo.class);
List<CommentVo> commentList = new ArrayList<>();
QuestionCommentPageRes questionCommentPageRes = new QuestionCommentPageRes();
questionCommentPageRes.setTenantId(questionPageRes.getTenantId());
questionCommentPageRes.setCommunityId(questionPageRes.getCommunityId());
questionCommentPageRes.setQuestionId(question.getId());
questionCommentPageRes.setPageNum(1);
questionCommentPageRes.setPageSize(10);
Long questionUserId = questionVo.getQuestionUserId();
String questionUserName = questionVo.getQuestionUserName();
String questionUserAvatar = questionVo.getQuestionUserAvatar();
String questionUrl = questionVo.getQuestionUrl();
personHomeVo.setUserId(questionUserId);
personHomeVo.setUserName(questionUserName);
personHomeVo.setAvatar(questionUserAvatar);
personHomeVo.setImageUrl(questionUrl);
List<QuestionCommentVo> questionCommentList = questionVo.getCommentList();
List<CommentVo> commentList = BeanUtil.copyToList(questionCommentList, CommentVo.class);
TableDataInfo tableDataInfo = questionCommentService.listByPage(questionCommentPageRes);
List<QuestionCommentVo> questionCommentList = (List<QuestionCommentVo>) tableDataInfo.getRows();
for (QuestionCommentVo questionCommentVo : questionCommentList) {
CommentVo commentVo = BeanUtil.toBean(questionCommentVo, CommentVo.class);
SysUser sysUser = sysUserService.selectUserById(questionCommentVo.getUserId());
commentVo.setUserName(sysUser.getNickName());
commentVo.setUserAvatar(sysUser.getAvatar());
commentList.add(commentVo);
}
personHomeVo.setCommentList(commentList);
personHomeVoList.add(personHomeVo);
}
// 封装分页信息
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);

View File

@ -91,19 +91,7 @@
</select>
<select id="getMyJoinCommunity" resultType="com.mcwl.communityCenter.domain.Community">
select c.id,
c.tenant_id,
c.image_url,
c.community_name,
c.description,
c.community_tag,
c.type,
c.price,
c.validity_day,
c.create_by,
c.create_time,
c.update_by,
c.update_time
select c.*
from cc_community c
join cc_community_user cu on c.id = cu.community_id
where cu.user_id = #{userId}
@ -120,4 +108,11 @@
or c.description like concat('%', #{joinCommunityListPageRes.searchContent}, '%'))
</if>
</select>
<select id="getCommunity" resultType="com.mcwl.communityCenter.domain.Community">
select *
from cc_community
where id = #{communityId}
and tenant_id = #{tenantId}
and del_flag = '0'
</select>
</mapper>

View File

@ -123,4 +123,25 @@
and ((CONVERT_TZ(NOW(), 'SYSTEM', '+08:00') &gt;= start_time
AND CONVERT_TZ(NOW(), 'SYSTEM', '+08:00') &lt;= end_time) or (start_time is null and end_time is null))
</select>
<select id="getExpireTime" resultType="java.util.Date">
select end_time
from cc_community_user
where tenant_id = #{tenantId}
and community_id = #{communityId}
and user_id = #{userId}
and ((CONVERT_TZ(NOW(), 'SYSTEM', '+08:00') &gt;= start_time
AND CONVERT_TZ(NOW(), 'SYSTEM', '+08:00') &lt;= end_time) or (start_time is null and end_time is null))
</select>
<select id="getCommunityUserAvatar" resultType="java.lang.String">
select u.avatar
from cc_community_user cu
left join sys_user u on cu.user_id = u.user_id
where cu.tenant_id = #{tenantId}
and cu.community_id = #{communityId}
and ((CONVERT_TZ(NOW(), 'SYSTEM', '+08:00') &gt;= cu.start_time
AND CONVERT_TZ(NOW(), 'SYSTEM', '+08:00') &lt;= cu.end_time) or
(cu.start_time is null and cu.end_time is null))
order by cu.create_time desc
limit 5
</select>
</mapper>

View File

@ -17,11 +17,17 @@
</update>
<select id="myCollectList" resultType="com.mcwl.communityCenter.domain.vo.PublishVo">
select p.*, IF(pc.id is not null, 1, 0) as is_collect
select p.*, 1 as is_collect,u.user_id, u.avatar, u.nick_name as user_name,
IF(pl.del_flag = '0', 1, 0) as is_like
from cc_publish p left join cc_publish_collect pc
on p.id = pc.publish_id
and p.tenant_id = pc.tenant_id
and p.community_id = pc.community_id
left join cc_publish_like pl
on p.id = pl.publish_id
and p.tenant_id = pl.tenant_id
and p.community_id = pl.community_id
left join sys_user u on p.user_id = u.user_id
<where>
and pc.tenant_id = #{myPublishCollectPageRes.tenantId}
and pc.community_id = #{myPublishCollectPageRes.communityId}

View File

@ -8,7 +8,7 @@
set del_flag = #{publishCommentLike.delFlag}
where tenant_id = #{publishCommentLike.tenantId}
and community_id = #{publishCommentLike.communityId}
and comment_id = #{publishCommentLike.publishCommentId}
and publish_comment_id = #{publishCommentLike.publishCommentId}
</update>
<select id="selectByTenantIdAndCommunityIdAndCommentId"
@ -16,14 +16,23 @@
select * from cc_publish_comment_like
where tenant_id = #{tenantId}
and community_id = #{communityId}
and comment_id = #{commentId}
and publish_comment_id = #{commentId}
</select>
<select id="selectLike" resultType="com.mcwl.communityCenter.domain.PublishCommentLike">
select * from cc_publish_comment_like
where tenant_id = #{publishCommentLikeRes.tenantId}
and community_id = #{publishCommentLikeRes.communityId}
and publish_id = #{publishCommentLikeRes.publishId}
and comment_id = #{publishCommentLikeRes.commentId}
and publish_comment_id = #{publishCommentLikeRes.commentId}
and user_id = #{userId}
</select>
<select id="publishCommentLike" resultType="com.mcwl.communityCenter.domain.PublishCommentLike">
select *
from cc_publish_comment_like
where tenant_id = #{commentLikeDetailRes.tenantId}
and community_id = #{commentLikeDetailRes.communityId}
and publish_id = #{commentLikeDetailRes.publishId}
and publish_comment_id = #{commentLikeDetailRes.publishCommentId}
and user_id = #{userId}
</select>
</mapper>

View File

@ -5,13 +5,34 @@
<mapper namespace="com.mcwl.communityCenter.mapper.PublishCommentMapper">
<update id="deleteByIdAndTenantIdAndCommunityIdAndOperatorId">
update cc_publish_comment set del_flag = '2'
where tenant_id = #{tenantId}
where id = #{id}
and tenant_id = #{tenantId}
and community_id = #{communityId}
and publish_id = #{operatorId}
and type = 0
and publish_id = #{publishId}
</update>
<select id="selectByTenantIdAndCommunityIdAndOperatorId"
<select id="selectByTenantIdAndCommunityIdAndPublishIdList"
resultType="com.mcwl.communityCenter.domain.PublishComment">
select pm1.id,
pm1.tenant_id,
pm1.community_id,
pm1.publish_id,
pm1.user_id,
pm1.content,
pm1.parent_id,
pm1.like_num,
pm1.create_time
from cc_publish_comment pm1 left join cc_publish_comment pm2 on pm1.parent_id = pm2.id
where pm1.tenant_id = #{tenantId}
and pm1.community_id = #{communityId}
and pm1.publish_id = #{publishId}
and pm1.del_flag = '0'
AND (pm2.del_flag = 0 OR pm2.id IS NULL)
order by create_time
</select>
<select id="selectByIdAndTenantIdAndCommunityIdAndPublishId"
resultType="com.mcwl.communityCenter.domain.PublishComment">
select id,
tenant_id,
@ -20,34 +41,14 @@
user_id,
content,
parent_id,
type,
like_num,
create_time
from cc_publish_comment
where tenant_id = #{tenantId}
where id = #{id}
and tenant_id = #{tenantId}
and community_id = #{communityId}
and publish_id = #{operatorId}
and type = 0
and publish_id = #{publishId}
and del_flag = '0'
order by create_time
</select>
<select id="selectByIdAndTenantIdAndCommunityIdAndOperatorId"
resultType="com.mcwl.communityCenter.domain.PublishComment">
select id,
tenant_id,
community_id,
publish_id,
user_id,
content,
parent_id,
type,
like_num,
create_time
from cc_publish_comment
where tenant_id = #{tenantId}
and community_id = #{communityId}
and publish_id = #{operatorId}
and type = 0
and del_flag = '0'
</select>
</mapper>

View File

@ -96,30 +96,42 @@
and del_flag = '0'
and file_url is not null
</select>
<select id="publishList" resultType="com.mcwl.communityCenter.domain.Publish">
select *
from cc_publish
<select id="publishList" resultType="com.mcwl.communityCenter.domain.vo.PublishVo">
select p.*, u.nick_name as user_name, u.avatar
from cc_publish p
left join sys_user u on p.user_id = u.user_id
left join cc_publish_like pl on pl.tenant_id = p.tenant_id and pl.community_id = p.community_id and p.id =
pl.publish_id
left join cc_publish_collect pc on p.id = pc.publish_id and p.tenant_id = pc.tenant_id and
p.community_id = pc.community_id
<where>
and tenant_id = #{publishPageRes.tenantId}
and community_id = #{publishPageRes.communityId}
and del_flag = '0'
and p.tenant_id = #{publishPageRes.tenantId}
and p.community_id = #{publishPageRes.communityId}
and p.del_flag = '0'
<if test="publishPageRes.type != null">
<if test="publishPageRes.type == 0">
and user_id = #{publishPageRes.tenantId}
and p.user_id = #{publishPageRes.tenantId}
</if>
<if test="publishPageRes.type == 1">
and is_elite = 1
and p.is_elite = 1
</if>
</if>
</where>
order by create_time desc
order by p.create_time desc
</select>
<select id="myPublishList" resultType="com.mcwl.communityCenter.domain.vo.PublishVo">
select p.*, IF(pc.id is not null, 1, 0) as is_collect
select p.*, u.user_id, u.nick_name as user_name, u.avatar,
IF(pc.del_flag = '0', 1, 0) as is_collect,
IF(pl.del_flag = '0', 1, 0) as is_like
from cc_publish p left join cc_publish_collect pc
on p.id = pc.publish_id
and p.tenant_id = pc.tenant_id
and p.community_id = pc.community_id
left join cc_publish_like pl
on pl.tenant_id = p.tenant_id
and pl.community_id = p.community_id
and pl.publish_id = p.id
left join sys_user u on p.user_id = u.user_id
<where>
and p.tenant_id = #{myPublishPageRes.tenantId}
and p.community_id = #{myPublishPageRes.communityId}
@ -127,4 +139,13 @@
and p.del_flag = '0'
</where>
</select>
<select id="getLastPublish" resultType="com.mcwl.communityCenter.domain.Publish">
select *
from cc_publish
where tenant_id = #{tenantId}
and community_id = #{communityId}
and del_flag = '0'
order by create_time desc
limit 1
</select>
</mapper>

View File

@ -0,0 +1,12 @@
<?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.PublishReportMapper">
<insert id="insertReport">
INSERT INTO cc_report(tenant_id, community_id, publish_id, user_id, report_type, content)
VALUES (#{publishReport.tenantId}, #{publishReport.communityId}, #{publishReport.publishId},
#{publishReport.userId}, #{publishReport.reportType}, #{publishReport.content})
</insert>
</mapper>

View File

@ -25,4 +25,14 @@
and question_id = #{questionId}
and del_flag = '0'
</select>
<select id="getComment" resultType="com.mcwl.communityCenter.domain.vo.QuestionCommentVo">
select qm.*, u.nick_name as user_name, u.avatar
from cc_question_comment qm
left join sys_user u on qm.user_id = u.user_id
where qm.tenant_id = #{questionDetailRes.tenantId}
and qm.community_id = #{questionDetailRes.communityId}
and qm.question_id = #{questionDetailRes.questionId}
and qm.del_flag = '0'
order by qm.create_time desc
</select>
</mapper>

View File

@ -5,34 +5,16 @@
<mapper namespace="com.mcwl.communityCenter.mapper.QuestionMapper">
<select id="list" resultType="com.mcwl.communityCenter.domain.Question">
select id,
tenant_id,
community_id,
question_user_id,
content,
question_url,
is_anonymous,
amount,
status,
type
from cc_question
where del_flag = '0'
<select id="list" resultType="com.mcwl.communityCenter.domain.vo.QuestionVo">
select q.*, u.nick_name as questionUserName, u.avatar as questionUserAvatar
from cc_question q left join sys_user u on q.question_user_id = u.user_id
where q.del_flag = '0'
and tenant_id = #{tenantId}
and community_id = #{communityId}
order by amount desc, create_time desc
order by q.create_time desc, amount desc
</select>
<select id="selectByIdAndTenantIdAndCommunityId" resultType="com.mcwl.communityCenter.domain.Question">
select id,
tenant_id,
community_id,
question_user_id,
content,
question_url,
is_anonymous,
amount,
status,
type
select *
from cc_question
where id = #{id}
and tenant_id = #{tenantId}
@ -40,16 +22,7 @@
and del_flag = '0'
</select>
<select id="listImage" resultType="com.mcwl.communityCenter.domain.Question">
select id,
tenant_id,
community_id,
question_user_id,
content,
question_url,
is_anonymous,
amount,
status,
type
select *
from cc_question
where del_flag = '0'
and tenant_id = #{tenantId}
@ -57,10 +30,11 @@
and question_url is not null
order by amount desc, create_time desc
</select>
<select id="myQuestionList" resultType="com.mcwl.communityCenter.domain.Question">
select *
from cc_question
where del_flag = '0'
<select id="myQuestionList" resultType="com.mcwl.communityCenter.domain.vo.QuestionVo">
select q.*, u.nick_name as questionUserName, u.avatar as questionUserAvatar
from cc_question q
left join sys_user u on q.question_user_id = u.user_id
where q.del_flag = '0'
and tenant_id = #{questionPageRes.tenantId}
and community_id = #{questionPageRes.communityId}
and question_user_id = #{userId}

View File

@ -153,7 +153,6 @@ public class AliPayServiceImpl implements AliPayService {
//调用支付宝的接口
AlipayTradePrecreateResponse payResponse = Factory.Payment.FaceToFace()
// 设置过期时间
.preCreate(memberLevel.getMemberName(),
tradeEntity.getCode(),
orderTradeDto.getAmount().toString());
@ -161,7 +160,6 @@ public class AliPayServiceImpl implements AliPayService {
if (Objects.nonNull(orderTradeDto.getPromotionId())) {
redisCache.setCacheObject(tradeEntity.getCode() + "_promotionId", orderTradeDto.getPromotionId(), 15, TimeUnit.MINUTES);
}
// AlipayTradePrecreateResponse payResponse = Factory.Payment.FaceToFace().preCreate("订单主题Mac笔记本", "LS123qwe123", "19999");
//参照官方文档响应示例,解析返回结果
String httpBodyStr = payResponse.getHttpBody();
JSONObject jsonObject = JSONObject.parseObject(httpBodyStr);

View File

@ -26,6 +26,8 @@ public class PayTask {
List<OrderTrade> orderTradeList = orderTradeService.lambdaQuery()
.le(OrderTrade::getCreateTime, date)
.and(wrapper -> wrapper
.eq(OrderTrade::getOrderStatus, 1)
.or()
.eq(OrderTrade::getOrderStatus, 4)
.or()
.eq(OrderTrade::getPayStatus, 1)

View File

@ -3,6 +3,7 @@ package com.mcwl.system.mapper;
import com.mcwl.common.core.domain.entity.SysUser;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
/**
@ -149,4 +150,6 @@ public interface SysUserMapper
Integer getMonthUserCount();
List<SysUser> selectAllList();
List<SysUser> selectUserByIds(@Param("userIds") Collection<Long> userIds);
}

View File

@ -4,6 +4,7 @@ import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.domain.entity.SysUser;
import com.mcwl.system.domain.vo.UserDataVo;
import java.util.Collection;
import java.util.List;
/**
@ -53,6 +54,14 @@ public interface ISysUserService
*/
public SysUser selectUserById(Long userId);
/**
* ID
*
* @param userIds ID
* @return
*/
public List<SysUser> selectUserByIds(Collection<Long> userIds);
/**
* ID
*

View File

@ -38,6 +38,7 @@ import org.springframework.util.CollectionUtils;
import javax.validation.Validator;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -160,6 +161,20 @@ public class SysUserServiceImpl implements ISysUserService
return userMapper.selectUserById(userId);
}
/**
* ID
*
* @param userIds ID
* @return
*/
@Override
public List<SysUser> selectUserByIds(Collection<Long> userIds) {
if (userIds == null || userIds.isEmpty()) {
return Collections.emptyList();
}
return userMapper.selectUserByIds(userIds);
}
/**
*
*

View File

@ -196,8 +196,15 @@
from sys_user
where del_flag = '0'
</select>
<select id="selectUserByIds" resultType="com.mcwl.common.core.domain.entity.SysUser">
<include refid="selectUserVo"/>
where u.user_id in
<foreach collection="userIds" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if>
<if test="deptId != null and deptId != 0">dept_id,</if>