Browse Source

移动端评论列表接口 init

dev
liuchuang 6 years ago
parent
commit
e4302621ae
  1. 15
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiCommentController.java
  2. 19
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/CommentFeignClient.java
  3. 7
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/CommentFeignClientFallback.java
  4. 12
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/CommentService.java
  5. 8
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/CommentServiceImpl.java
  6. 49
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/comment/form/EventCommentsFormDTO.java
  7. 27
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/comment/result/EventCommentsResultDTO.java
  8. 16
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsCommentsDTO.java
  9. 16
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/controller/AppEventCommentController.java
  10. 22
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/dao/EventCommentDao.java
  11. 12
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/service/EventCommentService.java
  12. 23
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/service/impl/EventCommentServiceImpl.java
  13. 88
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/comment/EventCommentDao.xml

15
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiCommentController.java

@ -5,12 +5,12 @@ import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CommentFormDTO;
import com.elink.esua.epdc.dto.comment.CommentStatementFormDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.service.CommentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 移动端接口-评论模块
* @Author WJP
@ -42,5 +42,16 @@ public class ApiCommentController {
public Result statement(@LoginUser TokenDto userDetail, CommentStatementFormDTO commentStatementFormDTO) {
return commentService.statement(userDetail,commentStatementFormDTO);
}
/**
* 评论列表
* @Params: [userDetail, formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO>
* @Author: liuchuang
* @Date: 2019/9/9 15:54
*/
@GetMapping("list")
public Result<EventCommentsResultDTO> listOfComments(@LoginUser TokenDto userDetail, EventCommentsFormDTO formDto) {
return commentService.listOfComments(userDetail,formDto);
}
}

19
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/CommentFeignClient.java

@ -4,20 +4,16 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.comment.CommentStatementFormDTO;
import com.elink.esua.epdc.dto.comment.EventCommentDTO;
import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO;
import com.elink.esua.epdc.dto.issue.form.IssueFormDTO;
import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.feign.fallback.CommentFeignClientFallback;
import com.elink.esua.epdc.feign.fallback.IssueFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
/**
* 议题模块调用
* 评论模块调用
* @Author LC
* @Date 2019/9/7 11:34
*/
@ -28,6 +24,15 @@ public interface CommentFeignClient {
@PostMapping(value = "events/epdc-app/comment/submit", consumes = MediaType.APPLICATION_JSON_VALUE)
Result submit(EventCommentDTO eventCommentDTO);
/**
* 评论列表
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO>
* @Author: liuchuang
* @Date: 2019/9/9 15:58
*/
@GetMapping(value = "events/epdc-app/comment/list", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<EventCommentsResultDTO> listOfComments(EventCommentsFormDTO formDto);
@PostMapping(value = "events/epdc-app/comment/statement", consumes = MediaType.APPLICATION_JSON_VALUE)
Result statement(CommentStatementFormDTO commentStatementFormDTO);

7
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/CommentFeignClientFallback.java

@ -5,6 +5,8 @@ import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.comment.CommentStatementFormDTO;
import com.elink.esua.epdc.dto.comment.EventCommentDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO;
import com.elink.esua.epdc.dto.issue.form.IssueFormDTO;
import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
@ -27,4 +29,9 @@ public class CommentFeignClientFallback implements CommentFeignClient {
public Result statement(CommentStatementFormDTO commentStatementFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "statement", commentStatementFormDTO);
}
@Override
public Result<EventCommentsResultDTO> listOfComments(EventCommentsFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "listOfComments", formDto);
}
}

12
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/CommentService.java

@ -4,8 +4,9 @@ import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CommentFormDTO;
import com.elink.esua.epdc.dto.UploadDTO;
import com.elink.esua.epdc.dto.comment.CommentStatementFormDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO;
import com.elink.esua.epdc.dto.issue.form.IssueFormDTO;
import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
@ -24,4 +25,13 @@ public interface CommentService {
Result statement(@LoginUser TokenDto userDetail, CommentStatementFormDTO commentStatementFormDTO);
/**
* 评论列表
* @Params: [userDetail, formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO>
* @Author: liuchuang
* @Date: 2019/9/9 15:54
*/
Result<EventCommentsResultDTO> listOfComments(TokenDto userDetail, EventCommentsFormDTO formDto);
}

8
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/CommentServiceImpl.java

