package org.jeecg.common.system.api; import com.alibaba.fastjson.JSONObject; import org.jeecg.common.api.CommonAPI; import org.jeecg.common.api.dto.DataLogDTO; import org.jeecg.common.api.dto.OnlineAuthDTO; import org.jeecg.common.api.dto.message.*; import org.jeecg.common.system.base.entity.DataVersion; import org.jeecg.common.system.base.entity.SysUpload; import org.jeecg.common.system.base.entity.SysUploadRela; import org.jeecg.common.system.vo.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; import java.util.Set; /** * @Description 底层共通业务API,提供其他独立模块调用 * @Author scott * @Date 2019-4-20 * @Version V1.0 */ public interface ISysBaseAPI extends CommonAPI { /** * 1发送系统消息 * @param message 使用构造器赋值参数 如果不设置category(消息类型)则默认为2 发送系统消息 */ void sendSysAnnouncement(MessageDTO message); /** * 2发送消息 附带业务参数 * @param message 使用构造器赋值参数 */ void sendBusAnnouncement(BusMessageDTO message); /** * 3通过模板发送消息 * @param message 使用构造器赋值参数 */ void sendTemplateAnnouncement(TemplateMessageDTO message); /** * 4通过模板发送消息 附带业务参数 * @param message 使用构造器赋值参数 */ void sendBusTemplateAnnouncement(BusTemplateMessageDTO message); /** * 5通过消息中心模板,生成推送内容 * @param templateDTO 使用构造器赋值参数 * @return */ String parseTemplateByCode(TemplateDTO templateDTO); //update-begin---author:taoyan ---date:20220705 for:支持自定义推送类型,邮件、钉钉、企业微信、系统消息----------- /** * 发送模板消息【新,支持自定义推送类型】 * @param message */ void sendTemplateMessage(MessageDTO message); /** * 根据模板编码获取模板内容【新,支持自定义推送类型】 * @param templateCode * @return */ String getTemplateContent(String templateCode); //update-begin---author:taoyan ---date:20220705 for:支持自定义推送类型,邮件、钉钉、企业微信、系统消息----------- /** * 6根据用户id查询用户信息 * @param id * @return */ LoginUser getUserById(String id); /** * 7通过用户账号查询角色集合 * @param username * @return */ List getRolesByUsername(String username); /** * 8通过用户账号查询部门集合 * @param username * @return 部门 id */ List getDepartIdsByUsername(String username); /** * 9通过用户账号查询部门 name * @param username * @return 部门 name */ List getDepartNamesByUsername(String username); /** 11查询所有的父级字典,按照create_time排序 * @return List 字典集合 */ public List queryAllDict(); /** * 12查询所有分类字典 * @return */ public List queryAllSysCategory(); /** * 14查询所有部门 作为字典信息 id -->value,departName -->text * @return */ public List queryAllDepartBackDictModel(); /** * 15根据业务类型及业务id修改消息已读 * @param busType * @param busId */ public void updateSysAnnounReadFlag(String busType, String busId); /** * 16查询表字典 支持过滤数据 * @param table * @param text * @param code * @param filterSql * @return */ public List queryFilterTableDictInfo(String table, String text, String code, String filterSql); /** * 17查询指定table的 text code 获取字典,包含text和value * @param table * @param text * @param code * @param keyArray * @return */ @Deprecated public List queryTableDictByKeys(String table, String text, String code, String[] keyArray); /** * 18查询所有用户 返回ComboModel * @return */ public List queryAllUserBackCombo(); /** * 19分页查询用户 返回JSONObject * @param userIds 多个用户id * @param pageNo 当前页数 * @param pageSize 每页显示条数 * @return */ public JSONObject queryAllUser(String userIds, Integer pageNo, Integer pageSize); /** * 20获取所有角色 * @return */ public List queryAllRole(); /** * 21获取所有角色 带参 * @param roleIds 默认选中角色 * @return */ public List queryAllRole(String[] roleIds ); /** * 22通过用户账号查询角色Id集合 * @param username * @return */ public List getRoleIdsByUsername(String username); /** * 23通过部门编号查询部门id * @param orgCode * @return */ public String getDepartIdsByOrgCode(String orgCode); /** * 24查询所有部门 * @return */ public List getAllSysDepart(); /** * 25查找父级部门 * @param departId * @return */ DictModel getParentDepartId(String departId); /** * 26根据部门Id获取部门负责人 * @param deptId * @return */ public List getDeptHeadByDepId(String deptId); /** * 27给指定用户发消息 * @param userIds * @param cmd */ public void sendWebSocketMsg(String[] userIds, String cmd); /** * 28根据id获取所有参与用户 * @param userIds 多个用户id * @return */ public List queryAllUserByIds(String[] userIds); /** * 29将会议签到信息推动到预览 * userIds * @return * @param userId */ void meetingSignWebsocket(String userId); /** * 30根据name获取所有参与用户 * @param userNames 多个用户账户 * @return */ List queryUserByNames(String[] userNames); /** * 31获取用户的角色集合 * @param username * @return */ Set getUserRoleSet(String username); /** * 32获取用户的权限集合 * @param username * @return */ Set getUserPermissionSet(String username); /** * 33判断是否有online访问的权限 * @param onlineAuthDTO * @return */ boolean hasOnlineAuth(OnlineAuthDTO onlineAuthDTO); /** * 34通过部门id获取部门全部信息 * @param id 部门id * @return SysDepartModel对象 */ SysDepartModel selectAllById(String id); /** * 35根据用户id查询用户所属公司下所有用户ids * @param userId * @return */ List queryDeptUsersByUserId(String userId); /** * 36根据多个用户账号(逗号分隔),查询返回多个用户信息 * @param usernames * @return */ List queryUsersByUsernames(String usernames); /** * 37根据多个用户ID(逗号分隔),查询返回多个用户信息 * @param ids * @return */ List queryUsersByIds(String ids); /** * 38根据多个部门编码(逗号分隔),查询返回多个部门信息 * @param orgCodes * @return */ List queryDepartsByOrgcodes(String orgCodes); /** * 39根据多个部门id(逗号分隔),查询返回多个部门信息 * @param ids * @return */ List queryDepartsByIds(String ids); /** * 40发送邮件消息 * @param email * @param title * @param content */ void sendEmailMsg(String email,String title,String content); /** * 41 获取公司下级部门和公司下所有用户信息 * @param orgCode * @return List */ List getDeptUserByOrgCode(String orgCode); /** * 查询分类字典翻译 * @param ids 多个分类字典id * @return List */ List loadCategoryDictItem(String ids); /** * 根据字典code加载字典text * * @param dictCode 顺序:tableName,text,code * @param keys 要查询的key * @return */ List loadDictItem(String dictCode, String keys); /** * 根据字典code查询字典项 * * @param dictCode 顺序:tableName,text,code * @param dictCode 要查询的key * @return */ List getDictItems(String dictCode); /** * 根据多个字典code查询多个字典项 * @param dictCodeList * @return key = dictCode ; value=对应的字典项 */ Map> getManyDictItems(List dictCodeList); /** * 【JSearchSelectTag下拉搜索组件专用接口】 * 大数据量的字典表 走异步加载 即前端输入内容过滤数据 * * @param dictCode 字典code格式:table,text,code * @param keyword 过滤关键字 * @param pageSize 分页条数 * @return */ List loadDictItemByKeyword(String dictCode, String keyword, Integer pageSize); /** * 新增数据日志 * @param dataLogDto */ void saveDataLog(DataLogDTO dataLogDto); /** * 添加文件到知识库 * @param sysFilesModel */ void addSysFiles(SysFilesModel sysFilesModel); /** * 通过文件路径获取文件id * @param fileId */ String getFileUrl(String fileId); /** * 更新头像 * @param loginUser */ void updateAvatar(LoginUser loginUser); /** * 向app端 websocket推送聊天刷新消息 * @param userId */ void sendAppChatSocket(String userId); List listByBusIdAndBusType(String busId, String busType); SysUpload getUploadById(String id); boolean saveOrUpdateBatchUploadRela(List sysUploadRelaList); boolean updateBatchUploadById(List sysUploadList); List batchUploadFile(String fileType, List multipartFileList, String description) throws Exception; void saveOrUpdateUploadRale(String busId, String busType, String uploadId); // Unit getUnitById(id); void removeDataVersionByBusinessId(String businessId); void removeUploadById(String id); void removeUploadRelaById(String id); void delSysUploadRelaByBusIdAndBusType(String busId, String busType); String getUnitNameById(String unitId); String queryDictTextByKey(String dictCode, String key); String getVersionStatusByVersionAndBusinessType(Integer version, String businessType); void saveDataVersion(DataVersion dataVersion); DataVersion getDataVersionByBusinessId(String id); void removeDataVersionById(String id); String getEnterpriseNameById(String enterpriseId); List getLastDataVersion(String businessType, String enterpriseId, String isLastusable); List getDataVersionList(String businessType,String enterpriseId,String versionStatus, String version); /**根据ids 批量删除 数据版本 * * @param ids */ void removeDataVersionByIds(String ids); void updateBatchDataVersion(List dataVersionList); void closeJobByClassName(String className); /** * 发送系统消息 * @param fromUser 发送人(用户登录账户) * @param toUser 发送给(用户登录账户) * @param title 消息主题 * @param msgContent 消息内容 */ public void sendAnnouncement(String fromUser, String toUser, String title, String msgContent); }