提交 f4b6b1d2 作者: zhenjie

Merge branch 'develop' of ssh://git.mmcuav.cn:8222/iuav/ims into develop

...@@ -18,4 +18,4 @@ patches: ...@@ -18,4 +18,4 @@ patches:
images: images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG - name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims
newTag: c99c11275b542783a64eabc53f833027ea7f5086 newTag: d09492c0603588ee98d33372e89798972d0421a4
...@@ -3,16 +3,14 @@ package com.mmc.csf.release.controller; ...@@ -3,16 +3,14 @@ package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.web.ResultBody; import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.release.forum.dto.DynamicInfoDTO; import com.mmc.csf.release.forum.dto.DynamicInfoDTO;
import com.mmc.csf.release.forum.qo.DynamicQO; import com.mmc.csf.release.forum.qo.DynamicQO;
import com.mmc.csf.release.forum.vo.UserBaseInfoVO;
import com.mmc.csf.release.service.BackstageForumService; import com.mmc.csf.release.service.BackstageForumService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses; import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -28,11 +26,32 @@ public class BackstageForumController { ...@@ -28,11 +26,32 @@ public class BackstageForumController {
@Autowired BackstageForumService backstageForumService; @Autowired BackstageForumService backstageForumService;
@ApiOperation(value = "动态列表") @ApiOperation(value = "后台-动态列表")
@PostMapping("/listDynamic") @PostMapping("/listDynamic")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = DynamicInfoDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = DynamicInfoDTO.class)})
public ResultBody<DynamicInfoDTO> listDynamic( public ResultBody<DynamicInfoDTO> listDynamic(
@RequestBody DynamicQO dynamic, HttpServletRequest request) { @RequestBody DynamicQO dynamic, HttpServletRequest request) {
return ResultBody.success(backstageForumService.listDynamic(dynamic, request)); return ResultBody.success(backstageForumService.listDynamic(dynamic, request));
} }
@ApiOperation(value = "动态删除")
@GetMapping("/deleteDynamic")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
public ResultBody deleteDynamic(@RequestParam Integer dynamicId) {
return backstageForumService.deleteDynamic(dynamicId);
}
@ApiOperation(value = "动态隐藏")
@GetMapping("/hiddenDynamic")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
public ResultBody hiddenDynamic(@RequestParam Integer dynamicId) {
return backstageForumService.hiddenDynamic(dynamicId);
}
@ApiOperation(value = "点赞用户信息")
@GetMapping("/likeUserInfo")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UserBaseInfoVO.class)})
public ResultBody likeUserInfo(@RequestParam Integer dynamicId, HttpServletRequest request) {
return backstageForumService.likeUserInfo(dynamicId, request);
}
} }
...@@ -61,4 +61,14 @@ public class DynamicController extends BaseController { ...@@ -61,4 +61,14 @@ public class DynamicController extends BaseController {
return dynamicService.dynamicDetails( return dynamicService.dynamicDetails(
dynamicId, this.getUserLoginInfoFromRedis(request).getUserAccountId(), request); dynamicId, this.getUserLoginInfoFromRedis(request).getUserAccountId(), request);
} }
@ApiOperation(value = "动态列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = DynamicVO.class)})
@GetMapping("/dynamicList")
public ResultBody dynamicList(
@RequestParam Integer pageNo, @RequestParam Integer pageSize, HttpServletRequest request) {
return ResultBody.success(
dynamicService.dynamicList(
pageNo, pageSize, this.getUserLoginInfoFromRedis(request).getUserAccountId(), request));
}
} }
...@@ -44,9 +44,10 @@ public interface DynamicDAO { ...@@ -44,9 +44,10 @@ public interface DynamicDAO {
* 更新动态点赞数量 * 更新动态点赞数量
* *
* @param dynamicId 动态id * @param dynamicId 动态id
* @param pid pid * @param version version
*/ */
void updateDynamicLikeCount(@Param("dynamicId") Integer dynamicId, @Param("pid") Integer pid); void updateDynamicLikeCount(
@Param("dynamicId") Integer dynamicId, @Param("version") Integer version);
/** /**
* 得到动态信息 * 得到动态信息
...@@ -60,17 +61,17 @@ public interface DynamicDAO { ...@@ -60,17 +61,17 @@ public interface DynamicDAO {
* 动态点赞数减 * 动态点赞数减
* *
* @param dynamicId 动态id * @param dynamicId 动态id
* @param pid pid * @param version version
*/ */
void updateSubDynamicLikeCount(Integer dynamicId, Integer pid); void updateSubDynamicLikeCount(Integer dynamicId, Integer version);
/** /**
* 更新动态评论数 * 更新动态评论数
* *
* @param dynamicId 动态id * @param dynamicId 动态id
* @param pid pid * @param version version
*/ */
void updateDynamicCommentCount(Integer dynamicId, Integer pid); void updateDynamicCommentCount(Integer dynamicId, Integer version);
/** /**
* 动态列表计数 * 动态列表计数
...@@ -126,4 +127,8 @@ public interface DynamicDAO { ...@@ -126,4 +127,8 @@ public interface DynamicDAO {
List<ForumResourceDO> listDynamicResources(Integer dynamicId); List<ForumResourceDO> listDynamicResources(Integer dynamicId);
List<ForumDynamicDO> getDynamicComment(String dynamicId); List<ForumDynamicDO> getDynamicComment(String dynamicId);
void deleteDynamic(Integer dynamicId);
void hiddenDynamic(Integer dynamicId);
} }
package com.mmc.csf.release.dao; package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.forum.ForumDynamicDO; import com.mmc.csf.release.entity.forum.ForumDynamicDO;
import com.mmc.csf.release.entity.forum.ForumLikeDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -49,4 +50,6 @@ public interface LikeDAO { ...@@ -49,4 +50,6 @@ public interface LikeDAO {
int getLikesCount(int dynamicId); int getLikesCount(int dynamicId);
List<ForumDynamicDO> selectLiked(Integer userId, List<Integer> ids); List<ForumDynamicDO> selectLiked(Integer userId, List<Integer> ids);
List<ForumLikeDO> selectUserAccountId(Integer dynamicId);
} }
...@@ -23,7 +23,7 @@ public class ForumLikeDO implements Serializable { ...@@ -23,7 +23,7 @@ public class ForumLikeDO implements Serializable {
/** 点赞id */ /** 点赞id */
private Integer id; private Integer id;
/** 用户id,外键,关联user表 */ /** 用户id,外键,关联user表 */
private Integer userId; private Integer userAccountId;
/** 动态id,外键,关联dynamic表 */ /** 动态id,外键,关联dynamic表 */
private Integer dynamicId; private Integer dynamicId;
/** 创建时间 */ /** 创建时间 */
......
package com.mmc.csf.release.service; package com.mmc.csf.release.service;
import com.mmc.csf.common.util.page.PageResult; import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.release.forum.qo.DynamicQO; import com.mmc.csf.release.forum.qo.DynamicQO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -12,4 +13,10 @@ import javax.servlet.http.HttpServletRequest; ...@@ -12,4 +13,10 @@ import javax.servlet.http.HttpServletRequest;
*/ */
public interface BackstageForumService { public interface BackstageForumService {
PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request); PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request);
ResultBody deleteDynamic(Integer dynamicId);
ResultBody hiddenDynamic(Integer dynamicId);
ResultBody likeUserInfo(Integer dynamicId, HttpServletRequest request);
} }
package com.mmc.csf.release.service; package com.mmc.csf.release.service;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody; import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.release.forum.vo.CommentVO; import com.mmc.csf.release.forum.vo.CommentVO;
import com.mmc.csf.release.forum.vo.DynamicVO; import com.mmc.csf.release.forum.vo.DynamicVO;
...@@ -53,4 +54,7 @@ public interface DynamicService { ...@@ -53,4 +54,7 @@ public interface DynamicService {
* @return {@link ResultBody} * @return {@link ResultBody}
*/ */
ResultBody dynamicDetails(Integer dynamicId, Integer userId, HttpServletRequest request); ResultBody dynamicDetails(Integer dynamicId, Integer userId, HttpServletRequest request);
PageResult dynamicList(
Integer pageNo, Integer pageSize, Integer userAccountId, HttpServletRequest request);
} }
package com.mmc.csf.release.service.impl; package com.mmc.csf.release.service.impl;
import com.mmc.csf.common.util.page.PageResult; import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO; import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.release.auth.qo.UserAccountQO; import com.mmc.csf.release.auth.qo.UserAccountQO;
import com.mmc.csf.release.constant.TokenConstant; import com.mmc.csf.release.constant.TokenConstant;
import com.mmc.csf.release.dao.BackstageForumDao; import com.mmc.csf.release.dao.BackstageForumDao;
import com.mmc.csf.release.dao.DynamicDAO; import com.mmc.csf.release.dao.DynamicDAO;
import com.mmc.csf.release.dao.LikeDAO;
import com.mmc.csf.release.entity.forum.ForumDynamicDO; import com.mmc.csf.release.entity.forum.ForumDynamicDO;
import com.mmc.csf.release.entity.forum.ForumLikeDO;
import com.mmc.csf.release.entity.forum.ForumResourceDO; import com.mmc.csf.release.entity.forum.ForumResourceDO;
import com.mmc.csf.release.entity.forum.ForumVideoDO;
import com.mmc.csf.release.feign.UserAppApi; import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.forum.dto.DynamicInfoDTO; import com.mmc.csf.release.forum.dto.DynamicInfoDTO;
import com.mmc.csf.release.forum.qo.DynamicQO; import com.mmc.csf.release.forum.qo.DynamicQO;
...@@ -36,6 +38,7 @@ public class BackstageForumServiceImpl implements BackstageForumService { ...@@ -36,6 +38,7 @@ public class BackstageForumServiceImpl implements BackstageForumService {
@Autowired BackstageForumDao backstageForumDao; @Autowired BackstageForumDao backstageForumDao;
@Autowired DynamicDAO dynamicDAO; @Autowired DynamicDAO dynamicDAO;
@Autowired UserAppApi userAppApi; @Autowired UserAppApi userAppApi;
@Autowired LikeDAO likeDAO;
@Override @Override
public PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request) { public PageResult listDynamic(DynamicQO dynamic, HttpServletRequest request) {
...@@ -72,13 +75,10 @@ public class BackstageForumServiceImpl implements BackstageForumService { ...@@ -72,13 +75,10 @@ public class BackstageForumServiceImpl implements BackstageForumService {
List<ForumResourceDO> forumImageList = dynamicDAO.listDynamicPicture(ids); List<ForumResourceDO> forumImageList = dynamicDAO.listDynamicPicture(ids);
Map<Integer, List<ForumResourceDO>> ImageMap = Map<Integer, List<ForumResourceDO>> ImageMap =
forumImageList.stream().collect(Collectors.groupingBy(ForumResourceDO::getDynamicId)); forumImageList.stream().collect(Collectors.groupingBy(ForumResourceDO::getDynamicId));
// 获取视频信息
List<ForumVideoDO> forumVideoList = dynamicDAO.listDynamicVideo(ids);
// 获取查询到的列表用户信息
// 获取用户信息 // 获取用户信息
Set<Integer> ListUserIds = Set<Integer> listUserIds =
dynamicList.stream().map(ForumDynamicDO::getUserAccountId).collect(Collectors.toSet()); dynamicList.stream().map(ForumDynamicDO::getUserAccountId).collect(Collectors.toSet());
List<Integer> userIdList = new ArrayList<>(ListUserIds); List<Integer> userIdList = new ArrayList<>(listUserIds);
UserAccountQO accountQO = new UserAccountQO(); UserAccountQO accountQO = new UserAccountQO();
accountQO.setUserIds(userIdList); accountQO.setUserIds(userIdList);
List<UserAccountSimpleDTO> userAccountSimpleList = List<UserAccountSimpleDTO> userAccountSimpleList =
...@@ -91,6 +91,13 @@ public class BackstageForumServiceImpl implements BackstageForumService { ...@@ -91,6 +91,13 @@ public class BackstageForumServiceImpl implements BackstageForumService {
.map( .map(
d -> { d -> {
DynamicInfoDTO dynamicInfoDTO = d.buildDynamicInfoDTO(); 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 = UserAccountSimpleDTO userAccountSimpleDTO =
userAccountInfoMap.get(d.getUserAccountId()); userAccountInfoMap.get(d.getUserAccountId());
if (userAccountSimpleDTO != null) { if (userAccountSimpleDTO != null) {
...@@ -107,4 +114,42 @@ public class BackstageForumServiceImpl implements BackstageForumService { ...@@ -107,4 +114,42 @@ public class BackstageForumServiceImpl implements BackstageForumService {
.collect(Collectors.toList()); .collect(Collectors.toList());
return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), count, list); return PageResult.buildPage(dynamic.getPageNo(), dynamic.getPageSize(), count, list);
} }
@Override
public ResultBody deleteDynamic(Integer dynamicId) {
dynamicDAO.deleteDynamic(dynamicId);
return ResultBody.success();
}
@Override
public ResultBody hiddenDynamic(Integer dynamicId) {
dynamicDAO.hiddenDynamic(dynamicId);
return ResultBody.success();
}
@Override
public ResultBody likeUserInfo(Integer dynamicId, HttpServletRequest request) {
List<ForumLikeDO> forumLikeList = likeDAO.selectUserAccountId(dynamicId);
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();
}
} }
package com.mmc.csf.release.service.impl; package com.mmc.csf.release.service.impl;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody; import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO; import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.release.auth.qo.BUserAccountQO; import com.mmc.csf.release.auth.qo.UserAccountQO;
import com.mmc.csf.release.constant.TokenConstant; import com.mmc.csf.release.constant.TokenConstant;
import com.mmc.csf.release.dao.CommentDAO; import com.mmc.csf.release.dao.CommentDAO;
import com.mmc.csf.release.dao.DynamicDAO; import com.mmc.csf.release.dao.DynamicDAO;
...@@ -24,6 +25,9 @@ import javax.annotation.Resource; ...@@ -24,6 +25,9 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -134,13 +138,13 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -134,13 +138,13 @@ public class DynamicServiceImpl implements DynamicService {
} }
List<Integer> userAccountIds = List<Integer> userAccountIds =
forumDynamic.stream().map(ForumDynamicDO::getUserAccountId).collect(Collectors.toList()); forumDynamic.stream().map(ForumDynamicDO::getUserAccountId).collect(Collectors.toList());
BUserAccountQO bUserAccountQO = new BUserAccountQO(); UserAccountQO bUserAccountQO = new UserAccountQO();
bUserAccountQO.setUserIds(userAccountIds); bUserAccountQO.setUserIds(userAccountIds);
bUserAccountQO.setPageNo(1); bUserAccountQO.setPageNo(1);
bUserAccountQO.setPageSize(999); bUserAccountQO.setPageSize(999);
// 获取用户的信息 // 获取用户的信息
List<UserAccountSimpleDTO> userAccountSimpleDTOS = List<UserAccountSimpleDTO> userAccountSimpleDTOS =
userAppApi.feignListBAccountPage(bUserAccountQO, request.getHeader(TokenConstant.TOKEN)); userAppApi.feignListAppUserAccount(bUserAccountQO, request.getHeader(TokenConstant.TOKEN));
List<DynamicVO> listDynamic = List<DynamicVO> listDynamic =
forumDynamic.stream().map(ForumDynamicDO::buildDynamicVO).collect(Collectors.toList()); forumDynamic.stream().map(ForumDynamicDO::buildDynamicVO).collect(Collectors.toList());
...@@ -160,4 +164,68 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -160,4 +164,68 @@ public class DynamicServiceImpl implements DynamicService {
} }
return listDynamic; return listDynamic;
} }
@Override
public PageResult dynamicList(
Integer pageNo, Integer pageSize, Integer userId, HttpServletRequest request) {
int count = dynamicDAO.countDynamicList();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, 0);
}
int itemIndex = (pageNo - 1) * pageSize;
List<ForumDynamicDO> forumDynamicList = dynamicDAO.dynamicList(itemIndex, pageSize);
// 动态id集合
List<Integer> ids =
forumDynamicList.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> userIds =
forumDynamicList.stream().map(ForumDynamicDO::getUserAccountId).collect(Collectors.toSet());
List<Integer> userIdList = new ArrayList<>(userIds);
UserAccountQO bUserAccountQO = new UserAccountQO();
bUserAccountQO.setUserIds(userIdList);
List<UserAccountSimpleDTO> userAccountSimpleDTOS =
userAppApi.feignListAppUserAccount(bUserAccountQO, request.getHeader(TokenConstant.TOKEN));
Map<Integer, UserAccountSimpleDTO> userAccountInfoMap =
userAccountSimpleDTOS.stream()
.collect(Collectors.toMap(UserAccountSimpleDTO::getId, Function.identity()));
// 获取liked信息
List<ForumDynamicDO> forumDynamicDOS = likeDAO.selectLiked(userId, ids);
List<DynamicVO> dynamicVOList =
forumDynamicList.stream()
.map(
d -> {
DynamicVO dynamicVO = d.buildDynamicVO();
List<ForumResourceDO> forumResourceDOList = ImageMap.get(d.getId());
if (CollectionUtils.isNotEmpty(forumResourceDOList)) {
dynamicVO.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());
dynamicVO.setUserBaseInfo(userBaseInfoVO);
}
// 设置是否点赞
for (ForumDynamicDO forumDynamicDO : forumDynamicDOS) {
if (forumDynamicDO.getId().equals(d.getId())) {
dynamicVO.setLikes(true);
break;
} else {
dynamicVO.setLikes(false);
}
}
return dynamicVO;
})
.collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, dynamicVOList);
}
} }
...@@ -7,18 +7,27 @@ ...@@ -7,18 +7,27 @@
<select id="countDynamic" resultType="java.lang.Integer"> <select id="countDynamic" resultType="java.lang.Integer">
select count(*) from forum_dynamic select count(*) from forum_dynamic
<where> <where>
<foreach collection="ids" index="index" separator="," open="user_id in (" close=")" item="ids"> root_path is null
<if test="ids != null">
<foreach collection="ids" index="index" separator="," open="and user_account_id in (" close=")"
item="ids">
#{ids} #{ids}
</foreach> </foreach>
</if>
</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_id,description,is_deleted as deleted from forum_dynamic select id,user_account_id,description,is_deleted as deleted from forum_dynamic
<where> <where>
<foreach collection="ids" index="index" separator="," open="user_id in (" close=")" item="ids"> root_path is null
<if test="ids != null">
<foreach collection="ids" index="index" separator="," open="and user_account_id in (" close=")"
item="ids">
#{ids} #{ids}
</foreach> </foreach>
</if>
</where> </where>
order by create_time desc
limit #{pageNo},#{pageSize} limit #{pageNo},#{pageSize}
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -24,24 +24,34 @@ ...@@ -24,24 +24,34 @@
<update id="updateDynamicLikeCount"> <update id="updateDynamicLikeCount">
update forum_dynamic update forum_dynamic
set likes_count = likes_count + 1, set likes_count = likes_count + 1,
pid = pid + 1 version = version + 1
where id = #{dynamicId} where id = #{dynamicId}
and pid = #{pid}; and version = #{version};
</update> </update>
<update id="updateSubDynamicLikeCount"> <update id="updateSubDynamicLikeCount">
update forum_dynamic update forum_dynamic
set likes_count = likes_count - 1, set likes_count = likes_count - 1,
pid = pid + 1 version = version + 1
where id = #{dynamicId} where id = #{dynamicId}
and pid = #{pid}; and version = #{version};
</update> </update>
<update id="updateDynamicCommentCount"> <update id="updateDynamicCommentCount">
update forum_dynamic update forum_dynamic
set comments_count = comments_count + 1, set comments_count = comments_count + 1,
pid = pid + 1 version = version + 1
where id = #{dynamicId} where id = #{dynamicId}
and pid = #{pid}; and version = #{version};
</update> </update>
<update id="hiddenDynamic">
update forum_dynamic
set is_deleted = 1
where id = #{dynamicId}
</update>
<delete id="deleteDynamic">
delete
from forum_dynamic
where id = #{dynamicId}
</delete>
<select id="getDynamicInfo" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO"> <select id="getDynamicInfo" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
select id, select id,
version, version,
...@@ -65,9 +75,8 @@ ...@@ -65,9 +75,8 @@
</select> </select>
<select id="dynamicList" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO"> <select id="dynamicList" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
select id, select id,
pid, version,
title, user_account_id,
user_id,
description, description,
location, location,
lat, lat,
...@@ -77,16 +86,18 @@ ...@@ -77,16 +86,18 @@
create_time create_time
from forum_dynamic from forum_dynamic
where is_deleted = 0 where is_deleted = 0
and root_path is null
order by create_time desc order by create_time desc
LIMIT #{itemIndex}, #{pageSize} LIMIT #{itemIndex}, #{pageSize}
</select> </select>
<select id="listDynamicPicture" resultType="com.mmc.csf.release.entity.forum.ForumResourceDO"> <select id="listDynamicPicture" resultType="com.mmc.csf.release.entity.forum.ForumResourceDO">
select id, url , dynamic_id select dynamic_id,
from forum_image resource_url,
`type`
from forum_resource
where where
is_deleted = 0 and dynamic_id in <foreach collection="list" item="item" open="dynamic_id in(" separator="," close=")">
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</select> </select>
......
...@@ -5,19 +5,19 @@ ...@@ -5,19 +5,19 @@
<mapper namespace="com.mmc.csf.release.dao.LikeDAO"> <mapper namespace="com.mmc.csf.release.dao.LikeDAO">
<insert id="insertLike"> <insert id="insertLike">
INSERT INTO forum_like(user_id, dynamic_id) INSERT INTO forum_like(user_account_id, dynamic_id)
VALUES (#{userId}, #{dynamicId}) VALUES (#{userId}, #{dynamicId})
</insert> </insert>
<delete id="deleteLike"> <delete id="deleteLike">
DELETE DELETE
FROM forum_like FROM forum_like
WHERE user_id = #{userId} WHERE user_account_id = #{userId}
AND dynamic_id = #{dynamicId} AND dynamic_id = #{dynamicId}
</delete> </delete>
<select id="isLiked" resultType="java.lang.Boolean"> <select id="isLiked" resultType="java.lang.Boolean">
SELECT COUNT(*) > 0 SELECT COUNT(*) > 0
FROM forum_like FROM forum_like
WHERE user_id = #{userId} WHERE user_account_id = #{userId}
AND dynamic_id = #{dynamicId} AND dynamic_id = #{dynamicId}
</select> </select>
<select id="getLikesCount" resultType="java.lang.Integer"> <select id="getLikesCount" resultType="java.lang.Integer">
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
FROM ( FROM (
SELECT SELECT
d.id AS dynamic_id, d.id AS dynamic_id,
EXISTS (SELECT 1 FROM forum_like WHERE user_id = #{userId} AND dynamic_id = d.id) AS liked EXISTS (SELECT 1 FROM forum_like WHERE user_account_id = #{userId} AND dynamic_id = d.id) AS liked
FROM forum_dynamic d FROM forum_dynamic d
WHERE d.id IN ( WHERE d.id IN (
<foreach collection="ids" item="id" separator=","> <foreach collection="ids" item="id" separator=",">
...@@ -45,11 +45,17 @@ ...@@ -45,11 +45,17 @@
SELECT fd.id SELECT fd.id
FROM forum_dynamic fd FROM forum_dynamic fd
INNER JOIN forum_like fl ON fd.id = fl.dynamic_id INNER JOIN forum_like fl ON fd.id = fl.dynamic_id
where fl.user_id = #{userId} where fl.user_account_id = #{userId}
and fd.id in ( and fd.id in (
<foreach collection="ids" item="id" separator=","> <foreach collection="ids" item="id" separator=",">
#{id} #{id}
</foreach> </foreach>
) )
</select> </select>
<select id="selectUserAccountId" resultType="com.mmc.csf.release.entity.forum.ForumLikeDO">
select forum_like id,
user_account_id,
dynamic_id,
create_time where dynamic_id = #{dynamicId}
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论