提交 ea28cee1 作者: 刘明祎-运维用途

Merge branch 'master' into develop

流水线 #8360 已通过 于阶段
in 3 分 38 秒
...@@ -90,6 +90,7 @@ public class RequirementsInfoVO implements Serializable { ...@@ -90,6 +90,7 @@ public class RequirementsInfoVO implements Serializable {
private String publishPhone; private String publishPhone;
/** /**
* 后台获取token里面的用户id * 后台获取token里面的用户id
*/ */
......
...@@ -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/ims newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly/ims
newTag: d687b4385459c8b5e675e605441ad4c159b2ec23 newTag: 636f01cc09f81bc7e767b3ba4132116b01976682
...@@ -57,12 +57,6 @@ public class DynamicController extends BaseController { ...@@ -57,12 +57,6 @@ public class DynamicController extends BaseController {
@GetMapping("/likeOrCancel") @GetMapping("/likeOrCancel")
public ResultBody likeOrCancel( public ResultBody likeOrCancel(
HttpServletRequest request, @ApiParam(value = "动态id") @RequestParam Integer dynamicId) { HttpServletRequest request, @ApiParam(value = "动态id") @RequestParam Integer dynamicId) {
LocalDateTime currentDateTime = LocalDateTime.now();
LocalDateTime targetDateTime = LocalDateTime.of(2024, 2, 28, 17, 0);
if (!currentDateTime.isAfter(targetDateTime)) {
return ResultBody.error("投票还未开始");
}
return dynamicService.likeDynamic( return dynamicService.likeDynamic(
this.getUserLoginInfoFromRedis(request).getUserAccountId(), dynamicId); this.getUserLoginInfoFromRedis(request).getUserAccountId(), dynamicId);
} }
......
...@@ -87,6 +87,7 @@ public interface DynamicDao { ...@@ -87,6 +87,7 @@ public interface DynamicDao {
*/ */
int countDynamicList(Integer id,Integer userAccountIds,String description); int countDynamicList(Integer id,Integer userAccountIds,String description);
int countDynamic(Integer gambitId);
/** /**
* 动态列表 * 动态列表
* *
......
package com.mmc.csf.release.service.impl; package com.mmc.csf.release.service.impl;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -11,6 +12,7 @@ import javax.annotation.Resource; ...@@ -11,6 +12,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.mmc.csf.common.util.redis.RedisConstant; import com.mmc.csf.common.util.redis.RedisConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
...@@ -49,6 +51,7 @@ import org.springframework.web.client.RestTemplate; ...@@ -49,6 +51,7 @@ import org.springframework.web.client.RestTemplate;
* @date 2023/5/15 10:29 概要:动态信息实现层 * @date 2023/5/15 10:29 概要:动态信息实现层
*/ */
@Service @Service
@Slf4j
public class DynamicServiceImpl implements DynamicService { public class DynamicServiceImpl implements DynamicService {
@Resource @Resource
...@@ -193,6 +196,17 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -193,6 +196,17 @@ public class DynamicServiceImpl implements DynamicService {
// 获取动态信息 // 获取动态信息
ForumDynamicDO forumDynamicDO = dynamicDao.getDynamicInfo(dynamicId); ForumDynamicDO forumDynamicDO = dynamicDao.getDynamicInfo(dynamicId);
Integer gambitId = forumDynamicDO.getGambitId(); Integer gambitId = forumDynamicDO.getGambitId();
if(gambitId == 1001 || gambitId == 1002){
LocalDateTime currentDateTime = LocalDateTime.now();
LocalDateTime startDateTime = LocalDateTime.of(2024, 2, 28, 17, 30);
LocalDateTime endDateTime = LocalDateTime.of(2024, 2, 28, 22, 30);
if (!currentDateTime.isAfter(startDateTime)) {
return ResultBody.error("投票还未开始");
}
if(currentDateTime.isAfter(endDateTime)){
return ResultBody.error("投票已经结束");
}
}
if (!likeDAO.isLiked(userId, dynamicId)) { if (!likeDAO.isLiked(userId, dynamicId)) {
if(!isVoted(gambitId, userId)){ if(!isVoted(gambitId, userId)){
return ResultBody.error("投票已经上上限"); return ResultBody.error("投票已经上上限");
...@@ -276,6 +290,7 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -276,6 +290,7 @@ public class DynamicServiceImpl implements DynamicService {
@Override @Override
public ResultBody dynamicDetails(Integer dynamicId, Integer userId, HttpServletRequest request) { public ResultBody dynamicDetails(Integer dynamicId, Integer userId, HttpServletRequest request) {
// 判断此动态是否还存在 // 判断此动态是否还存在
ForumDynamicDO dynamicInfo = dynamicDao.getDynamicInfoById(dynamicId); ForumDynamicDO dynamicInfo = dynamicDao.getDynamicInfoById(dynamicId);
if (dynamicInfo == null) { if (dynamicInfo == null) {
return ResultBody.error("动态不存在!"); return ResultBody.error("动态不存在!");
...@@ -283,15 +298,16 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -283,15 +298,16 @@ public class DynamicServiceImpl implements DynamicService {
DynamicVO dynamicVO = dynamicInfo.buildDynamicVO(); DynamicVO dynamicVO = dynamicInfo.buildDynamicVO();
// 设置是否点赞 // 设置是否点赞
boolean liked = likeDAO.isLiked(userId, dynamicId); boolean liked = likeDAO.isLiked(userId, dynamicId);
UserAccountSimpleDTO userAccountSimpleDTO = UserAccountSimpleDTO userAccountSimpleDTO =
userAppApi.feignGetUserSimpleInfo( userAppApi.feignGetUserSimpleInfo(
dynamicInfo.getUserAccountId(), request.getHeader(TokenConstant.TOKEN)); dynamicInfo.getUserAccountId(), request.getHeader(TokenConstant.TOKEN));
UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO(); UserBaseInfoVO userBaseInfoVO = new UserBaseInfoVO();
userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName()); userBaseInfoVO.setNickName(userAccountSimpleDTO.getNickName());
userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg()); userBaseInfoVO.setUserImg(userAccountSimpleDTO.getUserImg());
dynamicVO.setUserBaseInfo(userBaseInfoVO); dynamicVO.setUserBaseInfo(userBaseInfoVO);
dynamicVO.setLikes(liked); dynamicVO.setLikes(liked);
ForumReviewVO forumReviewVO = gambitDao.selectForumReviewMessage(dynamicId); ForumReviewVO forumReviewVO = gambitDao.selectForumReviewMessage(dynamicId);
dynamicVO.setForumReviewVO(forumReviewVO); dynamicVO.setForumReviewVO(forumReviewVO);
if (forumReviewVO!=null){ if (forumReviewVO!=null){
...@@ -319,11 +335,13 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -319,11 +335,13 @@ public class DynamicServiceImpl implements DynamicService {
// 动态评论列表 // 动态评论列表
List<DynamicVO> listDynamic = getCommentInfo(dynamicId, request); List<DynamicVO> listDynamic = getCommentInfo(dynamicId, request);
dynamicVO.setCommentAndReplyVO(listDynamic); dynamicVO.setCommentAndReplyVO(listDynamic);
return ResultBody.success(dynamicVO); return ResultBody.success(dynamicVO);
} }
private List<DynamicVO> getCommentInfo(Integer dynamicId, HttpServletRequest request) { private List<DynamicVO> getCommentInfo(Integer dynamicId, HttpServletRequest request) {
// 获取下面所有的一级评论 // 获取下面所有的一级评论
List<ForumDynamicDO> forumDynamic = dynamicDao.getDynamicComment(dynamicId.toString()); List<ForumDynamicDO> forumDynamic = dynamicDao.getDynamicComment(dynamicId.toString());
if (forumDynamic == null) { if (forumDynamic == null) {
return new ArrayList<>(); return new ArrayList<>();
...@@ -334,10 +352,16 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -334,10 +352,16 @@ public class DynamicServiceImpl implements DynamicService {
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.feignListAppUserAccount(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());
for (DynamicVO dynamicVO : listDynamic) { for (DynamicVO dynamicVO : listDynamic) {
...@@ -508,7 +532,7 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -508,7 +532,7 @@ public class DynamicServiceImpl implements DynamicService {
if (gambitId!=null){ if (gambitId!=null){
dynamicVOList = dynamicVOList.stream().filter(t -> t.getGambitName().size()!=0).collect(Collectors.toList()); dynamicVOList = dynamicVOList.stream().filter(t -> t.getGambitName().size()!=0).collect(Collectors.toList());
count=dynamicVOList.size(); count = dynamicDao.countDynamic(gambitId);
} }
for (DynamicVO dynamicVO : dynamicVOList) { for (DynamicVO dynamicVO : dynamicVOList) {
......
...@@ -214,6 +214,7 @@ ...@@ -214,6 +214,7 @@
INNER JOIN forum_resource fr ON fr.dynamic_id = fd.id INNER JOIN forum_resource fr ON fr.dynamic_id = fd.id
WHERE WHERE
fd.check_status = 1 fd.check_status = 1
and fdg.gambit_id not in (1001,1002)
<if test="userAccountId!=null"> <if test="userAccountId!=null">
and fd.user_account_id=#{userAccountId} and fd.user_account_id=#{userAccountId}
</if> </if>
...@@ -414,24 +415,31 @@ ...@@ -414,24 +415,31 @@
</if> </if>
</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,
version,
user_account_id, WITH ranked_data AS (
description, SELECT
location, fd.id,
lat, version,
lon, fd.user_account_id,
likes_count, description,
comments_count, location,
create_time, lat,
id AS dynamicId, lon,
transpond likes_count,
from forum_dynamic comments_count,
where is_deleted = 0 fd.create_time,
and root_path is null fd.id AS dynamicId,
and check_status = 1 transpond,
ROW_NUMBER() OVER (PARTITION BY fd.id ORDER BY fd.create_time DESC) AS rn
FROM forum_dynamic fd
LEFT JOIN forum_dynamic_gambit ON forum_dynamic_gambit.dynamic_id = fd.id
WHERE is_deleted = 0
AND root_path IS NULL
AND fd.check_status = 1
AND gambit_id NOT IN (1001,1002)
<if test="id!=null" > <if test="id!=null" >
and id=#{id} and id=#{id}
</if> </if>
<if test="userAccountIds!=null"> <if test="userAccountIds!=null">
and user_account_id=#{userAccountIds} and user_account_id=#{userAccountIds}
...@@ -439,15 +447,12 @@ ...@@ -439,15 +447,12 @@
<if test="description!=null and description!='' "> <if test="description!=null and description!='' ">
and description like concat('%',#{description},'%') and description like concat('%',#{description},'%')
</if> </if>
<choose> )
<when test="needSort != null"> SELECT *
order by likes_count desc FROM ranked_data
</when> WHERE rn = 1
<otherwise> order by create_time desc
order by create_time desc LIMIT #{itemIndex}, #{pageSize}
</otherwise>
</choose>
LIMIT #{itemIndex}, #{pageSize}
</select> </select>
<select id="dynamicListGambit" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO"> <select id="dynamicListGambit" resultType="com.mmc.csf.release.entity.forum.ForumDynamicDO">
...@@ -598,4 +603,9 @@ ...@@ -598,4 +603,9 @@
ORDER BY ORDER BY
create_time DESC create_time DESC
</select> </select>
<select id="countDynamic" resultType="java.lang.Integer">
select count(*)
from forum_dynamic_gambit
where gambit_id = #{gambitId}
</select>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论