提交 6c7d2d66 作者: xiaowang

动态审核及列表展示创建时间

上级 d8d3c9b1
...@@ -8,11 +8,11 @@ import lombok.Builder; ...@@ -8,11 +8,11 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* @Author LW * @Author LW
*
* @date 2023/6/19 14:25 概要: * @date 2023/6/19 14:25 概要:
*/ */
@Data @Data
...@@ -20,21 +20,25 @@ import java.util.List; ...@@ -20,21 +20,25 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
@Builder @Builder
public class DynamicInfoDTO { public class DynamicInfoDTO {
@ApiModelProperty(value = "动态id") @ApiModelProperty(value = "动态id")
private Integer id; private Integer id;
@ApiModelProperty(value = "动态描述") @ApiModelProperty(value = "动态描述")
private String description; private String description;
@ApiModelProperty(value = "图片/视频") @ApiModelProperty(value = "图片/视频")
private List<MediaVO> mediaVO; private List<MediaVO> mediaVO;
@ApiModelProperty(value = "show: 0显示 1隐藏") @ApiModelProperty(value = "show: 0显示 1隐藏")
private Integer show; private Integer show;
@ApiModelProperty(value = "发布动态用户信息") @ApiModelProperty(value = "发布动态用户信息")
private UserBaseInfoVO userBaseInfo; private UserBaseInfoVO userBaseInfo;
@ApiModelProperty(value = "用户id")
private Integer userAccountId;
@ApiModelProperty(value = "动态发布时间")
private Date dynamicPublishTime;
@ApiModelProperty(value = "用户id")
private Integer userAccountId;
} }
...@@ -16,7 +16,6 @@ import javax.servlet.http.HttpServletRequest; ...@@ -16,7 +16,6 @@ import javax.servlet.http.HttpServletRequest;
/** /**
* @Author LW * @Author LW
*
* @date 2023/6/19 10:44 概要: * @date 2023/6/19 10:44 概要:
*/ */
@Api(tags = {"后台-论坛管理-模块"}) @Api(tags = {"后台-论坛管理-模块"})
...@@ -24,34 +23,42 @@ import javax.servlet.http.HttpServletRequest; ...@@ -24,34 +23,42 @@ import javax.servlet.http.HttpServletRequest;
@RequestMapping("/backstage/forum") @RequestMapping("/backstage/forum")
public class BackstageForumController { public class BackstageForumController {
@Autowired BackstageForumService backstageForumService; @Autowired
BackstageForumService backstageForumService;
@ApiOperation(value = "后台-动态列表")
@PostMapping("/listDynamic") @ApiOperation(value = "后台-动态列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = DynamicInfoDTO.class)}) @PostMapping("/listDynamic")
public ResultBody<DynamicInfoDTO> listDynamic( @ApiResponses({@ApiResponse(code = 200, message = "OK", response = DynamicInfoDTO.class)})
@RequestBody DynamicQO dynamic, HttpServletRequest request) { public ResultBody<DynamicInfoDTO> listDynamic(
return ResultBody.success(backstageForumService.listDynamic(dynamic, request)); @RequestBody DynamicQO dynamic, HttpServletRequest request) {
} return ResultBody.success(backstageForumService.listDynamic(dynamic, request));
}
@ApiOperation(value = "动态删除")
@GetMapping("/deleteDynamic") @ApiOperation(value = "动态删除")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @GetMapping("/deleteDynamic")
public ResultBody deleteDynamic(@RequestParam Integer dynamicId) { @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
return backstageForumService.deleteDynamic(dynamicId); public ResultBody deleteDynamic(@RequestParam Integer dynamicId) {
} return backstageForumService.deleteDynamic(dynamicId);
}
@ApiOperation(value = "动态隐藏")
@GetMapping("/hiddenDynamic") @ApiOperation(value = "动态隐藏")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @GetMapping("/hiddenDynamic")
public ResultBody hiddenDynamic(@RequestParam Integer dynamicId) { @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
return backstageForumService.hiddenDynamic(dynamicId); public ResultBody hiddenDynamic(@RequestParam Integer dynamicId) {
} return backstageForumService.hiddenDynamic(dynamicId);
}
@ApiOperation(value = "点赞用户信息")
@GetMapping("/likeUserInfo") @ApiOperation(value = "点赞用户信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UserBaseInfoVO.class)}) @GetMapping("/likeUserInfo")
public ResultBody likeUserInfo(@RequestParam Integer dynamicId, HttpServletRequest request) { @ApiResponses({@ApiResponse(code = 200, message = "OK", response = UserBaseInfoVO.class)})
return backstageForumService.likeUserInfo(dynamicId, request); public ResultBody likeUserInfo(@RequestParam Integer dynamicId, HttpServletRequest request) {
} return backstageForumService.likeUserInfo(dynamicId, request);
}
@ApiOperation(value = "审核动态")
@GetMapping("/checkDynamic")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
public ResultBody checkDynamic(@RequestParam Integer dynamicId, @RequestParam Boolean status) {
return backstageForumService.checkDynamic(dynamicId, status);
}
} }
...@@ -144,4 +144,6 @@ public interface DynamicDAO { ...@@ -144,4 +144,6 @@ public interface DynamicDAO {
ForumDynamicDO getDynamicInfoById(Integer dynamicId); ForumDynamicDO getDynamicInfoById(Integer dynamicId);
List<ForumDynamicDO> firstTwoItemsComment(List<Integer> ids); List<ForumDynamicDO> firstTwoItemsComment(List<Integer> ids);
void updateCheckDynamic(Integer dynamicId, Integer status);
} }
...@@ -88,6 +88,7 @@ public class ForumDynamicDO extends BaseDO implements Serializable { ...@@ -88,6 +88,7 @@ public class ForumDynamicDO extends BaseDO implements Serializable {
.id(this.getId()) .id(this.getId())
.userAccountId(userAccountId) .userAccountId(userAccountId)
.description(description) .description(description)
.dynamicPublishTime(this.getCreateTime())
.show(this.getDeleted()) .show(this.getDeleted())
.build(); .build();
} }
......
...@@ -8,15 +8,17 @@ import javax.servlet.http.HttpServletRequest; ...@@ -8,15 +8,17 @@ import javax.servlet.http.HttpServletRequest;
/** /**
* @Author LW * @Author LW
*
* @date 2023/6/19 10:47 概要: * @date 2023/6/19 10:47 概要:
*/ */
public interface BackstageForumService { public interface BackstageForumService {
PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request); PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request);
ResultBody deleteDynamic(Integer dynamicId); ResultBody deleteDynamic(Integer dynamicId);
ResultBody hiddenDynamic(Integer dynamicId); ResultBody hiddenDynamic(Integer dynamicId);
ResultBody likeUserInfo(Integer dynamicId, HttpServletRequest request);
ResultBody checkDynamic(Integer dynamicId, Boolean status);
ResultBody likeUserInfo(Integer dynamicId, HttpServletRequest request);
} }
...@@ -30,126 +30,140 @@ import java.util.stream.Collectors; ...@@ -30,126 +30,140 @@ import java.util.stream.Collectors;
/** /**
* @Author LW * @Author LW
*
* @date 2023/6/19 10:47 概要: * @date 2023/6/19 10:47 概要:
*/ */
@Service @Service
public class BackstageForumServiceImpl implements BackstageForumService { public class BackstageForumServiceImpl implements BackstageForumService {
@Autowired BackstageForumDao backstageForumDao; @Autowired
@Autowired DynamicDAO dynamicDAO; BackstageForumDao backstageForumDao;
@Autowired UserAppApi userAppApi; @Autowired
@Autowired LikeDAO likeDAO; DynamicDAO dynamicDAO;
@Autowired
UserAppApi userAppApi;
@Autowired
LikeDAO likeDAO;
@Override @Override
public PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request) { public PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request) {
List<Integer> userIds = null; List<Integer> userIds = null;
if (dynamic.getKeyword() != null) { if (dynamic.getKeyword() != null) {
UserAccountQO userAccountQO = new UserAccountQO(); UserAccountQO userAccountQO = new UserAccountQO();
userAccountQO.setKeyword(dynamic.getKeyword()); userAccountQO.setKeyword(dynamic.getKeyword());
// 获取筛选的用户id // 获取筛选的用户id
List<UserAccountSimpleDTO> userAccountSimpleDTOS = List<UserAccountSimpleDTO> userAccountSimpleDTOS =
userAppApi.feignListAppUserAccount(userAccountQO, request.getHeader(TokenConstant.TOKEN)); userAppApi.feignListAppUserAccount(userAccountQO, request.getHeader(TokenConstant.TOKEN));
if (CollectionUtils.isNotEmpty(userAccountSimpleDTOS)) { if (CollectionUtils.isNotEmpty(userAccountSimpleDTOS)) {
// 获取用户id // 获取用户id
userIds = userIds =
userAccountSimpleDTOS.stream() userAccountSimpleDTOS.stream()
.map(UserAccountSimpleDTO::getId) .map(UserAccountSimpleDTO::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
if (userIds == null) { if (userIds == null) {
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), 0); return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), 0);
} }
}
int count = backstageForumDao.countDynamic(userIds);
if (count == 0) {
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), count);
}
int itemIndex = (dynamic.getPageNo() - 1) * dynamic.getPageSize();
// 获取动态信息
List<ForumDynamicDO> dynamicList =
backstageForumDao.listDynamicInfo(userIds, itemIndex, dynamic.getPageSize());
// 动态id集合
List<Integer> ids =
dynamicList.stream().map(ForumDynamicDO::getId).collect(Collectors.toList());
// 根据id集合查询图片
List<ForumResourceDO> forumImageList = dynamicDAO.listDynamicPicture(ids);
Map<Integer, List<ForumResourceDO>> ImageMap =
forumImageList.stream().collect(Collectors.groupingBy(ForumResourceDO::getDynamicId));
// 获取用户信息
Set<Integer> listUserIds =
dynamicList.stream().map(ForumDynamicDO::getUserAccountId).collect(Collectors.toSet());
List<Integer> userIdList = new ArrayList<>(listUserIds);
UserAccountQO accountQO = new UserAccountQO();
accountQO.setUserIds(userIdList);
List<UserAccountSimpleDTO> userAccountSimpleList =
userAppApi.feignListAppUserAccount(accountQO, request.getHeader(TokenConstant.TOKEN));
Map<Integer, UserAccountSimpleDTO> userAccountInfoMap =
userAccountSimpleList.stream()
.collect(Collectors.toMap(UserAccountSimpleDTO::getId, Function.identity()));
List<DynamicInfoDTO> list =
dynamicList.stream()
.map(
d -> {
DynamicInfoDTO dynamicInfoDTO = d.buildDynamicInfoDTO();
List<ForumResourceDO> forumResourceDOList = ImageMap.get(d.getId());
if (CollectionUtils.isNotEmpty(forumResourceDOList)) {
dynamicInfoDTO.setMediaVO(
forumResourceDOList.stream()
.map(ForumResourceDO::buildMedia)
.collect(Collectors.toList()));
}
UserAccountSimpleDTO userAccountSimpleDTO =
userAccountInfoMap.get(d.getUserAccountId());
if (userAccountSimpleDTO != null) {
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
userBaseInfoVO.setUserName(userAccountSimpleDTO.getUserName());
userBaseInfoVO.setPhone(userAccountSimpleDTO.getPhoneNum());
userBaseInfoVO.setUid(userAccountSimpleDTO.getUid());
dynamicInfoDTO.setUserBaseInfo(userBaseInfoVO);
}
return dynamicInfoDTO;
})
.collect(Collectors.toList());
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), count, list);
} }
int count = backstageForumDao.countDynamic(userIds);
if (count == 0) { @Override
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), count); public ResultBody deleteDynamic(Integer dynamicId) {
dynamicDAO.deleteDynamic(dynamicId);
return ResultBody.success();
}
@Override
public ResultBody hiddenDynamic(Integer dynamicId) {
dynamicDAO.hiddenDynamic(dynamicId);
return ResultBody.success();
} }
int itemIndex = (dynamic.getPageNo() - 1) * dynamic.getPageSize();
// 获取动态信息
List<ForumDynamicDO> dynamicList =
backstageForumDao.listDynamicInfo(userIds, itemIndex, dynamic.getPageSize());
// 动态id集合
List<Integer> ids =
dynamicList.stream().map(ForumDynamicDO::getId).collect(Collectors.toList());
// 根据id集合查询图片
List<ForumResourceDO> forumImageList = dynamicDAO.listDynamicPicture(ids);
Map<Integer, List<ForumResourceDO>> ImageMap =
forumImageList.stream().collect(Collectors.groupingBy(ForumResourceDO::getDynamicId));
// 获取用户信息
Set<Integer> listUserIds =
dynamicList.stream().map(ForumDynamicDO::getUserAccountId).collect(Collectors.toSet());
List<Integer> userIdList = new ArrayList<>(listUserIds);
UserAccountQO accountQO = new UserAccountQO();
accountQO.setUserIds(userIdList);
List<UserAccountSimpleDTO> userAccountSimpleList =
userAppApi.feignListAppUserAccount(accountQO, request.getHeader(TokenConstant.TOKEN));
Map<Integer, UserAccountSimpleDTO> userAccountInfoMap =
userAccountSimpleList.stream()
.collect(Collectors.toMap(UserAccountSimpleDTO::getId, Function.identity()));
List<DynamicInfoDTO> list =
dynamicList.stream()
.map(
d -> {
DynamicInfoDTO dynamicInfoDTO = d.buildDynamicInfoDTO();
List<ForumResourceDO> forumResourceDOList = ImageMap.get(d.getId());
if (CollectionUtils.isNotEmpty(forumResourceDOList)) {
dynamicInfoDTO.setMediaVO(
forumResourceDOList.stream()
.map(ForumResourceDO::buildMedia)
.collect(Collectors.toList()));
}
UserAccountSimpleDTO userAccountSimpleDTO =
userAccountInfoMap.get(d.getUserAccountId());
if (userAccountSimpleDTO != null) {
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
userBaseInfoVO.setUserName(userAccountSimpleDTO.getUserName());
userBaseInfoVO.setPhone(userAccountSimpleDTO.getPhoneNum());
userBaseInfoVO.setUid(userAccountSimpleDTO.getUid());
dynamicInfoDTO.setUserBaseInfo(userBaseInfoVO);
}
return dynamicInfoDTO;
})
.collect(Collectors.toList());
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), count, list);
}
@Override @Override
public ResultBody deleteDynamic(Integer dynamicId) { public ResultBody likeUserInfo(Integer dynamicId, HttpServletRequest request) {
dynamicDAO.deleteDynamic(dynamicId); List<ForumLikeDO> forumLikeList = likeDAO.selectUserAccountId(dynamicId);
return ResultBody.success(); if (forumLikeList != null) {
} List<Integer> list =
forumLikeList.stream().map(ForumLikeDO::getUserAccountId).collect(Collectors.toList());
UserAccountQO accountQO = new UserAccountQO();
accountQO.setUserIds(list);
List<UserAccountSimpleDTO> userAccountSimpleList =
userAppApi.feignListAppUserAccount(accountQO, request.getHeader(TokenConstant.TOKEN));
List<UserBaseInfoVO> userBaseInfoList = new ArrayList<>();
userAccountSimpleList.forEach(
d -> {
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setNickName(d.getNickName());
userBaseInfoVO.setUserImg(d.getUserImg());
userBaseInfoVO.setUserName(d.getUserName());
userBaseInfoVO.setPhone(d.getPhoneNum());
userBaseInfoVO.setUid(d.getUid());
userBaseInfoList.add(userBaseInfoVO);
});
return ResultBody.success(userBaseInfoList);
}
return ResultBody.success();
}
@Override
public ResultBody hiddenDynamic(Integer dynamicId) {
dynamicDAO.hiddenDynamic(dynamicId);
return ResultBody.success();
}
@Override @Override
public ResultBody likeUserInfo(Integer dynamicId, HttpServletRequest request) { public ResultBody checkDynamic(Integer dynamicId, Boolean status) {
List<ForumLikeDO> forumLikeList = likeDAO.selectUserAccountId(dynamicId); if (status) {
if (forumLikeList != null) { dynamicDAO.updateCheckDynamic(dynamicId, 1);
List<Integer> list = } else {
forumLikeList.stream().map(ForumLikeDO::getUserAccountId).collect(Collectors.toList()); dynamicDAO.updateCheckDynamic(dynamicId, 2);
UserAccountQO accountQO = new UserAccountQO(); }
accountQO.setUserIds(list); return ResultBody.success();
List<UserAccountSimpleDTO> userAccountSimpleList =
userAppApi.feignListAppUserAccount(accountQO, request.getHeader(TokenConstant.TOKEN));
List<UserBaseInfoVO> userBaseInfoList = new ArrayList<>();
userAccountSimpleList.forEach(
d -> {
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setNickName(d.getNickName());
userBaseInfoVO.setUserImg(d.getUserImg());
userBaseInfoVO.setUserName(d.getUserName());
userBaseInfoVO.setPhone(d.getPhoneNum());
userBaseInfoVO.setUid(d.getUid());
userBaseInfoList.add(userBaseInfoVO);
});
return ResultBody.success(userBaseInfoList);
} }
return ResultBody.success();
}
} }
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</where> </where>
</select> </select>
<select id="listDynamicInfo" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO"> <select id="listDynamicInfo" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
select id,user_account_id,description,is_deleted as deleted from forum_dynamic select id,user_account_id,description,is_deleted as deleted,create_time from forum_dynamic
<where> <where>
root_path is null root_path is null
<if test="ids != null"> <if test="ids != null">
......
...@@ -51,6 +51,11 @@ ...@@ -51,6 +51,11 @@
end end
where id = #{dynamicId} where id = #{dynamicId}
</update> </update>
<update id="updateCheckDynamic">
update forum_dynamic
set check_status = #{status}
where id = #{dynamicId}
</update>
<delete id="deleteDynamic"> <delete id="deleteDynamic">
delete delete
from forum_dynamic from forum_dynamic
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论