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

Merge branch 'master' into develop

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