@ -6,6 +6,8 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CommentFormDTO;
import com.elink.esua.epdc.dto.comment.CommentStatementFormDTO;
import com.elink.esua.epdc.dto.comment.EventCommentDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.feign.CommentFeignClient;
import com.elink.esua.epdc.service.CommentService;
import org.springframework.beans.factory.annotation.Autowired;
@ -41,4 +43,10 @@ public class CommentServiceImpl implements CommentService {
public Result statement(TokenDto userDetail, CommentStatementFormDTO commentStatementFormDTO) {
return commentFeignClient.statement(commentStatementFormDTO);
}
@Override
public Result<EventCommentsResultDTO> listOfComments(TokenDto userDetail, EventCommentsFormDTO formDto) {
formDto.setUserId(userDetail.getUserId());
return commentFeignClient.listOfComments(formDto);
}
}

49
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/comment/form/EventCommentsFormDTO.java

@ -0,0 +1,49 @@
package com.elink.esua.epdc.dto.comment.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 移动端评论表单DTO
* @Author LC
* @Date 2019/9/9 15:09
*/
@Data
public class EventCommentsFormDTO implements Serializable {
private static final long serialVersionUID = -3804142943077174555L;
/**
* 页码
*/
@NotBlank(message = "页码不能为空")
private Integer pageIndex;
/**
* 页容量
*/
@NotBlank(message = "分页数量不能为空")
private Integer pageSize;
/**
* 列表类型 0最新1最热
*/
@NotBlank(message = "列表类型不能为空")
private String orderType;
/**
* 时间戳(yyyy-MM-dd HH:mm:ss)
*/
private String timestamp;
/**
* 议题ID
*/
@NotBlank(message = "议题ID不能为空")
private String issueId;
/**
* 事件ID
*/
private String eventId;
/**
* 用户ID
*/
private String userId;
}

27
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/comment/result/EventCommentsResultDTO.java

@ -0,0 +1,27 @@
package com.elink.esua.epdc.dto.comment.result;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 移动端评论列表DTO
* @Author LC
* @Date 2019/9/9 14:46
*/
@Data
public class EventCommentsResultDTO implements Serializable {
private static final long serialVersionUID = -5087234859322214256L;
/**
* 表态数
*/
private long statementNum;
/**
* 评论
*/
List<EpdcEventsCommentsDTO> commentsList;
}

16
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsCommentsDTO.java

@ -22,10 +22,26 @@ public class EpdcEventsCommentsDTO implements Serializable {
* 内容
*/
private String content;
/**
* 用户是否赞过false未赞
*/
private boolean userLike;
/**
* 用户是否踩过true踩
*/
private boolean userDislike;
/**
* 评论时间
*/
private Date commentTime;
/**
* 赞数
*/
private Integer approveNum;
/**
* 踩数
*/
private Integer opposeNum;
/**
* 用户信息
*/

16
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/controller/AppEventCommentController.java

@ -19,8 +19,11 @@ package com.elink.esua.epdc.modules.comment.controller;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.comment.CommentStatementFormDTO;
import com.elink.esua.epdc.dto.comment.EventCommentDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.modules.comment.service.EventCommentService;
import com.elink.esua.epdc.modules.comment.service.EventCommentUserAttitudeService;
import org.springframework.beans.factory.annotation.Autowired;
@ -49,5 +52,18 @@ public class AppEventCommentController {
eventCommentUserAttitudeService.statement(formDto);
return new Result();
}
/**
* 移动端-议题评论
* @Params: [formDTO]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO>
* @Author: liuchuang
* @Date: 2019/9/9 15:38
*/
@GetMapping("list")
public Result<EventCommentsResultDTO> listOfComments(@RequestBody EventCommentsFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return eventCommentService.listOfComments(formDTO);
}
}

22
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/dao/EventCommentDao.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.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.modules.comment.entity.EventCommentEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 事件评论表 事件评论表
*
@ -34,4 +38,22 @@ public interface EventCommentDao extends BaseDao<EventCommentEntity> {
void updateReplyCount(String commentId);
/**
* 移动端评论列表
* @Params: [formDTO]
* @Return: java.util.List<com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO>
* @Author: liuchuang
* @Date: 2019/9/9 15:13
*/
List<EpdcEventsCommentsDTO> selectListOfComments(EventCommentsFormDTO formDTO);
/**
* 移动端议题评论表态次数
* @Params: [eventId]
* @Return: long
* @Author: liuchuang
* @Date: 2019/9/9 15:31
*/
long selectCountOfStatementNum(String eventId);
}

12
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/service/EventCommentService.java

@ -19,7 +19,10 @@ package com.elink.esua.epdc.modules.comment.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.comment.EventCommentDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.modules.comment.entity.EventCommentEntity;
import java.util.List;
@ -102,4 +105,13 @@ public interface EventCommentService extends BaseService<EventCommentEntity> {
void updateApproveNumOrOpposeNum(String commentId, String attitudeFlag);
/**
* 移动端评论列表
* @Params: [formDTO]
* @Return: java.util.List<com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO>
* @Author: liuchuang
* @Date: 2019/9/9 15:21
*/
Result<EventCommentsResultDTO> listOfComments(EventCommentsFormDTO formDTO);
}

