Browse Source

通讯录消息相关接口

dev_shibei_match
zhaoqifeng 4 years ago
parent
commit
c8c8d32cba
  1. 2
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/ReceiverDTO.java
  2. 33
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetmessage/InfoReceiversDao.java
  3. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffRoleDao.java
  4. 58
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetmessage/InfoReceiversEntity.java
  5. 43
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java
  6. 41
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  7. 8
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml
  8. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml

2
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未知
*/

33
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<InfoReceiversEntity> {
}

10
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<StaffRoleEntity> {
**/
List<String> selectByStaffId(@Param("staffId") String staffId);
/**
* @Description 角色人数
* @Param customerId
* @Return {@link List< RoleListResultDTO>}
* @Author zhaoqifeng
* @Date 2021/8/19 17:16
*/
List<RoleListResultDTO> getRoleCountList(@Param("customerId") String customerId);
}

58
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}

43
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<InfoReceiversEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(InfoReceiversEntity :: getInfoId, formDTO.getInfoId());
wrapper.eq(StringUtils.isNotBlank(formDTO.getReadFlag()), InfoReceiversEntity :: getReadFlag, NumConstant.ONE_STR.equals(formDTO.getReadFlag()));
Page<InfoReceiversEntity> page = new Page<>(formDTO.getPageNo(), formDTO.getPageSize());
IPage<InfoReceiversEntity> iPage = infoReceiversDao.selectPage(page, wrapper);
List<InfoReceiversEntity> list = iPage.getRecords();
result.setTotal((int) iPage.getTotal());
//结果为空,返回
if (CollectionUtils.isEmpty(list)) {
result.setDataList(Collections.emptyList());
return result;
}
//构建人员列表
List<ReceiverDTO> 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;
}
}

41
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<RoleUsersResultDTO> getRoleUsers(RoleUsersFormDTO formDTO) {
return null;
LambdaQueryWrapper<StaffRoleEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StaffRoleEntity :: getCustomerId, formDTO.getCustomerId());
wrapper.eq(StaffRoleEntity::getRoleId, formDTO.getRoleId());
List<StaffRoleEntity> 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<RoleListResultDTO> getRoleList(String customerId) {
return null;
//获取角色列表
LambdaQueryWrapper<GovStaffRoleEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(GovStaffRoleEntity :: getCustomerId, customerId);
wrapper.orderByAsc(GovStaffRoleEntity ::getSort);
List<GovStaffRoleEntity> list = govStaffRoleDao.selectList(wrapper);
//获取角色人数
List<RoleListResultDTO> countList = staffRoleDao.getRoleCountList(customerId);
Map<String, Integer> map = new HashMap<>();
if (CollectionUtils.isNotEmpty(countList)) {
map = countList.stream().collect(Collectors.toMap(RoleListResultDTO :: getRoleId, RoleListResultDTO :: getStaffNum));
}
Map<String, Integer> 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

8
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dataaggre.dao.epmetmessage.InfoReceiversDao">
</mapper>

11
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffRoleDao.xml

@ -58,4 +58,15 @@
gsr.sort ASC
</select>
<select id="getRoleCountList" resultType="com.epmet.dataaggre.dto.epmetuser.result.RoleListResultDTO">
SELECT
ROLE_ID,
count( STAFF_ID ) AS staffNum
FROM
staff_role
WHERE
CUSTOMER_ID = #{customerId}
GROUP BY
ROLE_ID
</select>
</mapper>
Loading…
Cancel
Save