Commit 79f709cc by liangkaiping

copy

parent 2f66db8f
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.yizhi</groupId>
<artifactId>cloud-forum</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.yizhi</groupId>
<artifactId>cloud-forum-api</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-common-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-util</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.yizhi.forum.application.constans;
public enum DocumentType {
DOCUMENT(1,"文档"),
PICTURE(2,"图片"),
AUDIO(3,"音频"),
VIDEO(4,"视频"),
OTHER(5,"其他");
private Integer type;
private String typeName;
DocumentType(Integer type, String typeName) {
this.type = type;
this.typeName = typeName;
}
public Integer getType() {
return type;
}
public String getTypeName() {
return typeName;
}
}
package com.yizhi.forum.application.constans;
import java.util.Date;
public interface ForumConstans {
/**
* 删除
*/
public static final Integer DELETED = 1;
/**
* 未删除
*/
public static final Integer NOT_DELETED = 0;
/**
* 草稿
*/
public static final Integer DRAFT = 0;
/**
* 下架
*/
public static final Integer DOWN = 1;
/**
* 上架
*/
public static final Integer UP = 2;
/**
* 加精类型
*/
public static final Integer HIGH_LIGHT = 3;
/**
* 置顶类型
*/
public static final Integer TOP = 4;
/**
* 初始值为0
*/
public static final Integer ZERO = 0;
/**
* 上移
*/
public static final Integer MOVE_UP = 1;
/**
* 下移
*/
public static final Integer MOVE_DOWN = 2;
/**
* 加精
*/
public static final Integer IS_HIGH_LIGHT = 1;
/**
* 取消加精
*/
public static final Integer CANCEL_HIGH_LIGHT = 0;
/**
* 置顶
*/
public static final Integer IS_TOP = 1;
/**
* 取消置顶
*/
public static final Integer CANCEL_TOP = 0;
/**
* 获取 2038-01-01 00:00:00 置顶时间排序需要
*/
public static Date MAX_TOP_DATE = new Date(2145888000000L);
/**
* 帖子待管理
*/
public static final Integer POSTS_NOT_MANAGE = 0;
/**
* 举报待管理
*/
public static final Integer INFORM_NOT_MANAGE = 1;
/**
*部门
*/
public static final Integer ORG = 1;
/**
* 用户
*/
public static final Integer ACCOUNT = 2;
/**
* 平台用户
*/
public static final Integer SITE_ACCOUNT = 0;
/**
* 指定用户
*/
public static final Integer VISIBLE_RANGE = 1;
/**
* 全部帖子
*/
public static final Integer ORDER_UPDATE_TIME = 0;
/**
* 最近讨论
*/
public static final Integer ORDER_BY_NEW_COMMENT_TIME = 1;
/**
* 最热讨论
*/
public static final Integer ORDER_BY_READ_NUM = 2;
/**
* 精选热帖
*/
public static final Integer ORDER_BY_HIGHLIGHT_TIME = 3;
/**
* 现在
*
*/
public static final String NOW = "现在";
/**
* 已收藏
*
*/
public static final Integer HAS_FAVORITE = 1;
/**
* 管理端 终端类型
*
*/
public static final Integer TERMINAL_MANAGE = 1;
/**
* 可评论类型
*
*/
public static final Integer COMMENT_TYPE = 2;
/**
* 可发帖类型
*
*/
public static final Integer SEND_POSTS_TYPE = 1;
/**
* 该贴已被删除
*
*/
public static final String POSTS_HAS_DELETED = "贴子已被删除";
/**
* 该用户已被禁言
*
*/
public static final String ACCOUNT_IS_FORBIDDEN = "该用户已被禁言";
/**
* name字段
*/
public static final String FEIlD_NAME = "name";
/**
* name字段
*/
public static final String FEIlD_TITLE = "title";
/**
* 评论待管理字段
*/
public static final String Field_NEW_COMMENT_NUM = "new_comment_num";
/**
* 评论数字段
*/
public static final String Field_COMMENT_NUM = "comment_num";
/**
* 作者字段
*/
public static final String Field_AUTHOR = "author";
/**
* 分类id字段
*/
public static final String Field_CLASSIFY_ID = "posts_classify_id";
/**
* 用户id字段
*/
public static final String Field_ACCOUNT_ID = "account_id";
/**
* id字段
*/
public static final String Field_ID = "id";
/**
* 排序字段
*/
public static final String Field_SORT = "sort";
/**
* 排序字段
*/
public static final String Field_SORT_TIME = "sort_time";
/**
* 分类下帖子的数量 字段
*/
public static final String Field_HAS_POSTS_NUM = "has_posts_num";
/**
* 分类下能发帖设置字段
*/
public static final String Field_SEND_SETTING = "send_setting";
/**
* 帖子阅读数字段
*/
public static final String Field_READ_NUM = "read_num";
/**
* 加精字段
*/
public static final String FEIlD_IS_HIGHLIGHT = "is_highlight";
/**
* 加精时间字段
*/
public static final String FEIlD_HIGHLIGHT_TIME = "highlight_time";
/**
* 置顶字段
*/
public static final String FEIlD_IS_TOP = "is_top";
/**
* 置顶字段
*/
public static final String FEIlD_TOP_TIME = "top_time";
/**
* 发表时间字段
*/
public static final String FEIlD_CREATE_TIME = "create_time";
/**
* 修改时间字段
*/
public static final String FEIlD_UPDATE_TIME = "update_time";
/**
* 可见范围字段
*/
public static final String FEIlD_VISIBLE_RANGE= "visible_range";
/**
* 帖子id 字段
*/
public static final String FEIlD_POSTS_ID= "posts_id";
/**
* 业务类型 字段
*/
public static final String FEIlD_TASK_TYPE= "task_type";
/**
* 状态字段
*/
public static final String FEIlD_STATUS= "status";
/**
* 终端类型 字段
*/
public static final String FEIlD_TERMINAL_TYPE= "terminal_type";
/**
* 我的管理 排序时间字段
*/
public static final String FEIlD_MANAGE_SORT = "manage_sort_time";
/**
* 我的收藏 排序时间字段
*/
public static final String FEIlD_FAVORITE_TIME = "favorite_time";
}
package com.yizhi.forum.application.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsClassifyAccountClient")
public interface PostsClassifyAccountClient {
@GetMapping("/postsClassifyAccount/canComment")
public Integer canComment(@RequestParam("postsId") Long postsId);
}
package com.yizhi.forum.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import com.yizhi.forum.application.vo.forum.PostsClassifySettingVo;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsClassifyClient")
public interface PostsClassifyClient {
@GetMapping("/postsClassify/manage/exsitsSameName")
public Boolean exsitsSameName(@RequestParam("name") String name);
@PostMapping("/postsClassify/manage/save")
public Boolean save(@RequestBody PostsClassifyVo postsClassifyVo);
@PostMapping("/postsClassify/manage/update")
public Boolean update(@RequestBody PostsClassifyVo postsClassifyVo);
@GetMapping("/postsClassify/manage/move")
public Integer move(@RequestParam("type") Integer type, @RequestParam("id") Long id);
@GetMapping("/postsClassify/manage/get")
public PostsClassifyVo get(@RequestParam("id") Long id);
@GetMapping("/postsClassify/manage/deleted")
public Integer deleted(@ApiParam("分类id必填") @RequestParam("id") Long id);
@PostMapping("/postsClassify/manage/updateSetting")
public Boolean updateSetting(@RequestBody PostsClassifySettingVo vo);
@GetMapping("/postsClassify/manage/getSetting")
public PostsClassifySettingVo getSetting(@RequestParam("id") Long id);
@GetMapping("/postsClassify/manage/getPage")
public Page<PostsClassifyVo> getPage(@RequestParam(value = "name",required = false) String name,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize);
}
package com.yizhi.forum.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.vo.forum.PostsManageVo;
import com.yizhi.forum.application.vo.forum.PostsParamsVo;
import com.yizhi.forum.application.vo.forum.PostsSaveVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsClient")
public interface PostsClient {
@PostMapping("/posts/save")
public Integer save(@RequestBody PostsSaveVo vo);
@PostMapping("/posts/get")
public PostsSaveVo get(@RequestBody PostsParamsVo vo);
@PostMapping("/posts/update")
public Integer update(@RequestBody PostsSaveVo vo);
@PostMapping("/posts/upOrDown")
public Integer upOrDown(@RequestBody PostsParamsVo vo);
@PostMapping("/posts/topOrHighlight")
public Integer topOrHighlight(@RequestBody PostsParamsVo vo);
@PostMapping("/posts/getPage")
public Page<PostsManageVo> getPage(@RequestBody PostsParamsVo vo);
}
package com.yizhi.forum.application.feign;
import org.springframework.cloud.openfeign.FeignClient;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsContentClient")
public interface PostsContentClient {
}
package com.yizhi.forum.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.vo.domain.PostsForbiddenAccountVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsForbiddenAccountClient")
public interface PostsForbiddenAccountClient {
@PostMapping("/postsForbiddenAccount/save")
public Integer save(@RequestBody PostsForbiddenAccountVo forbiddenAccount);
@GetMapping("/postsForbiddenAccount/getPage")
public Page<PostsForbiddenAccountVo> getPage(@RequestParam("postsId") Long postsId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize);
@PostMapping("/postsForbiddenAccount/deleted")
public Integer deleted(@RequestBody PostsForbiddenAccountVo forbiddenAccount);
@GetMapping("/postsForbiddenAccount/hasForbiddenByPostsId")
public Integer hasForbiddenByPostsId(@RequestParam("postsId") Long postsId);
@GetMapping("/postsForbiddenAccount/getListByPostsId")
public List<PostsForbiddenAccountVo> getListByPostsId(@RequestParam("postsIds") List<Long> postsIds);
}
package com.yizhi.forum.application.feign;
import com.yizhi.forum.application.vo.forum.PostsManageAccountParamVo;
import com.yizhi.forum.application.vo.forum.PostsManageAccountVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsManageAccountClient")
public interface PostsManageAccountClient {
@PostMapping("/postsManageAccount/save")
public Boolean save(@RequestBody PostsManageAccountParamVo vo);
@GetMapping("/postsManageAccount/getManager")
public List<PostsManageAccountVo> getManager(@RequestParam("postsClassifyId") Long postsClassifyId);
}
package com.yizhi.forum.application.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsReadRecordsClient")
public interface PostsReadRecordsClient {
@GetMapping("/postsReadRecords/insertReadRecord")
public Integer insertReadRecord(@RequestParam("postsId") Long postsId, @RequestParam("terminalType") Integer terminalType);
}
package com.yizhi.forum.application.feign;
import org.springframework.cloud.openfeign.FeignClient;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsRelationClient")
public interface PostsRelationClient {
}
package com.yizhi.forum.application.feign;
import com.yizhi.forum.application.vo.forum.PostsVisibleRangeVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "PostsVisibleRangeClient")
public interface PostsVisibleRangeClient {
@GetMapping("/postsVisibleRange/getVisibleRange")
public List<PostsVisibleRangeVo> getVisibleRange(@RequestParam("postsId") Long postsId);
}
package com.yizhi.forum.application.feign.remote;
import com.yizhi.forum.application.vo.forum.PostsParamsVo;
import com.yizhi.forum.application.vo.forum.PostsStudentVo;
import com.yizhi.forum.application.vo.domain.PostsVo;
import com.yizhi.forum.application.vo.forum.StatisticsForumAccountVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "RemotePostsClient")
public interface RemotePostsClient {
/**
* 修改帖子基本信息
*
* @param vo
* @return
*/
@PostMapping("/remote/posts/update/info")
public Integer updateInfo(@RequestBody PostsVo vo);
@PostMapping("/remote/posts/getList")
public List<PostsVo> getList(@RequestBody PostsParamsVo vo);
@PostMapping("/remote/posts/getMap")
public Map<Long, PostsStudentVo> getMap(@RequestBody PostsParamsVo vo);
@GetMapping("/remote/posts/get/info")
public PostsVo getInfo(@RequestParam("postsId") Long postsId);
@GetMapping("/remote/posts/getAllPosts")
public List<PostsVo> getAllPosts();
@GetMapping("/remote/posts//getPersonalDataMap")
public Map<Long, StatisticsForumAccountVo> getPersonalDataMap();
/**
* 首页展示精选中的帖子需要帖子实时名称
* @param postsIds
* @return
*/
@GetMapping("/remote/posts//getNames")
public Map<Long,String> getNames(@RequestParam(value = "postsIds",required = false) List<Long> postsIds);
@GetMapping({"/remote/posts/verifyVideo"})
boolean verifyVideo(@RequestParam("postsAppendixIds") List<Long> postsAppendixIds);
@PostMapping({"/remote/posts/updateVideoTranscodeUrl"})
boolean updateVideoTranscodeUrl(@RequestBody Map<String, String> var1);
}
package com.yizhi.forum.application.feign.student;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* <p>
* 学员端分类接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "StudentPostsClassifyClient")
public interface StudentPostsClassifyClient {
@GetMapping("/postsClassify/student/getPageToStudent")
public Page<PostsClassifyVo> getPageToStudent(@RequestParam(value = "name",required = false) String name,
@RequestParam("canSend") Boolean canSend,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize);
}
package com.yizhi.forum.application.feign.student;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.vo.forum.PostsParamsVo;
import com.yizhi.forum.application.vo.forum.PostsSaveVo;
import com.yizhi.forum.application.vo.forum.PostsStudentVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "StudentPostsClient")
public interface StudentPostsClient {
/**
* @param type 1:最新讨论、2:最热讨论、3:精选热帖
* @param keyword 分类名称或帖子标题
* @param classifyId
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/posts/student/getPageToStudent")
public Page<PostsStudentVo> getPageToStudent(@RequestParam("type") Integer type,
@RequestParam(value = "keyword",required = false) String keyword,
@RequestParam(value = "classifyId",required = false) Long classifyId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize);
@PostMapping("/posts/student/save")
public Integer studentSave(@RequestBody PostsSaveVo vo);
/**
* 学员查看完整帖子
*
* @param vo
* @return
*/
@PostMapping("/posts/student/get")
public PostsSaveVo studentGet(@RequestBody PostsParamsVo vo);
/**
* 我的发帖 我的收藏 我的管理 分页数据
*
* @param type 1:我的发帖 2:我的收藏 3:我的管理
* @param status 0:草稿 1:下架 2:上架
* @param keyword 分类名称或帖子标题
* @param classifyId
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/posts/student/myPage")
public Page<PostsStudentVo> myPage(@RequestParam("type") Integer type,
@RequestParam(value = "status",required = false) Integer status,
@RequestParam(value = "keyword",required = false) String keyword,
@RequestParam(value = "classifyId",required = false) Long classifyId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize);
/**
* 学员端修改帖子
*
* @param vo
* @return
*/
@PostMapping("/posts/student/update")
public Integer update(@RequestBody PostsSaveVo vo);
@PostMapping("/posts/student/deleted")
public Integer deleted(@RequestBody PostsParamsVo vo);
@PostMapping("/posts/student/topOrHighlight")
public Integer topOrHighlight(@RequestBody PostsParamsVo vo);
@GetMapping("/posts/student/getMapByIds")
public Map<Long, PostsStudentVo> getMapByIds(@RequestParam("postsIds") List<Long> postsIds);
@GetMapping("/posts/student/getMyNum")
@ApiOperation(value = "获取我的管理(有回复、举报或帖子未查看)的数量")
public Integer getMyNum();
}
package com.yizhi.forum.application.feign.student;
import com.yizhi.forum.application.vo.domain.PostsFavoriteVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@FeignClient(name = "cloud-forum", contextId = "StudentPostsFavoriteClient")
public interface StudentPostsFavoriteClient {
@PostMapping("/postsFavorite/save")
public Integer save(@RequestBody PostsFavoriteVo postsFavorite);
@PostMapping("/postsFavorite/deleted")
public Integer deleted(@RequestBody PostsFavoriteVo PostsFavorite);
@GetMapping("/postsFavorite/hasFavoriteByPostsId")
public Integer hasFavoriteByPostsId(@RequestParam("postsId") Long postsId);
@GetMapping("/postsFavorite/hasFavoriteByPostsIds")
public Map<Long,Integer> hasFavoriteByPostsIds(@RequestParam("postsIds") List<Long> postsIds);
}
package com.yizhi.forum.application.util;
import cn.hutool.core.date.DateUtil;
import com.yizhi.forum.application.constans.ForumConstans;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ForumUtil {
private static SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
private static SimpleDateFormat format2 = new SimpleDateFormat("MM-dd HH:mm");
private static SimpleDateFormat format3 = new SimpleDateFormat("HH:mm");
private static final Long ONE_MINUTE = 60 * 1000L;
private static final Long ONE_HOUR = 60 * ONE_MINUTE;
private static final Long TODAY = 24 * ONE_HOUR;
/**
* 根据创建时间获取回显时间
*
* @param creatTime
* @return
*/
public static String getCreatTimeString(Date creatTime) {
Date now = new Date();
Long ZERO = 0L;
//获取当前时间的年份
int currentYear = DateUtil.year(now);
//获取创建时间的年份
int creatTimeYear = DateUtil.year(creatTime);
Long a = now.getTime() - creatTime.getTime();
if (DateUtil.isSameDay(creatTime, now)) {
if (a - ONE_MINUTE <= ZERO) {
return ForumConstans.NOW;
}
if (a - ONE_HOUR <= ZERO) {
return (now.getTime() - creatTime.getTime()) / ONE_MINUTE + "分钟前";
}
if (a - TODAY <= ZERO) {
return "今天 " + format3.format(creatTime);
}
}
if (creatTimeYear == currentYear) {
return "" + format2.format(creatTime);
} else {
return "" + format1.format(creatTime);
}
}
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsAppendixVo", description = "帖子附件表")
public class PostsAppendixVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "帖子id")
private Long postsId;
@ApiModelProperty(value = "附件名称 ")
private String name;
@ApiModelProperty(value = "附件大小")
private Double fileSize;
@ApiModelProperty(value = "文件后缀名")
private String fileSuffer;
@ApiModelProperty(value = "下载路径")
private String url;
@ApiModelProperty(value = "附件类型 :1、文档;2、图片;3、音频;4、视频;5、其他(压缩包)")
private Integer type;
@ApiModelProperty(value = "是否删除 0:未删除、1:已删除")
private Integer deleted;
@ApiModelProperty(value = "是否经过转码 1:已转")
private Integer isVideo;
@ApiModelProperty(value = "经过阿里云转码后的url")
private String aliyunUrl;
@ApiModelProperty(value = "创建者id")
private Long createById;
@ApiModelProperty(value = "创建者名称")
private String createByName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "更新者id")
private Long updateById;
@ApiModelProperty(value = "修改者名称")
private String updateByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "站点id")
private Long siteId;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsClassifyAccountVo", description = "可发帖、评论人员表")
public class PostsClassifyAccountVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id ")
private Long id;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "类型(1:可发帖人员、2:可评论人员)")
private Integer type;
@ApiModelProperty(value = "用户类型:1-部门 2-用户 ")
private Integer accountType;
@ApiModelProperty(value = "用户id或部门id ")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
private Long siteId;
@ApiModelProperty(value = "创建人")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改人id")
private Long updateById;
@ApiModelProperty(value = "修改人账号") private String updateByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@TableName("posts_classify")
@ApiModel(value = "PostsClassifyEntityVo", description = "帖子分类表")
public class PostsClassifyVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "分类id")
private Long id;
@ApiModelProperty(value = "名称 20个字符内")
private String name;
@ApiModelProperty(value = "分类编码 备用")
private String code;
@ApiModelProperty(value = "备注 100个字符内")
private String description;
@ApiModelProperty(value = "发帖可得积分")
private Integer sendPoint;
@ApiModelProperty(value = "评论可得积分 ")
private Integer commentPoint;
@ApiModelProperty(value = "0:平台用户 1:指定用户 可评论人员范围")
private Integer commentSetting;
@ApiModelProperty(value = "0:平台用户 1:指定用户 可发帖人员范围")
private Integer sendSetting;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
@ApiModelProperty(value = "排序字段")
private Integer sort;
private Long orgId;
private Long siteId;
private Long companyId;
private Long createById;
private String createByName;
private Date createTime;
private Long updateById;
private String updateByName;
private Date updateTime;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsContentVo", description = "帖子内容表")
public class PostsContentVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "帖子id")
private Long postsId;
@ApiModelProperty(value = "帖子内容")
private String content;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
private Long createById;
private String createByName;
private Date createTime;
private Long updateById;
private String updateByName;
private Date updateTime;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsFavoriteVo", description = "帖子收藏表")
public class PostsFavoriteVo {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "帖子id")
private Long postsId;
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
private Long createById;
private String createByName;
private Date createTime;
private Long updateById;
private String updateByName;
private Date updateTime;
private Long companyId;
private Long siteId;
private Long orgId;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsForbbidenAccount", description = "禁言人员表")
public class PostsForbiddenAccountVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "帖子id")
private Long postsId;
@ApiModelProperty(value = "用户id ")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
private Long siteId;
@ApiModelProperty(value = "被禁言用户名")
private String accountName;
@ApiModelProperty(value = "被禁言用户头像")
private String photo;
@ApiModelProperty(value = "创建人")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改人id")
private Long updateById;
@ApiModelProperty(value = "修改人账号")
private String updateByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsManageAccountVo", description = "代管员表")
public class PostsManageAccountVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id ")
private Long id;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "用户id ")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
private Long siteId;
@ApiModelProperty(value = "创建人")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改人id")
private Long updateById;
@ApiModelProperty(value = "修改人账号")
private String updateByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsReadRecordVo", description = "帖子阅读记录表")
public class PostsReadRecordVo {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "帖子id")
private Long postsId;
@ApiModelProperty(value = "用户id ")
private Long accountId;
@ApiModelProperty(value = "终端类型:1-管理端 2-pc端 3-微信端 4-app")
private Integer terminalType;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
@ApiModelProperty(value = "创建人")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "阅读时间")
private Date createTime;
@ApiModelProperty(value = "修改人id")
private Long updateById;
@ApiModelProperty(value = "修改人账号")
private String updateByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
private Long siteId;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsRelationVo", description = "帖子关联业务表")
public class PostsRelationVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "业务类型 1:training、2:course、3:offline_course、4:exam、5:research、6:live、7:assignment、8:案列活动、9:精选案列")
private Integer type;
@ApiModelProperty(value = "业务id")
private Long relationId;
@ApiModelProperty(value = "帖子id")
private Long postsId;
@ApiModelProperty(value = "业务logo")
private String taskLogo;
@ApiModelProperty(value = "业务名称")
private String taskName;
@ApiModelProperty(value = "备用字段")
private String spareField;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
@ApiModelProperty(value = "创建人")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改人id")
private Long updateById;
@ApiModelProperty(value = "修改人账号")
private String updateByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsVisibleRangeVo", description = "帖子可见范围表")
public class PostsVisibleRangeVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "帖子id")
private Long postsId;
@ApiModelProperty(value = "用户类型:1-部门 2-用户 ")
private Integer accountType;
@ApiModelProperty(value = "用户id或部门id ")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
private Long siteId;
@ApiModelProperty(value = "创建人")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
private String createByName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改人id")
private Long updateById;
@ApiModelProperty(value = "修改人账号")
private String updateByName;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}
package com.yizhi.forum.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsVo", description = "帖子表")
public class PostsVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "帖子id")
private Long id;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "帖子名称")
private String title;
@ApiModelProperty(value = "帖子封面(取内容里的图片)")
private String logo;
@ApiModelProperty(value = "状态 0:草稿 1:未上架 2:上架")
private Integer status;
@ApiModelProperty(value = "作者用户id")
private Long author;
@ApiModelProperty(value = "0:全平台 1:指定用户")
private Integer visibleRange;
@ApiModelProperty(value = "是否置顶 0:未置顶(默认) 1:置顶")
private Integer isTop;
@ApiModelProperty(value = "置顶时间 --is_top为1时有效,初始值为创建时间 ")
private Date topTime;
@ApiModelProperty(value = "是否加精 0:未加精(默认) 1:加精")
private Integer isHighlight;
@ApiModelProperty(value = "加精时间 --is_highlight为1时有效,初始值为创建时间 ")
private Date highlightTime;
@ApiModelProperty(value = "点赞数")
private Integer thumbsNum;
@ApiModelProperty(value = "阅读人数")
private Integer readNum;
@ApiModelProperty(value = "举报人数")
private Integer informNum;
@ApiModelProperty(value = "是否有新的举报而未被管理 0:未被管理(默认) 1:已被管理")
private Integer hasNewInform;
@ApiModelProperty(value = "回复人数")
private Integer replyNum;
@ApiModelProperty(value = "评论人数")
private Integer commentNum;
@ApiModelProperty(value = "最新回复时间 初始值为创建时间 ")
private Date commentTime;
@ApiModelProperty(value = "未被管理员阅读评论数")
private Integer newCommentNum;
@ApiModelProperty(value = "是否已经被管理 0:未被管理(默认) 1:已被管理")
private Integer hasManage;
@ApiModelProperty(value = "终端类型:1-管理端 2-pc端 3-微信端 4-app")
private Integer terminalType;
@ApiModelProperty(value = "若置顶该字段为允许的时间最大值,有回复则记录最新回复时间,默认帖子创建时间" +
"置顶时间>回复时间>创建时间 ")
private Date sortTime;
@ApiModelProperty(value = "有新的举报(包括对帖子和对回复的),有新的回复,帖子刚发表(包括修改以后发表)")
private Date manageSortTime;
@ApiModelProperty(value = "被收藏时间")
private Date favoriteTime;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
private Long orgId;
private Long siteId;
private Long companyId;
private Long createById;
private String createByName;
@ApiModelProperty(value = "发表时间")
private Date createTime;
private Long updateById;
private String updateByName;
@ApiModelProperty(value = "修改时间 初始值为发表时间")
private Date updateTime;
@ApiModelProperty(value = "发帖可得积分")
private Integer sendPoint;
@ApiModelProperty(value = "评论可得积分 ")
private Integer commentPoint;
}
package com.yizhi.forum.application.vo.forum;
import com.baomidou.mybatisplus.activerecord.Model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@Api(tags = "PdfPagesVo", description = "pdf图片")
public class PdfPagesVo extends Model<PdfPagesVo>{
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "页数")
private Integer pdfPage;
@ApiModelProperty(value = "业务id")
private Long bizId;
@ApiModelProperty(value = "业务类型")
private Integer bizType;
@ApiModelProperty(value = "图片地址")
private String imageUrl;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.forum.application.vo.forum;
import com.baomidou.mybatisplus.annotations.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsAppendixVo", description = "帖子附件表")
public class PostsAppendixVo {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "帖子id")
@TableField("posts_id")
private Long postsId;
@ApiModelProperty(value = "附件名称 ")
private String name;
@ApiModelProperty(value = "附件大小")
@TableField("file_size")
private Double fileSize;
@ApiModelProperty(value = "文件后缀名")
@TableField("file_suffer")
private String fileSuffer;
@ApiModelProperty(value = "下载路径")
private String url;
@ApiModelProperty(value = "阿里云下载路径")
private String aliyunUrl;
@ApiModelProperty(value = "附件类型 :1、文档;2、图片;3、音频;4、视频;5、其他(压缩包)")
private Integer type;
private List<PdfPagesVo> pdfPages;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsClassifyAccountVo", description = "可发帖、评论人员表")
public class PostsClassifyAccountVo {
@ApiModelProperty(value = "id ")
private Long id;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "类型(1:可发帖人员、2:可评论人员)")
private Integer type;
@ApiModelProperty(value = "用户类型:1-部门 2-用户 ")
private Integer accountType;
@ApiModelProperty(value = "用户id或部门id ")
private Long accountId;
@ApiModelProperty(value = "用户名 或部门名称 ")
private String accountName;
@ApiModelProperty(value = "用户真实名 ")
private String accountFullName;
@ApiModelProperty(value = "工号 ")
private String workNum;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsClassifySettingVo", description = "分类论坛设置Vo")
public class PostsClassifySettingVo {
@ApiModelProperty(value = "分类id")
private Long id;
@ApiModelProperty(value = "true:保存 false:修改")
private Boolean isSave = false;
@ApiModelProperty(value = "发帖可得积分")
private Integer sendPoint;
@ApiModelProperty(value = "评论可得积分 ")
private Integer commentPoint;
@ApiModelProperty(value = "0:平台用户 1:指定用户 可评论人员范围")
private Integer commentSetting;
@ApiModelProperty(value = "0:平台用户 1:指定用户 可发帖人员范围")
private Integer sendSetting;
@ApiModelProperty(value = "可发帖、评论人员集合")
private List<PostsClassifyAccountVo> postsClassifyAccountVos;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsClassifyVo", description = "")
public class PostsClassifyVo {
@ApiModelProperty(value = "分类id")
private Long id;
@ApiModelProperty(value = "名称 20个字符内 必填")
private String name;
@ApiModelProperty(value = "修改时的新名字")
private String newName;
@ApiModelProperty(value = "备注 100个字符内")
private String description;
@ApiModelProperty(value = "发帖可得积分")
private Integer sendPoint;
@ApiModelProperty(value = "评论可得积分 ")
private Integer commentPoint;
@ApiModelProperty(value = "0:平台用户 1:指定用户 可评论人员范围")
private Integer commentSetting;
@ApiModelProperty(value = "0:平台用户 1:指定用户 可发帖人员范围")
private Integer sendSetting;
@ApiModelProperty(value = "排序字段")
private Integer sort;
@ApiModelProperty(value = "修改时间 初始值为创建时间")
private Date updateTime;
}
package com.yizhi.forum.application.vo.forum;
import com.yizhi.forum.application.vo.domain.PostsManageAccountVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsManageAccountVo", description = "代管员表")
public class PostsManageAccountParamVo {
@ApiModelProperty(value = "true:保存 false:修改")
private Boolean isSave = false;
@ApiModelProperty(value = "分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "代管员集合")
private List<PostsManageAccountVo> postsManageAccounts;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsManageAccountVo", description = "代管员表")
public class PostsManageAccountVo {
@ApiModelProperty(value = "id ")
private Long id;
@ApiModelProperty(value = "用户id ")
private Long accountId;
@ApiModelProperty(value = "用户名 ")
private String accountName;
@ApiModelProperty(value = "用户真实名 ")
private String accountFullName;
@ApiModelProperty(value = "工号 ")
private String workNum;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsManageVo", description = "管理端帖子Vo")
public class PostsManageVo {
@ApiModelProperty(value = "帖子id")
private Long id;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "状态 0:草稿 1:未上架 2:上架")
private String status;
@ApiModelProperty(value = "帖子名称")
private String title;
@ApiModelProperty(value = "作者用户id")
private Long author;
@ApiModelProperty(value = "是否置顶 0:未置顶(默认) 1:置顶")
private Integer isTop;
@ApiModelProperty(value = "是否加精 0:未加精(默认) 1:加精")
private Integer isHighlight;
@ApiModelProperty(value = "作者用户名")
private String authorName;
@ApiModelProperty(value = "举报人数")
private Integer informNum;
@ApiModelProperty(value = "是否有新的举报而未被管理 0:未被管理(默认) 1:已被管理")
private Integer hasNewInform;
@ApiModelProperty(value = "回复人数")
private Integer replyNum;
@ApiModelProperty(value = "评论人数")
private Integer commentNum;
@ApiModelProperty(value = "未被管理员阅读评论数")
private Integer newCommentNum;
@ApiModelProperty(value = "是否已经被管理 0:未被管理(默认) 1:已被管理")
private Integer hasManage;
@ApiModelProperty(value = "修改时间 初始值为发表时间")
private Date updateTime;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsParamsVo", description = "搜索帖子的参数vo")
public class PostsParamsVo {
@ApiModelProperty(value = "帖子id")
private Long id;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "类型-- 0:草稿、1:下架、 2:上架 ")
private Integer status;
@ApiModelProperty(value = "类型-- 0:草稿、1:下架、 2:上架 、3:加精、4:置顶、5:帖子待管理、6:举报待管理 、7:回复待管理")
private Integer type;
@ApiModelProperty(value = "是否置顶 0:未置顶(默认) 1:置顶")
private Integer isTop;
@ApiModelProperty(value = "是否加精 0:未加精(默认) 1:加精")
private Integer isHighlight;
@ApiModelProperty(value = "终端类型:1-管理端 2-pc端 3-微信端 4-app")
private Integer terminalType;
@ApiModelProperty(value = "帖子名称")
private String title;
@ApiModelProperty(value = "作者用户id")
private Long author;
@ApiModelProperty(value = "是否包含已删除的帖子")
private Boolean includeDeleted = false;
@ApiModelProperty(value = "作者用户id集合")
private List<Long> authors;
@ApiModelProperty(value = "作者用户名")
private String authorName;
@ApiModelProperty(value = "当前页码")
private Integer pageNo = 1;
@ApiModelProperty(value = "页内条数")
private Integer pageSize = 10;
@ApiModelProperty(value = "首页配置需要")
private Boolean portalNeed = false;
@ApiModelProperty(value = "举报需要")
private Boolean informNeed = false;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsRelationVo", description = "帖子关联业务表")
public class PostsRelationVo {
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "业务类型" +
"1:training、2:course、3:offline_course、4:exam、5:research、6:live、7:assignment、8:案列活动、9:精选案列")
private Integer type;
@ApiModelProperty(value = "业务id")
private Long relationId;
@ApiModelProperty(value = "帖子id")
private Long postsId;
@ApiModelProperty(value = "业务logo")
private String taskLogo;
@ApiModelProperty(value = "业务名称")
private String taskName;
@ApiModelProperty(value = "备用字段 目前存放直播频道号")
private String spareField;
@ApiModelProperty(value = "观看类型:0: 公开播放 ; 1: 站内授权播放; ")
private Integer viewType;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsSaveVo", description = "保存帖子时vo")
public class PostsSaveVo {
@ApiModelProperty(value = "帖子id")
private Long id;
@ApiModelProperty(value = "保存类型-- 0:草稿 2:上架 必传")
private Integer type;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "帖子分类名称")
private String postClassifyName;
@ApiModelProperty(value = "帖子名称 必传")
private String title;
@ApiModelProperty(value = "帖子封面(取内容里的图片)")
private String logo;
@ApiModelProperty(value = "终端类型:1-管理端 2-pc端 3-微信端 4-app 必传")
private Integer terminalType;
@ApiModelProperty(value = "帖子内容 必传")
private String content;
@ApiModelProperty(value = "0:全平台 1:指定用户 必传")
private Integer visibleRange;
@ApiModelProperty(value = "作者用户id")
private Long author;
@ApiModelProperty(value = "作者用户名")
private String authorName;
@ApiModelProperty(value = "作者头像")
private String authorPhoto;
@ApiModelProperty(value = "点赞数")
private Integer thumbsNum;
@ApiModelProperty(value = "阅读人数")
private Integer readNum;
@ApiModelProperty(value = "回复人数")
private Integer replyNum;
@ApiModelProperty(value = "评论人数")
private Integer commentNum;
@ApiModelProperty(value = "帖子附件")
private List<PostsAppendixVo> postsAppendixVos;
@ApiModelProperty(value = "帖子关联活动")
private List<PostsRelationVo> postsRelationVos;
@ApiModelProperty(value = "帖子指定范围")
private List<PostsVisibleRangeVo> postsVisibleRangeVos;
@ApiModelProperty(value = "是否已点赞 0:未点赞(默认) 1:已点赞")
private Integer hasThumbs;
@ApiModelProperty(value = "是否已收藏 0:未收藏 (默认) 1:已收藏 ")
private Integer hasFavorite;
@ApiModelProperty(value = "是否已被禁言 0:未禁言 (默认) 1:已禁言 ")
private Integer hasForbidden;
@ApiModelProperty(value = "是否可以评论 0:不可以 (默认) 1:可以 ")
private Integer canComment;
@ApiModelProperty(value = "发表时间")
private Date creatTime;
@ApiModelProperty(value = "发表时间String已做处理 回显需要")
private String createTimeString;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsStudentVo", description = "学员端帖子Vo")
public class PostsStudentVo {
@ApiModelProperty(value = "帖子id")
private Long id;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "帖子分类名称")
private String postClassifyName;
@ApiModelProperty(value = "帖子名称")
private String title;
@ApiModelProperty(value = "帖子内容")
private String content;
@ApiModelProperty(value = "帖子封面(取内容里的图片)")
private String logo;
@ApiModelProperty(value = "作者用户id")
private Long author;
@ApiModelProperty(value = "状态 0:草稿 1:未上架 2:上架")
private Integer status;
@ApiModelProperty(value = "作者用户名")
private String authorName;
@ApiModelProperty(value = "作者头像")
private String authorPhoto;
@ApiModelProperty(value = "是否置顶 0:未置顶(默认) 1:置顶")
private Integer isTop;
@ApiModelProperty(value = "置顶时间 --is_top为1时有效,初始值为创建时间 ")
private Date topTime;
@ApiModelProperty(value = "是否加精 0:未加精(默认) 1:加精")
private Integer isHighlight;
@ApiModelProperty(value = "加精时间 --is_highlight为1时有效,初始值为创建时间 ")
private Date highlightTime;
@ApiModelProperty(value = "点赞数")
private Integer thumbsNum;
@ApiModelProperty(value = "阅读人数")
private Integer readNum;
@ApiModelProperty(value = "举报人数")
private Integer informNum;
@ApiModelProperty(value = "是否有新的举报而未被管理 0:未被管理(默认) 1:已被管理")
private Integer hasNewInform;
@ApiModelProperty(value = "回复人数")
private Integer replyNum;
@ApiModelProperty(value = "评论人数")
private Integer commentNum;
@ApiModelProperty(value = "最新回复时间 初始值为创建时间 置顶时间为时间最大值; ")
private Date commentTime;
@ApiModelProperty(value = "未被管理员阅读评论数")
private Integer newCommentNum;
@ApiModelProperty(value = "是否已经被管理 0:未被管理(默认) 1:已被管理")
private Integer hasManage;
@ApiModelProperty(value = "终端类型:1-管理端 2-pc端 3-微信端 4-app")
private Integer terminalType;
@ApiModelProperty(value = "若置顶该字段为允许的时间最大值,有回复则记录最新回复时间,默认帖子创建时间\n" +
"置顶时间>回复时间>创建时间 ")
private Date sortTime;
@ApiModelProperty(value = "发表时间")
private Date createTime;
@ApiModelProperty(value = "发表时间String已做处理 回显需要")
private String createTimeString;
@ApiModelProperty(value = "修改时间 初始值为发表时间")
private Date updateTime;
@ApiModelProperty(value = "状态 0未删除 1:已删除")
private Integer deleted;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsVisibleRangeVo", description = "帖子可见范围表")
public class PostsVisibleRangeVo {
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "帖子id")
private Long postsId;
@ApiModelProperty(value = "用户类型:1-部门 2-用户 ")
private Integer accountType;
@ApiModelProperty(value = "用户id或部门id ")
private Long accountId;
@ApiModelProperty(value = "用户名 或部门名称 ")
private String accountName;
@ApiModelProperty(value = "用户真实名 ")
private String accountFullName;
@ApiModelProperty(value = "工号 ")
private String workNum;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsVo", description = "帖子Vo")
public class PostsVo {
@ApiModelProperty(value = "帖子id")
private Long id;
@ApiModelProperty(value = "帖子分类id")
private Long postsClassifyId;
@ApiModelProperty(value = "帖子名称")
private String title;
@ApiModelProperty(value = "帖子封面(取内容里的图片)")
private String logo;
@ApiModelProperty(value = "作者用户id")
private Long author;
@ApiModelProperty(value = "是否置顶 0:未置顶(默认) 1:置顶")
private Integer isTop;
@ApiModelProperty(value = "置顶时间 --is_top为1时有效,初始值为创建时间 ")
private Date topTime;
@ApiModelProperty(value = "是否加精 0:未加精(默认) 1:加精")
private Integer isHighlight;
@ApiModelProperty(value = "加精时间 --is_highlight为1时有效,初始值为创建时间 ")
private Date highlightTime;
@ApiModelProperty(value = "点赞数")
private Integer thumbsNum;
@ApiModelProperty(value = "阅读人数")
private Integer readNum;
@ApiModelProperty(value = "举报人数")
private Integer informNum;
@ApiModelProperty(value = "是否有新的举报而未被管理 0:未被管理(默认) 1:已被管理")
private Integer hasNewInform;
@ApiModelProperty(value = "回复人数")
private Integer replyNum;
@ApiModelProperty(value = "评论人数")
private Integer commentNum;
@ApiModelProperty(value = "最新回复时间 初始值为创建时间 置顶时间为时间最大值; ")
private Date commentTime;
@ApiModelProperty(value = "未被管理员阅读评论数")
private Integer newCommentNum;
@ApiModelProperty(value = "是否已经被管理 0:未被管理(默认) 1:已被管理")
private Integer hasManage;
@ApiModelProperty(value = "终端类型:1-管理端 2-pc端 3-微信端 4-app")
private Integer terminalType;
@ApiModelProperty(value = "若置顶该字段为允许的时间最大值,有回复则记录最新回复时间,默认帖子创建时间\n" +
"置顶时间>回复时间>创建时间 ")
private Date sortTime;
@ApiModelProperty(value = "发表时间")
private Date createTime;
@ApiModelProperty(value = "被收藏时间")
private Date favoriteTime;
@ApiModelProperty(value = "修改时间 初始值为发表时间")
private Date updateTime;
@ApiModelProperty(value = "有新的举报(包括对帖子和对回复的),有新的回复,帖子刚发表(包括修改以后发表)")
private Date manageSortTime;
}
package com.yizhi.forum.application.vo.forum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-02-13
*/
@Data
@ApiModel(value = "StatisticsForumAccountVo", description = "")
public class StatisticsForumAccountVo {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "用户id")
private Long author;
@ApiModelProperty(value = "已发表数")
private Integer sendNum;
@ApiModelProperty(value = "阅读数 ")
private Integer readNum;
@ApiModelProperty(value = "评论数 ")
private Integer commentNum;
@ApiModelProperty(value = "回复数 ")
private Integer replyNum;
@ApiModelProperty(value = "草稿帖子数 ")
private Integer draftNum;
@ApiModelProperty(value = "精选帖子数")
private Integer highlightNum;
@ApiModelProperty(value = "置顶帖子数")
private Integer topNum;
@ApiModelProperty(value = "点赞数")
private Integer admireNum;
@ApiModelProperty(value = "被点赞数")
private Integer beAdmiredNum;
@ApiModelProperty(value = "举报数")
private Integer informNum;
@ApiModelProperty(value = "被举报数")
private Integer beInformNum;
@ApiModelProperty(value = "被禁言数")
private Integer beForbiddenNum;
}
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.yizhi</groupId>
<artifactId>cloud-forum</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.yizhi</groupId>
<artifactId>cloud-forum-service</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-orm</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-forum-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-system-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-comment-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-point-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-forum-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- deploy 时跳过该模块 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.yizhi.forum.application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yizhi"})
@ComponentScan(basePackages = {"com.yizhi"})
public class ForumApplication {
public static void main(String[] args) {
SpringApplication.run(ForumApplication.class, args);
}
}
package com.yizhi.forum.application.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 帖子附件接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsAppendix")
public class PostsAppendixController {
}
package com.yizhi.forum.application.controller;
import com.yizhi.forum.application.feign.PostsClassifyAccountClient;
import com.yizhi.forum.application.service.IPostsClassifyAccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 分类可评论人员、可发帖人员接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsClassifyAccount")
public class PostsClassifyAccountController implements PostsClassifyAccountClient {
@Autowired
private IPostsClassifyAccountService postsClassifyAccountService;
@Override
@GetMapping("/canComment")
public Integer canComment(@RequestParam("postsId") Long postsId) {
return postsClassifyAccountService.canComment(postsId);
}
}
package com.yizhi.forum.application.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.domain.PostsClassify;
import com.yizhi.forum.application.feign.PostsClassifyClient;
import com.yizhi.forum.application.service.IPostsClassifyService;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import com.yizhi.forum.application.vo.forum.PostsClassifySettingVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
* <p>
* 分类接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsClassify/manage/")
public class PostsClassifyController implements PostsClassifyClient {
private Logger logger = LoggerFactory.getLogger(PostsClassifyController.class);
@Autowired
private IPostsClassifyService postsClassifyService;
/**
* 判断分类名称是否已存在
*
* @param name
* @return
*/
@Override
@GetMapping("/exsitsSameName")
public Boolean exsitsSameName(@RequestParam("name") String name) {
RequestContext context = ContextHolder.get();
PostsClassify postsClassify = new PostsClassify();
postsClassify.setName(name);
postsClassify.setSiteId(context.getSiteId());
EntityWrapper<PostsClassify> wrapper = new EntityWrapper(postsClassify);
if (postsClassifyService.selectCount(wrapper) > 0) {
return true;
}
return false;
}
@Override
@PostMapping("/save")
public Boolean save(@RequestBody PostsClassifyVo postsClassifyVo) {
PostsClassifyVo postsClassify = new PostsClassifyVo();
BeanUtils.copyProperties(postsClassifyVo, postsClassify);
return postsClassifyService.save(postsClassify);
}
@Override
@PostMapping("/update")
public Boolean update(@RequestBody PostsClassifyVo postsClassifyVo) {
RequestContext context = ContextHolder.get();
PostsClassify postsClassify = new PostsClassify();
BeanUtils.copyProperties(postsClassifyVo, postsClassify);
postsClassify.setUpdateById(context.getAccountId());
postsClassify.setUpdateByName(context.getAccountName());
postsClassify.setUpdateTime(new Date());
return postsClassifyService.updateById(postsClassify);
}
@Override
/**
* type;1-上移 2-下移 必填
*/
@GetMapping("/move")
public Integer move(@RequestParam("type") Integer type,
@RequestParam("id") Long id) {
return postsClassifyService.move(type, id);
}
@Override
@GetMapping("/get")
public PostsClassifyVo get(@RequestParam("id") Long id) {
PostsClassify postsClassify = this.postsClassifyService.selectById(id);
if (postsClassify != null) {
PostsClassifyVo vo = new PostsClassifyVo();
BeanUtils.copyProperties(postsClassify, vo);
return vo;
}
return null;
}
@Override
@GetMapping("/deleted")
public Integer deleted(@RequestParam("id") Long id) {
return postsClassifyService.delete(id);
}
/**
* 更新论坛设置数据包括设置的人员范围
*
* @param vo
* @return
*/
@Override
@PostMapping("/updateSetting")
public Boolean updateSetting(@RequestBody PostsClassifySettingVo vo) {
return postsClassifyService.updateSetting(vo);
}
/**
* 获取论坛设置数据包括设置的人员范围
*
* @param id
* @return
*/
@Override
@GetMapping("/getSetting")
public PostsClassifySettingVo getSetting(@RequestParam("id") Long id) {
return postsClassifyService.getSetting(id);
}
/**
* 分页查询
*
* @param name
* @param pageNo
* @param pageSize
* @return
*/
@Override
@GetMapping("/getPage")
public Page<PostsClassifyVo> getPage(@RequestParam(value = "name",required = false) String name,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
return postsClassifyService.getPage(name, pageNo, pageSize);
}
}
package com.yizhi.forum.application.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.feign.PostsClient;
import com.yizhi.forum.application.service.IPostsService;
import com.yizhi.forum.application.vo.forum.PostsManageVo;
import com.yizhi.forum.application.vo.forum.PostsParamsVo;
import com.yizhi.forum.application.vo.forum.PostsSaveVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 帖子接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/posts")
public class PostsController implements PostsClient {
@Autowired
IPostsService postsService;
/**
* 保存帖子
*
* @param vo
* @return
*/
@Override
@PostMapping("/save")
public Integer save(@RequestBody PostsSaveVo vo) {
return postsService.save(vo);
}
/**
* 查看完整帖子
*
* @param vo
* @return
*/
@Override
@PostMapping("/get")
public PostsSaveVo get(@RequestBody PostsParamsVo vo) {
return postsService.get(vo);
}
/**
* 帖子修改
*
* @param vo
* @return
*/
@Override
@PostMapping("/update")
public Integer update(@RequestBody PostsSaveVo vo) {
return postsService.update(vo);
}
/**
* 帖子上下架
*
* @param vo
* @return
*/
@Override
@PostMapping("/upOrDown")
public Integer upOrDown(@RequestBody PostsParamsVo vo) {
return postsService.upOrDown(vo);
}
/**
* 帖子加精或置顶
*
* @param vo
* @return
*/
@Override
@PostMapping("/topOrHighlight")
public Integer topOrHighlight(@RequestBody PostsParamsVo vo) {
return postsService.topOrHighlight(vo);
}
@Override
@PostMapping("/getPage")
public Page<PostsManageVo> getPage(@RequestBody PostsParamsVo vo) {
return postsService.getPage(vo);
}
}
package com.yizhi.forum.application.controller;
import com.yizhi.forum.application.feign.student.StudentPostsFavoriteClient;
import com.yizhi.forum.application.service.IPostsFavoriteService;
import com.yizhi.forum.application.vo.domain.PostsFavoriteVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsFavorite")
public class PostsFavoriteController implements StudentPostsFavoriteClient {
@Autowired
private IPostsFavoriteService postsFavoriteService;
@Override
@PostMapping("/save")
public Integer save(@RequestBody PostsFavoriteVo postsFavorite){
return postsFavoriteService.save(postsFavorite);
}
@Override
@PostMapping("/deleted")
public Integer deleted(@RequestBody PostsFavoriteVo postsFavorite){
return postsFavoriteService.deleted(postsFavorite);
}
@Override
@GetMapping("/hasFavoriteByPostsId")
public Integer hasFavoriteByPostsId(@RequestParam("postsId") Long postsId) {
return postsFavoriteService.hasFavoriteByPostsId(postsId,false);
}
@Override
@GetMapping("/hasFavoriteByPostsIds")
public Map<Long,Integer> hasFavoriteByPostsIds(@RequestParam("postsIds") List<Long> postsIds) {
return postsFavoriteService.hasFavoriteByPostsIds(postsIds);
}
}
package com.yizhi.forum.application.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.feign.PostsForbiddenAccountClient;
import com.yizhi.forum.application.service.IPostsForbiddenAccountService;
import com.yizhi.forum.application.vo.domain.PostsForbiddenAccountVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsForbiddenAccount")
public class PostsForbiddenAccountController implements PostsForbiddenAccountClient {
@Autowired
private IPostsForbiddenAccountService postsForbiddenAccountService;
@Override
@PostMapping("/save")
public Integer save(@RequestBody PostsForbiddenAccountVo forbiddenAccount) {
return postsForbiddenAccountService.save(forbiddenAccount);
}
@Override
@GetMapping("/getPage")
public Page<PostsForbiddenAccountVo> getPage(@RequestParam("postsId") Long postsId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
return postsForbiddenAccountService.getPage(postsId, pageNo, pageSize);
}
@Override
@PostMapping("/deleted")
public Integer deleted(@RequestBody PostsForbiddenAccountVo forbiddenAccount) {
return postsForbiddenAccountService.delete(forbiddenAccount);
}
@Override
@GetMapping("/hasForbiddenByPostsId")
public Integer hasForbiddenByPostsId(@RequestParam("postsId") Long postsId) {
return postsForbiddenAccountService.hasForbiddenByPostsId(postsId);
}
@Override
@GetMapping("/getListByPostsId")
public List<PostsForbiddenAccountVo> getListByPostsId(@RequestParam("postsIds") List<Long> postsIds) {
return postsForbiddenAccountService.getListByPostsId(postsIds);
}
}
package com.yizhi.forum.application.controller;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.forum.application.feign.PostsManageAccountClient;
import com.yizhi.forum.application.service.IPostsManageAccountService;
import com.yizhi.forum.application.vo.forum.PostsManageAccountParamVo;
import com.yizhi.forum.application.vo.forum.PostsManageAccountVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 代管员接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsManageAccount")
public class PostsManageAccountController implements PostsManageAccountClient {
@Autowired
private IPostsManageAccountService postsManageAccountService;
@PostMapping("/save")
public Boolean save(@RequestBody PostsManageAccountParamVo vo) {
return postsManageAccountService.save(vo);
}
@Override
@GetMapping("/getManager")
public List<PostsManageAccountVo> getManager(@RequestParam("postsClassifyId") Long postsClassifyId){
return postsManageAccountService.getManager(postsClassifyId, ContextHolder.get().getSiteId());
}
}
package com.yizhi.forum.application.controller;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.feign.PostsReadRecordsClient;
import com.yizhi.forum.application.service.IPostsReadRecordsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsReadRecords")
public class PostsReadRecordsController implements PostsReadRecordsClient {
@Autowired
private IPostsReadRecordsService postsReadRecordsService;
@Override
@GetMapping("/insertReadRecord")
public Integer insertReadRecord(@RequestParam("postsId") Long postsId, @RequestParam("terminalType") Integer terminalType) {
//插入查看帖子的阅读记录
return postsReadRecordsService.insertRecord(ForumConstans.ZERO, postsId, terminalType);
}
}
package com.yizhi.forum.application.controller;
import com.yizhi.forum.application.feign.PostsVisibleRangeClient;
import com.yizhi.forum.application.service.IPostsVisibleRangeService;
import com.yizhi.forum.application.vo.forum.PostsVisibleRangeVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 帖子的指定范围
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsVisibleRange")
public class PostsVisibleRangeController implements PostsVisibleRangeClient {
@Autowired
private IPostsVisibleRangeService postsVisibleRangeService;
@Override
@GetMapping("/getVisibleRange")
public List<PostsVisibleRangeVo> getVisibleRange(Long postsId) {
return postsVisibleRangeService.getListByPostsId(postsId);
}
}
package com.yizhi.forum.application.controller.remote;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.Posts;
import com.yizhi.forum.application.feign.remote.RemotePostsClient;
import com.yizhi.forum.application.service.IPostsAppendixService;
import com.yizhi.forum.application.service.IPostsService;
import com.yizhi.forum.application.vo.forum.PostsParamsVo;
import com.yizhi.forum.application.vo.forum.PostsStudentVo;
import com.yizhi.forum.application.vo.domain.PostsVo;
import com.yizhi.forum.application.vo.forum.StatisticsForumAccountVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* <p>
* 帖子接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/remote/posts")
public class RemotePostsController implements RemotePostsClient {
@Autowired
private IPostsService postsService;
@Autowired
private IPostsAppendixService postsAppendixService;
/**
* 帖子基本信息修改
*
* @param vo
* @return
*/
@Override
@PostMapping("/update/info")
public Integer updateInfo(@RequestBody PostsVo vo) {
return postsService.updateInfo(vo);
}
@Override
@PostMapping("/getList")
public List<PostsVo> getList(@RequestBody PostsParamsVo vo) {
List<Posts> list = postsService.getList(vo);
List<PostsVo> lists = new ArrayList<>();
for (Posts p : list) {
PostsVo postsVo = new PostsVo();
BeanUtils.copyProperties(p, postsVo);
lists.add(postsVo);
}
return lists;
}
@Override
@PostMapping("/getMap")
public Map<Long, PostsStudentVo> getMap(@RequestBody PostsParamsVo vo) {
return postsService.getMap(vo);
}
@Override
@GetMapping("/get/info")
public PostsVo getInfo(@RequestParam("postsId") Long postsId) {
Posts list = postsService.getInfo(postsId);
PostsVo postsVo = new PostsVo();
BeanUtils.copyProperties(list, postsVo);
return postsVo;
}
/**
* 报表需要取得所有已上架的帖子
*
* @return
*/
@Override
@GetMapping("/getAllPosts")
public List<PostsVo> getAllPosts() {
Posts posts = new Posts();
posts.setStatus(ForumConstans.UP);
posts.setDeleted(ForumConstans.NOT_DELETED);
List<Posts> list = postsService.selectList(new EntityWrapper<>(posts));
List<PostsVo> lists = new ArrayList<>();
for (Posts p : list) {
PostsVo postsVo = new PostsVo();
BeanUtils.copyProperties(p, postsVo);
lists.add(postsVo);
}
return lists;
}
/**
* 报表需要个人的帖子数据Map
*
* @return
*/
@Override
@GetMapping("/getPersonalDataMap")
public Map<Long, StatisticsForumAccountVo> getPersonalDataMap() {
return postsService.getPersonalDataMap();
}
/**
* 首页展示精选中的帖子需要帖子实时名称
*
* @param postsIds
* @return
*/
@Override
@GetMapping("/getNames")
public Map<Long, String> getNames(@RequestParam(value = "postsIds", required = false) List<Long> postsIds) {
return postsService.getNames(postsIds);
}
@Override
@GetMapping({"/verifyVideo"})
public boolean verifyVideo(@RequestParam("postsAppendixIds") List<Long> postsAppendixIds) {
return postsAppendixService.verifyVideo(postsAppendixIds);
}
@Override
@PostMapping({"/updateVideoTranscodeUrl"})
public boolean updateVideoTranscodeUrl(@RequestBody Map<String, String> var1) {
return postsAppendixService.updateVideoTranscodeUrl(var1);
}
}
package com.yizhi.forum.application.controller.student;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.feign.student.StudentPostsClassifyClient;
import com.yizhi.forum.application.service.IPostsClassifyService;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 学员端分类接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/postsClassify/student/")
public class StudentPostsClassifyController implements StudentPostsClassifyClient {
private Logger logger = LoggerFactory.getLogger(StudentPostsClassifyController.class);
@Autowired
private IPostsClassifyService postsClassifyService;
/**
* 学员端分类分页查询
*
* @param name
* @param canSend 是否对发帖可见范围作判断
* @param pageNo
* @param pageSize
* @return
*/
@Override
@GetMapping("/getPageToStudent")
public Page<PostsClassifyVo> getPageToStudent(@RequestParam(value = "name",required = false) String name,
@RequestParam("canSend") Boolean canSend,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
return postsClassifyService.getPageToStudent(name, canSend, pageNo, pageSize);
}
}
package com.yizhi.forum.application.controller.student;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.core.application.task.AbstractTaskHandler;
import com.yizhi.core.application.task.TaskExecutor;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.Posts;
import com.yizhi.forum.application.feign.student.StudentPostsClient;
import com.yizhi.forum.application.service.IPostsService;
import com.yizhi.forum.application.vo.forum.PostsParamsVo;
import com.yizhi.forum.application.vo.forum.PostsSaveVo;
import com.yizhi.forum.application.vo.forum.PostsStudentVo;
import com.yizhi.point.application.feign.PointRedisFeignClients;
import com.yizhi.point.application.vo.PointParamVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* <p>
* 帖子接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@RestController
@RequestMapping("/posts/student")
public class StudentPostsController implements StudentPostsClient {
@Autowired
IPostsService postsService;
@Autowired
private PointRedisFeignClients pointRedisFeignClients;
@Autowired
private AmqpTemplate amqpTemplate;
@Autowired
private TaskExecutor taskExecutor;
@Autowired
private IdGenerator idGenerator;
/**
* 参数解释见mypage
*
* @param type
* @param keyword
* @param classifyId
* @param pageNo
* @param pageSize
* @return
*/
@Override
@GetMapping("/getPageToStudent")
public Page<PostsStudentVo> getPageToStudent(@RequestParam("type") Integer type,
@RequestParam(value = "keyword", required = false) String keyword,
@RequestParam(value = "classifyId", required = false) Long classifyId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
return postsService.getPageToStudent(type, keyword, classifyId, pageNo, pageSize);
}
/**
* 保存帖子
*
* @param vo
* @return
*/
@Override
@PostMapping("/save")
public Integer studentSave(@RequestBody PostsSaveVo vo) {
Long id = idGenerator.generate();
vo.setId(id);
Integer save = postsService.save(vo);
if (save > 0 && ForumConstans.UP.equals(vo.getType())) {
// 发积分
sendPoint(id, ContextHolder.get(), vo.getTitle());
}
return save;
}
@Override
@PostMapping("/get")
public PostsSaveVo studentGet(@RequestBody PostsParamsVo vo) {
return postsService.get(vo);
}
/**
* 我的发帖 我的收藏 我的管理 分页数据
*
* @param type 1:我的发帖 2:我的收藏 3:我的管理
* @param status 0:草稿 1:下架 2:上架
* @param keyword 分类名称或帖子标题
* @param classifyId
* @param pageNo
* @param pageSize
* @return
*/
@Override
@GetMapping("/myPage")
public Page<PostsStudentVo> myPage(@RequestParam("type") Integer type,
@RequestParam(value = "status",required = false) Integer status,
@RequestParam(value = "keyword",required = false) String keyword,
@RequestParam(value = "classifyId",required = false) Long classifyId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
return postsService.myPage(type, status, keyword, classifyId, pageNo, pageSize);
}
/**
* 学员端修改帖子
*
* @param vo
* @return
*/
@Override
@PostMapping("/update")
public Integer update(@RequestBody PostsSaveVo vo) {
return postsService.update(vo);
}
/**
* 学员端删除帖子
*
* @param vo
* @return
*/
@Override
@PostMapping("/deleted")
public Integer deleted(@RequestBody PostsParamsVo vo) {
return postsService.upOrDown(vo);
}
@Override
@PostMapping("/topOrHighlight")
public Integer topOrHighlight(@RequestBody PostsParamsVo vo) {
return postsService.topOrHighlight(vo);
}
@Override
@GetMapping("/getMapByIds")
public Map<Long, PostsStudentVo> getMapByIds(@RequestParam("postsIds") List<Long> postsIds) {
return postsService.getMapByIds(postsIds);
}
/**
* 判断是否发积分
*
* @param postsId 帖子id
* @param context
*/
public void sendPoint(Long postsId, RequestContext context, String activityName) {
taskExecutor.asynExecute(new AbstractTaskHandler() {
@Override
public void handle() {
//论坛回帖发送积分
PointParamVO pointParamVO = new PointParamVO();
pointParamVO.setEventName("pointForum");
pointParamVO.setActivityName(activityName);
pointParamVO.setActivityType("发布论坛帖子发放积分");
pointParamVO.setActivitySource("论坛");
pointParamVO.setCreatePointTime(new Date());
pointParamVO.setSourceId(postsId);
pointParamVO.setAccountId(context.getAccountId());
pointParamVO.setSiteId(context.getSiteId());
pointParamVO.setCompanyId(context.getCompanyId());
pointParamVO.setAccountName(context.getAccountName());
pointParamVO.setOrgId(context.getOrgId());
pointParamVO.setOperatingPoint(0);
Posts info = postsService.getInfo(postsId);
if (info != null) {
pointParamVO.setOperatingPoint(info.getSendPoint());
}
String sitePointId = pointRedisFeignClients.addPointRedis(pointParamVO);
// 发送积分
if (!StringUtils.isEmpty(sitePointId)) {
amqpTemplate.convertAndSend("forum", sitePointId);
}
}
});
}
/**
* 获取我的回复(用户的回复收到新的回复未查看时)、我的管理(有回复、举报或帖子未查看)的数量
*
* @return
*/
@Override
@GetMapping("/getMyNum")
@ApiOperation(value = "获取我的管理(有回复、举报或帖子未查看)的数量")
public Integer getMyNum() {
return postsService.getMyNum();
}
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsVo", description = "帖子表")
@TableName("posts")
public class Posts {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "帖子id")
private Long id;
@ApiModelProperty(value = "帖子分类id")
@TableField("posts_classify_id")
private Long postsClassifyId;
@ApiModelProperty(value = "帖子名称")
private String title;
@ApiModelProperty(value = "帖子封面(取内容里的图片)")
private String logo;
@ApiModelProperty(value = "状态 0:草稿 1:未上架 2:上架")
private Integer status;
@ApiModelProperty(value = "作者用户id")
private Long author;
@ApiModelProperty(value = "0:全平台 1:指定用户")
@TableField("visible_range")
private Integer visibleRange;
@ApiModelProperty(value = "是否置顶 0:未置顶(默认) 1:置顶")
@TableField("is_top")
private Integer isTop;
@ApiModelProperty(value = "置顶时间 --is_top为1时有效,初始值为创建时间 ")
@TableField("top_time")
private Date topTime;
@ApiModelProperty(value = "是否加精 0:未加精(默认) 1:加精")
@TableField("is_highlight")
private Integer isHighlight;
@ApiModelProperty(value = "加精时间 --is_highlight为1时有效,初始值为创建时间 ")
@TableField("highlight_time")
private Date highlightTime;
@ApiModelProperty(value = "点赞数")
@TableField("thumbs_num")
private Integer thumbsNum;
@ApiModelProperty(value = "阅读人数")
@TableField("read_num")
private Integer readNum;
@ApiModelProperty(value = "举报人数")
@TableField("inform_num")
private Integer informNum;
@ApiModelProperty(value = "是否有新的举报而未被管理 0:未被管理(默认) 1:已被管理")
@TableField("has_new_inform")
private Integer hasNewInform;
@ApiModelProperty(value = "回复人数")
@TableField("reply_num")
private Integer replyNum;
@ApiModelProperty(value = "评论人数")
@TableField("comment_num")
private Integer commentNum;
@ApiModelProperty(value = "最新回复时间 初始值为创建时间 ")
@TableField("comment_time")
private Date commentTime;
@ApiModelProperty(value = "未被管理员阅读评论数")
@TableField("new_comment_num")
private Integer newCommentNum;
@ApiModelProperty(value = "是否已经被管理 0:未被管理(默认) 1:已被管理")
@TableField("has_manage")
private Integer hasManage;
@ApiModelProperty(value = "终端类型:1-管理端 2-pc端 3-微信端 4-app")
@TableField("terminal_type")
private Integer terminalType;
@ApiModelProperty(value = "若置顶该字段为允许的时间最大值,有回复则记录最新回复时间,默认帖子创建时间" +
"置顶时间>回复时间>创建时间 ")
@TableField("sort_time")
private Date sortTime;
@ApiModelProperty(value = "有新的举报(包括对帖子和对回复的),有新的回复,帖子刚发表(包括修改以后发表)")
@TableField("manage_sort_time")
private Date manageSortTime;
@ApiModelProperty(value = "被收藏时间")
@TableField("favorite_time")
private Date favoriteTime;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@TableField("org_id")
private Long orgId;
@TableField("site_id")
private Long siteId;
@TableField("company_id")
private Long companyId;
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "发表时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间 初始值为发表时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
@ApiModelProperty(value = "发帖可得积分")
@TableField(exist = false)
private Integer sendPoint;
@ApiModelProperty(value = "评论可得积分 ")
@TableField(exist = false)
private Integer commentPoint;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsAppendixVo", description = "帖子附件表")
@TableName("posts_appendix")
public class PostsAppendix {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "帖子id")
@TableField("posts_id")
private Long postsId;
@ApiModelProperty(value = "附件名称 ")
private String name;
@ApiModelProperty(value = "附件大小")
@TableField("file_size")
private Double fileSize;
@ApiModelProperty(value = "文件后缀名")
@TableField("file_suffer")
private String fileSuffer;
@ApiModelProperty(value = "下载路径")
private String url;
@ApiModelProperty(value = "附件类型 :1、文档;2、图片;3、音频;4、视频;5、其他(压缩包)")
private Integer type;
@ApiModelProperty(value = "是否删除 0:未删除、1:已删除")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "是否经过转码 1:已转")
@TableField("is_video")
private Integer isVideo;
@ApiModelProperty(value = "经过阿里云转码后的url")
@TableField("aliyun_url")
private String aliyunUrl;
@ApiModelProperty(value = "创建者id")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建者名称")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "更新者id")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改者名称")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
@ApiModelProperty(value = "站点id")
@TableField("site_id")
private Long siteId;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsClassifyEntityVo", description = "帖子分类表")
@TableName("posts_classify")
public class PostsClassify {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "分类id")
private Long id;
@ApiModelProperty(value = "名称 20个字符内")
private String name;
@ApiModelProperty(value = "分类编码 备用")
private String code;
@ApiModelProperty(value = "备注 100个字符内")
private String description;
@ApiModelProperty(value = "发帖可得积分")
@TableField("send_point")
private Integer sendPoint;
@ApiModelProperty(value = "评论可得积分 ")
@TableField("comment_point")
private Integer commentPoint;
@ApiModelProperty(value = "0:平台用户 1:指定用户 可评论人员范围")
@TableField("comment_setting")
private Integer commentSetting;
@ApiModelProperty(value = "0:平台用户 1:指定用户 可发帖人员范围")
@TableField("send_setting")
private Integer sendSetting;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "排序字段")
private Integer sort;
@TableField("org_id")
private Long orgId;
@TableField("site_id")
private Long siteId;
@TableField("company_id")
private Long companyId;
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsClassifyAccountVo", description = "可发帖、评论人员表")
@TableName("posts_classify_account")
public class PostsClassifyAccount {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id ")
private Long id;
@ApiModelProperty(value = "帖子分类id")
@TableField("posts_classify_id")
private Long postsClassifyId;
@ApiModelProperty(value = "类型(1:可发帖人员、2:可评论人员)")
private Integer type;
@ApiModelProperty(value = "用户类型:1-部门 2-用户 ")
@TableField("account_type")
private Integer accountType;
@ApiModelProperty(value = "用户id或部门id ")
@TableField("account_id")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@TableField("site_id")
private Long siteId;
@ApiModelProperty(value = "创建人")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建人姓名")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "修改人id")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改人账号")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsContentVo", description = "帖子内容表")
@TableName("posts_content")
public class PostsContent {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "帖子id")
@TableField("posts_id")
private Long postsId;
@ApiModelProperty(value = "帖子内容")
private String content;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsFavoriteVo", description = "帖子收藏表")
@TableName("posts_favorite")
public class PostsFavorite {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "帖子id")
@TableField("posts_id")
private Long postsId;
@TableField("account_id")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
@TableField("company_id")
private Long companyId;
@TableField("site_id")
private Long siteId;
@TableField("org_id")
private Long orgId;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsForbbidenAccount", description = "禁言人员表")
@TableName("posts_forbbiden_account")
public class PostsForbiddenAccount {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "帖子id")
@TableField("posts_id")
private Long postsId;
@ApiModelProperty(value = "用户id ")
@TableField("account_id")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@TableField("site_id")
private Long siteId;
@TableField(exist = false)
@ApiModelProperty(value = "被禁言用户名")
private String accountName;
@TableField(exist = false)
@ApiModelProperty(value = "被禁言用户头像")
private String photo;
@ApiModelProperty(value = "创建人")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建人姓名")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "修改人id")
@TableField(value = "update_by_id", fill = FieldFill.UPDATE)
private Long updateById;
@ApiModelProperty(value = "修改人账号")
@TableField(value = "update_by_name", fill = FieldFill.UPDATE)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.UPDATE)
private Date updateTime;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsManageAccountVo", description = "代管员表")
@TableName("posts_manage_account")
public class PostsManageAccount {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id ")
private Long id;
@ApiModelProperty(value = "帖子分类id")
@TableField("posts_classify_id")
private Long postsClassifyId;
@ApiModelProperty(value = "用户id ")
@TableField("account_id")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@TableField("site_id")
private Long siteId;
@ApiModelProperty(value = "创建人")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建人姓名")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "修改人id")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改人账号")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsReadRecordVo", description = "帖子阅读记录表")
@TableName("posts_read_record")
public class PostsReadRecord {
private static final long serialVersionUID = 1L;
private Long id;
@ApiModelProperty(value = "帖子id")
@TableField("posts_id")
private Long postsId;
@ApiModelProperty(value = "用户id ")
@TableField("account_id")
private Long accountId;
@ApiModelProperty(value = "终端类型:1-管理端 2-pc端 3-微信端 4-app")
@TableField("terminal_type")
private Integer terminalType;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "创建人")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建人姓名")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "阅读时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "修改人id")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改人账号")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
@TableField("site_id")
private Long siteId;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsRelationVo", description = "帖子关联业务表")
@TableName("posts_relation")
public class PostsRelation {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "业务类型 1:training、2:course、3:offline_course、4:exam、5:research、6:live、7:assignment、8:案列活动、9:精选案列")
private Integer type;
@ApiModelProperty(value = "业务id")
@TableField("relation_id")
private Long relationId;
@ApiModelProperty(value = "帖子id")
@TableField("posts_id")
private Long postsId;
@ApiModelProperty(value = "业务logo")
@TableField("task_logo")
private String taskLogo;
@ApiModelProperty(value = "业务名称")
@TableField("task_name")
private String taskName;
@ApiModelProperty(value = "备用字段")
@TableField("spare_field")
private String spareField;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "创建人")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建人姓名")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "修改人id")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改人账号")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
}
package com.yizhi.forum.application.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Data
@ApiModel(value = "PostsVisibleRangeVo", description = "帖子可见范围表")
@TableName("posts_visible_range")
public class PostsVisibleRange {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "帖子id")
@TableField("posts_id")
private Long postsId;
@ApiModelProperty(value = "用户类型:1-部门 2-用户 ")
@TableField("account_type")
private Integer accountType;
@ApiModelProperty(value = "用户id或部门id ")
@TableField("account_id")
private Long accountId;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
@TableLogic
private Integer deleted;
@TableField("site_id")
private Long siteId;
@ApiModelProperty(value = "创建人")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建人姓名")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "修改人id")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改人账号")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.PostsAppendix;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsAppendixMapper extends BaseMapper<PostsAppendix> {
}
package com.yizhi.forum.application.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.yizhi.forum.application.domain.PostsClassifyAccount;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsClassifyAccountMapper extends BaseMapper<PostsClassifyAccount> {
}
package com.yizhi.forum.application.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.yizhi.forum.application.domain.PostsClassify;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsClassifyMapper extends BaseMapper<PostsClassify> {
Integer setSort(@Param("id") String id, @Param("siteId") Long siteId);
Integer getMaxSort(@Param("siteId") Long siteId);
PostsClassify getSort(@Param("id") Long id, @Param("siteId") Long siteId, @Param("type") Integer type);
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.PostsContent;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsContentMapper extends BaseMapper<PostsContent> {
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.PostsFavorite;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsFavoriteMapper extends BaseMapper<PostsFavorite> {
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.PostsForbiddenAccount;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsForbiddenAccountMapper extends BaseMapper<PostsForbiddenAccount> {
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.PostsManageAccount;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsManageAccountMapper extends BaseMapper<PostsManageAccount> {
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.Posts;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.yizhi.forum.application.vo.forum.PostsStudentVo;
import com.yizhi.forum.application.vo.forum.StatisticsForumAccountVo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsMapper extends BaseMapper<Posts> {
@MapKey("author")
Map<Long, StatisticsForumAccountVo> getPersonalDataMap();
/**
* 根据id获取对应vo
* @param postsIds
* @return
*/
@MapKey("id")
Map<Long, PostsStudentVo> getMapByIds(@Param("postsIds") List<Long> postsIds);
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.PostsReadRecord;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsReadRecordsMapper extends BaseMapper<PostsReadRecord> {
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.PostsRelation;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsRelationMapper extends BaseMapper<PostsRelation> {
}
package com.yizhi.forum.application.mapper;
import com.yizhi.forum.application.domain.PostsVisibleRange;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface PostsVisibleRangeMapper extends BaseMapper<PostsVisibleRange> {
}
package com.yizhi.forum.application.service;
import com.yizhi.forum.application.domain.PostsAppendix;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.forum.application.vo.forum.PostsAppendixVo;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsAppendixService extends IService<PostsAppendix> {
Integer save(Long postsId, List<PostsAppendixVo> postsAppendixVos);
List<PostsAppendixVo> getListByPostsId(Long postsId);
Integer deletedByPostsId(Long postsId);
boolean verifyVideo(List<Long> postsAppendixIds);
boolean updateVideoTranscodeUrl(Map<String, String> var1);
}
package com.yizhi.forum.application.service;
import com.yizhi.forum.application.domain.PostsClassifyAccount;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.forum.application.vo.forum.PostsClassifyAccountVo;
import com.yizhi.forum.application.vo.forum.PostsClassifySettingVo;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsClassifyAccountService extends IService<PostsClassifyAccount> {
Boolean save(PostsClassifySettingVo vo);
/**
* 根据分类id查询
* @param classifyId
* @return
*/
List<PostsClassifyAccountVo> getListByClassifyId(Long classifyId);
List<PostsClassifyAccount> getListByAccountId();
Integer canComment(Long postsId);
}
package com.yizhi.forum.application.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.domain.PostsClassify;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import com.yizhi.forum.application.vo.forum.PostsClassifySettingVo;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsClassifyService extends IService<PostsClassify> {
public Boolean save(PostsClassifyVo postsClassify);
Integer move(Integer type, Long id);
Integer delete(Long id);
Boolean updateSetting(PostsClassifySettingVo vo);
PostsClassifySettingVo getSetting(Long id);
Page<PostsClassifyVo> getPage(String name, Integer pageNo, Integer pageSize);
Page<PostsClassifyVo> getPageToStudent(String name, Boolean canSend, Integer pageNo, Integer pageSize);
Map<Long, PostsClassifyVo> getClassifyMap(RequestContext context);
/**
* 获取分类名称map
*
* @param ids
* @return
*/
Map<Long, String> getClassifyNameMap(List<Long> ids);
}
package com.yizhi.forum.application.service;
import com.yizhi.forum.application.domain.PostsContent;
import com.baomidou.mybatisplus.service.IService;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsContentService extends IService<PostsContent> {
Integer save(Long postsId, String content);
String getOneByPostsId(Long postId);
Integer updateByPostsId(Long postsId, String content);
Map<Long,String> getMap(List<Long> postsIds);
}
package com.yizhi.forum.application.service;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.forum.application.domain.PostsFavorite;
import com.yizhi.forum.application.vo.domain.PostsFavoriteVo;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsFavoriteService extends IService<PostsFavorite> {
List<Long> getPostsIds(Long accountId,Long siteId);
Integer save(PostsFavoriteVo postsFavorite);
Integer deleted(PostsFavoriteVo postsFavorite);
//是否需要带上当前用户的id
Integer hasFavoriteByPostsId(Long postsId, Boolean accountId);
Map<Long,Integer> hasFavoriteByPostsIds(List<Long> postsIds);
}
package com.yizhi.forum.application.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.domain.PostsForbiddenAccount;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.forum.application.vo.domain.PostsForbiddenAccountVo;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsForbiddenAccountService extends IService<PostsForbiddenAccount> {
Integer save(PostsForbiddenAccountVo postsForbiddenAccount);
Page<PostsForbiddenAccountVo> getPage(Long postsId, Integer pageNo, Integer pageSize);
Integer delete(PostsForbiddenAccountVo forbiddenAccount);
Integer hasForbiddenByPostsId(Long postsId);
List<PostsForbiddenAccountVo> getListByPostsId(List<Long> postsIds);
/**
* 获取《用户id,用户被禁言数》
* isBe 是否查询被禁言数据
* @return
*/
Map<Long,Integer> getPersonalDataMap(Boolean isBe);
}
package com.yizhi.forum.application.service;
import com.yizhi.forum.application.domain.PostsManageAccount;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.forum.application.vo.forum.PostsManageAccountParamVo;
import com.yizhi.forum.application.vo.forum.PostsManageAccountVo;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsManageAccountService extends IService<PostsManageAccount> {
Boolean save(PostsManageAccountParamVo vo);
List<PostsManageAccountVo> getManager(Long postsClassifyId, Long siteId);
List<Long> getClassifyIds(Long accountId, Long siteId);
}
package com.yizhi.forum.application.service;
import com.yizhi.forum.application.domain.PostsReadRecord;
import com.baomidou.mybatisplus.service.IService;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsReadRecordsService extends IService<PostsReadRecord> {
public Integer insertRecord(Integer type, Long relationId,Integer terminal);
/**
* 获取《用户id,用户阅读数》
* @return
*/
Map<Long,Integer> getPersonalDataMap();
/**
* 获取<业务id,业务阅读数>
* @return
*/
Map<Long,Integer> getTaskMap(Integer type, List<Long> taskIds);
}
package com.yizhi.forum.application.service;
import com.yizhi.forum.application.domain.PostsRelation;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.forum.application.vo.forum.PostsRelationVo;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsRelationService extends IService<PostsRelation> {
Integer save(Long postsId, List<PostsRelationVo> postsRelationVos);
List<PostsRelationVo> getListByPostsId(Long postsId);
Integer deletedByPostsId(Long postsId);
}
package com.yizhi.forum.application.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.forum.application.domain.Posts;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.forum.application.vo.domain.PostsVo;
import com.yizhi.forum.application.vo.forum.*;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsService extends IService<Posts> {
Integer save(PostsSaveVo vo);
PostsSaveVo get(PostsParamsVo vo);
Integer update(PostsSaveVo vo);
Integer upOrDown(PostsParamsVo vo);
Integer topOrHighlight(PostsParamsVo vo);
Page<PostsManageVo> getPage(PostsParamsVo vo);
Integer updateInfo(PostsVo vo);
Page<PostsStudentVo> getPageToStudent(Integer type, String keyword, Long classifyId, Integer pageNo, Integer pageSize);
Page<PostsStudentVo> myPage(Integer type, Integer status, String keyword, Long classifyId, Integer pageNo, Integer pageSize);
List<Posts> getList(PostsParamsVo vo);
Map<Long, PostsStudentVo> getMap(PostsParamsVo vo);
Map<Long, PostsStudentVo> getMapByIds(List<Long> postsIds);
Map<Long, StatisticsForumAccountVo> getPersonalDataMap();
Posts getInfo(Long postsId);
Integer getMyNum();
Map<Long, String> getNames(List<Long> postsIds);
}
package com.yizhi.forum.application.service;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.domain.PostsVisibleRange;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.forum.application.vo.forum.PostsVisibleRangeVo;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
public interface IPostsVisibleRangeService extends IService<PostsVisibleRange> {
Integer save(Long postsId, List<PostsVisibleRangeVo> postsVisibleRangeVos);
List<PostsVisibleRangeVo> getListByPostsId(Long postsId);
Integer deletedByPostsId(Long postsId);
List<Long> getPostsIds(RequestContext context);
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.comment.application.feign.PdfPagesClient;
import com.yizhi.comment.application.vo.PdfVO;
import com.yizhi.comment.application.vo.domain.PdfPagesVo;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.core.application.event.EventWrapper;
import com.yizhi.core.application.publish.CloudEventPublisher;
import com.yizhi.forum.application.constans.DocumentType;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.PostsAppendix;
import com.yizhi.forum.application.mapper.PostsAppendixMapper;
import com.yizhi.forum.application.service.IPostsAppendixService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.forum.application.vo.forum.PostsAppendixVo;
import com.yizhi.util.application.constant.TpActivityType;
import com.yizhi.util.application.event.AssignmentMediaTranscodingEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsAppendixServiceImpl extends ServiceImpl<PostsAppendixMapper, PostsAppendix> implements IPostsAppendixService {
private Logger logger = LoggerFactory.getLogger(PostsAppendixServiceImpl.class);
@Autowired
private IdGenerator idGenerator;
@Autowired
private CloudEventPublisher cloudEventPublisher;
@Autowired
private PdfPagesClient pdfPagesClient;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer save(Long postsId, List<PostsAppendixVo> postsAppendixVos) {
if (CollectionUtils.isEmpty(postsAppendixVos)) {
logger.info("附件为空!!!");
return 0;
}
RequestContext context = ContextHolder.get();
Date now = new Date();
List<PostsAppendix> postsAppendices = new ArrayList<>(postsAppendixVos.size());
//转码需要
List<AssignmentMediaTranscodingEvent.FileDTO> fileDTOS = new ArrayList<>();
AssignmentMediaTranscodingEvent event = new AssignmentMediaTranscodingEvent();
event.setType(TpActivityType.TYPE_FORUM);
List<PdfVO> pdfVOs = new ArrayList<PdfVO>();
postsAppendixVos.forEach(a -> {
PostsAppendix appendix = new PostsAppendix();
BeanUtils.copyProperties(a, appendix);
appendix.setId(idGenerator.generate());
appendix.setPostsId(postsId);
appendix.setCreateById(context.getAccountId());
appendix.setCreateByName(context.getAccountName());
appendix.setCreateTime(now);
appendix.setSiteId(context.getSiteId());
if (a.getType() != null) {
if (DocumentType.VIDEO.getType().equals(a.getType()) || DocumentType.AUDIO.getType().equals(a.getType())) {
fileDTOS.add(event.new FileDTO(appendix.getId(), a.getUrl()));
}
}
postsAppendices.add(appendix);
PdfVO pdfVO = new PdfVO();
pdfVO.setBizId(appendix.getId());
pdfVO.setBizType(TpActivityType.TYPE_FORUM);
pdfVO.setSiteId(appendix.getSiteId());
pdfVO.setCreateById(appendix.getCreateById());
pdfVO.setOriginalFile(appendix.getName());
pdfVO.setOriginalFileUrl(appendix.getUrl());
pdfVOs.add(pdfVO);
});
event.setFiles(fileDTOS);
cloudEventPublisher.publish("assignmentMediaTranscoding", new EventWrapper(0L, event));
try {
if (!CollectionUtils.isEmpty(pdfVOs)) {
logger.info("pdf解析图片发送消息:"+pdfVOs.toString());
cloudEventPublisher.publish("pdfToPng",
new EventWrapper(0L, pdfVOs));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("pdf解析图片发送消息失败:",e);
}
return this.insertBatch(postsAppendices) == true ? 0 : postsAppendices.size();
}
@Override
public List<PostsAppendixVo> getListByPostsId(Long postsId) {
RequestContext context = ContextHolder.get();
PostsAppendix postsAppendix = new PostsAppendix();
postsAppendix.setSiteId(context.getSiteId());
postsAppendix.setPostsId(postsId);
EntityWrapper<PostsAppendix> wrapper = new EntityWrapper(postsAppendix);
List<PostsAppendix> postsAppendices = this.selectList(wrapper);
if (CollectionUtils.isEmpty(postsAppendices)) {
return new ArrayList<>();
}
List<PostsAppendixVo> postsAppendixVos = new ArrayList<>(postsAppendices.size());
postsAppendices.forEach(a -> {
PostsAppendixVo vo = new PostsAppendixVo();
BeanUtils.copyProperties(a, vo);
try {
List<PdfPagesVo> list = pdfPagesClient.list(vo.getId(), TpActivityType.TYPE_FORUM);
List<com.yizhi.forum.application.vo.forum.PdfPagesVo> pagesVos=new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
for (PdfPagesVo p:list) {
com.yizhi.forum.application.vo.forum.PdfPagesVo pdfPagesVo=new com.yizhi.forum.application.vo.forum.PdfPagesVo();
pdfPagesVo.setId(p.getId());
pdfPagesVo.setBizId(p.getBizId());
pdfPagesVo.setBizType(p.getBizType());
pdfPagesVo.setImageUrl(p.getImageUrl());
pdfPagesVo.setPdfPage(p.getPdfPage());
pagesVos.add(pdfPagesVo);
}
vo.setPdfPages(pagesVos);
}
} catch (Exception e) {
// TODO Auto-generated catch block
logger.error("pdf图片获取失败",e);
}
postsAppendixVos.add(vo);
});
return postsAppendixVos;
}
@Override
public Integer deletedByPostsId(Long postsId) {
RequestContext context = ContextHolder.get();
Date now = new Date();
PostsAppendix postsAppendix = new PostsAppendix();
postsAppendix.setDeleted(ForumConstans.DELETED);
postsAppendix.setUpdateById(context.getAccountId());
postsAppendix.setUpdateByName(context.getAccountName());
postsAppendix.setUpdateTime(now);
EntityWrapper<PostsAppendix> wrapper = new EntityWrapper();
wrapper.eq("site_id", context.getSiteId()).eq(ForumConstans.FEIlD_POSTS_ID, postsId);
return this.update(postsAppendix, wrapper) == true ? 1 : 0;
}
@Override
public boolean verifyVideo(List<Long> postsAppendixIds) {
if (CollectionUtils.isEmpty(postsAppendixIds)) {
return false;
}
PostsAppendix appendix = new PostsAppendix();
appendix.setIsVideo(1);
EntityWrapper wrapper = new EntityWrapper();
wrapper.in(ForumConstans.Field_ID, postsAppendixIds);
return this.update(appendix, wrapper);
}
@Override
public boolean updateVideoTranscodeUrl(Map<String, String> var1) {
if (var1 != null) {
System.out.println("传参:" + var1);
Long id = Long.valueOf(var1.get("id"));
String videoSd = var1.get("sd");
PostsAppendix appendix = new PostsAppendix();
appendix.setId(id);
appendix.setAliyunUrl(videoSd);
if (StringUtils.isEmpty(videoSd)) {
logger.info("阿里云转码url为空!");
return false;
}
return this.updateById(appendix);
}
return false;
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.Posts;
import com.yizhi.forum.application.domain.PostsClassify;
import com.yizhi.forum.application.domain.PostsClassifyAccount;
import com.yizhi.forum.application.mapper.PostsClassifyAccountMapper;
import com.yizhi.forum.application.service.IPostsClassifyAccountService;
import com.yizhi.forum.application.service.IPostsClassifyService;
import com.yizhi.forum.application.service.IPostsService;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import com.yizhi.forum.application.vo.forum.PostsClassifyAccountVo;
import com.yizhi.forum.application.vo.forum.PostsClassifySettingVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsClassifyAccountServiceImpl extends ServiceImpl<PostsClassifyAccountMapper, PostsClassifyAccount> implements IPostsClassifyAccountService {
private Logger logger = LoggerFactory.getLogger(PostsClassifyAccountServiceImpl.class);
@Autowired
private IdGenerator idGenerator;
@Autowired
private IPostsService postsService;
@Autowired
private IPostsClassifyService postsClassifyService;
@Override
public Boolean save(PostsClassifySettingVo vo) {
RequestContext context = ContextHolder.get();
Date now = new Date();
if (!vo.getIsSave()) {
//先删除
PostsClassifyAccount classifyAccount = new PostsClassifyAccount();
classifyAccount.setDeleted(ForumConstans.DELETED);
classifyAccount.setUpdateById(context.getAccountId());
classifyAccount.setUpdateByName(context.getAccountName());
classifyAccount.setUpdateTime(now);
EntityWrapper wrapper = new EntityWrapper();
wrapper.eq(ForumConstans.Field_CLASSIFY_ID, vo.getId());
this.update(classifyAccount, wrapper);
}
if (!CollectionUtils.isEmpty(vo.getPostsClassifyAccountVos())) {
if (vo.getCommentSetting() == 1 || vo.getSendSetting() == 1) {
List<PostsClassifyAccount> postsClassifyAccounts = new ArrayList<>(vo.getPostsClassifyAccountVos().size());
vo.getPostsClassifyAccountVos().forEach(a -> {
PostsClassifyAccount classifyAccount = new PostsClassifyAccount();
BeanUtils.copyProperties(a, classifyAccount);
classifyAccount.setId(idGenerator.generate());
classifyAccount.setPostsClassifyId(vo.getId());
classifyAccount.setSiteId(context.getSiteId());
classifyAccount.setCreateById(context.getAccountId());
classifyAccount.setCreateByName(context.getAccountName());
classifyAccount.setCreateTime(now);
postsClassifyAccounts.add(classifyAccount);
});
if (!CollectionUtils.isEmpty(postsClassifyAccounts)) {
return this.insertBatch(postsClassifyAccounts);
}
}
}
return false;
}
@Override
public List<PostsClassifyAccountVo> getListByClassifyId(Long classifyId) {
PostsClassifyAccount classifyAccount = new PostsClassifyAccount();
classifyAccount.setSiteId(ContextHolder.get().getSiteId());
classifyAccount.setPostsClassifyId(classifyId);
EntityWrapper<PostsClassifyAccount> wrapper = new EntityWrapper(classifyAccount);
List<PostsClassifyAccount> postsClassifyAccounts = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(postsClassifyAccounts)) {
List<PostsClassifyAccountVo> classifyAccountVos = new ArrayList<>(postsClassifyAccounts.size());
postsClassifyAccounts.forEach(a -> {
PostsClassifyAccountVo vo = new PostsClassifyAccountVo();
BeanUtils.copyProperties(a, vo);
classifyAccountVos.add(vo);
});
return classifyAccountVos;
}
return new ArrayList<>();
}
@Override
public List<PostsClassifyAccount> getListByAccountId() {
RequestContext context = ContextHolder.get();
PostsClassifyAccount classifyAccount = new PostsClassifyAccount();
classifyAccount.setSiteId(context.getSiteId());
classifyAccount.setType(ForumConstans.SEND_POSTS_TYPE);
EntityWrapper<PostsClassifyAccount> wrapper = new EntityWrapper(classifyAccount);
wrapper.in(ForumConstans.Field_ACCOUNT_ID, context.getRelationIds());
return this.selectList(wrapper);
}
@Override
public Integer canComment(Long postsId) {
RequestContext context = ContextHolder.get();
Posts posts = postsService.selectById(postsId);
if (posts != null) {
PostsClassify postsClassify = postsClassifyService.selectById(posts.getPostsClassifyId());
if (postsClassify != null) {
if (ForumConstans.SITE_ACCOUNT.equals(postsClassify.getCommentSetting())) {
return 1;
} else {
PostsClassifyAccount classifyAccount = new PostsClassifyAccount();
classifyAccount.setSiteId(context.getSiteId());
classifyAccount.setType(ForumConstans.COMMENT_TYPE);
classifyAccount.setPostsClassifyId(posts.getPostsClassifyId());
EntityWrapper wrapper = new EntityWrapper(classifyAccount);
wrapper.in(ForumConstans.Field_ACCOUNT_ID, context.getRelationIds());
return this.selectCount(wrapper);
}
}
} else logger.info("无效id!!");
return 0;
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.Posts;
import com.yizhi.forum.application.domain.PostsClassify;
import com.yizhi.forum.application.domain.PostsClassifyAccount;
import com.yizhi.forum.application.mapper.PostsClassifyMapper;
import com.yizhi.forum.application.service.IPostsClassifyAccountService;
import com.yizhi.forum.application.service.IPostsClassifyService;
import com.yizhi.forum.application.service.IPostsService;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import com.yizhi.forum.application.vo.forum.PostsClassifySettingVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsClassifyServiceImpl extends ServiceImpl<PostsClassifyMapper, PostsClassify> implements IPostsClassifyService {
private Logger logger = LoggerFactory.getLogger(PostsClassifyServiceImpl.class);
@Autowired
private IdGenerator idGenerator;
@Autowired
private IPostsService postsService;
@Autowired
private IPostsClassifyAccountService postsClassifyAccountService;
@Override
public Boolean save(PostsClassifyVo postsClassify) {
RequestContext context = ContextHolder.get();
Date now = new Date();
Long id = idGenerator.generate();
postsClassify.setId(id);
postsClassify.setDeleted(ForumConstans.NOT_DELETED);
postsClassify.setSort(ForumConstans.ZERO);
postsClassify.setCompanyId(context.getCompanyId());
postsClassify.setSiteId(context.getSiteId());
postsClassify.setOrgId(context.getOrgId());
postsClassify.setCreateById(context.getAccountId());
postsClassify.setCreateByName(context.getAccountName());
postsClassify.setCreateTime(now);
PostsClassify pc=new PostsClassify();
BeanUtils.copyProperties(postsClassify,pc);
if (this.insert(pc)) {
Integer maxSort = this.baseMapper.getMaxSort(context.getSiteId());
pc = new PostsClassify();
pc.setId(id);
pc.setSort(maxSort + 1);
this.baseMapper.updateById(pc);
return true;
}
return false;
}
@Override
public Integer move(Integer type, Long id) {
RequestContext context = ContextHolder.get();
PostsClassify postsClassify = this.selectById(id);
Integer sourceSort = postsClassify.getSort();
PostsClassify targetClassify = this.baseMapper.getSort(id, context.getSiteId(), type);
if (targetClassify != null) {
Integer targetSort = targetClassify.getSort();
if (null != targetSort) {
postsClassify.setSort(targetSort);
this.updateById(postsClassify);
targetClassify.setSort(sourceSort);
this.updateById(targetClassify);
}
return 1;
} else {
return type == 1 ? -1 : -2;//-1到顶了 -2到底了
}
}
@Override
public Integer delete(Long id) {
RequestContext context = ContextHolder.get();
Posts posts = new Posts();
posts.setPostsClassifyId(id);
posts.setSiteId(context.getSiteId());
EntityWrapper wrapper = new EntityWrapper(posts);
int count = postsService.selectCount(wrapper);
if (count > 0) {
return -1;//该分类下有帖子
}
PostsClassify postsClassify = this.baseMapper.selectById(id);
postsClassify.setDeleted(ForumConstans.DELETED);
postsClassify.setUpdateById(context.getAccountId());
postsClassify.setUpdateByName(context.getAccountName());
postsClassify.setUpdateTime(new Date());
if (this.updateById(postsClassify)) {
return 1;
}
return 0;
}
@Override
public Boolean updateSetting(PostsClassifySettingVo vo) {
RequestContext context = ContextHolder.get();
PostsClassify postsClassify = new PostsClassify();
BeanUtils.copyProperties(vo, postsClassify);
postsClassify.setUpdateById(context.getAccountId());
postsClassify.setUpdateByName(context.getAccountName());
postsClassify.setUpdateTime(new Date());
this.updateById(postsClassify);
postsClassifyAccountService.save(vo);
return true;
}
@Override
public PostsClassifySettingVo getSetting(Long id) {
PostsClassify postsClassify = this.selectById(id);
PostsClassifySettingVo vo = null;
if (postsClassify != null) {
vo = new PostsClassifySettingVo();
BeanUtils.copyProperties(postsClassify, vo);
vo.setPostsClassifyAccountVos(postsClassifyAccountService.getListByClassifyId(id));
}
return vo;
}
@Override
public Page<PostsClassifyVo> getPage(String name, Integer pageNo, Integer pageSize) {
Page page = new Page(pageNo, pageSize);
PostsClassify postsClassify = new PostsClassify();
postsClassify.setSiteId(ContextHolder.get().getSiteId());
EntityWrapper<PostsClassify> wrapper = new EntityWrapper<>(postsClassify);
wrapper.eq("deleted",0);
if (!StringUtils.isEmpty(name)) {
wrapper.like(ForumConstans.FEIlD_NAME, name);
}
wrapper.orderBy(ForumConstans.Field_SORT,false).orderBy("create_time",false);
page = this.selectPage(page, wrapper);
List<PostsClassify> postsClassifies = page.getRecords();
if (!CollectionUtils.isEmpty(postsClassifies)) {
List<PostsClassifyVo> classifyVos = new ArrayList<>(postsClassifies.size());
postsClassifies.forEach(a -> {
PostsClassifyVo vo = new PostsClassifyVo();
BeanUtils.copyProperties(a, vo);
classifyVos.add(vo);
});
page.setRecords(classifyVos);
}
return page;
}
@Override
public Page<PostsClassifyVo> getPageToStudent(String name, Boolean canSend, Integer pageNo, Integer pageSize) {
Page page = new Page(pageNo, pageSize);
PostsClassify postsClassify = new PostsClassify();
postsClassify.setSiteId(ContextHolder.get().getSiteId());
EntityWrapper<PostsClassify> wrapper = new EntityWrapper<>(postsClassify);
if (!StringUtils.isEmpty(name)) {
wrapper.like(ForumConstans.FEIlD_NAME, name);
}
if (canSend) {
//获取能发帖的用户范围
Set<Long> classifyIds = new HashSet<>();;
List<PostsClassifyAccount> classifyAccounts = postsClassifyAccountService.getListByAccountId();
if (!CollectionUtils.isEmpty(classifyAccounts)) {
for (PostsClassifyAccount a:classifyAccounts){
classifyIds.add(a.getPostsClassifyId());
}
}
wrapper.andNew().eq(ForumConstans.Field_SEND_SETTING, ForumConstans.SITE_ACCOUNT);
if (!CollectionUtils.isEmpty(classifyIds)) {
wrapper.or().in(ForumConstans.Field_ID, classifyIds);
}
}
wrapper.orderBy(ForumConstans.Field_SORT);
page = this.selectPage(page, wrapper);
List<PostsClassify> postsClassifies = page.getRecords();
if (!CollectionUtils.isEmpty(postsClassifies)) {
List<PostsClassifyVo> classifyVos = new ArrayList<>(postsClassifies.size());
postsClassifies.forEach(a -> {
PostsClassifyVo vo = new PostsClassifyVo();
BeanUtils.copyProperties(a, vo);
classifyVos.add(vo);
});
page.setRecords(classifyVos);
}
return page;
}
@Override
public Map<Long, PostsClassifyVo> getClassifyMap(RequestContext context) {
Map<Long, PostsClassifyVo> map = null;
PostsClassify postsClassify = new PostsClassify();
postsClassify.setSiteId(context.getSiteId());
EntityWrapper<PostsClassify> wrapper = new EntityWrapper<>(postsClassify);
List<PostsClassify> postsClassifies = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(postsClassifies)) {
map = new HashMap<>(postsClassifies.size());
for (PostsClassify a : postsClassifies) {
if (!map.containsKey(a.getId())){
PostsClassifyVo pc=new PostsClassifyVo();
BeanUtils.copyProperties(a,pc);
map.put(a.getId(),pc);
}
}
}
return map;
}
@Override
public Map<Long, String> getClassifyNameMap(List<Long> ids) {
Map<Long, String> map = null;
PostsClassify postsClassify = new PostsClassify();
postsClassify.setSiteId(ContextHolder.get().getSiteId());
EntityWrapper<PostsClassify> wrapper = new EntityWrapper<>(postsClassify);
wrapper.in("id",ids);
List<PostsClassify> postsClassifies = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(postsClassifies)) {
map = new HashMap<>(postsClassifies.size());
for (PostsClassify a : postsClassifies) {
if (!map.containsKey(a.getId())){
map.put(a.getId(),a.getName());
}
}
}
return map;
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.PostsContent;
import com.yizhi.forum.application.mapper.PostsContentMapper;
import com.yizhi.forum.application.service.IPostsContentService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsContentServiceImpl extends ServiceImpl<PostsContentMapper, PostsContent> implements IPostsContentService {
@Autowired
private IdGenerator idGenerator;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer save(Long postsId, String content) {
RequestContext context = ContextHolder.get();
Date now = new Date();
PostsContent postsContent = new PostsContent();
postsContent.setId(idGenerator.generate());
postsContent.setContent(content);
postsContent.setPostsId(postsId);
postsContent.setCreateById(context.getAccountId());
postsContent.setCreateByName(context.getAccountName());
postsContent.setCreateTime(now);
return this.insert(postsContent) == true ? 1 : 0;
}
@Override
public String getOneByPostsId(Long postId) {
PostsContent postsContent = new PostsContent();
postsContent.setPostsId(postId);
EntityWrapper wrapper = new EntityWrapper(postsContent);
PostsContent postsContent1 = this.selectOne(wrapper);
if (postsContent1 != null) {
return postsContent1.getContent();
}
return "";
}
@Override
public Integer updateByPostsId(Long postsId, String content) {
RequestContext context = ContextHolder.get();
Date now = new Date();
PostsContent postsContent = new PostsContent();
postsContent.setContent(content);
postsContent.setUpdateById(context.getAccountId());
postsContent.setUpdateByName(context.getAccountName());
postsContent.setUpdateTime(now);
EntityWrapper wrapper = new EntityWrapper();
wrapper.eq(ForumConstans.FEIlD_POSTS_ID, postsId);
wrapper.eq("deleted", ForumConstans.NOT_DELETED);
return this.update(postsContent, wrapper) == true ? 1 : 0;
}
@Override
public Map<Long, String> getMap(List<Long> postsIds) {
Map<Long, String> map = null;
PostsContent postsContent = new PostsContent();
EntityWrapper wrapper = new EntityWrapper(postsContent);
wrapper.in(ForumConstans.FEIlD_POSTS_ID, postsIds);
List<PostsContent> list = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(list)) {
map = new HashMap<>(list.size());
for (PostsContent a : list) {
if (!map.containsKey(a.getPostsId())) {
map.put(a.getPostsId(), a.getContent());
}
}
}
return map;
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.PostsFavorite;
import com.yizhi.forum.application.mapper.PostsFavoriteMapper;
import com.yizhi.forum.application.service.IPostsFavoriteService;
import com.yizhi.forum.application.service.IPostsService;
import com.yizhi.forum.application.vo.domain.PostsFavoriteVo;
import com.yizhi.forum.application.vo.domain.PostsVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsFavoriteServiceImpl extends ServiceImpl<PostsFavoriteMapper, PostsFavorite> implements IPostsFavoriteService {
@Autowired
private IdGenerator idGenerator;
@Autowired
private IPostsService postsService;
@Override
public List<Long> getPostsIds(Long accountId, Long siteId) {
PostsFavorite postsFavorite = new PostsFavorite();
postsFavorite.setSiteId(siteId);
//1:帖子
postsFavorite.setAccountId(accountId);
EntityWrapper wrapper = new EntityWrapper(postsFavorite);
List<PostsFavorite> favorites = this.baseMapper.selectList(wrapper);
if (!CollectionUtils.isEmpty(favorites)) {
return favorites.stream().map(a -> a.getPostsId()).collect(Collectors.toList());
}
return null;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer save(PostsFavoriteVo postsFavorite) {
RequestContext context = ContextHolder.get();
Date date = new Date();
postsFavorite.setId(idGenerator.generate());
postsFavorite.setSiteId(context.getSiteId());
postsFavorite.setAccountId(context.getAccountId());
postsFavorite.setCompanyId(context.getCompanyId());
postsFavorite.setOrgId(context.getOrgId());
postsFavorite.setCreateById(context.getAccountId());
postsFavorite.setCreateByName(context.getAccountName());
postsFavorite.setCreateTime(date);
PostsFavorite postsFavorite1=new PostsFavorite();
BeanUtils.copyProperties(postsFavorite,postsFavorite1);
if (this.insert(postsFavorite1)){
PostsVo vo = new PostsVo();
vo.setId(postsFavorite.getPostsId());
vo.setFavoriteTime(date);
postsService.updateInfo(vo);
return 1;
}
return 0;
}
@Override
public Integer deleted(PostsFavoriteVo postsFavorite) {
RequestContext context = ContextHolder.get();
PostsFavorite update = new PostsFavorite();
update.setDeleted(ForumConstans.DELETED);
update.setUpdateById(context.getAccountId());
update.setUpdateByName(context.getAccountName());
update.setUpdateTime(new Date());
EntityWrapper wrapper = new EntityWrapper();
wrapper.eq(ForumConstans.FEIlD_POSTS_ID, postsFavorite.getPostsId());
return this.update(update, wrapper) == true ? 1 : 0;
}
@Override
public Integer hasFavoriteByPostsId(Long postsId,Boolean accountId) {
RequestContext context = ContextHolder.get();
PostsFavorite postsFavorite = new PostsFavorite();
postsFavorite.setSiteId(context.getSiteId());
postsFavorite.setPostsId(postsId);
if (accountId){
postsFavorite.setAccountId(context.getAccountId());
}
EntityWrapper wrapper = new EntityWrapper(postsFavorite);
return this.selectCount(wrapper);
}
@Override
public Map<Long, Integer> hasFavoriteByPostsIds(List<Long> postsIds) {
Map<Long, Integer> map = null;
PostsFavorite postsFavorite = new PostsFavorite();
postsFavorite.setSiteId(ContextHolder.get().getSiteId());
EntityWrapper wrapper = new EntityWrapper(postsFavorite);
wrapper.in(ForumConstans.FEIlD_POSTS_ID, postsIds);
List<PostsFavorite> postsFavorites = this.selectList(wrapper);
if (CollectionUtils.isEmpty(postsFavorites)) {
map = new HashMap<>(postsFavorites.size());
for (PostsFavorite a : postsFavorites) {
if (!map.containsKey(a.getPostsId())) {
map.put(a.getPostsId(), 1);
} else {
Integer num = map.get(a.getPostsId());
map.put(a.getPostsId(), num + 1);
}
}
}
return map;
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.PostsForbiddenAccount;
import com.yizhi.forum.application.mapper.PostsForbiddenAccountMapper;
import com.yizhi.forum.application.service.IPostsForbiddenAccountService;
import com.yizhi.forum.application.vo.domain.PostsForbiddenAccountVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsForbiddenAccountServiceImpl extends ServiceImpl<PostsForbiddenAccountMapper, PostsForbiddenAccount> implements IPostsForbiddenAccountService {
@Autowired
private IdGenerator idGenerator;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer save(PostsForbiddenAccountVo postsForbiddenAccount) {
RequestContext context = ContextHolder.get();
PostsForbiddenAccount forbiddenAccount = new PostsForbiddenAccount();
forbiddenAccount.setId(idGenerator.generate());
forbiddenAccount.setAccountId(postsForbiddenAccount.getAccountId());
forbiddenAccount.setPostsId(postsForbiddenAccount.getPostsId());
forbiddenAccount.setSiteId(context.getSiteId());
forbiddenAccount.setCreateById(context.getAccountId());
forbiddenAccount.setCreateByName(context.getAccountName());
forbiddenAccount.setCreateTime(new Date());
return this.insert(forbiddenAccount) == true ? 1 : 0;
}
@Override
public Page<PostsForbiddenAccountVo> getPage(Long postsId, Integer pageNo, Integer pageSize) {
RequestContext context = ContextHolder.get();
Page<PostsForbiddenAccount> page = new Page<>(pageNo, pageSize);
PostsForbiddenAccount forbiddenAccount = new PostsForbiddenAccount();
forbiddenAccount.setSiteId(context.getSiteId());
forbiddenAccount.setPostsId(postsId);
EntityWrapper wrapper = new EntityWrapper(forbiddenAccount);
return this.selectPage(page, wrapper);
}
@Override
public Integer delete(PostsForbiddenAccountVo forbiddenAccount) {
RequestContext context = ContextHolder.get();
PostsForbiddenAccount forbiddenAccount1 = new PostsForbiddenAccount();
forbiddenAccount1.setDeleted(ForumConstans.DELETED);
forbiddenAccount1.setUpdateById(context.getAccountId());
forbiddenAccount1.setUpdateByName(context.getAccountName());
forbiddenAccount1.setUpdateTime(new Date());
if (forbiddenAccount.getId() != null && forbiddenAccount.getId() != 0) {
forbiddenAccount1.setId(forbiddenAccount.getId());
return this.updateById(forbiddenAccount1) == true ? 1 : 0;
}
EntityWrapper wrapper = new EntityWrapper();
wrapper.eq(ForumConstans.Field_ACCOUNT_ID, forbiddenAccount.getAccountId())
.eq(ForumConstans.FEIlD_POSTS_ID, forbiddenAccount.getPostsId());
return this.update(forbiddenAccount1, wrapper) == true ? 1 : 0;
}
@Override
public Integer hasForbiddenByPostsId(Long postsId) {
RequestContext context = ContextHolder.get();
PostsForbiddenAccount forbiddenAccount = new PostsForbiddenAccount();
forbiddenAccount.setSiteId(context.getSiteId());
forbiddenAccount.setPostsId(postsId);
forbiddenAccount.setAccountId(context.getAccountId());
EntityWrapper wrapper = new EntityWrapper(forbiddenAccount);
return this.selectCount(wrapper);
}
@Override
public List<PostsForbiddenAccountVo> getListByPostsId(List<Long> postsIds) {
if (CollectionUtils.isEmpty(postsIds)) {
return null;
}
PostsForbiddenAccount forbiddenAccount = new PostsForbiddenAccount();
forbiddenAccount.setSiteId(ContextHolder.get().getSiteId());
EntityWrapper wrapper = new EntityWrapper(forbiddenAccount);
wrapper.in(ForumConstans.FEIlD_POSTS_ID, postsIds);
return this.selectList(wrapper);
}
@Override
public Map<Long, Integer> getPersonalDataMap(Boolean isBe) {
PostsForbiddenAccount forbiddenAccount = new PostsForbiddenAccount();
EntityWrapper<PostsForbiddenAccount> wrapper = new EntityWrapper(forbiddenAccount);
List<PostsForbiddenAccount> forbiddenAccounts = this.selectList(wrapper);
Map<Long, Integer> map = null;
if (!CollectionUtils.isEmpty(forbiddenAccounts)) {
map = new HashMap<>(forbiddenAccounts.size());
for (PostsForbiddenAccount a : forbiddenAccounts) {
if (isBe) {
//查询被禁言记录
if (!map.containsKey(a.getAccountId())) {
map.put(a.getAccountId(), 1);
} else {
Integer num = map.get(a.getAccountId());
map.put(a.getAccountId(), num + 1);
}
} else {
//查询禁言别人的记录
if (!map.containsKey(a.getCreateById())) {
map.put(a.getCreateById(), 1);
} else {
Integer num = map.get(a.getCreateById());
map.put(a.getCreateById(), num + 1);
}
}
}
}
return map;
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.PostsManageAccount;
import com.yizhi.forum.application.mapper.PostsManageAccountMapper;
import com.yizhi.forum.application.service.IPostsManageAccountService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.forum.application.vo.forum.PostsManageAccountParamVo;
import com.yizhi.forum.application.vo.domain.PostsManageAccountVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsManageAccountServiceImpl extends ServiceImpl<PostsManageAccountMapper, PostsManageAccount> implements IPostsManageAccountService {
@Autowired
private IdGenerator idGenerator;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean save(PostsManageAccountParamVo vo) {
RequestContext context = ContextHolder.get();
Date date = new Date();
if (!vo.getIsSave()) {
//先删除
PostsManageAccount manageAccount = new PostsManageAccount();
manageAccount.setDeleted(ForumConstans.DELETED);
manageAccount.setUpdateById(context.getAccountId());
manageAccount.setUpdateByName(context.getAccountName());
manageAccount.setUpdateTime(date);
EntityWrapper wrapper = new EntityWrapper();
wrapper.eq(ForumConstans.Field_CLASSIFY_ID, vo.getPostsClassifyId());
this.update(manageAccount, wrapper);
}
List<PostsManageAccountVo> manageAccounts = vo.getPostsManageAccounts();
List<PostsManageAccount> manageAccounts1 = new ArrayList<>();
if (!CollectionUtils.isEmpty(manageAccounts)) {
for (PostsManageAccountVo a : manageAccounts) {
a.setId(idGenerator.generate());
a.setPostsClassifyId(vo.getPostsClassifyId());
a.setSiteId(context.getSiteId());
a.setCreateById(context.getAccountId());
a.setCreateByName(context.getAccountName());
a.setCreateTime(date);
PostsManageAccount postsManageAccount=new PostsManageAccount();
BeanUtils.copyProperties(a,postsManageAccount);
manageAccounts1.add(postsManageAccount);
}
return this.insertBatch(manageAccounts1);
}
return true;
}
@Override
public List<com.yizhi.forum.application.vo.forum.PostsManageAccountVo> getManager(Long postsClassifyId, Long siteId) {
PostsManageAccount manageAccount = new PostsManageAccount();
manageAccount.setSiteId(siteId);
manageAccount.setPostsClassifyId(postsClassifyId);
EntityWrapper<PostsManageAccount> wrapper = new EntityWrapper(manageAccount);
List<PostsManageAccount> manageAccounts = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(manageAccounts)) {
List<com.yizhi.forum.application.vo.forum.PostsManageAccountVo> manageAccountVos = new ArrayList<>(manageAccounts.size());
manageAccounts.forEach(a -> {
com.yizhi.forum.application.vo.forum.PostsManageAccountVo vo = new com.yizhi.forum.application.vo.forum.PostsManageAccountVo();
BeanUtils.copyProperties(a, vo);
manageAccountVos.add(vo);
});
return manageAccountVos;
}
return new ArrayList<>();
}
@Override
public List<Long> getClassifyIds(Long accountId, Long siteId) {
PostsManageAccount manageAccount = new PostsManageAccount();
manageAccount.setSiteId(siteId);
manageAccount.setAccountId(accountId);
EntityWrapper<PostsManageAccount> wrapper = new EntityWrapper(manageAccount);
List<PostsManageAccount> manageAccounts = this.selectList(wrapper);
return manageAccounts.stream().map(a -> a.getPostsClassifyId()).collect(Collectors.toList());
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.core.application.task.AbstractTaskHandler;
import com.yizhi.core.application.task.TaskExecutor;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.Posts;
import com.yizhi.forum.application.domain.PostsReadRecord;
import com.yizhi.forum.application.mapper.PostsReadRecordsMapper;
import com.yizhi.forum.application.service.IPostsManageAccountService;
import com.yizhi.forum.application.service.IPostsReadRecordsService;
import com.yizhi.forum.application.service.IPostsService;
import com.yizhi.forum.application.vo.domain.PostsVo;
import com.yizhi.forum.application.vo.forum.PostsManageAccountVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsReadRecordsServiceImpl extends ServiceImpl<PostsReadRecordsMapper, PostsReadRecord> implements IPostsReadRecordsService {
@Autowired
private IdGenerator idGenerator;
@Autowired
private TaskExecutor taskExecutor;
@Autowired
private PostsReadRecordsMapper postsReadRecordsMapper;
@Autowired
private IPostsService postsService;
@Autowired
private IPostsManageAccountService postsManageAccountService;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer insertRecord(Integer type, Long relationId, Integer terminal) {
RequestContext context = ContextHolder.get();
taskExecutor.asynExecute(new AbstractTaskHandler() {
@Override
public void handle() {
PostsReadRecord readRecord = new PostsReadRecord();
readRecord.setId(idGenerator.generate());
readRecord.setAccountId(context.getAccountId());
readRecord.setTerminalType(terminal);
readRecord.setPostsId(relationId);
readRecord.setCreateById(context.getAccountId());
readRecord.setCreateByName(context.getAccountName());
readRecord.setCreateTime(new Date());
readRecord.setSiteId(context.getSiteId());
if (postsReadRecordsMapper.insert(readRecord) > 0) {
//更新帖子的阅读数字段,以及是否被管理员管理字段
Posts posts = postsService.selectById(relationId);
if (posts != null) {
PostsReadRecord tem = new PostsReadRecord();
tem.setSiteId(context.getSiteId());
tem.setPostsId(relationId);
EntityWrapper wrapper = new EntityWrapper(tem);
wrapper.ne(ForumConstans.FEIlD_TERMINAL_TYPE, ForumConstans.TERMINAL_MANAGE);
PostsVo vo = new PostsVo();
vo.setId(relationId);
vo.setReadNum(postsReadRecordsMapper.selectCount(wrapper));
//如果是已被管理了,则不需要查询啦
if (!posts.getHasManage().equals(1)) {
//获取代管员名单
List<PostsManageAccountVo> manager = postsManageAccountService.getManager(posts.getPostsClassifyId(),context.getSiteId());
Set<Long> managerIds = null;
if (!CollectionUtils.isEmpty(manager)) {
managerIds = manager.stream().map(a -> a.getAccountId()).collect(Collectors.toSet());
}
EntityWrapper wrapper1 = new EntityWrapper(tem);
wrapper1.eq(ForumConstans.FEIlD_TERMINAL_TYPE, ForumConstans.TERMINAL_MANAGE);
if (!CollectionUtils.isEmpty(manager)) {
wrapper1.orNew().ne(ForumConstans.FEIlD_TERMINAL_TYPE, ForumConstans.TERMINAL_MANAGE)
.eq(ForumConstans.FEIlD_POSTS_ID,posts.getId())
.in(ForumConstans.Field_ACCOUNT_ID, managerIds);
}
vo.setHasManage(postsReadRecordsMapper.selectCount(wrapper1) > 0 ? 1 : 0);
}
postsService.updateInfo(vo);
}
}
}
});
return 1;
}
@Override
public Map<Long, Integer> getPersonalDataMap() {
Map<Long, Integer> map = null;
PostsReadRecord readRecord = new PostsReadRecord();
List<PostsReadRecord> postsReadRecords = this.selectList(new EntityWrapper<>(readRecord));
if (!CollectionUtils.isEmpty(postsReadRecords)) {
map = new HashMap<>(postsReadRecords.size());
for (PostsReadRecord a : postsReadRecords) {
if (!map.containsKey(a.getAccountId())) {
map.put(a.getAccountId(), 1);
} else {
Integer num = map.get(a.getAccountId());
map.put(a.getAccountId(), num + 1);
}
}
}
return map;
}
@Override
public Map<Long, Integer> getTaskMap(Integer type, List<Long> taskIds) {
Map<Long, Integer> map = null;
if (CollectionUtils.isEmpty(taskIds)) {
return map;
}
PostsReadRecord readRecord = new PostsReadRecord();
readRecord.setSiteId(ContextHolder.get().getSiteId());
EntityWrapper<PostsReadRecord> wrapper = new EntityWrapper<>(readRecord);
wrapper.in(ForumConstans.FEIlD_POSTS_ID, taskIds);
List<PostsReadRecord> postsReadRecords = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(postsReadRecords)) {
map = new HashMap<>(postsReadRecords.size());
for (PostsReadRecord a : postsReadRecords) {
if (!map.containsKey(a.getAccountId())) {
map.put(a.getPostsId(), 1);
} else {
Integer num = map.get(a.getAccountId());
map.put(a.getPostsId(), num + 1);
}
}
}
return map;
}
}
\ No newline at end of file
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.PostsRelation;
import com.yizhi.forum.application.mapper.PostsRelationMapper;
import com.yizhi.forum.application.service.IPostsRelationService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.forum.application.vo.forum.PostsRelationVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsRelationServiceImpl extends ServiceImpl<PostsRelationMapper, PostsRelation> implements IPostsRelationService {
private Logger logger = LoggerFactory.getLogger(PostsAppendixServiceImpl.class);
@Autowired
private IdGenerator idGenerator;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer save(Long postsId, List<PostsRelationVo> postsRelationVos) {
if (CollectionUtils.isEmpty(postsRelationVos)) {
logger.info("关联活动为空!!!");
return 0;
}
RequestContext context = ContextHolder.get();
Date now = new Date();
List<PostsRelation> postsRelations = new ArrayList<>(postsRelationVos.size());
postsRelationVos.forEach(a -> {
PostsRelation postsRelation = new PostsRelation();
BeanUtils.copyProperties(a, postsRelation);
postsRelation.setId(idGenerator.generate());
postsRelation.setPostsId(postsId);
postsRelation.setCreateById(context.getAccountId());
postsRelation.setCreateByName(context.getAccountName());
postsRelation.setCreateTime(now);
postsRelations.add(postsRelation);
});
return this.insertBatch(postsRelations) == true ? 0 : postsRelations.size();
}
@Override
public List<PostsRelationVo> getListByPostsId(Long postsId) {
PostsRelation postsRelation = new PostsRelation();
postsRelation.setPostsId(postsId);
EntityWrapper<PostsRelation> wrapper = new EntityWrapper(postsRelation);
List<PostsRelation> postsRelations = this.selectList(wrapper);
if (CollectionUtils.isEmpty(postsRelations)) {
return new ArrayList<>();
}
List<PostsRelationVo> postsRelationVos = new ArrayList<>(postsRelations.size());
postsRelations.forEach(a -> {
PostsRelationVo vo = new PostsRelationVo();
BeanUtils.copyProperties(a, vo);
postsRelationVos.add(vo);
});
return postsRelationVos;
}
@Override
public Integer deletedByPostsId(Long postsId) {
RequestContext context = ContextHolder.get();
Date now = new Date();
PostsRelation postsRelation = new PostsRelation();
postsRelation.setDeleted(ForumConstans.DELETED);
postsRelation.setUpdateById(context.getAccountId());
postsRelation.setUpdateByName(context.getAccountName());
postsRelation.setUpdateTime(now);
EntityWrapper<PostsRelation> wrapper = new EntityWrapper();
wrapper.eq(ForumConstans.FEIlD_POSTS_ID, postsId);
return this.update(postsRelation, wrapper) == true ? 1 : 0;
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.Posts;
import com.yizhi.forum.application.domain.PostsClassify;
import com.yizhi.forum.application.mapper.PostsMapper;
import com.yizhi.forum.application.service.*;
import com.yizhi.forum.application.util.ForumUtil;
import com.yizhi.forum.application.vo.domain.PostsClassifyVo;
import com.yizhi.forum.application.vo.domain.PostsVo;
import com.yizhi.forum.application.vo.forum.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsServiceImpl extends ServiceImpl<PostsMapper, Posts> implements IPostsService {
private Logger logger = LoggerFactory.getLogger(PostsServiceImpl.class);
@Autowired
private IdGenerator idGenerator;
@Autowired
private IPostsService postsService;
@Autowired
private IPostsContentService postsContentService;
@Autowired
private IPostsAppendixService postsAppendixService;
@Autowired
private IPostsVisibleRangeService postsVisibleRangeService;
@Autowired
private IPostsRelationService postsRelationService;
@Autowired
private IPostsClassifyService postsClassifyService;
@Autowired
private IPostsFavoriteService postsFavoriteService;
@Autowired
private IPostsManageAccountService manageAccountService;
@Autowired
private IPostsReadRecordsService postsReadRecordsService;
@Autowired
private PostsMapper postsMapper;
@Autowired
private IPostsForbiddenAccountService postsForbiddenAccountService;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer save(PostsSaveVo vo) {
RequestContext context = ContextHolder.get();
Long postsId = 0L;
if (vo.getId() == null) {
postsId = idGenerator.generate();
} else {
postsId = vo.getId();
}
Date now = new Date();
Posts posts = new Posts();
BeanUtils.copyProperties(vo, posts);
posts.setId(postsId);
posts.setAuthor(context.getAccountId());
posts.setSiteId(context.getSiteId());
posts.setCompanyId(context.getCompanyId());
posts.setOrgId(context.getOrgId());
posts.setCreateById(context.getAccountId());
posts.setCreateByName(context.getAccountName());
posts.setCreateTime(now);
//初始值为创建时间
posts.setTopTime(now);
posts.setCommentTime(now);
posts.setHighlightTime(now);
posts.setSortTime(now);
if (ForumConstans.UP.equals(vo.getType())) {
posts.setStatus(ForumConstans.UP);
}
this.insert(posts);
//保存帖子内容
postsContentService.save(postsId, vo.getContent());
//保存附件
if (!CollectionUtils.isEmpty(vo.getPostsAppendixVos())) {
postsAppendixService.save(postsId, vo.getPostsAppendixVos());
}
//只有管理端才能保存以下数据
if (ForumConstans.TERMINAL_MANAGE.equals(vo.getTerminalType())) {
//保存关联活动
if (!CollectionUtils.isEmpty(vo.getPostsRelationVos())) {
postsRelationService.save(postsId, vo.getPostsRelationVos());
}
//保存指定用户
if (!CollectionUtils.isEmpty(vo.getPostsVisibleRangeVos()) && ForumConstans.VISIBLE_RANGE.equals(vo.getVisibleRange())) {
postsVisibleRangeService.save(postsId, vo.getPostsVisibleRangeVos());
}
}
return 1;
}
@Override
public PostsSaveVo get(PostsParamsVo paramsVo) {
PostsSaveVo vo = new PostsSaveVo();
//获取帖子基本信息
Posts posts = this.selectById(paramsVo.getId());
BeanUtils.copyProperties(posts, vo);
vo.setCreateTimeString(ForumUtil.getCreatTimeString(posts.getUpdateTime()));
//获取帖子内容
String content = postsContentService.getOneByPostsId(paramsVo.getId());
vo.setContent(content);
//获取该帖子的阅读记录
vo.setReadNum(posts.getReadNum());
//获取分类名称
PostsClassify postsClassify = postsClassifyService.selectById(posts.getPostsClassifyId());
if (postsClassify != null) {
vo.setPostClassifyName(postsClassify.getName());
}
//判断当前用户是否收藏了
vo.setHasFavorite(postsFavoriteService.hasFavoriteByPostsId(paramsVo.getId(), true) > 0 ? 1 : 0);
//获取帖子的附件
vo.setPostsAppendixVos(postsAppendixService.getListByPostsId(paramsVo.getId()));
//获取帖子的关联活动
vo.setPostsRelationVos(postsRelationService.getListByPostsId(paramsVo.getId()));
return vo;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer update(PostsSaveVo vo) {
RequestContext context = ContextHolder.get();
Long postsId = vo.getId();
Posts posts = new Posts();
BeanUtils.copyProperties(vo, posts);
posts.setStatus(vo.getType());
//修改字段赋值
setUpdateInfo(posts, context);
this.updateById(posts);
//保存帖子内容
postsContentService.updateByPostsId(postsId, vo.getContent());
//保存附件
postsAppendixService.deletedByPostsId(postsId);
postsAppendixService.save(postsId, vo.getPostsAppendixVos());
//只有管理端才能保存以下数据
if (ForumConstans.TERMINAL_MANAGE.equals(vo.getTerminalType())) {
//保存关联活动
postsRelationService.deletedByPostsId(postsId);
postsRelationService.save(postsId, vo.getPostsRelationVos());
//保存指定用户
postsVisibleRangeService.deletedByPostsId(postsId);
postsVisibleRangeService.save(postsId, vo.getPostsVisibleRangeVos());
}
return 1;
}
/**
* 给修改字段赋值
*
* @param posts
* @param context
*/
public void setUpdateInfo(Posts posts, RequestContext context) {
Date now = new Date();
posts.setUpdateById(context.getAccountId());
posts.setUpdateByName(context.getAccountName());
posts.setUpdateTime(now);
}
@Override
public Integer upOrDown(PostsParamsVo vo) {
Posts posts = new Posts();
posts.setId(vo.getId());
if (ForumConstans.UP.equals(vo.getType())) {
posts.setStatus(ForumConstans.UP);
posts.setUpdateTime(new Date());
} else if (ForumConstans.DOWN.equals(vo.getType())) {
posts.setStatus(ForumConstans.DOWN);
}
return this.updateById(posts) == true ? 1 : 0;
}
@Override
public Integer topOrHighlight(PostsParamsVo vo) {
Date date = new Date();
Posts tem = this.selectById(vo.getId());
if (tem == null) {
logger.info("置顶或加精时,id无效!");
return 0;
}
Posts posts = new Posts();
posts.setId(vo.getId());
if (ForumConstans.HIGH_LIGHT.equals(vo.getType())) {
//是否加精
if (ForumConstans.IS_HIGH_LIGHT.equals(vo.getIsHighlight())) {
posts.setHighlightTime(date);
posts.setIsHighlight(ForumConstans.IS_HIGH_LIGHT);
} else {
posts.setIsHighlight(ForumConstans.CANCEL_HIGH_LIGHT);
}
} else if (ForumConstans.TOP.equals(vo.getType())) {
//是否置顶
if (ForumConstans.IS_TOP.equals(vo.getIsTop())) {
posts.setIsTop(ForumConstans.IS_TOP);
posts.setSortTime(ForumConstans.MAX_TOP_DATE);
posts.setTopTime(date);
} else {
posts.setIsTop(ForumConstans.CANCEL_TOP);
posts.setSortTime(tem.getCommentTime());
}
}
return this.updateById(posts) == true ? 1 : 0;
}
@Override
public Page<PostsManageVo> getPage(PostsParamsVo vo) {
Page page = new Page<>(vo.getPageNo(), vo.getPageSize());
RequestContext context = ContextHolder.get();
Posts posts = new Posts();
posts.setPostsClassifyId(vo.getPostsClassifyId());
posts.setSiteId(context.getSiteId());
EntityWrapper wrapper = new EntityWrapper(posts);
if (vo.getStatus() != null) {
switch (vo.getStatus()) {
case 0:
//草稿
posts.setStatus(ForumConstans.DRAFT);
break;
case 1:
//下架
posts.setStatus(ForumConstans.DOWN);
break;
case 2:
//上架
posts.setStatus(ForumConstans.UP);
break;
}
}
if (vo.getType() != null) {
switch (vo.getType()) {
case 5:
//帖子待管理
posts.setHasManage(ForumConstans.POSTS_NOT_MANAGE);
break;
case 6:
//举报待管理
posts.setHasNewInform(ForumConstans.INFORM_NOT_MANAGE);
break;
}
//评论待管理
if (vo.getType().equals(7)) {
wrapper.gt(ForumConstans.Field_NEW_COMMENT_NUM, ForumConstans.ZERO);
}
}
if (vo.getIsHighlight() != null) {
posts.setIsHighlight(vo.getIsHighlight() > 0 ? 1 : 0);
}
if (!CollectionUtils.isEmpty(vo.getAuthors())) {
wrapper.in(ForumConstans.Field_AUTHOR, vo.getAuthors());
}
if (!StringUtils.isEmpty(vo.getTitle())) {
wrapper.like(ForumConstans.FEIlD_TITLE, vo.getTitle());
}
wrapper.orderBy(ForumConstans.FEIlD_UPDATE_TIME, false);
page = this.selectPage(page, wrapper);
List<Posts> postsList = page.getRecords();
if (!CollectionUtils.isEmpty(postsList)) {
List<PostsManageVo> postsManageVos = new ArrayList<>(postsList.size());
postsList.forEach(a -> {
PostsManageVo manageVo = new PostsManageVo();
BeanUtils.copyProperties(a, manageVo);
if (ForumConstans.DRAFT.equals(a.getStatus())) {
manageVo.setStatus("草稿");
} else if (ForumConstans.DOWN.equals(a.getStatus())) {
manageVo.setStatus("已下架");
} else {
manageVo.setStatus("已上架");
}
postsManageVos.add(manageVo);
});
page.setRecords(postsManageVos);
}
return page;
}
@Override
public Integer updateInfo(PostsVo vo) {
Posts posts = new Posts();
BeanUtils.copyProperties(vo, posts);
return this.updateById(posts) == true ? 1 : 0;
}
@Override
public Page<PostsStudentVo> getPageToStudent(Integer type, String keyword, Long classifyId, Integer pageNo, Integer pageSize) {
Page page = new Page<>(pageNo, pageSize);
RequestContext context = ContextHolder.get();
Posts posts = new Posts();
posts.setSiteId(context.getSiteId());
posts.setStatus(ForumConstans.UP);
EntityWrapper wrapper = new EntityWrapper(posts);
if (classifyId != null) {
wrapper.eq(ForumConstans.Field_CLASSIFY_ID, classifyId);
}
//构建keyword参数的wrapper
wrapper = buildWrapperByKeyword(keyword, wrapper);
switch (type) {
//最近讨论
case 1:
wrapper.orderBy(ForumConstans.Field_SORT_TIME, false)
.orderBy(ForumConstans.FEIlD_TOP_TIME, false);
break;
//火热帖子
case 2:
wrapper.orderBy(ForumConstans.Field_READ_NUM, false);
break;
//加精热帖
case 3:
wrapper.eq(ForumConstans.FEIlD_IS_HIGHLIGHT, ForumConstans.IS_HIGH_LIGHT)
.orderBy(ForumConstans.FEIlD_HIGHLIGHT_TIME, false);
break;
default:
wrapper.orderBy(ForumConstans.FEIlD_CREATE_TIME, false);
}
//对可见范围做限制
List<Long> postsIds = postsVisibleRangeService.getPostsIds(context);
wrapper.andNew().eq(ForumConstans.FEIlD_VISIBLE_RANGE, ForumConstans.SITE_ACCOUNT);
if (!CollectionUtils.isEmpty(postsIds)) {
wrapper.or().in(ForumConstans.Field_ID, postsIds);
}
page = this.selectPage(page, wrapper);
List<Posts> postsList = page.getRecords();
page.setRecords(buildVo(postsList, context, type));
return page;
}
/**
* 构建keyword参数的wrapper
*
* @param keyword
* @param wrapper
* @return
*/
public EntityWrapper buildWrapperByKeyword(String keyword, EntityWrapper wrapper) {
if (!StringUtils.isEmpty(keyword)) {
Page<PostsClassifyVo> classifyVoPage = postsClassifyService.getPageToStudent(keyword, false, 1, Integer.MAX_VALUE);
List<PostsClassifyVo> classifyVos = classifyVoPage.getRecords();
Set<Long> classifyIds = null;
if (!CollectionUtils.isEmpty(classifyVos)) {
classifyIds = new HashSet<>(classifyVos.size());
for (PostsClassifyVo a : classifyVos) {
classifyIds.add(a.getId());
}
}
wrapper.andNew().like(ForumConstans.FEIlD_TITLE, keyword);
if (!CollectionUtils.isEmpty(classifyIds)) {
wrapper.or().in(ForumConstans.Field_CLASSIFY_ID, classifyIds);
}
}
return wrapper;
}
/**
* 构建vo
*
* @param postsList
* @param context
* @param type 1- 最近讨论 2-火热帖子 3-加精热帖 4-我的发帖 5:我的收藏 6:我的管理
* @return
*/
public List<PostsStudentVo> buildVo(List<Posts> postsList, RequestContext context, Integer type) {
if (!CollectionUtils.isEmpty(postsList)) {
List<PostsStudentVo> postsStudentVos = new ArrayList<>(postsList.size());
Set postsIds = new HashSet();
Set postsClassifyIds = new HashSet();
for (Posts a : postsList) {
postsIds.add(a.getId());
postsClassifyIds.add(a.getPostsClassifyId());
}
//获取分类
Map<Long, String> classifyNameMap = postsClassifyService.getClassifyNameMap(new ArrayList<>(postsClassifyIds));
//获取帖子内容
Map<Long, String> postsContentMap = postsContentService.getMap(new ArrayList<>(postsIds));
for (Posts a : postsList) {
PostsStudentVo vo = new PostsStudentVo();
BeanUtils.copyProperties(a, vo);
vo.setContent(postsContentService.getOneByPostsId(a.getId()));
vo.setCreateTimeString(ForumUtil.getCreatTimeString(a.getUpdateTime()));
if (classifyNameMap != null) {
vo.setPostClassifyName(classifyNameMap.get(a.getPostsClassifyId()));
}
if (postsContentMap != null) {
vo.setContent(postsContentMap.get(a.getId()));
}
postsStudentVos.add(vo);
}
return postsStudentVos;
}
return new ArrayList<>();
}
@Override
public Page<PostsStudentVo> myPage(Integer type, Integer status, String keyword, Long classifyId, Integer pageNo, Integer pageSize) {
Page page = new Page<>(pageNo, pageSize);
RequestContext context = ContextHolder.get();
Posts posts = new Posts();
posts.setSiteId(context.getSiteId());
EntityWrapper wrapper = new EntityWrapper(posts);
if (classifyId != null) {
wrapper.eq(ForumConstans.Field_CLASSIFY_ID, classifyId);
}
switch (type) {
//1:我的发帖 2:我的收藏 3:我的管理
case 1:
posts.setAuthor(context.getAccountId());
if (status != null) {
if (status != 1) {
wrapper.eq(ForumConstans.FEIlD_STATUS, ForumConstans.UP);
} else {
wrapper.eq(ForumConstans.FEIlD_STATUS, ForumConstans.DRAFT);
}
}
type = 4;
wrapper.orderBy(ForumConstans.FEIlD_UPDATE_TIME, false);
break;
case 2:
posts.setStatus(ForumConstans.UP);
List<Long> postsIds = postsFavoriteService.getPostsIds(context.getAccountId(), context.getSiteId());
if (CollectionUtils.isEmpty(postsIds)) {
return page;
}
wrapper.in(ForumConstans.Field_ID, postsIds);
wrapper.orderBy(ForumConstans.FEIlD_FAVORITE_TIME, false);
type = 5;
break;
case 3:
posts.setStatus(ForumConstans.UP);
List<Long> classifyIds = manageAccountService.getClassifyIds(context.getAccountId(), context.getSiteId());
if (CollectionUtils.isEmpty(classifyIds)) {
return page;
}
wrapper.in(ForumConstans.Field_CLASSIFY_ID, classifyIds);
wrapper.orderBy(ForumConstans.FEIlD_MANAGE_SORT, false);
type = 6;
break;
}
//构建keyword参数的wrapper
wrapper = buildWrapperByKeyword(keyword, wrapper);
page = this.selectPage(page, wrapper);
List<Posts> postsList = page.getRecords();
page.setRecords(buildVo(postsList, context, type));
return page;
}
@Override
public List<Posts> getList(PostsParamsVo vo) {
Posts posts = new Posts();
posts.setDeleted(vo.getIncludeDeleted() == false ? ForumConstans.NOT_DELETED : null);
posts.setAuthor(vo.getAuthor());
EntityWrapper wrapper = new EntityWrapper(posts);
wrapper.ne(ForumConstans.FEIlD_STATUS, ForumConstans.DRAFT);
wrapper.gt(ForumConstans.Field_COMMENT_NUM, ForumConstans.ZERO);
if (!StringUtils.isEmpty(vo.getTitle())) {
wrapper.like(ForumConstans.FEIlD_TITLE, vo.getTitle());
}
return this.selectList(wrapper);
}
@Override
public Map<Long, PostsStudentVo> getMap(PostsParamsVo vo) {
Map<Long, PostsStudentVo> map = null;
Posts posts = new Posts();
posts.setAuthor(vo.getAuthor());
EntityWrapper wrapper = new EntityWrapper(posts);
if (!vo.getIncludeDeleted()) {
wrapper.eq(ForumConstans.FEIlD_STATUS, ForumConstans.UP);
}
if (vo.getTitle() != null) {
wrapper.like(ForumConstans.FEIlD_TITLE, vo.getTitle());
}
List<Posts> postsList = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(postsList)) {
List<Long> postsIds = postsList.stream().map(a -> a.getId()).collect(Collectors.toList());
Map<Long, String> contentMap = postsContentService.getMap(postsIds);
map = new HashMap<>(postsList.size());
for (Posts a : postsList) {
PostsStudentVo studentVo = new PostsStudentVo();
BeanUtils.copyProperties(a, studentVo);
if (contentMap != null) {
studentVo.setContent(contentMap.get(a.getId()));
}
if (!map.containsKey(studentVo.getId())) {
map.put(studentVo.getId(), studentVo);
}
}
}
return map;
}
@Override
public Map<Long, PostsStudentVo> getMapByIds(List<Long> postsIds) {
if (CollectionUtils.isEmpty(postsIds)) {
return null;
}
Map<Long, PostsStudentVo> map = this.baseMapper.getMapByIds(postsIds);
return map;
}
@Override
public Map<Long, StatisticsForumAccountVo> getPersonalDataMap() {
Map<Long, StatisticsForumAccountVo> dataMap = postsMapper.getPersonalDataMap();
Map<Long, StatisticsForumAccountVo> dataMap1 = new HashMap<>();
if (dataMap != null) {
//获取用户对应的被禁言数
Map<Long, Integer> beForbiddenAccountMap = postsForbiddenAccountService.getPersonalDataMap(true);
//获取阅读数
Map<Long, Integer> readRecordsMap = postsReadRecordsService.getPersonalDataMap();
for (Long accountId : dataMap.keySet()) {
StatisticsForumAccountVo vos = dataMap.get(accountId);
StatisticsForumAccountVo vo=new StatisticsForumAccountVo();
BeanUtils.copyProperties(vos,vo);
Integer beForbiddenNum = 0;
Integer readNum = 0;
if (beForbiddenAccountMap != null) {
beForbiddenNum = beForbiddenAccountMap.get(accountId);
}
if (readRecordsMap != null) {
readNum = readRecordsMap.get(accountId);
}
if (vo != null) {
vo.setBeForbiddenNum(beForbiddenNum);
vo.setReadNum(readNum);
}
dataMap1.put(accountId,vo);
}
}
return dataMap1;
}
@Override
public Posts getInfo(Long postsId) {
Posts posts = this.selectById(postsId);
if (posts != null) {
PostsClassify postsClassify = postsClassifyService.selectById(posts.getPostsClassifyId());
if (postsClassify != null) {
posts.setSendPoint(postsClassify.getSendPoint());
posts.setCommentPoint(postsClassify.getCommentPoint());
}
}
return posts;
}
@Override
public Integer getMyNum() {
RequestContext context = ContextHolder.get();
Integer myManageNum = 0;
List<Long> classifyIds = manageAccountService.getClassifyIds(context.getAccountId(), context.getSiteId());
if (!CollectionUtils.isEmpty(classifyIds)) {
Posts posts = new Posts();
posts.setSiteId(context.getSiteId());
posts.setStatus(ForumConstans.UP);
EntityWrapper wrapper = new EntityWrapper(posts);
wrapper.in(ForumConstans.Field_CLASSIFY_ID, classifyIds);
List<Posts> postsList = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(postsList)) {
for (Posts a : postsList) {
if (a.getHasManage() == 0 || a.getNewCommentNum() > 0 || a.getHasNewInform() > 0) {
myManageNum++;
}
}
}
}
return myManageNum;
}
@Override
public Map<Long, String> getNames(List<Long> postsIds) {
if (!CollectionUtils.isEmpty(postsIds)) {
EntityWrapper wrapper = new EntityWrapper();
wrapper.in("id", postsIds);
List<Posts> postsList = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(postsList)) {
return postsList.stream().collect(Collectors.toMap(Posts::getId, Posts::getTitle));
}
}
return null;
}
}
package com.yizhi.forum.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.forum.application.constans.ForumConstans;
import com.yizhi.forum.application.domain.PostsVisibleRange;
import com.yizhi.forum.application.mapper.PostsVisibleRangeMapper;
import com.yizhi.forum.application.service.IPostsVisibleRangeService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.forum.application.vo.forum.PostsVisibleRangeVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author taoge123
* @since 2020-01-09
*/
@Service
public class PostsVisibleRangeServiceImpl extends ServiceImpl<PostsVisibleRangeMapper, PostsVisibleRange> implements IPostsVisibleRangeService {
private Logger logger = LoggerFactory.getLogger(PostsVisibleRangeServiceImpl.class);
@Autowired
private IdGenerator idGenerator;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer save(Long postsId, List<PostsVisibleRangeVo> postsVisibleRangeVos) {
if (CollectionUtils.isEmpty(postsVisibleRangeVos)) {
logger.info("指定用户为空!!!");
return 0;
}
RequestContext context = ContextHolder.get();
Date now = new Date();
List<PostsVisibleRange> visibleRanges = new ArrayList<>(postsVisibleRangeVos.size());
postsVisibleRangeVos.forEach(a -> {
PostsVisibleRange visibleRange = new PostsVisibleRange();
BeanUtils.copyProperties(a, visibleRange);
visibleRange.setId(idGenerator.generate());
visibleRange.setPostsId(postsId);
visibleRange.setCreateById(context.getAccountId());
visibleRange.setCreateByName(context.getAccountName());
visibleRange.setCreateTime(now);
visibleRange.setSiteId(context.getSiteId());
visibleRanges.add(visibleRange);
});
return this.insertBatch(visibleRanges) == true ? 0 : visibleRanges.size();
}
@Override
public List<PostsVisibleRangeVo> getListByPostsId(Long postsId) {
RequestContext context = ContextHolder.get();
PostsVisibleRange postsVisibleRange = new PostsVisibleRange();
postsVisibleRange.setDeleted(ForumConstans.NOT_DELETED);
postsVisibleRange.setPostsId(postsId);
postsVisibleRange.setSiteId(context.getSiteId());
EntityWrapper<PostsVisibleRange> wrapper = new EntityWrapper(postsVisibleRange);
List<PostsVisibleRange> postsVisibleRanges = this.selectList(wrapper);
if (CollectionUtils.isEmpty(postsVisibleRanges)) {
return new ArrayList<>();
}
List<PostsVisibleRangeVo> postsVisibleRangeVos = new ArrayList<>(postsVisibleRanges.size());
postsVisibleRanges.forEach(a -> {
PostsVisibleRangeVo vo = new PostsVisibleRangeVo();
BeanUtils.copyProperties(a, vo);
postsVisibleRangeVos.add(vo);
});
return postsVisibleRangeVos;
}
@Override
public Integer deletedByPostsId(Long postsId) {
RequestContext context = ContextHolder.get();
Date now = new Date();
PostsVisibleRange postsVisibleRange = new PostsVisibleRange();
postsVisibleRange.setDeleted(1);
postsVisibleRange.setUpdateById(context.getAccountId());
postsVisibleRange.setUpdateByName(context.getAccountName());
postsVisibleRange.setUpdateTime(now);
EntityWrapper<PostsVisibleRange> wrapper = new EntityWrapper();
wrapper.eq("site_id",context.getSiteId())
.eq(ForumConstans.FEIlD_POSTS_ID, postsId);
return this.update(postsVisibleRange, wrapper) == true ? 1 : 0;
}
@Override
public List<Long> getPostsIds(RequestContext context) {
List<Long> postsIds = null;
PostsVisibleRange postsVisibleRange = new PostsVisibleRange();
postsVisibleRange.setSiteId(context.getSiteId());
EntityWrapper<PostsVisibleRange> wrapper = new EntityWrapper(postsVisibleRange);
wrapper.in(ForumConstans.Field_ACCOUNT_ID, context.getRelationIds());
List<PostsVisibleRange> postsVisibleRanges = this.selectList(wrapper);
if (!CollectionUtils.isEmpty(postsVisibleRanges)){
postsIds = new ArrayList<>(postsVisibleRanges.size());
postsIds = postsVisibleRanges.parallelStream().map(a->{return a.getPostsId();}).collect(Collectors.toList());
}
return postsIds;
}
}
server.port=35034
spring.application.name=cloud-forum
ACTIVE=${spring.profiles.active}
spring.profiles.active=dev
# nacos
spring.cloud.nacos.config.shared-dataids=common-${spring.profiles.active}.properties
spring.cloud.nacos.config.namespace=${spring.profiles.active}
spring.cloud.nacos.config.prefix=${spring.application.name}
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.server-addr=192.168.1.22:3333,192.168.1.22:4444,192.168.1.22:5555
\ No newline at end of file
<?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.yizhi.forum.application.mapper.PostsMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.Posts">
<id column="id" property="id" />
<result column="posts_classify_id" property="postsClassifyId" />
<result column="title" property="title" />
<result column="logo" property="logo" />
<result column="status" property="status" />
<result column="author" property="author" />
<result column="is_top" property="isTop" />
<result column="top_time" property="topTime" />
<result column="is_highlight" property="isHighlight" />
<result column="highlight_time" property="highlightTime" />
<result column="thumbs_num" property="thumbsNum" />
<result column="read_num" property="readNum" />
<result column="inform_num" property="informNum" />
<result column="has_new_inform" property="hasNewInform" />
<result column="comment_num" property="commentNum" />
<result column="comment_time" property="commentTime" />
<result column="new_comment_num" property="newCommentNum" />
<result column="has_manage" property="hasManage" />
<result column="terminal_type" property="terminalType" />
<result column="org_id" property="orgId" />
<result column="site_id" property="siteId" />
<result column="company_id" property="companyId" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
<result column="deleted" property="deleted" />
<result column="sort_time" property="sortTime" />
<result column="reply_num" property="replyNum" />
<result column="manage_sort_time" property="manageSortTime" />
<result column="favorite_time" property="favoriteTime" />
</resultMap>
<resultMap id="StudentResultMap" type="com.yizhi.forum.application.vo.forum.PostsStudentVo">
<id column="id" property="id" />
<result column="posts_classify_id" property="postsClassifyId" />
<result column="title" property="title" />
<result column="logo" property="logo" />
<result column="author" property="author" />
<result column="status" property="status" />
<result column="content" property="content" />
<result column="is_top" property="isTop" />
<result column="top_time" property="topTime" />
<result column="is_highlight" property="isHighlight" />
<result column="highlight_time" property="highlightTime" />
<result column="thumbs_num" property="thumbsNum" />
<result column="read_num" property="readNum" />
<result column="inform_num" property="informNum" />
<result column="has_new_inform" property="hasNewInform" />
<result column="comment_num" property="commentNum" />
<result column="comment_time" property="commentTime" />
<result column="new_comment_num" property="newCommentNum" />
<result column="has_manage" property="hasManage" />
<result column="terminal_type" property="terminalType" />
<result column="deleted" property="deleted" />
<result column="sort_time" property="sortTime" />
<result column="reply_num" property="replyNum" />
</resultMap>
<resultMap id="StatisticsForumAccountVoMap" type="com.yizhi.forum.application.vo.forum.StatisticsForumAccountVo">
<result column="author" property="author" />
<result column="sendNum" property="sendNum" />
<result column="beAdmiredNum" property="beAdmiredNum" />
<result column="beInformNum" property="beInformNum" />
<result column="highlightNum" property="highlightNum" />
<result column="topNum" property="topNum" />
<result column="draftNum" property="draftNum" />
</resultMap>
<select id="getPersonalDataMap" resultMap="StatisticsForumAccountVoMap">
select
author,
count (1) as sendNum,
count (thumbs_num) as beAdmiredNum,
count (inform_num) as beInformNum,
count(CASE WHEN `is_highlight` = '1' THEN 1 ELSE 0 END) as highlightNum,
count(CASE WHEN `is_top` = '1' THEN 1 ELSE 0 END) as topNum,
(select count(1) from posts where deleted =0 and status = 0) as draftNum
from posts
where deleted = 0 and status = 2
group by author
</select>
<select id="getMapByIds" resultMap="StudentResultMap">
SELECT
a.*,
b.content
FROM
posts a
LEFT JOIN posts_content b ON ( a.id = b.posts_id )
where 1=1
<if test="postsIds!=null and postsIds.size() !=0">
and a.id in
<foreach collection="postsIds" index="item" separator="," open="(" item="item" close=")" >
#{item}
</foreach>
</if>
</select>
</mapper>
<?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.yizhi.forum.application.mapper.PostsAppendixMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsAppendix">
<id column="id" property="id" />
<result column="posts_id" property="postsId" />
<result column="name" property="name" />
<result column="file_size" property="fileSize" />
<result column="file_suffer" property="fileSuffer" />
<result column="url" property="url" />
<result column="type" property="type" />
<result column="deleted" property="deleted" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
<result column="site_id" property="siteId" />
</resultMap>
</mapper>
<?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.yizhi.forum.application.mapper.PostsClassifyMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsClassify">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="code" property="code"/>
<result column="description" property="description"/>
<result column="send_point" property="sendPoint"/>
<result column="comment_point" property="commentPoint"/>
<result column="comment_setting" property="commentSetting"/>
<result column="send_setting" property="sendSetting"/>
<result column="sort" property="sort"/>
<result column="org_id" property="orgId"/>
<result column="site_id" property="siteId"/>
<result column="company_id" property="companyId"/>
<result column="create_by_id" property="createById"/>
<result column="create_by_name" property="createByName"/>
<result column="create_time" property="createTime"/>
<result column="update_by_id" property="updateById"/>
<result column="update_by_name" property="updateByName"/>
<result column="update_time" property="updateTime"/>
<result column="deleted" property="deleted"/>
</resultMap>
<select id="getMaxSort" resultType="Integer">
select max(sort) from posts_classify
<where>
1=1 and site_id = #{siteId} and deleted = 0
</where>
limit 1
</select>
<update id="setSort">
update posts_classify set sort = sort + 1
<where>
1=1 and site_id = #{siteId} and deleted = 0 and id = #{id}
</where>
</update>
<select id="getSort" resultType="com.yizhi.forum.application.domain.PostsClassify">
select id, sort from posts_classify
where site_id = #{siteId} and deleted = 0
<!--上移-->
<if test="type==1">
and sort &gt;(select sort from posts_classify where site_id = #{siteId} and deleted = 0 and id = #{id})
order by sort
limit 1 ;
</if>
<if test="type==2">
and sort &lt;(select sort from posts_classify where site_id = #{siteId} and deleted = 0 and id = #{id})
order by sort desc
limit 1 ;
</if>
</select>
</mapper>
<?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.yizhi.forum.application.mapper.PostsClassifyAccountMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsClassifyAccount">
<id column="id" property="id" />
<result column="posts_classify_id" property="postsClassifyId" />
<result column="type" property="type" />
<result column="account_type" property="accountType" />
<result column="account_id" property="accountId" />
<result column="deleted" property="deleted" />
<result column="site_id" property="siteId" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
</resultMap>
</mapper>
<?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.yizhi.forum.application.mapper.PostsContentMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsContent">
<id column="id" property="id" />
<result column="posts_id" property="postsId" />
<result column="content" property="content" />
<result column="deleted" property="deleted" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
</resultMap>
</mapper>
<?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.yizhi.forum.application.mapper.PostsFavoriteMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsFavorite">
<id column="id" property="id" />
<result column="posts_id" property="postsId" />
<result column="account_id" property="accountId" />
<result column="deleted" property="deleted" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
<result column="company_id" property="companyId" />
<result column="site_id" property="siteId" />
<result column="org_id" property="orgId" />
</resultMap>
</mapper>
<?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.yizhi.forum.application.mapper.PostsForbiddenAccountMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsForbiddenAccount">
<id column="id" property="id" />
<result column="posts_id" property="postsId" />
<result column="account_id" property="accountId" />
<result column="deleted" property="deleted" />
<result column="site_id" property="siteId" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
</resultMap>
</mapper>
<?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.yizhi.forum.application.mapper.PostsManageAccountMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsManageAccount">
<id column="id" property="id" />
<result column="posts_classify_id" property="postsClassifyId" />
<result column="account_id" property="accountId" />
<result column="deleted" property="deleted" />
<result column="site_id" property="siteId" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
</resultMap>
</mapper>
<?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.yizhi.forum.application.mapper.PostsReadRecordsMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsReadRecord">
<id column="id" property="id" />
<result column="posts_id" property="postsId" />
<result column="account_id" property="accountId" />
<result column="site_id" property="siteId" />
<result column="terminal_type" property="terminalType" />
<result column="deleted" property="deleted" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
</resultMap>
</mapper>
<?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.yizhi.forum.application.mapper.PostsRelationMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsRelation">
<id column="id" property="id" />
<result column="type" property="type" />
<result column="relation_id" property="relationId" />
<result column="posts_id" property="postsId" />
<result column="task_logo" property="taskLogo" />
<result column="task_name" property="taskName" />
<result column="deleted" property="deleted" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
<result column="spare_field" property="spareField" />
</resultMap>
</mapper>
<?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.yizhi.forum.application.mapper.PostsVisibleRangeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.forum.application.domain.PostsVisibleRange">
<id column="id" property="id" />
<result column="posts_id" property="postsId" />
<result column="account_type" property="accountType" />
<result column="account_id" property="accountId" />
<result column="deleted" property="deleted" />
<result column="site_id" property="siteId" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
</resultMap>
</mapper>
package com.yizhi.forum.application;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ForumApplicationTests {
}
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter:2.3.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot:2.3.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-context:5.2.7.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-aop:5.2.7.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-beans:5.2.7.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-expression:5.2.7.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.10.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-core:5.2.7.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-jcl:5.2.7.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.7.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.7.0" level="project" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.18" level="project" />
<orderEntry type="library" name="Maven: com.fulan:cloud-util:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.icepdf.os:icepdf-core:6.3.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.03" level="project" />
<orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.0" level="project" />
<orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
<orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.26-incubating" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.google.zxing:core:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.ant:ant:1.10.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.ant:ant-launcher:1.10.1" level="project" />
<orderEntry type="library" name="Maven: com.itextpdf:itextpdf:5.5.10" level="project" />
<orderEntry type="library" name="Maven: com.itextpdf:itext-asian:5.2.0" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.54" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.7.0" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.13" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.13" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.7.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.7.0" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.6.14" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.7.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.7.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.7.0" level="project" />
<orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:18.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.24" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.1.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
<orderEntry type="library" name="Maven: au.com.bytecode:opencsv:2.4" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:3.2.2" level="project" />
<orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:2.8.3" level="project" />
<orderEntry type="library" name="Maven: org.jdom:jdom:1.1" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.5.16" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.11" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.11" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.9.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.10" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.15" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.15" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.15" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.3.5.Final" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.1" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.8.3" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.36" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.8" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.15" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
<orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.35" level="project" />
<orderEntry type="library" name="Maven: com.fulan.application.cat:cat-client:1.4.0" level="project" />
<orderEntry type="library" name="Maven: com.fulan.application.cat:foundation-service:2.5.0" level="project" />
<orderEntry type="library" name="Maven: com.fulan:cloud-core:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-zuul:1.3.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:1.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:1.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.55" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-hystrix:1.3.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-core:1.5.12" level="project" />
<orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-metrics-event-stream:1.5.12" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.hystrix:hystrix-serialization:1.5.12" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.module:jackson-module-afterburner:2.7.5" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-javanica:1.5.12" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-ribbon:1.3.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.2.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.2.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-codec-http:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-codec:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-handler:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport-native-epoll:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-common:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-buffer:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport:4.0.27.Final" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.2.2" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.2.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.2.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey.contribs:jersey-apache-client4:1.19.1" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-loadbalancer:2.2.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-statistics:0.1.1" level="project" />
<orderEntry type="library" name="Maven: io.reactivex:rxjava:1.1.10" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-archaius:1.3.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.4" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.google.code.findbugs:jsr305:3.0.1" level="project" />
<orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.8" level="project" />
<orderEntry type="library" name="Maven: com.netflix.zuul:zuul-core:1.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-core:0.10.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-internal:0.10.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-commons-util:0.1.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:1.5.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.8.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:1.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.13.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:4.3.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: redis.clients:jedis:2.9.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-feign:1.3.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-core:1.3.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:1.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:4.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-core:9.5.0" level="project" />
<orderEntry type="library" name="Maven: org.jvnet:animal-sniffer-annotation:1.0" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:9.5.0" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-hystrix:9.5.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.kafka:spring-kafka:1.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.1.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.kafka:kafka-clients:0.10.0.1" level="project" />
<orderEntry type="library" name="Maven: net.jpountz.lz4:lz4:1.3.0" level="project" />
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.1.2.6" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-asl:1.9.11" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.9.11" level="project" />
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.6.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-amqp:1.5.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.amqp:spring-rabbit:1.7.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.rabbitmq:http-client:1.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.rabbitmq:amqp-client:4.0.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.amqp:spring-amqp:1.7.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fulan:cloud-orm:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:2.1.8" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-support:2.1.8" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:2.1.8" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generate:2.1.8" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatisplus-spring-boot-starter:1.0.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.20" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.yizhi</groupId>
<artifactId>wmy-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath/>
</parent>
<groupId>com.yizhi</groupId>
<artifactId>cloud-forum</artifactId>
<version>1.0-SNAPSHOT</version>
<name>cloud-forum</name>
<description>Demo project for Spring Boot</description>
<packaging>pom</packaging>
<modules>
<module>cloud-forum-api</module>
<module>cloud-forum-service</module>
</modules>
<repositories>
<repository>
<id>wmy4.0</id>
<url>http://mvn.km365.pw/nexus/content/groups/wmy4.0-group/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment