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 @@ UPDATE epdc_event_comment SET DEL_FLAG = '1' WHERE ID = #{commentId} + + + + + + + + + + + + + + + + + + + + + + + + +