diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/ReceiverDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/ReceiverDTO.java index d743c808cf..feff8e28a2 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/ReceiverDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/ReceiverDTO.java @@ -31,7 +31,7 @@ public class ReceiverDTO implements Serializable { /** * 1:已读;0:未读 */ - private String readFlag; + private Boolean readFlag; /** * 1男2女0未知 */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetmessage/InfoReceiversDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetmessage/InfoReceiversDao.java new file mode 100644 index 0000000000..be4a2b9b00 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetmessage/InfoReceiversDao.java @@ -0,0 +1,33 @@ +/** + * 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.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