package com.tievd.cube.modules.system.controller; import cn.hutool.json.JSONObject; import com.tievd.cube.commons.model.DataLogDTO; import com.tievd.cube.commons.model.LogDTO; import com.tievd.cube.commons.model.BusMessageDTO; import com.tievd.cube.commons.model.BusTemplateMessageDTO; import com.tievd.cube.commons.model.MessageDTO; import com.tievd.cube.commons.model.TemplateMessageDTO; import com.tievd.cube.common.system.api.ISysBaseAPI; import com.tievd.cube.modules.system.model.*; import com.tievd.cube.modules.system.service.ISysUserService; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 微服务API * * @author 杨欣武 * @apiNote 微服务化后系统胡模块对外的API */ @Tag(name = "微服务相关接口") @RestController @RequestMapping("/sys/api") public class SystemAPIController { @Autowired private ISysBaseAPI sysBaseAPI; @Autowired private ISysUserService sysUserService; /** * 发送系统消息 * * @param message 消息 * @apiNote 使用构造器赋值参数,如果不设置category(消息类型)则默认为2[发送系统消息] */ @PostMapping("/sendSysAnnouncement") public void sendSysAnnouncement(@RequestBody MessageDTO message) { sysBaseAPI.sendSysAnnouncement(message); } /** * 发送系统消息(附带业务参数) * * @param message 使用构造器赋值参数 * @apiNote 使用构造器赋值参数,附带业务参数 */ @PostMapping("/sendBusAnnouncement") public void sendBusAnnouncement(@RequestBody BusMessageDTO message) { sysBaseAPI.sendBusAnnouncement(message); } /** * 通过模板发送消息 * * @param message 使用构造器赋值参数 */ @PostMapping("/sendTemplateAnnouncement") public void sendTemplateAnnouncement(@RequestBody TemplateMessageDTO message) { sysBaseAPI.sendTemplateAnnouncement(message); } /** * 通过模板发送消息 附带业务参数 * * @param message 使用构造器赋值参数 */ @PostMapping("/sendBusTemplateAnnouncement") public void sendBusTemplateAnnouncement(@RequestBody BusTemplateMessageDTO message) { sysBaseAPI.sendBusTemplateAnnouncement(message); } /** * 根据用户id查询用户信息 */ @GetMapping("/getUserById") public LoginUser getUserById(@RequestParam("id") String id) { return sysBaseAPI.getUserById(id); } /** * 通过用户账号查询角色集合 */ @GetMapping("/getRolesByUsername") public List getRolesByUsername(@RequestParam("username") String username) { return sysBaseAPI.getRolesByUsername(username); } /** * 通过用户账号查询部门集合 */ @GetMapping("/getDepartIdsByUsername") public List getDepartIdsByUsername(@RequestParam("username") String username) { return sysBaseAPI.getDepartIdsByUsername(username); } /** * 通过用户账号查询部门 name */ @GetMapping("/getDepartNamesByUsername") public List getDepartNamesByUsername(@RequestParam("username") String username) { return sysBaseAPI.getDepartNamesByUsername(username); } /** * 获取数据字典 */ @GetMapping("/queryDictItemsByCode") public List queryDictItemsByCode(@RequestParam("code") String code) { return sysBaseAPI.queryDictItemsByCode(code); } /** * 查询所有的父级字典 * * @apiNote 按照create_time排序 */ @GetMapping("/queryAllDict") public List queryAllDict() { return sysBaseAPI.queryAllDict(); } /** * 查询所有分类字典 */ @GetMapping("/queryAllCategory") public List queryAllCategory() { return sysBaseAPI.queryAllCategory(); } /** * 获取表数据字典 */ @GetMapping("/queryTableDictItemsByCode") public List queryTableDictItemsByCode(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code) { return sysBaseAPI.queryTableDictItemsByCode(table, text, code); } /** * 查询所有部门 * * @apiNote 作为字典信息 id -> value,departName -> text */ @GetMapping("/queryAllDepartBackDictModel") public List queryAllDepartBackDictModel() { return sysBaseAPI.queryAllDepartBackDictModel(); } /** * 查询表字典 支持过滤数据 */ @GetMapping("/queryFilterTableDictInfo") public List queryFilterTableDictInfo(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("filterSql") String filterSql) { return sysBaseAPI.queryFilterTableDictInfo(table, text, code, filterSql); } /** * 获取所有角色 * * @param roleIds 默认选中角色 */ @GetMapping("/queryAllRole") public List queryAllRole(@RequestParam(required = false) String[] roleIds) { if (roleIds == null || roleIds.length == 0) { return sysBaseAPI.queryAllRole(); } else { return sysBaseAPI.queryAllRole(roleIds); } } /** * 通过用户账号查询角色Id集合 */ @GetMapping("/getRoleIdsByUsername") public List getRoleIdsByUsername(@RequestParam String username) { return sysBaseAPI.getRoleIdsByUsername(username); } /** * 通过部门编号查询部门id */ @GetMapping("/getDepartIdsByOrgCode") public String getDepartIdsByOrgCode(@RequestParam String orgCode) { return sysBaseAPI.getDepartIdsByOrgCode(orgCode); } /** * 查询所有部门 */ @GetMapping("/getAllSysDepart") public List getAllSysDepart() { return sysBaseAPI.getAllSysDepart(); } /** * 根据id查询数据库中存储的数据源 */ @GetMapping("/getDynamicDbSourceById") public DynamicDataSourceModel getDynamicDbSourceById(@RequestParam String dbSourceId) { return sysBaseAPI.getDynamicDbSourceById(dbSourceId); } /** * 根据部门id获取部门负责人 */ @GetMapping("/getDeptHeadByDepId") public List getDeptHeadByDepId(@RequestParam String deptId) { return sysBaseAPI.getDeptHeadByDepId(deptId); } /** * 查找父级部门 */ @GetMapping("/getParentDepartId") public DictModel getParentDepartId(@RequestParam("departId") String departId) { return sysBaseAPI.getParentDepartId(departId); } /** * 根据code查询数据库中存储的数据源 */ @GetMapping("/getDynamicDbSourceByCode") public DynamicDataSourceModel getDynamicDbSourceByCode(@RequestParam("dbSourceCode") String dbSourceCode) { return sysBaseAPI.getDynamicDbSourceByCode(dbSourceCode); } /** * 给指定用户发消息 */ @GetMapping("/sendWebSocketMsg") public void sendWebSocketMsg(String[] userIds, String cmd) { sysBaseAPI.sendWebSocketMsg(userIds, cmd); } /** * 根据id获取所有参与用户 */ @GetMapping("/queryAllUserByIds") public List queryAllUserByIds(@RequestParam String[] userIds) { return sysBaseAPI.queryAllUserByIds(userIds); } /** * 查询所有用户 */ @GetMapping("/queryAllUserBackCombo") public List queryAllUserBackCombo() { return sysBaseAPI.queryAllUserBackCombo(); } /** * 分页查询用户 */ @GetMapping("/queryAllUser") public JSONObject queryAllUser(@RequestParam(required = false) String userIds, @RequestParam(required = false) Integer pageNo, @RequestParam(required = false) int pageSize) { return sysBaseAPI.queryAllUser(userIds, pageNo, pageSize); } /** * 根据name获取所有参与用户 */ @GetMapping("/queryUserByNames") public List queryUserByNames(@RequestParam String[] userNames) { return sysBaseAPI.queryUserByNames(userNames); } /** * 查询用户角色信息 */ @GetMapping("/queryUserRoles") public List queryUserRoles(@RequestParam String username) { return sysBaseAPI.queryUserRoles(username); } /** * 查询用户权限信息 */ @GetMapping("/queryUserAuths") public List queryUserAuths(@RequestParam String username) { return sysBaseAPI.queryUserAuths(username); } /** * 通过部门id获取部门全部信息 */ @GetMapping("/selectAllById") public SysDepartModel selectAllById(@RequestParam String id) { return sysBaseAPI.selectAllById(id); } /** * 根据用户id查询用户所属公司下所有用户ids */ @GetMapping("/queryDeptUsersByUserId") public List queryDeptUsersByUserId(@RequestParam String userId) { return sysBaseAPI.queryDeptUsersByUserId(userId); } /** * 查询数据权限 */ @GetMapping("/queryPermissionDataRule") public List queryPermissionDataRule(@RequestParam String component, @RequestParam String requestPath, @RequestParam String username) { return sysBaseAPI.queryPermissionDataRule(component, requestPath, username); } /** * 字典表翻译 */ @GetMapping("/translateDictFromTable") public String translateDictFromTable(@RequestParam("table") String table, @RequestParam("text") String text, @RequestParam("code") String code, @RequestParam("key") String key) { return sysBaseAPI.translateDictFromTable(table, text, code, key); } /** * 字典表多键值翻译 */ @GetMapping("/translateDictListFromTable") public List translateDictListFromTable(@RequestParam String table, @RequestParam String text, @RequestParam String code, @RequestParam List keys) { return sysBaseAPI.translateDictFromTable(table, text, code, keys); } /** * 字典表键值翻译回键 */ @GetMapping("/translateDictKeyFromTable") public String translateDictKeyFromTable(@RequestParam("table") String table, @RequestParam String text, @RequestParam String code, @RequestParam String value) { return sysBaseAPI.translateDictKeyFromTable(table, text, code, value); } /** * 普通字典的翻译 */ @GetMapping("/translateDict") public String translateDict(@RequestParam("code") String code, @RequestParam("key") String key) { return sysBaseAPI.translateDict(code, key); } /** * 数据字典键值翻译 */ @GetMapping("/translateDictKey") public String translateDictKey(@RequestParam String code, @RequestParam String text) { return sysBaseAPI.translateDictKey(code, text); } /** * 添加操作日志 * * @param logDTO 操作日志 */ @PostMapping("/addLogByDTO") public void addLog(@RequestBody LogDTO logDTO) { sysBaseAPI.addLog(logDTO); } /** * 添加操作日志 * * @param logContent 日志内容 * @param logType 日志类型 * @param operateType 操作类型 */ @PostMapping("/addLog") public void addLog(@RequestParam String logContent, @RequestParam Integer logType, @RequestParam Integer operateType) { sysBaseAPI.addLog(logContent, logType, operateType); } /** * 根据多个用户账号 * * @apiNote 以逗号分隔的方式,查询返回多个用户信息 */ @GetMapping("/queryUsersByUsernames") public JSONObject queryUsersByUsernames(String usernames) { return this.sysBaseAPI.queryUsersByUsernames(usernames); } /** * 根据多个部门编码 * * @apiNote 以逗号分隔的方式,返回多个部门信息 */ @GetMapping("/queryDepartsByOrgCodes") public JSONObject queryDepartsByOrgCodes(String orgCodes) { return this.sysBaseAPI.queryDepartsByOrgCodes(orgCodes); } /** * 添加数据日志 * * @param dataLog 数据日志内容 */ @PostMapping("/addDataLog") public void addDataLog(@RequestBody DataLogDTO dataLog) { this.sysBaseAPI.addDataLog(dataLog.getTableName(), dataLog.getDataId(), dataLog.getDataContent()); } /** * 根据业务类型busType及业务busId修改消息已读 */ @GetMapping("/updateAnnouncementReadFlag") public void updateAnnouncementReadFlag(@RequestParam String busType, @RequestParam String busId) { sysBaseAPI.updateAnnouncementReadFlag(busType, busId); } /** * 根据用户账号查询用户信息 */ @GetMapping("/getUserByName") public LoginUser getUserByName(@RequestParam String username) { return sysBaseAPI.getUserByName(username); } }