Browse Source

居民热议-表决中列表

master
sunyuchao 5 years ago
parent
commit
d60c4b7365
  1. 37
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/VotingIssueListFormDTO.java
  2. 44
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/VotingIssueListResultDTO.java
  3. 31
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java
  4. 17
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovIssueController.java
  5. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java
  6. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java
  7. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java
  8. 44
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java
  9. 9
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  10. 12
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  11. 23
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml
  12. 27
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml

37
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/form/VotingIssueListFormDTO.java

@ -0,0 +1,37 @@
package com.epmet.dataaggre.dto.govissue.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Description 议题-表决中列表-接口如此那
* @Auth sun
*/
@Data
public class VotingIssueListFormDTO implements Serializable {
private static final long serialVersionUID = -436147374473316845L;
/**
* 机关组织Id
* */
@NotBlank(message = "组织Id不能为空", groups = {VotingIssueListFormDTO.VotingForm.class})
private String agencyId;
/**
* 页码
* */
@Min(1)
private Integer pageNo;
/**
* 每页多少条
* */
private Integer pageSize = 20;
/**
* 组织下网格Id集合
* */
private List<String> gridIdList;
public interface VotingForm{}
}

44
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govissue/result/VotingIssueListResultDTO.java

@ -0,0 +1,44 @@
package com.epmet.dataaggre.dto.govissue.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 议题-表决中列表-接口返参
* @Auth sun
*/
@Data
public class VotingIssueListResultDTO implements Serializable {
private static final long serialVersionUID = -7134055957167447949L;
/**
* 网格Id(方便查操作权限)
* */
private String gridId;
/**
* 议题Id
* */
private String issueId;
/**
* 议题标题
* */
private String issueTitle;
/**
* 所属网格网格所属组织名称-网格名称
* */
private String belongsGridName;
/**
* 议题建议
* */
private String suggestion;
/**
* 议题创建时间
* */
private Long issuePublishTime;
/**
* 实际总表决数
* */
private Integer count;
}

31
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/GridsInfoListResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dataaggre.dto.govorg.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Auther sun
* 获取用户访问过的所有网格列表-接口返参
*/
@Data
public class GridsInfoListResultDTO implements Serializable {
private static final long serialVersionUID = -1L;
/**
* 客户Id
*/
private String customerId;
/**
* 网格Id
*/
private String gridId;
/**
* 网格名称
*/
private String gridName;
}

17
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovIssueController.java

@ -1,11 +1,15 @@
package com.epmet.dataaggre.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.govissue.form.AllIssueFormDTO;
import com.epmet.dataaggre.dto.govissue.form.VotingIssueListFormDTO;
import com.epmet.dataaggre.dto.govissue.result.AllIssueResultDTO;
import com.epmet.dataaggre.dto.govissue.result.VotingIssueListResultDTO;
import com.epmet.dataaggre.service.govissue.GovIssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -13,6 +17,8 @@ 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 zxc
* @DateTime 2020/12/25 上午9:45
@ -37,4 +43,15 @@ public class GovIssueController {
return new Result<AllIssueResultDTO>().ok(govIssueService.allIssueList(formDTO,tokenDto));
}
/**
* @param formDTO
* @Description 居民热议-表决中列表
* @author sun
**/
@PostMapping(value = "votingissuelist")
public Result<List<VotingIssueListResultDTO>> votingIssueList(@RequestBody VotingIssueListFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, VotingIssueListFormDTO.VotingForm.class);
return new Result<List<VotingIssueListResultDTO>>().ok(govIssueService.votingIssueList(formDTO));
}
}

7
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govissue/IssueDao.java

@ -18,7 +18,9 @@
package com.epmet.dataaggre.dao.govissue;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.govissue.form.VotingIssueListFormDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
import com.epmet.dataaggre.dto.govissue.result.VotingIssueListResultDTO;
import com.epmet.dataaggre.entity.govissue.IssueEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -42,4 +44,9 @@ public interface IssueDao extends BaseDao<IssueEntity> {
*/
List<IssueListResultDTO> issueStatusClosedOrVoting(@Param("gridIds") List<String> gridIds, @Param("issueStatus")String issueStatus);
/**
* @Description 查询网格列表下表决中的议题列表
* @author sun
**/
List<VotingIssueListResultDTO> selectVotingList(VotingIssueListFormDTO formDTO);
}

8
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java

@ -19,6 +19,7 @@ package com.epmet.dataaggre.dao.govorg;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.entity.govorg.CustomerGridEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -40,4 +41,11 @@ public interface CustomerGridDao extends BaseDao<CustomerGridEntity> {
**/
List<GridInfoResultDTO> selectAgencyGridList(@Param("agencyId") String agencyId);
/**
* @param gridIdList
* @return
* @Description 根据网格Id集合获取网格列表信息
* @Author sun
*/
List<GridsInfoListResultDTO> selectGridByIds(@Param("gridIdList") List<String> gridIdList);
}

9
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/GovIssueService.java

@ -2,7 +2,11 @@ package com.epmet.dataaggre.service.govissue;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dataaggre.dto.govissue.form.AllIssueFormDTO;
import com.epmet.dataaggre.dto.govissue.form.VotingIssueListFormDTO;
import com.epmet.dataaggre.dto.govissue.result.AllIssueResultDTO;
import com.epmet.dataaggre.dto.govissue.result.VotingIssueListResultDTO;
import java.util.List;
/**
* @Author zxc
@ -19,4 +23,9 @@ public interface GovIssueService {
*/
AllIssueResultDTO allIssueList(AllIssueFormDTO formDTO,TokenDto tokenDto);
/**
* @Description 居民热议-表决中列表
* @author sun
**/
List<VotingIssueListResultDTO> votingIssueList(VotingIssueListFormDTO formDTO);
}

