diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml
index 2750dfa8b..7416667dc 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml
@@ -43,6 +43,11 @@
epdc-events-client
1.0.0
+
+ com.esua.epdc
+ epdc-events-client
+ 1.0.0
+
com.esua.epdc
epdc-services-client
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiIssueController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiIssueController.java
new file mode 100644
index 000000000..16cda30ba
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiIssueController.java
@@ -0,0 +1,40 @@
+package com.elink.esua.epdc.controller;
+
+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.issue.form.IssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
+import com.elink.esua.epdc.service.IssueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 移动端接口-议题模块
+ * @Author LC
+ * @Date 2019/9/6 20:04
+ */
+@RestController
+@RequestMapping("events/issue")
+public class ApiIssueController {
+
+ @Autowired
+ private IssueService issueService;
+
+ /**
+ * 议题最新最热列表
+ * @Params: [userDetail, formDto]
+ * @Return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: liuchuang
+ * @Date: 2019/9/7 12:08
+ */
+ @GetMapping("list")
+ public Result> listIssues(@LoginUser TokenDto userDetail, IssueFormDTO formDto) {
+ return issueService.listIssues(userDetail, formDto);
+ }
+
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/IssueFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/IssueFeignClient.java
new file mode 100644
index 000000000..5ed333d96
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/IssueFeignClient.java
@@ -0,0 +1,24 @@
+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.issue.form.IssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
+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 java.util.List;
+
+/**
+ * 议题模块调用
+ * @Author LC
+ * @Date 2019/9/7 11:34
+ */
+@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = IssueFeignClientFallback.class, url = "http://localhost:9066")
+public interface IssueFeignClient {
+
+ @GetMapping(value = "events/epdc-app/issue/list", consumes = MediaType.APPLICATION_JSON_VALUE)
+ Result> listIssues(IssueFormDTO formDto);
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/IssueFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/IssueFeignClientFallback.java
new file mode 100644
index 000000000..9f5edfc67
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/IssueFeignClientFallback.java
@@ -0,0 +1,24 @@
+package com.elink.esua.epdc.feign.fallback;
+
+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.issue.form.IssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
+import com.elink.esua.epdc.feign.IssueFeignClient;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Author LC
+ * @Date 2019/9/7 11:34
+ */
+@Component
+public class IssueFeignClientFallback implements IssueFeignClient {
+
+ @Override
+ public Result> listIssues(IssueFormDTO formDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_EVENTS_SERVER, "listIssues", formDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/IssueService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/IssueService.java
new file mode 100644
index 000000000..0f9dfb58e
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/IssueService.java
@@ -0,0 +1,25 @@
+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.issue.form.IssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
+
+import java.util.List;
+
+/**
+ * 议题模块
+ * @Author LC
+ * @Date 2019/9/6 20:15
+ */
+public interface IssueService {
+
+ /**
+ * 移动端-最新最热列表
+ * @Params: [userDetail, formDto]
+ * @Return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: liuchuang
+ * @Date: 2019/9/7 11:26
+ */
+ Result> listIssues(TokenDto userDetail, IssueFormDTO formDto);
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java
new file mode 100644
index 000000000..a3c7254f7
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java
@@ -0,0 +1,30 @@
+package com.elink.esua.epdc.service.impl;
+
+import com.elink.esua.epdc.common.token.dto.TokenDto;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.issue.form.IssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
+import com.elink.esua.epdc.feign.IssueFeignClient;
+import com.elink.esua.epdc.service.IssueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 议题模块
+ * @Author LC
+ * @Date 2019/9/6 20:15
+ */
+@Service
+public class IssueServiceImpl implements IssueService {
+
+ @Autowired
+ private IssueFeignClient issueFeignClient;
+
+ @Override
+ public Result> listIssues(TokenDto userDetail, IssueFormDTO formDto) {
+ formDto.setDeptId(userDetail.getGridId());
+ return issueFeignClient.listIssues(formDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssueFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssueFormDTO.java
new file mode 100644
index 000000000..11061daa1
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssueFormDTO.java
@@ -0,0 +1,51 @@
+package com.elink.esua.epdc.dto.issue.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 移动端-议题最新最热列表-查询条件
+ * @Author LC
+ * @Date 2019/9/7 10:45
+ */
+@Data
+public class IssueFormDTO implements Serializable {
+ private static final long serialVersionUID = -8864248267071206774L;
+
+ /**
+ * 用户所属网格ID
+ */
+ @NotBlank(message = "用户网格ID不能为空")
+ private String deptId;
+ /**
+ * 0: 获取最新列表,1: 获取最热列表
+ */
+ private String orderType;
+ /**
+ * 搜索内容
+ */
+ private String searchContent;
+ /**
+ * 页码,从1开始
+ */
+ @Min(value = 1, message = "页码必须大于0")
+ private int pageIndex;
+ /**
+ * 页容量,默认20页
+ */
+ @Min(value = 1, message = "每页条数必须大于必须大于0")
+ private int pageSize = 20;
+ /**
+ * 第一页查询发起时的时间
+ */
+ @NotBlank(message = "时间戳不能为空")
+ private String timestamp;
+ /**
+ * 只查询半年内的数据
+ */
+ private Date someMonthsAgo;
+}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueHotCommentResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueHotCommentResultDTO.java
new file mode 100644
index 000000000..c383a7e4a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueHotCommentResultDTO.java
@@ -0,0 +1,31 @@
+package com.elink.esua.epdc.dto.issue.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 移动端-议题列表最热评论
+ * @Author LC
+ * @Date 2019/9/7 11:07
+ */
+@Data
+public class IssueHotCommentResultDTO implements Serializable {
+ private static final long serialVersionUID = 4956688227865722755L;
+ /**
+ * 评论id
+ */
+ private String commentId;
+ /**
+ * 评论内容
+ */
+ private String content;
+ /**
+ * 评论支持数
+ */
+ private Integer supportNum;
+ /**
+ * 评论反对数
+ */
+ private Integer oppositionNum;
+}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueResultDTO.java
new file mode 100644
index 000000000..f8fb89c2c
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/result/IssueResultDTO.java
@@ -0,0 +1,81 @@
+package com.elink.esua.epdc.dto.issue.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 移动端-议题最新最热列表
+ * @Author LC
+ * @Date 2019/9/7 10:53
+ */
+@Data
+public class IssueResultDTO implements Serializable {
+ private static final long serialVersionUID = 6087794316919494277L;
+ /**
+ * 议题ID
+ */
+ private String id;
+ /**
+ * 事件ID
+ */
+ private String eventId;
+ /**
+ * 议题内容
+ */
+ private String issueContent;
+ /**
+ * 昵称
+ */
+ private String nickname;
+ /**
+ * 头像地址
+ */
+ private String avatar;
+ /**
+ * 是否党员 0否;1是
+ */
+ private String partyFlag;
+ /**
+ * 赞数
+ */
+ private Integer approveNum;
+ /**
+ * 踩数
+ */
+ private Integer opposeNum;
+ /**
+ * 评数
+ */
+ private Integer commentNum;
+ /**
+ * 议题状态
+ */
+ private String stateName;
+ /**
+ * 议题类别
+ */
+ private String categoryName;
+ /**
+ * 发布时间
+ */
+ private Date distributeTime;
+ /**
+ * 表态数
+ */
+ private Integer statementNum;
+ /**
+ * 图片列表
+ */
+ private List images;
+ /**
+ * 议题位置地址
+ */
+ private String address;
+ /**
+ * 最热的一条评论
+ */
+ private IssueHotCommentResultDTO comment;
+}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/EpdcAppIssueController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/EpdcAppIssueController.java
new file mode 100644
index 000000000..2b1cf1e56
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/controller/EpdcAppIssueController.java
@@ -0,0 +1,41 @@
+package com.elink.esua.epdc.modules.issue.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.issue.form.IssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
+import com.elink.esua.epdc.modules.issue.service.IssueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 移动端-议题表
+ * @Author LC
+ * @Date 2019/9/7 12:09
+ */
+@RestController
+@RequestMapping(Constant.EPDC_APP + "issue")
+public class EpdcAppIssueController {
+
+ @Autowired
+ private IssueService issueService;
+
+ /**
+ * 最新最热列表
+ * @Params: [formDto]
+ * @Return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: liuchuang
+ * @Date: 2019/9/7 12:13
+ */
+ @GetMapping("list")
+ public Result> listIssues(@RequestBody IssueFormDTO formDto) {
+ ValidatorUtils.validateEntity(formDto);
+ return this.issueService.listIssues(formDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java
index 6bb818734..2f77038cb 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java
@@ -22,6 +22,8 @@ import com.elink.esua.epdc.dto.issue.IssueContentDetailDTO;
import com.elink.esua.epdc.dto.issue.IssueJobFeedbackDTO;
import com.elink.esua.epdc.dto.issue.IssueWaitHandleDetailDTO;
import com.elink.esua.epdc.dto.issue.IssueWaitHandleOrClosedDTO;
+import com.elink.esua.epdc.dto.issue.form.IssueFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
import com.elink.esua.epdc.modules.issue.entity.IssueEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -83,4 +85,13 @@ public interface IssueDao extends BaseDao {
*/
void updateCommentDelFlag(@Param("commentId") String commentId);
+ /**
+ * 议题最新最热列表
+ * @Params: [formDto]
+ * @Return: java.util.List
+ * @Author: liuchuang
+ * @Date: 2019/9/7 13:40
+ */
+ List selectListOfNewOrHotIssues(IssueFormDTO formDto);
+
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java
index 6839ce4af..15fdf3aad 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java
@@ -25,7 +25,9 @@ import com.elink.esua.epdc.dto.issue.IssueContentDetailDTO;
import com.elink.esua.epdc.dto.issue.IssueDTO;
import com.elink.esua.epdc.dto.issue.IssueWaitHandleDetailDTO;
import com.elink.esua.epdc.dto.issue.IssueWaitHandleOrClosedDTO;
+import com.elink.esua.epdc.dto.issue.form.IssueFormDTO;
import com.elink.esua.epdc.dto.issue.form.IssueWaitHandleSubmitFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
import com.elink.esua.epdc.modules.issue.entity.IssueEntity;
import java.util.List;
@@ -143,4 +145,13 @@ public interface IssueService extends BaseService {
* @Date: 2019/9/7 10:22
*/
Result modifyCommentById(String commentId);
+
+ /**
+ * 移动端最新最热列表
+ * @Params: [formDto]
+ * @Return: com.elink.esua.epdc.commons.tools.utils.Result>
+ * @Author: liuchuang
+ * @Date: 2019/9/7 12:14
+ */
+ Result> listIssues(IssueFormDTO formDto);
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java
index 5786656f7..c48bdb9e3 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java
@@ -20,16 +20,19 @@ package com.elink.esua.epdc.modules.issue.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
-import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.exception.RenException;
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.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventIssueItemState;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.dto.issue.*;
+import com.elink.esua.epdc.dto.issue.form.IssueFormDTO;
import com.elink.esua.epdc.dto.issue.form.IssueWaitHandleSubmitFormDTO;
+import com.elink.esua.epdc.dto.issue.result.IssueResultDTO;
import com.elink.esua.epdc.modules.events.service.EpdcEventsService;
import com.elink.esua.epdc.modules.issue.dao.IssueDao;
import com.elink.esua.epdc.modules.issue.entity.IssueEntity;
@@ -46,6 +49,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -193,6 +197,16 @@ public class IssueServiceImpl extends BaseServiceImpl imp
return new Result();
}
+ @Override
+ public Result> listIssues(IssueFormDTO formDto) {
+ int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
+ formDto.setPageIndex(pageIndex);
+ // 查询半年内的数据
+ formDto.setSomeMonthsAgo(DateUtils.addDateMonths(new Date(), -6));
+ List data = baseDao.selectListOfNewOrHotIssues(formDto);
+ return new Result().ok(data);
+ }
+
/**
* 初始化项目
* @Params: [issueEntity]
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml
index f78fa18ca..ffe9699b4 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml
@@ -121,4 +121,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+