23
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/comment/service/impl/EventCommentServiceImpl.java

@ -23,12 +23,18 @@ import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.comment.EventCommentDTO;
import com.elink.esua.epdc.dto.comment.form.EventCommentsFormDTO;
import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.modules.comment.dao.EventCommentDao;
import com.elink.esua.epdc.modules.comment.entity.EventCommentEntity;
import com.elink.esua.epdc.modules.comment.redis.EventCommentRedis;
import com.elink.esua.epdc.modules.comment.service.EventCommentService;
import com.elink.esua.epdc.modules.events.service.EpdcEventsService;
import com.elink.esua.epdc.modules.issue.entity.IssueEntity;
import com.elink.esua.epdc.modules.issue.service.IssueService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -53,6 +59,9 @@ public class EventCommentServiceImpl extends BaseServiceImpl<EventCommentDao, Ev
@Autowired
private EpdcEventsService epdcEventsService;
@Autowired
private IssueService issueService;
@Override
public PageData<EventCommentDTO> page(Map<String, Object> params) {
IPage<EventCommentEntity> page = baseDao.selectPage(
@ -122,4 +131,18 @@ public class EventCommentServiceImpl extends BaseServiceImpl<EventCommentDao, Ev
public void updateApproveNumOrOpposeNum(String commentId, String attitudeFlag) {
baseDao.updateApproveNumOrOpposeNum(commentId,attitudeFlag);
}
@Override
public Result<EventCommentsResultDTO> listOfComments(EventCommentsFormDTO formDTO) {
IssueEntity issueEntity = issueService.selectById(formDTO.getIssueId());
formDTO.setEventId(issueEntity.getEventId());
// 表态数
long statementNum = baseDao.selectCountOfStatementNum(issueEntity.getEventId());
// 评论
List<EpdcEventsCommentsDTO> list = baseDao.selectListOfComments(formDTO);
EventCommentsResultDTO data = new EventCommentsResultDTO();
data.setStatementNum(statementNum);
data.setCommentsList(list);
return new Result<EventCommentsResultDTO>().ok(data);
}
}

88
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/comment/EventCommentDao.xml

@ -26,6 +26,94 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<resultMap id="listOfCommentsMap" type="com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO">
<result property="commentId" column="ID"/>
<result property="content" column="CONTENT"/>
<result property="commentTime" column="CREATED_TIME"/>
<result property="user.userId" column="USER_ID"/>
<result property="user.userName" column="USER_NAME"/>
<result property="user.userFace" column="USER_FACE"/>
<result property="approveNum" column="LIKE_COUNT"/>
<result property="opposeNum" column="UN_LIKE_COUNT"/>
<result property="userLike" column="userLike"/>
<result property="userDislike" column="userDislike"/>
<result property="replyComment.userName" column="replyUserName"/>
<result property="replyComment.content" column="replyContent"/>
</resultMap>
<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
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
SUM(t1.REPLY_COUNT + t1.LIKE_COUNT + t1.UN_LIKE_COUNT) AS attitudeNum
FROM
epdc_event_comment t1
<if test='userId != "" and userId != null'>
LEFT JOIN epdc_event_comment_user_attitude ua ON t1.ID = ua.EVENT_COMMENT_ID
AND ua.DEL_FLAG = '0'
AND ua.USER_ID = #{userId}
AND ua.UPDATED_TIME = (
SELECT
MAX( a.update_time )
FROM
epdc_event_comment_user_attitude a
WHERE
a.EVENT_COMMENT_ID = ua.EVENT_COMMENT_ID
AND a.user_id = ua.user_id
)
</if>
WHERE
t1.DEL_FLAG = '0'
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') <= ]]> #{timestamp}
AND t1.EVENT_ID = #{eventId}
ORDER BY
<if test="orderType == '1'">
attitudeNum DESC,
</if>
t1.CREATED_TIME DESC
LIMIT #{pageIndex},#{pageSize}
) t2
LEFT JOIN epdc_event_comment t3 ON t2.COMMENT_ID = t3.ID
ORDER BY
t2.CREATED_TIME DESC
</select>
<select id="selectCountOfStatementNum" resultType="long">
SELECT
SUM( REPLY_COUNT + LIKE_COUNT + UN_LIKE_COUNT ) AS statementNum
FROM
epdc_event_comment
WHERE
DEL_FLAG = '0'
AND EVENT_ID = #{eventId}
</select>
<update id="updateApproveNumOrOpposeNum" parameterType="java.lang.String">

Loading…
Cancel
Save