44
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govissue/impl/GovIssueServiceImpl.java

@ -1,14 +1,20 @@
package com.epmet.dataaggre.service.govissue.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.govissue.IssueApplicationDao;
import com.epmet.dataaggre.dao.govissue.IssueDao;
import com.epmet.dataaggre.dto.govissue.form.AllIssueFormDTO;
import com.epmet.dataaggre.dto.govissue.form.VotingIssueListFormDTO;
import com.epmet.dataaggre.dto.govissue.result.AllIssueResultDTO;
import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO;
import com.epmet.dataaggre.dto.govissue.result.VotingIssueListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.service.govissue.GovIssueService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
@ -17,7 +23,9 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author zxc
@ -32,6 +40,8 @@ public class GovIssueServiceImpl implements GovIssueService {
private IssueDao issueDao;
@Autowired
private IssueApplicationDao issueApplicationDao;
@Autowired
private GovOrgService govOrgService;
/**
* @Description 按组织查询所有议题
@ -76,4 +86,38 @@ public class GovIssueServiceImpl implements GovIssueService {
return null;
}
/**
* @Description 居民热议-表决中列表
* @author sun
**/
@Override
public List<VotingIssueListResultDTO> votingIssueList(VotingIssueListFormDTO formDTO) {
List<VotingIssueListResultDTO> resultList = new ArrayList<>();
int num = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setPageNo(num);
//1.查询组织下网格列表
List<GridInfoResultDTO> gridList = govOrgService.gridList(formDTO.getAgencyId());
List<String> gridIdList = gridList.stream().map(GridInfoResultDTO::getGridId).collect(Collectors.toList());
if (gridIdList.size() < NumConstant.ONE) {
return resultList;
}
formDTO.setGridIdList(gridIdList);
//2.查询网格列表下表决中的议题列表
resultList = issueDao.selectVotingList(formDTO);
if(resultList.size()<NumConstant.ONE){
return new ArrayList<>();
}
//3.根据网格Id查询"组织-网格"名称
List<GridsInfoListResultDTO> gridInfoList = govOrgService.gridListByIds(gridIdList);
//4.封装数据并返回
HashMap<String, String> gridIdAndNames = new HashMap<>();
gridInfoList.stream().forEach(g -> gridIdAndNames.put(g.getGridId(), g.getGridName()));
resultList.stream().forEach(pt -> pt.setBelongsGridName(gridIdAndNames.get(pt.getGridId())));
return resultList;
}
}

9
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java

@ -2,6 +2,7 @@ package com.epmet.dataaggre.service.govorg;
import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import java.util.List;
@ -25,4 +26,12 @@ public interface GovOrgService {
**/
List<GridInfoResultDTO> gridList(String agencyId);
/**
* @param gridIdList
* @return
* @Description 根据网格Id集合获取网格列表信息
* @Author sun
*/
List<GridsInfoListResultDTO> gridListByIds(List<String> gridIdList);
}

12
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -10,6 +10,7 @@ import com.epmet.dataaggre.dao.govorg.CustomerStaffAgencyDao;
import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO;
import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import lombok.extern.slf4j.Slf4j;
@ -97,5 +98,16 @@ public class GovOrgServiceImpl implements GovOrgService {
return customerGridDao.selectAgencyGridList(agencyId);
}
/**
* @param gridIdList
* @return
* @Description 根据网格Id集合获取网格列表信息
* @Author sun
*/
@Override
public List<GridsInfoListResultDTO> gridListByIds(List<String> gridIdList) {
return customerGridDao.selectGridByIds(gridIdList);
}
}

23
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govissue/IssueDao.xml

@ -20,4 +20,27 @@
GRID_ID = #{gridId}
</foreach>
</select>
<select id="selectVotingList" resultType="com.epmet.dataaggre.dto.govissue.result.VotingIssueListResultDTO">
SELECT
i.id AS "issueId",
i.grid_id AS "gridId",
i.issue_title AS "issueTitle",
i.suggestion AS "suggestion",
UNIX_TIMESTAMP(i.created_time) AS "createTime",
(select count(id) from issue_vote_detail where del_flag = '0' and issue_id = i.id) AS "count"
FROM
issue i
WHERE
i.del_flag = '0'
AND i.issue_status = 'voting' <!-- 表决中议题 -->
<foreach collection="gridIdList" item="gridId" open="AND (" close=")" separator=" OR ">
i.grid_id = #{gridId}
</foreach>
ORDER BY
count DESC
LIMIT
#{pageNo}, #{pageSize}
</select>
</mapper>

27
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml

@ -14,4 +14,31 @@
AND pid = #{agencyId}
</select>
<select id="selectGridByIds" resultType="com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO">
SELECT
cg.id AS 'gridId',
IF(
ca.organization_name = '',
cg.grid_name,
CONCAT(ca.organization_name,'-',cg.grid_name)
) AS 'gridName',
cg.customer_id AS 'customerId'
FROM
customer_grid cg
INNER JOIN customer_agency ca ON cg.pid = ca.id
WHERE
cg.del_flag = '0'
AND ca.del_flag = '0'
AND cg.id IN
<foreach item="id" collection="gridIdList" open="(" separator="," close=")">
#{id}
</foreach>
ORDER BY field(
cg.id,
<foreach item="id" collection="gridIdList" separator=",">
#{id}
</foreach>
)<!-- 按照foreach中遍历的Id顺序排序(按网格访问时间倒序) -->
</select>
</mapper>

Loading…
Cancel
Save