Browse Source

评论列表

dev
王金鹏 6 years ago
parent
commit
1c2bb170d9
  1. 4
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/comment/TopicCommentsFormDTO.java
  2. 11
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/comment/dao/TopicCommentDao.java
  3. 13
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/comment/service/impl/TopicCommentServiceImpl.java
  4. 86
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/comment/TopicCommentDao.xml

4
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/comment/TopicCommentsFormDTO.java

@ -34,9 +34,7 @@ public class TopicCommentsFormDTO implements Serializable {
*/
@NotBlank(message = "列表类型不能为空")
private String orderType;
/**
* 项目ID
*/
private String topicId;
/**
* 用户ID

11
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/comment/dao/TopicCommentDao.java

@ -18,9 +18,13 @@
package com.elink.esua.epdc.modules.comment.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.comment.TopicCommentsFormDTO;
import com.elink.esua.epdc.dto.topic.TopicCommentsDTO;
import com.elink.esua.epdc.modules.comment.entity.TopicCommentEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 话题评论表 话题评论表
*
@ -32,4 +36,11 @@ public interface TopicCommentDao extends BaseDao<TopicCommentEntity> {
void updateReplyCount(String commentId);
long selectCountOfStatementNum(String topicId);
List<TopicCommentsDTO> selectListOfComments(TopicCommentsFormDTO formDTO);
}

13
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/comment/service/impl/TopicCommentServiceImpl.java

@ -31,6 +31,7 @@ import com.elink.esua.epdc.dto.comment.TopicCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.TopicCommentsResultDTO;
import com.elink.esua.epdc.dto.constant.TopicNoticeConstant;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.topic.TopicCommentsDTO;
import com.elink.esua.epdc.modules.async.NewsTask;
import com.elink.esua.epdc.modules.comment.dao.TopicCommentDao;
import com.elink.esua.epdc.modules.comment.entity.TopicCommentEntity;
@ -183,6 +184,16 @@ public class TopicCommentServiceImpl extends BaseServiceImpl<TopicCommentDao, To
@Override
public Result<TopicCommentsResultDTO> listOfComments(TopicCommentsFormDTO formDto) {
return null;
// 表态数
long statementNum = baseDao.selectCountOfStatementNum(formDto.getTopicId());
int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
formDto.setPageIndex(pageIndex);
// 评论
List<TopicCommentsDTO> list = baseDao.selectListOfComments(formDto);
TopicCommentsResultDTO data = new TopicCommentsResultDTO();
data.setStatementNum(statementNum);
data.setCommentsList(list);
return new Result<TopicCommentsResultDTO>().ok(data);
}
}

86
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/comment/TopicCommentDao.xml

@ -34,4 +34,90 @@
WHERE ID = #{commentId}
</update>
<select id="selectCountOfStatementNum" resultType="long">
SELECT
COUNT( ID ) +
CASE
WHEN SUM( LIKE_COUNT + UN_LIKE_COUNT ) IS NULL THEN
0 ELSE SUM( LIKE_COUNT + UN_LIKE_COUNT )
END AS statementNum
FROM
epdc_topic_comment
WHERE
DEL_FLAG = '0'
AND TOPIC_ID = #{topicId}
</select>
<select id="selectListOfComments" resultMap="listOfCommentsMap">
SELECT
t2.ID,
t2.COMMENT_ID,
t2.CONTENT,
t2.CREATED_TIME,
t2.USER_ID,
t2.USER_FACE,
t2.USER_NAME,
t2.LIKE_COUNT,
t2.UN_LIKE_COUNT,
t2.userLike,
t2.userDislike,
t3.ID AS replyId,
t3.USER_NAME AS replyUserName,
t3.CONTENT AS replyContent,
t2.attitudeNum
FROM
(
SELECT
<if test='userId != "" and userId != null'>
(ua.attitude_flag = 0) userLike,
(ua.attitude_flag = 1) userDislike,
</if>
t1.ID,
t1.COMMENT_ID,
t1.CONTENT,
t1.CREATED_TIME,
t1.USER_ID,
t1.USER_FACE,
t1.USER_NAME,
t1.LIKE_COUNT,
t1.UN_LIKE_COUNT,
(t1.REPLY_COUNT + t1.LIKE_COUNT + t1.UN_LIKE_COUNT) AS attitudeNum
FROM
epdc_topic_comment t1
<if test='userId != "" and userId != null'>
LEFT JOIN epdc_topic_comment_user_attitude ua ON t1.ID = ua.COMMENT_ID
AND ua.DEL_FLAG = '0'
AND ua.USER_ID = #{userId}
AND ua.UPDATED_TIME = (
SELECT
MAX( a.updated_time )
FROM
epdc_topic_comment_user_attitude a
WHERE
a.COMMENT_ID = ua.COMMENT_ID
AND a.user_id = ua.user_id
)
</if>
WHERE
t1.DEL_FLAG = '0'
AND t1.SHIELD_FLAG = '0'
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') <= ]]> #{timestamp}
AND t1.TOPIC_ID = #{topicId}
ORDER BY
<if test='orderType == "1"'>
attitudeNum DESC,
</if>
t1.CREATED_TIME DESC
LIMIT #{pageIndex},#{pageSize}
) t2
LEFT JOIN epdc_topic_comment t3 ON t2.COMMENT_ID = t3.ID
ORDER BY
<if test='orderType == "1"'>
attitudeNum DESC,
</if>
t2.CREATED_TIME DESC
</select>
</mapper>

Loading…
Cancel
Save