+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.dao.epmetmessage;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.entity.epmetmessage.InfoReceiversEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 消息接收人记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-08-18
+ */
+@Mapper
+public interface InfoReceiversDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java
index 5fd47fd7c9..bfee2a0129 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java
@@ -18,6 +18,7 @@
package com.epmet.dataaggre.dao.epmetuser;
import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.dto.epmetuser.result.RoleListResultDTO;
import com.epmet.dataaggre.dto.epmetuser.result.StaffRoleListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO;
import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity;
@@ -54,4 +55,13 @@ public interface StaffRoleDao extends BaseDao {
**/
List selectByStaffId(@Param("staffId") String staffId);
+ /**
+ * @Description 角色人数
+ * @Param customerId
+ * @Return {@link List< RoleListResultDTO>}
+ * @Author zhaoqifeng
+ * @Date 2021/8/19 17:16
+ */
+ List getRoleCountList(@Param("customerId") String customerId);
+
}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetmessage/InfoReceiversEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetmessage/InfoReceiversEntity.java
new file mode 100644
index 0000000000..b80aeeb3a4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetmessage/InfoReceiversEntity.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dataaggre.entity.epmetmessage;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 消息接收人记录表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-08-18
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("info_receivers")
+public class InfoReceiversEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 消息主表.id
+ */
+ private String infoId;
+
+ /**
+ * 工作人员id
+ */
+ private String staffId;
+
+ /**
+ * 已读:1;未读:0
+ */
+ private Boolean readFlag;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java
index d6d9046123..892ada3a5e 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java
@@ -1,13 +1,27 @@
package com.epmet.dataaggre.service.epmetmessage.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.dataaggre.constant.DataSourceConstant;
+import com.epmet.dataaggre.dao.epmetmessage.InfoReceiversDao;
+import com.epmet.dataaggre.dto.govorg.ReceiverDTO;
import com.epmet.dataaggre.dto.govorg.form.ReceiversFormDTO;
import com.epmet.dataaggre.dto.govorg.result.ReceiversResultDTO;
+import com.epmet.dataaggre.entity.epmetmessage.InfoReceiversEntity;
import com.epmet.dataaggre.service.epmetmessage.EpmetMessageService;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
* @Description
* @Author zhaoqifeng
@@ -17,6 +31,10 @@ import org.springframework.stereotype.Service;
@DataSource(DataSourceConstant.EPMET_MESSAGE)
@Slf4j
public class EpmetMessageServiceImpl implements EpmetMessageService {
+ @Resource
+ private InfoReceiversDao infoReceiversDao;
+
+
/**
* @param formDTO
* @Description 获取已读未读人员列表
@@ -27,6 +45,29 @@ public class EpmetMessageServiceImpl implements EpmetMessageService {
*/
@Override
public ReceiversResultDTO getReceiverList(ReceiversFormDTO formDTO) {
- return null;
+ ReceiversResultDTO result = new ReceiversResultDTO();
+ //检索已读/未读人员列表,并分页
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(InfoReceiversEntity :: getInfoId, formDTO.getInfoId());
+ wrapper.eq(StringUtils.isNotBlank(formDTO.getReadFlag()), InfoReceiversEntity :: getReadFlag, NumConstant.ONE_STR.equals(formDTO.getReadFlag()));
+ Page page = new Page<>(formDTO.getPageNo(), formDTO.getPageSize());
+ IPage iPage = infoReceiversDao.selectPage(page, wrapper);
+ List list = iPage.getRecords();
+ result.setTotal((int) iPage.getTotal());
+ //结果为空,返回
+ if (CollectionUtils.isEmpty(list)) {
+ result.setDataList(Collections.emptyList());
+ return result;
+ }
+ //构建人员列表
+ List dataList = list.stream().map(item -> {
+ ReceiverDTO dto = new ReceiverDTO();
+ dto.setStaffId(item.getStaffId());
+ dto.setReadFlag(item.getReadFlag());
+ //TODO redis获取用户信息
+ return dto;
+ }).collect(Collectors.toList());
+ result.setDataList(dataList);
+ return result;
}
}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
index b11736aef3..260d18a594 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
@@ -18,7 +18,9 @@ import com.epmet.dataaggre.dto.govorg.CustomerGridDTO;
import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO;
import com.epmet.dataaggre.dto.govorg.result.StaffOrgNameResultDTO;
import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity;
+import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity;
import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity;
+import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService;
import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService;
@@ -62,6 +64,8 @@ public class EpmetUserServiceImpl implements EpmetUserService {
private ResiUserBadgeDao resiUserBadgeDao;
@Autowired
private GovProjectService govProjectService;
+ @Resource
+ private GovStaffRoleDao govStaffRoleDao;
/**
* @Description 根据UserIds查询
@@ -460,7 +464,19 @@ public class EpmetUserServiceImpl implements EpmetUserService {
*/
@Override
public List getRoleUsers(RoleUsersFormDTO formDTO) {
- return null;
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(StaffRoleEntity :: getCustomerId, formDTO.getCustomerId());
+ wrapper.eq(StaffRoleEntity::getRoleId, formDTO.getRoleId());
+ List staffRoleList = staffRoleDao.selectList(wrapper);
+ if (CollectionUtils.isEmpty(staffRoleList)) {
+ return Collections.emptyList();
+ }
+ return staffRoleList.stream().map(item -> {
+ RoleUsersResultDTO dto = new RoleUsersResultDTO();
+ dto.setStaffId(item.getStaffId());
+ //TODO 从redis获取用户信息
+ return dto;
+ }).collect(Collectors.toList());
}
/**
@@ -473,7 +489,28 @@ public class EpmetUserServiceImpl implements EpmetUserService {
*/
@Override
public List getRoleList(String customerId) {
- return null;
+ //获取角色列表
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(GovStaffRoleEntity :: getCustomerId, customerId);
+ wrapper.orderByAsc(GovStaffRoleEntity ::getSort);
+ List list = govStaffRoleDao.selectList(wrapper);
+ //获取角色人数
+ List countList = staffRoleDao.getRoleCountList(customerId);
+ Map map = new HashMap<>();
+ if (CollectionUtils.isNotEmpty(countList)) {
+ map = countList.stream().collect(Collectors.toMap(RoleListResultDTO :: getRoleId, RoleListResultDTO :: getStaffNum));
+ }
+ Map finalMap = map;
+ //构建返回值
+ return list.stream().map(item -> {
+ RoleListResultDTO dto = new RoleListResultDTO();
+ dto.setRoleId(item.getId());
+ dto.setRoleKey(item.getRoleKey());
+ dto.setRoleName(item.getRoleName());
+ dto.setDescription(item.getDescription());
+ dto.setStaffNum(null == finalMap.get(item.getId())?NumConstant.ZERO:finalMap.get(item.getId()));
+ return dto;
+ }).collect(Collectors.toList());
}
@Override
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml
new file mode 100644
index 0000000000..dc4ed3221c
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml
index ca66bc3c5c..7426446a05 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml
@@ -58,4 +58,15 @@
gsr.sort ASC
+
\ No newline at end of file