Browse Source

话题详情接口 init

dev
liuchuang 6 years ago
parent
commit
b2a424fa6b
  1. 20
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiTopicController.java
  2. 15
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/TopicFeignClient.java
  3. 6
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/TopicFeignClientFallback.java
  4. 12
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/TopicService.java
  5. 6
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/TopicServiceImpl.java
  6. 78
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/result/TopicDetailResultDTO.java
  7. 21
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/controller/AppTopicController.java
  8. 12
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/dao/TopicDao.java
  9. 12
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/TopicService.java
  10. 6
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/impl/TopicServiceImpl.java
  11. 55
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/topic/TopicDao.xml

20
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiTopicController.java

@ -5,12 +5,10 @@ import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
import com.elink.esua.epdc.service.TopicService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
*
@ -40,4 +38,18 @@ public class ApiTopicController {
ValidatorUtils.validateEntity(formDto);
return topicService.saveTopic(userDetail, formDto);
}
/**
*
* 话题详情
*
* @params [id]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO>
* @author liuchuang
* @since 2019/11/7 15:37
*/
@GetMapping("detail/{id}")
public Result<TopicDetailResultDTO> detail(@PathVariable("id") String id) {
return topicService.getTopicDetailById(id);
}
}

15
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/TopicFeignClient.java

@ -3,9 +3,12 @@ package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
import com.elink.esua.epdc.feign.fallback.TopicFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
/**
@ -29,4 +32,16 @@ public interface TopicFeignClient {
*/
@PostMapping(value = "group/epdc-app/topic/submit", consumes = MediaType.APPLICATION_JSON_VALUE)
Result submit(TopicSubmitFormDTO formDto);
/**
*
* 话题详情
*
* @params [id]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO>
* @author liuchuang
* @since 2019/11/7 15:37
*/
@GetMapping(value = "group/epdc-app/topic/detail/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<TopicDetailResultDTO> detail(@PathVariable("id") String id);
}

6
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/TopicFeignClientFallback.java

@ -4,6 +4,7 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
import com.elink.esua.epdc.feign.TopicFeignClient;
import org.springframework.stereotype.Component;
@ -18,4 +19,9 @@ public class TopicFeignClientFallback implements TopicFeignClient {
public Result submit(TopicSubmitFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "submit", formDto);
}
@Override
public Result<TopicDetailResultDTO> detail(String id) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "detail", id);
}
}

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

@ -3,6 +3,7 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
/**
*
@ -23,4 +24,15 @@ public interface TopicService {
* @since 2019/11/6 14:51
*/
Result saveTopic(TokenDto userDetail, TopicSubmitFormDTO formDto);
/**
*
* 移动端-话题详情
*
* @params [id]
* @return com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO
* @author liuchuang
* @since 2019/11/7 15:34
*/
Result<TopicDetailResultDTO> getTopicDetailById(String id);
}

6
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/TopicServiceImpl.java

@ -5,6 +5,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.enums.TopicStateEnum;
import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.TopicFeignClient;
import com.elink.esua.epdc.service.TopicService;
@ -53,4 +54,9 @@ public class TopicServiceImpl implements TopicService {
return topicFeignClient.submit(formDto);
}
@Override
public Result<TopicDetailResultDTO> getTopicDetailById(String id) {
return topicFeignClient.detail(id);
}
}

78
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/result/TopicDetailResultDTO.java

@ -0,0 +1,78 @@
package com.elink.esua.epdc.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
*
* 话题详情
*
* @Authorliuchuang
* @Date2019/11/7 15:25
*/
@Data
public class TopicDetailResultDTO implements Serializable {
private static final long serialVersionUID = -4978924751646345443L;
/**
* 话题ID
*/
private String id;
/**
* 话题内容
*/
private String topicContent;
/**
* 话题地址
*/
private String topicAddress;
/**
* 发布时间
*/
private String createdTime;
/**
* 发布人
*/
private String nickname;
/**
* 发布人头像
*/
private String userAvatar;
/**
* 党员标识0-1-
*/
private String partyMember;
/**
* 浏览数
*/
private Integer browseNum;
/**
* 是否可操作true 可评赞等
*/
private Boolean operationalFlag;
/**
* 是否可关闭true 可以
*/
private Boolean closeFlag;
/**
* 是否可转议题true 可以
*/
private Boolean changeFlag;
/**
* 图片
*/
private List<String> images;
}

21
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/controller/AppTopicController.java

