diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiTopicController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiTopicController.java index 85e87f284..401ee3294 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiTopicController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiTopicController.java @@ -5,7 +5,7 @@ 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.group.result.TopicAuditRecordResultDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicChangeToIssueFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; @@ -46,9 +46,34 @@ public class ApiTopicController { return topicService.saveTopic(userDetail, formDto); } + /** + * + * 话题列表 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/11 15:04 + */ @GetMapping("list") - public Result> list(@RequestBody TopicListDTO topicListDTO) { - return topicService.apiList(topicListDTO); + public Result> listTopic(@LoginUser TokenDto userDetail, @RequestBody TopicListFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return topicService.listOfTopic(userDetail, formDto); + } + + /** + * + * 我的话题列表 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/11 15:04 + */ + @GetMapping("listOfMine") + public Result> listTopicOfMine(@LoginUser TokenDto userDetail, @RequestBody TopicListFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return topicService.listTopicOfMine(userDetail, formDto); } /** diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/TopicFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/TopicFeignClient.java index 5f6d2ab46..2054ceb43 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/TopicFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/TopicFeignClient.java @@ -4,7 +4,7 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.group.result.TopicAuditRecordResultDTO; import com.elink.esua.epdc.dto.topic.form.TopicChangeToIssueFormDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; @@ -52,9 +52,17 @@ public interface TopicFeignClient { @GetMapping(value = "group/epdc-app/topic/detail/{id}", consumes = MediaType.APPLICATION_JSON_VALUE) Result detail(@PathVariable("id") String id); - + /** + * + * 话题列表 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/11 15:06 + */ @GetMapping(value = "group/epdc-app/topic/list", consumes = MediaType.APPLICATION_JSON_VALUE) - Result> apiList(TopicListDTO topicListDTO); + Result> listOfTopic(TopicListFormDTO formDto); /** * diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/TopicFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/TopicFeignClientFallback.java index af02fc3e1..2c332b2e1 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/TopicFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/TopicFeignClientFallback.java @@ -5,7 +5,7 @@ import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.group.result.TopicAuditRecordResultDTO; import com.elink.esua.epdc.dto.topic.form.TopicChangeToIssueFormDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; @@ -44,8 +44,8 @@ public class TopicFeignClientFallback implements TopicFeignClient { } @Override - public Result> apiList(TopicListDTO topicListDTO) { - return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "list", topicListDTO); + public Result> listOfTopic(TopicListFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "listOfTopic", formDto); } @Override diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/TopicService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/TopicService.java index cc88182ee..b674e6400 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/TopicService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/TopicService.java @@ -3,7 +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.group.result.TopicAuditRecordResultDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicChangeToIssueFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; @@ -65,9 +65,27 @@ public interface TopicService { */ Result> listOfTopicAuditRecord(String topicId); + /** + * + * 话题列表 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/11 15:05 + */ + Result> listOfTopic(TokenDto userDetail, TopicListFormDTO formDto); - Result> apiList(TopicListDTO topicListDTO); - + /** + * + * 我的话题列表 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/11 15:50 + */ + Result> listTopicOfMine(TokenDto userDetail, TopicListFormDTO formDto); /** * diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/TopicServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/TopicServiceImpl.java index 93027ee96..86bf60786 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/TopicServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/TopicServiceImpl.java @@ -6,7 +6,7 @@ import com.elink.esua.epdc.dto.CompleteDeptDTO; import com.elink.esua.epdc.dto.enums.TopicStateEnum; import com.elink.esua.epdc.dto.group.result.TopicAuditRecordResultDTO; import com.elink.esua.epdc.dto.topic.form.TopicChangeToIssueFormDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; @@ -83,8 +83,21 @@ public class TopicServiceImpl implements TopicService { } @Override - public Result> apiList(TopicListDTO topicListDTO) { - return topicFeignClient.apiList(topicListDTO); + public Result> listOfTopic(TokenDto userDetail, TopicListFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setGridId(userDetail.getGridId()); + return topicFeignClient.listOfTopic(formDto); + } + + @Override + public Result> listTopicOfMine(TokenDto userDetail, TopicListFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + return topicFeignClient.listOfTopic(formDto); } @Override diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/TopicListDTO.java b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/TopicListDTO.java deleted file mode 100644 index ab470726b..000000000 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/TopicListDTO.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.elink.esua.epdc.dto.topic; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class TopicListDTO implements Serializable { - - - private Integer pageIndex; - - private Integer pageSize; - - private String timestamp; - - private String id; - -} diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/form/TopicListFormDTO.java b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/form/TopicListFormDTO.java new file mode 100644 index 000000000..33b3cd778 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/form/TopicListFormDTO.java @@ -0,0 +1,52 @@ +package com.elink.esua.epdc.dto.topic.form; + +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Date; + +@Data +public class TopicListFormDTO implements Serializable { + + private static final long serialVersionUID = 2286962006082337344L; + + /** + * 社群ID + */ + private String groupId; + + /** + * 网格ID + */ + private Long gridId; + + /** + * 用户ID + */ + private String userId; + + /** + * 页码 + */ + @Min(value = 1, message = "页码必须大于0") + private Integer pageIndex; + + /** + * 页容量,默认20页 + */ + @Min(value = 1, message = "每页条数必须大于必须大于0") + private Integer pageSize; + + /** + * 第一页查询发起时的时间 + */ + private String timestamp; + + /** + * 只查询半年内的数据 + */ + private Date someMonthsAgo; + +} diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/result/TopicListResultDTO.java b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/result/TopicListResultDTO.java index c8a4e2666..c6157522c 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/result/TopicListResultDTO.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/result/TopicListResultDTO.java @@ -46,8 +46,14 @@ public class TopicListResultDTO implements Serializable { */ private Integer state; + /** + * 议题ID + */ private String issueId; + /** + * 项目ID + */ private String itemId; /** diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/controller/AppTopicController.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/controller/AppTopicController.java index 9a17379f6..88102d089 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/controller/AppTopicController.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/controller/AppTopicController.java @@ -5,7 +5,7 @@ import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.group.result.TopicAuditRecordResultDTO; import com.elink.esua.epdc.dto.topic.form.TopicChangeToIssueFormDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; @@ -44,10 +44,19 @@ public class AppTopicController { return topicService.saveTopic(formDto); } + /** + * + * 话题列表 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/11 15:07 + */ @GetMapping("list") - public Result> list(@RequestBody TopicListDTO topicListDTO) { - List list = topicService.apiList(topicListDTO); - return new Result>().ok(list); + public Result> listOfTopic(@RequestBody TopicListFormDTO formDto) { + List data = topicService.listOfTopic(formDto); + return new Result>().ok(data); } /** diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/dao/TopicDao.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/dao/TopicDao.java index fbd741321..b328d6c15 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/dao/TopicDao.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/dao/TopicDao.java @@ -19,7 +19,7 @@ package com.elink.esua.epdc.modules.topic.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; import com.elink.esua.epdc.dto.topic.result.TopicListResultDTO; import com.elink.esua.epdc.modules.topic.entity.TopicEntity; @@ -52,9 +52,16 @@ public interface TopicDao extends BaseDao { */ TopicDetailResultDTO selectOneOfTopicDetailById(String id); - - List apiList(TopicListDTO topicListDTO); - + /** + * + * 移动端-话题列表 + * + * @params [formDto] + * @return java.util.List + * @author liuchuang + * @since 2019/11/11 15:14 + */ + List selectListOfTopic(TopicListFormDTO formDto); /** * diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/TopicService.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/TopicService.java index 89fdd7a63..f08365bc8 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/TopicService.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/TopicService.java @@ -23,7 +23,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.group.result.TopicAuditRecordResultDTO; import com.elink.esua.epdc.dto.topic.TopicDTO; import com.elink.esua.epdc.dto.topic.form.TopicChangeToIssueFormDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicReviewFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; @@ -62,7 +62,16 @@ public interface TopicService extends BaseService { */ List list(Map params); - List apiList(TopicListDTO topicListDTO); + /** + * + * 移动端-话题列表 + * + * @params [formDto] + * @return java.util.List + * @author liuchuang + * @since 2019/11/11 15:08 + */ + List listOfTopic(TopicListFormDTO formDto); /** * 单条查询 diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/impl/TopicServiceImpl.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/impl/TopicServiceImpl.java index 9896d7476..ca067305e 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/impl/TopicServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/topic/service/impl/TopicServiceImpl.java @@ -24,6 +24,7 @@ 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.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.dto.constant.GroupNoticeConstant; import com.elink.esua.epdc.dto.constant.TopicImageConstant; @@ -36,7 +37,7 @@ import com.elink.esua.epdc.dto.group.GroupDTO; import com.elink.esua.epdc.dto.group.UserGroupDTO; import com.elink.esua.epdc.dto.group.result.TopicAuditRecordResultDTO; import com.elink.esua.epdc.dto.topic.TopicDTO; -import com.elink.esua.epdc.dto.topic.TopicListDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicChangeToIssueFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; import com.elink.esua.epdc.dto.topic.form.TopicReviewFormDTO; @@ -58,10 +59,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 话题表 话题表 @@ -224,8 +222,12 @@ public class TopicServiceImpl extends BaseServiceImpl imp } @Override - public List apiList(TopicListDTO topicListDTO) { - return baseDao.apiList(topicListDTO); + public List listOfTopic(TopicListFormDTO formDto) { + int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize(); + formDto.setPageIndex(pageIndex); + // 查询半年内的数据 + formDto.setSomeMonthsAgo(DateUtils.addDateMonths(new Date(), -6)); + return baseDao.selectListOfTopic(formDto); } @Override diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/topic/TopicDao.xml b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/topic/TopicDao.xml index 844cbe3ed..f2eacb919 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/topic/TopicDao.xml +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/topic/TopicDao.xml @@ -134,14 +134,52 @@ - - + SELECT + topic.ID, + topic.TOPIC_CONTENT, + topic.CREATED_TIME, + topic.NICKNAME, + topic.USER_FACE, + topic.PARTY_MEMBER, + topic.STATE, + topic.ISSUE_ID, + topic.ITEM_ID, + img.IMG_URL + FROM + epdc_topic topic LEFT JOIN epdc_topic_img img ON topic.ID = img.REFERENCE_ID - WHERE topic.GROUP_ID = #{id} - #{timestamp} + AND img.DEL_FLAG = '0' + WHERE + topic.ID IN ( + SELECT + tmp.ID + FROM + ( + SELECT + t1.ID + FROM + epdc_topic t1 + WHERE + t1.DEL_FLAG = '0' + + and t1.userId = #{userId} + + + AND t1.STATE ]]> 20 + AND t1.GROUP_ID = #{groupId} + AND t1.GRID_ID = #{gridId} + = ]]> #{someMonthsAgo} + #{timestamp} + + ORDER BY + t1.CREATED_TIME DESC LIMIT #{pageIndex},#{pageSize} + ) tmp + ) + ORDER BY + topic.CREATED_TIME DESC, + img.IMG_URL