@ -3,12 +3,10 @@ package com.elink.esua.epdc.modules.topic.controller;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
import com.elink.esua.epdc.modules.topic.service.TopicService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
*
@ -37,4 +35,19 @@ public class AppTopicController {
public Result submit(@RequestBody TopicSubmitFormDTO formDto) {
return topicService.saveTopic(formDto);
}
/**
*
* 话题详情
*
* @params [id]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO>
* @author liuchuang
* @since 2019/11/7 15:37
*/
@GetMapping("detail/{id}")
public Result<TopicDetailResultDTO> detail(@PathVariable("id") String id) {
TopicDetailResultDTO data = topicService.getTopicDetailById(id);
return new Result<TopicDetailResultDTO>().ok(data);
}
}

12
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/dao/TopicDao.java

@ -18,6 +18,7 @@
package com.elink.esua.epdc.modules.topic.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
import com.elink.esua.epdc.modules.topic.entity.TopicEntity;
import org.apache.ibatis.annotations.Mapper;
@ -35,4 +36,15 @@ public interface TopicDao extends BaseDao<TopicEntity> {
*/
void updateCommentNum(String id);
/**
*
* 移动端-话题详情
*
* @params [id]
* @return com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO
* @author liuchuang
* @since 2019/11/7 15:32
*/
TopicDetailResultDTO selectOneOfTopicDetailById(String id);
}

12
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/TopicService.java

@ -22,6 +22,7 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.topic.TopicDTO;
import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
import com.elink.esua.epdc.modules.topic.entity.TopicEntity;
import java.util.List;
@ -111,4 +112,15 @@ public interface TopicService extends BaseService<TopicEntity> {
* @since 2019/11/6 15:53
*/
Result saveTopic(TopicSubmitFormDTO formDto);
/**
*
* 移动端-话题详情
*
* @params [id]
* @return com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO
* @author liuchuang
* @since 2019/11/7 15:34
*/
TopicDetailResultDTO getTopicDetailById(String id);
}

6
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/impl/TopicServiceImpl.java

@ -27,6 +27,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.constant.TopicImageConstant;
import com.elink.esua.epdc.dto.topic.TopicDTO;
import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO;
import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO;
import com.elink.esua.epdc.modules.topic.dao.TopicDao;
import com.elink.esua.epdc.modules.topic.entity.TopicEntity;
import com.elink.esua.epdc.modules.topic.service.TopicImgService;
@ -121,4 +122,9 @@ public class TopicServiceImpl extends BaseServiceImpl<TopicDao, TopicEntity> imp
return new Result().error();
}
@Override
public TopicDetailResultDTO getTopicDetailById(String id) {
return baseDao.selectOneOfTopicDetailById(id);
}
}

55
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/topic/TopicDao.xml

@ -8,5 +8,60 @@
UPDATE epdc_topic SET COMMENT_NUM = COMMENT_NUM + 1 WHERE ID = #{id}
</update>
<resultMap id="topicDetailMap" type="com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO">
<result property="id" column="ID"/>
<result property="topicContent" column="TOPIC_CONTENT"/>
<result property="topicAddress" column="TOPIC_ADDRESS"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="nickname" column="NICKNAME"/>
<result property="userAvatar" column="USER_FACE"/>
<result property="partyMember" column="PARTY_MEMBER"/>
<result property="browseNum" column="BROWSE_NUM"/>
<result property="operationalFlag" column="operationalFlag"/>
<result property="closeFlag" column="closeFlag"/>
<result property="changeFlag" column="changeFlag"/>
<collection property="images" ofType="java.lang.String">
<result property="image" column="IMG_URL"/>
</collection>
</resultMap>
<select id="selectOneOfTopicDetailById" resultMap="topicDetailMap">
SELECT
tp.ID,
tp.TOPIC_CONTENT,
tp.TOPIC_ADDRESS,
tp.CREATED_TIME,
tp.NICKNAME,
tp.USER_FACE,
tp.PARTY_MEMBER,
tp.BROWSE_NUM,
img.IMG_URL,
CASE
gp.STATE
WHEN 10 THEN
TRUE ELSE FALSE
END AS operationalFlag,
CASE
WHEN gp.STATE = 20
OR tp.STATE <![CDATA[ <> ]]> 0 THEN
FALSE ELSE TRUE
END AS closeFlag,
CASE
WHEN gp.STATE = 20
OR tp.STATE <![CDATA[ <> ]]> 0 THEN
FALSE ELSE TRUE
END AS changeFlag
FROM
epdc_topic tp
LEFT JOIN epdc_topic_img img ON tp.ID = img.REFERENCE_ID
AND img.DEL_FLAG = '0'
LEFT JOIN epdc_group gp ON tp.GROUP_ID = gp.ID
AND gp.DEL_FLAG = '0'
WHERE
tp.DEL_FLAG = '0'
AND tp.ID = #{id}
ORDER BY
img.IMG_URL
</select>
</mapper>

Loading…
Cancel
Save