From 7bcd2fc40312258b6ee73d7a7a5dc92eef15bd3e Mon Sep 17 00:00:00 2001
From: "1378012178@qq.com" <1378012178@qq.com>
Date: Thu, 8 May 2025 16:21:03 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E7=B3=BB=E7=BB=9F=E7=BA=A7=E5=88=AB?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AD=97=E5=85=B8=E5=90=8C=E6=AD=A5=202?=
=?UTF-8?q?=E3=80=81=E8=B0=83=E6=95=B4=E4=B8=9A=E5=8A=A1=E7=B3=BB=E7=BB=9F?=
=?UTF-8?q?mq=E7=9B=91=E5=90=AC=E7=9A=84=E9=98=9F=E5=88=97=EF=BC=9A?=
=?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=9C=BA=E6=9E=84=E5=8A=A8=E6=80=81=E7=94=9F?=
=?UTF-8?q?=E6=88=90=E9=98=9F=E5=88=97=E5=90=8D=E7=A7=B0=E3=80=81key?=
=?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=B9=B6=E7=BB=91=E5=AE=9A=E4=BA=A4=E6=8D=A2?=
=?UTF-8?q?=E6=9C=BA=EF=BC=88=E8=A7=A3=E5=86=B3=E9=98=9F=E5=88=97=E5=90=8D?=
=?UTF-8?q?=E7=A7=B0=E5=86=99=E6=AD=BB=EF=BC=8C=E6=AF=8F=E6=AC=A1=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E4=B8=9A=E5=8A=A1=E7=B3=BB=E7=BB=9F=E9=83=BD=E9=9C=80?=
=?UTF-8?q?=E8=A6=81=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
nursing-unit-common/pom.xml | 5 +
.../java/com/nu/config/RabbitMQConfig.java | 37 -
.../src/main/java/com/nu/dto/StatusMQDto.java | 2 +
.../async/controller/AsyncMainController.java | 9 +-
.../nu/modules/async/entity/AsyncMain.java | 6 +
.../modules/async/mapper/AsyncMainMapper.java | 2 +-
.../async/mapper/xml/AsyncMainMapper.xml | 16 +-
.../async/service/IAsyncMainService.java | 5 +-
.../service/impl/AsyncMainServiceImpl.java | 54 +-
.../ConfigServiceDirectiveController.java | 8 +-
.../listener/DirectiveMQListener.java | 22 +-
.../jeecg/common/system/api/ISysBaseAPI.java | 5 +
.../system/service/impl/SysBaseApiImpl.java | 3199 +++++++++--------
.../service/impl/SysDictServiceImpl.java | 1 +
.../mq/dict/listener/DictMQListener.java | 1 +
15 files changed, 1733 insertions(+), 1639 deletions(-)
diff --git a/nursing-unit-common/pom.xml b/nursing-unit-common/pom.xml
index 995b5fc..d9cc368 100644
--- a/nursing-unit-common/pom.xml
+++ b/nursing-unit-common/pom.xml
@@ -17,6 +17,11 @@
nursing-unit-base-core
2.0.0
+
+ com.nursingunit.boot
+ nu-system-local-api
+ 2.0.0
+
diff --git a/nursing-unit-common/src/main/java/com/nu/config/RabbitMQConfig.java b/nursing-unit-common/src/main/java/com/nu/config/RabbitMQConfig.java
index ec3ff75..0ae0eff 100644
--- a/nursing-unit-common/src/main/java/com/nu/config/RabbitMQConfig.java
+++ b/nursing-unit-common/src/main/java/com/nu/config/RabbitMQConfig.java
@@ -32,43 +32,6 @@ public class RabbitMQConfig {
return new DirectExchange("hldy.fwzl");
}
- // 队列
- @Bean
- public Queue nu001FwzlAsyncQueue() {
- return new Queue("nu001.fwzl.async", true);
- }
- @Bean
- public Queue nu001FwzlStatusQueue() {
- return new Queue("nu001.fwzl.status", true);
- }
- @Bean
- public Queue nu002FwzlAsyncQueue() {
- return new Queue("nu002.fwzl.async", true);
- }
- @Bean
- public Queue nu002FwzlStatusQueue() {
- return new Queue("nu002.fwzl.status", true);
- }
-
- @Bean
- public Binding binding1(Queue nu001FwzlAsyncQueue, DirectExchange fwzlExchange) {
- return BindingBuilder.bind(nu001FwzlAsyncQueue).to(fwzlExchange).with("nu001.fwzl.async");
- }
- @Bean
- public Binding binding2(Queue nu001FwzlStatusQueue, DirectExchange fwzlExchange) {
- return BindingBuilder.bind(nu001FwzlStatusQueue).to(fwzlExchange).with("nu001.fwzl.status");
- }
- @Bean
- public Binding binding3(Queue nu002FwzlAsyncQueue, DirectExchange fwzlExchange) {
- return BindingBuilder.bind(nu002FwzlAsyncQueue).to(fwzlExchange).with("nu002.fwzl.async");
- }
- @Bean
- public Binding binding4(Queue nu002FwzlStatusQueue, DirectExchange fwzlExchange) {
- return BindingBuilder.bind(nu002FwzlStatusQueue).to(fwzlExchange).with("nu002.fwzl.status");
- }
-
-
-
//注册
@Bean
public DirectExchange registerExchange() {
diff --git a/nursing-unit-common/src/main/java/com/nu/dto/StatusMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/StatusMQDto.java
index ecc5a82..c0fe6cd 100644
--- a/nursing-unit-common/src/main/java/com/nu/dto/StatusMQDto.java
+++ b/nursing-unit-common/src/main/java/com/nu/dto/StatusMQDto.java
@@ -16,4 +16,6 @@ public class StatusMQDto {
private String dictId;
private String orgCode;
+ private String orgName;
}
+
diff --git a/nursing-unit-common/src/main/java/com/nu/modules/async/controller/AsyncMainController.java b/nursing-unit-common/src/main/java/com/nu/modules/async/controller/AsyncMainController.java
index 6fe43b4..687a5a7 100644
--- a/nursing-unit-common/src/main/java/com/nu/modules/async/controller/AsyncMainController.java
+++ b/nursing-unit-common/src/main/java/com/nu/modules/async/controller/AsyncMainController.java
@@ -2,6 +2,7 @@ package com.nu.modules.async.controller;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
@@ -35,6 +37,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
@RequestMapping("/asyncmain/asyncMain")
@Slf4j
public class AsyncMainController extends JeecgController {
+
@Autowired
private IAsyncMainService asyncMainService;
@@ -60,7 +63,7 @@ public class AsyncMainController extends JeecgController pageList = asyncMainService.page(page, queryWrapper);
List records = pageList.getRecords();
if (records != null && !records.isEmpty()) {
- records = asyncMainService.pageList(records);
+ records = asyncMainService.pageList(records,asyncMain);
pageList.setRecords(records);
}
return Result.OK(pageList);
@@ -168,4 +171,8 @@ public class AsyncMainController extends JeecgController>> listByType(@RequestBody AsyncMain am){
+ return Result.OK(asyncMainService.listByType(am));
+ }
}
diff --git a/nursing-unit-common/src/main/java/com/nu/modules/async/entity/AsyncMain.java b/nursing-unit-common/src/main/java/com/nu/modules/async/entity/AsyncMain.java
index 3346ae4..35e1ffb 100644
--- a/nursing-unit-common/src/main/java/com/nu/modules/async/entity/AsyncMain.java
+++ b/nursing-unit-common/src/main/java/com/nu/modules/async/entity/AsyncMain.java
@@ -43,6 +43,10 @@ public class AsyncMain implements Serializable {
@Excel(name = "机构编码", width = 15)
@ApiModelProperty(value = "机构编码")
private java.lang.String orgCode;
+ /**机构名称*/
+ @Excel(name = "机构名称", width = 15)
+ @ApiModelProperty(value = "机构名称")
+ private java.lang.String orgName;
/**类型(同步的是什么类型的数据)*/
@Excel(name = "类型(同步的是什么类型的数据)", width = 15)
@ApiModelProperty(value = "类型(同步的是什么类型的数据)")
@@ -67,4 +71,6 @@ public class AsyncMain implements Serializable {
@TableField(exist = false)
private List asyncStatusList;
+ @TableField(exist = false)
+ private List ids;
}
diff --git a/nursing-unit-common/src/main/java/com/nu/modules/async/mapper/AsyncMainMapper.java b/nursing-unit-common/src/main/java/com/nu/modules/async/mapper/AsyncMainMapper.java
index 7ea455e..5c44b4b 100644
--- a/nursing-unit-common/src/main/java/com/nu/modules/async/mapper/AsyncMainMapper.java
+++ b/nursing-unit-common/src/main/java/com/nu/modules/async/mapper/AsyncMainMapper.java
@@ -14,5 +14,5 @@ import java.util.List;
*/
public interface AsyncMainMapper extends BaseMapper {
- List pageList(@Param("pojo") List records);
+ List pageList(@Param("records") List records,@Param("dto") AsyncMain dto);
}
diff --git a/nursing-unit-common/src/main/java/com/nu/modules/async/mapper/xml/AsyncMainMapper.xml b/nursing-unit-common/src/main/java/com/nu/modules/async/mapper/xml/AsyncMainMapper.xml
index 1e80625..48717db 100644
--- a/nursing-unit-common/src/main/java/com/nu/modules/async/mapper/xml/AsyncMainMapper.xml
+++ b/nursing-unit-common/src/main/java/com/nu/modules/async/mapper/xml/AsyncMainMapper.xml
@@ -6,6 +6,7 @@
+
@@ -25,6 +26,7 @@
f.id as id,
f.primary_key as primaryKey,
f.org_code as orgCode,
+ f.org_name as orgName,
f.type as type,
f.descr as descr,
f.create_by as createBy,
@@ -38,10 +40,16 @@
from nu_async_main f
left join nu_async_status z on f.id = z.pkid
- f.id in
-
- #{am.id}
-
+
+ f.id in
+
+ #{am.id}
+
+
+
+ and f.primary_key = #{dto.primaryKey}
+ and f.status = '500'
+
order by f.create_time desc,z.update_time desc
diff --git a/nursing-unit-common/src/main/java/com/nu/modules/async/service/IAsyncMainService.java b/nursing-unit-common/src/main/java/com/nu/modules/async/service/IAsyncMainService.java
index d75fa1d..9ae6fda 100644
--- a/nursing-unit-common/src/main/java/com/nu/modules/async/service/IAsyncMainService.java
+++ b/nursing-unit-common/src/main/java/com/nu/modules/async/service/IAsyncMainService.java
@@ -4,6 +4,7 @@ import com.nu.modules.async.entity.AsyncMain;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
+import java.util.Map;
/**
* @Description: 数据同步主表
@@ -13,5 +14,7 @@ import java.util.List;
*/
public interface IAsyncMainService extends IService {
- List pageList(List records);
+ List pageList(List records, AsyncMain dto);
+
+ Map> listByType(AsyncMain am);
}
diff --git a/nursing-unit-common/src/main/java/com/nu/modules/async/service/impl/AsyncMainServiceImpl.java b/nursing-unit-common/src/main/java/com/nu/modules/async/service/impl/AsyncMainServiceImpl.java
index 1dd4be6..a3773ba 100644
--- a/nursing-unit-common/src/main/java/com/nu/modules/async/service/impl/AsyncMainServiceImpl.java
+++ b/nursing-unit-common/src/main/java/com/nu/modules/async/service/impl/AsyncMainServiceImpl.java
@@ -1,25 +1,73 @@
package com.nu.modules.async.service.impl;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.common.collect.Maps;
+import com.nu.enums.MQStatus;
import com.nu.modules.async.entity.AsyncMain;
import com.nu.modules.async.mapper.AsyncMainMapper;
import com.nu.modules.async.service.IAsyncMainService;
+import org.apache.commons.compress.utils.Lists;
+import org.jeecg.common.system.api.ISysBaseAPI;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
+import java.util.Map;
/**
* @Description: 数据同步主表
* @Author: 张明远
- * @Date: 2025-04-23
+ * @Date: 2025-04-23
* @Version: V1.0
*/
@Service
public class AsyncMainServiceImpl extends ServiceImpl implements IAsyncMainService {
+ @Autowired
+ private ISysBaseAPI sysBaseAPI;
+
@Override
- public List pageList(List records) {
- return baseMapper.pageList(records);
+ public List pageList(List records, AsyncMain dto) {
+ return baseMapper.pageList(records, dto);
+ }
+
+ @Override
+ public Map> listByType(AsyncMain am) {
+ Map> result = Maps.newHashMap();
+ List errorList = Lists.newArrayList();
+ List processingList = Lists.newArrayList();
+ List successList = Lists.newArrayList();
+
+ List depts = sysBaseAPI.queryOpeDept();
+
+ QueryWrapper asyncMainQueryWrapper = new QueryWrapper<>();
+ asyncMainQueryWrapper.eq("primary_key", am.getPrimaryKey());
+ asyncMainQueryWrapper.orderByAsc("org_code");
+ List asyncMains = baseMapper.selectList(asyncMainQueryWrapper);
+ if (asyncMains != null && !asyncMains.isEmpty()) {
+ asyncMains.stream().forEach(a -> {
+ if ((MQStatus.SUCCESS.getCode() + "").equals(a.getStatus())) {
+ successList.add(a);
+ } else {
+ errorList.add(a);
+ }
+ depts.removeIf(dept -> a.getOrgCode().equals(dept.getString("code")));
+ });
+ }
+ depts.forEach(dept -> {
+ AsyncMain asyncMain = new AsyncMain();
+ asyncMain.setOrgCode(dept.getString("code"));
+ asyncMain.setOrgName(dept.getString("name"));
+ asyncMain.setDescr("同步中/待同步");
+ processingList.add(asyncMain);
+ });
+
+ result.put("errorList", errorList);
+ result.put("processingList", processingList);
+ result.put("successList", successList);
+ return result;
}
}
diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java
index e19bdc3..d733b50 100644
--- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java
+++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/servicedirective/controller/ConfigServiceDirectiveController.java
@@ -67,7 +67,7 @@ public class ConfigServiceDirectiveController extends JeecgController> queryPageList(String dataSourceCode,ConfigServiceDirective configServiceDirective,
+ public Result> queryPageList(String dataSourceCode, ConfigServiceDirective configServiceDirective,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
@@ -113,8 +113,9 @@ public class ConfigServiceDirectiveController extends JeecgController async(@RequestBody DirectiveMQDto dto) {
- List dicts = sysBaseAPI.getDictItems("mq_org_queue");
- String queue = dicts.stream().filter(d -> d.getValue().equals(dto.getOrgCode())).findFirst().map(DictModel::getText).orElse(null);
+// List dicts = sysBaseAPI.getDictItems("mq_org_queue");
+// String queue = dicts.stream().filter(d -> d.getValue().equals(dto.getOrgCode())).findFirst().map(DictModel::getText).orElse(null);
+ String queue = dto.getOrgCode() + ".fwzl.async";
if (StringUtils.isNotBlank(queue)) {
//先在数据同步表中插入数据
AsyncMain asyncMain = new AsyncMain();
@@ -167,5 +168,4 @@ public class ConfigServiceDirectiveController extends JeecgController qw = new LambdaQueryWrapper<>();
qw.eq(AsyncStatus::getPkid, dto.getAsyncId());
diff --git a/nursing-unit-system/nu-system-api/nu-system-local-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java b/nursing-unit-system/nu-system-api/nu-system-local-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java
index 092e4e5..94e3406 100644
--- a/nursing-unit-system/nu-system-api/nu-system-local-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java
+++ b/nursing-unit-system/nu-system-api/nu-system-local-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java
@@ -544,4 +544,9 @@ public interface ISysBaseAPI extends CommonAPI {
*/
boolean dictTableWhiteListCheckByDict(String tableOrDictCode, String... fields);
+ /**
+ * 查询各业务机构 编码、名称
+ *
+ */
+ List queryOpeDept();
}
diff --git a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
index ec33261..ca799fd 100644
--- a/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
+++ b/nursing-unit-system/nu-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.system.service.impl;
+import cn.hutool.core.collection.ListUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -10,6 +11,9 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
+import com.google.common.collect.Maps;
+import org.apache.commons.compress.utils.Lists;
+import org.apache.commons.lang3.ArrayUtils;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.modules.message.entity.SysMessageTemplate;
import org.jeecg.modules.message.handle.impl.DdSendMsgHandle;
@@ -83,194 +87,196 @@ import java.util.stream.Collectors;
@Slf4j
@Service
public class SysBaseApiImpl implements ISysBaseAPI {
- /** 当前系统数据库类型 */
- private static String DB_TYPE = "";
+ /**
+ * 当前系统数据库类型
+ */
+ private static String DB_TYPE = "";
- @Autowired
- private ISysMessageTemplateService sysMessageTemplateService;
- @Resource
- private SysUserMapper userMapper;
- @Resource
- private SysUserRoleMapper sysUserRoleMapper;
- @Autowired
- private ISysDepartService sysDepartService;
- @Autowired
- private ISysDictService sysDictService;
- @Resource
- private SysAnnouncementMapper sysAnnouncementMapper;
- @Resource
- private SysAnnouncementSendMapper sysAnnouncementSendMapper;
- @Resource
+ @Autowired
+ private ISysMessageTemplateService sysMessageTemplateService;
+ @Resource
+ private SysUserMapper userMapper;
+ @Resource
+ private SysUserRoleMapper sysUserRoleMapper;
+ @Autowired
+ private ISysDepartService sysDepartService;
+ @Autowired
+ private ISysDictService sysDictService;
+ @Resource
+ private SysAnnouncementMapper sysAnnouncementMapper;
+ @Resource
+ private SysAnnouncementSendMapper sysAnnouncementSendMapper;
+ @Resource
private WebSocket webSocket;
- @Resource
- private SysRoleMapper roleMapper;
- @Resource
- private SysDepartMapper departMapper;
- @Resource
- private SysCategoryMapper categoryMapper;
- @Autowired
- private ISysDataSourceService dataSourceService;
- @Autowired
- private ISysUserDepartService sysUserDepartService;
- @Resource
- private SysPermissionMapper sysPermissionMapper;
- @Autowired
- private ISysPermissionDataRuleService sysPermissionDataRuleService;
- @Autowired
- private ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
- @Autowired
- private ThirdAppDingtalkServiceImpl dingtalkService;
- @Autowired
- ISysCategoryService sysCategoryService;
- @Autowired
- private ISysUserService sysUserService;
- @Autowired
- private ISysDataLogService sysDataLogService;
- @Autowired
- private ISysRoleService sysRoleService;
- @Autowired
- private ISysUserTenantService sysUserTenantService;
+ @Resource
+ private SysRoleMapper roleMapper;
+ @Resource
+ private SysDepartMapper departMapper;
+ @Resource
+ private SysCategoryMapper categoryMapper;
+ @Autowired
+ private ISysDataSourceService dataSourceService;
+ @Autowired
+ private ISysUserDepartService sysUserDepartService;
+ @Resource
+ private SysPermissionMapper sysPermissionMapper;
+ @Autowired
+ private ISysPermissionDataRuleService sysPermissionDataRuleService;
+ @Autowired
+ private ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
+ @Autowired
+ private ThirdAppDingtalkServiceImpl dingtalkService;
+ @Autowired
+ ISysCategoryService sysCategoryService;
+ @Autowired
+ private ISysUserService sysUserService;
+ @Autowired
+ private ISysDataLogService sysDataLogService;
+ @Autowired
+ private ISysRoleService sysRoleService;
+ @Autowired
+ private ISysUserTenantService sysUserTenantService;
- @Autowired
- private ISysUserRoleService sysUserRoleService;
+ @Autowired
+ private ISysUserRoleService sysUserRoleService;
- @Autowired
- private ISysUserPositionService sysUserPositionService;
+ @Autowired
+ private ISysUserPositionService sysUserPositionService;
- @Autowired
- private IDictTableWhiteListHandler dictTableWhiteListHandler;
+ @Autowired
+ private IDictTableWhiteListHandler dictTableWhiteListHandler;
- @Override
- //@SensitiveDecode
- public LoginUser getUserByName(String username) {
- //update-begin-author:taoyan date:2022-6-6 for: VUEN-1276 【v3流程图】测试bug 1、通过我发起的流程或者流程实例,查看历史,流程图预览问题
- if (oConvertUtils.isEmpty(username)) {
- return null;
- }
- //update-end-author:taoyan date:2022-6-6 for: VUEN-1276 【v3流程图】测试bug 1、通过我发起的流程或者流程实例,查看历史,流程图预览问题
- LoginUser user = sysUserService.getEncodeUserInfo(username);
+ @Override
+ //@SensitiveDecode
+ public LoginUser getUserByName(String username) {
+ //update-begin-author:taoyan date:2022-6-6 for: VUEN-1276 【v3流程图】测试bug 1、通过我发起的流程或者流程实例,查看历史,流程图预览问题
+ if (oConvertUtils.isEmpty(username)) {
+ return null;
+ }
+ //update-end-author:taoyan date:2022-6-6 for: VUEN-1276 【v3流程图】测试bug 1、通过我发起的流程或者流程实例,查看历史,流程图预览问题
+ LoginUser user = sysUserService.getEncodeUserInfo(username);
- //相同类中方法间调用时脱敏解密 Aop会失效,获取用户信息太重要,此处采用原生解密方法,不采用@SensitiveDecodeAble注解方式
- try {
- SensitiveInfoUtil.handlerObject(user, false);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
+ //相同类中方法间调用时脱敏解密 Aop会失效,获取用户信息太重要,此处采用原生解密方法,不采用@SensitiveDecodeAble注解方式
+ try {
+ SensitiveInfoUtil.handlerObject(user, false);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
- return user;
- }
+ return user;
+ }
- @Override
- @Cacheable(cacheNames=CommonConstant.SYS_USER_ID_MAPPING_CACHE, key="#username")
- public String getUserIdByName(String username) {
- if (oConvertUtils.isEmpty(username)) {
- return null;
- }
- String userId = userMapper.getUserIdByName(username);
- return userId;
- }
+ @Override
+ @Cacheable(cacheNames = CommonConstant.SYS_USER_ID_MAPPING_CACHE, key = "#username")
+ public String getUserIdByName(String username) {
+ if (oConvertUtils.isEmpty(username)) {
+ return null;
+ }
+ String userId = userMapper.getUserIdByName(username);
+ return userId;
+ }
- @Override
- public String translateDictFromTable(String table, String text, String code, String key) {
- return sysDictService.queryTableDictTextByKey(table, text, code, key);
- }
+ @Override
+ public String translateDictFromTable(String table, String text, String code, String key) {
+ return sysDictService.queryTableDictTextByKey(table, text, code, key);
+ }
- @Override
- public String translateDict(String code, String key) {
- return sysDictService.queryDictTextByKey(code, key);
- }
+ @Override
+ public String translateDict(String code, String key) {
+ return sysDictService.queryDictTextByKey(code, key);
+ }
- @Override
- public List queryPermissionDataRule(String component, String requestPath, String username) {
- List currentSyspermission = null;
- if(oConvertUtils.isNotEmpty(component)) {
- //1.通过注解属性pageComponent 获取菜单
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- query.eq(SysPermission::getDelFlag,0);
- query.eq(SysPermission::getComponent, component);
- currentSyspermission = sysPermissionMapper.selectList(query);
- }else {
- //1.直接通过前端请求地址查询菜单
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- query.eq(SysPermission::getMenuType,2);
- query.eq(SysPermission::getDelFlag,0);
+ @Override
+ public List queryPermissionDataRule(String component, String requestPath, String username) {
+ List currentSyspermission = null;
+ if (oConvertUtils.isNotEmpty(component)) {
+ //1.通过注解属性pageComponent 获取菜单
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ query.eq(SysPermission::getDelFlag, 0);
+ query.eq(SysPermission::getComponent, component);
+ currentSyspermission = sysPermissionMapper.selectList(query);
+ } else {
+ //1.直接通过前端请求地址查询菜单
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ query.eq(SysPermission::getMenuType, 2);
+ query.eq(SysPermission::getDelFlag, 0);
- //update-begin-author:taoyan date:2023-2-21 for: 解决参数顺序问题
- List allPossiblePaths = this.getOnlinePossiblePaths(requestPath);
- log.info("获取的菜单地址= {}", allPossiblePaths.toString());
- if(allPossiblePaths.size()==1){
- query.eq(SysPermission::getUrl, requestPath);
- }else{
- query.in(SysPermission::getUrl, allPossiblePaths);
- }
- //update-end-author:taoyan date:2023-2-21 for: 解决参数顺序问题
+ //update-begin-author:taoyan date:2023-2-21 for: 解决参数顺序问题
+ List allPossiblePaths = this.getOnlinePossiblePaths(requestPath);
+ log.info("获取的菜单地址= {}", allPossiblePaths.toString());
+ if (allPossiblePaths.size() == 1) {
+ query.eq(SysPermission::getUrl, requestPath);
+ } else {
+ query.in(SysPermission::getUrl, allPossiblePaths);
+ }
+ //update-end-author:taoyan date:2023-2-21 for: 解决参数顺序问题
- currentSyspermission = sysPermissionMapper.selectList(query);
- //2.未找到 再通过自定义匹配URL 获取菜单
- if(currentSyspermission==null || currentSyspermission.size()==0) {
- //通过自定义URL匹配规则 获取菜单(实现通过菜单配置数据权限规则,实际上针对获取数据接口进行数据规则控制)
- String userMatchUrl = UrlMatchEnum.getMatchResultByUrl(requestPath);
- LambdaQueryWrapper queryQserMatch = new LambdaQueryWrapper();
- // update-begin-author:taoyan date:20211027 for: online菜单如果配置成一级菜单 权限查询不到 取消menuType = 1
- //queryQserMatch.eq(SysPermission::getMenuType, 1);
- // update-end-author:taoyan date:20211027 for: online菜单如果配置成一级菜单 权限查询不到 取消menuType = 1
- queryQserMatch.eq(SysPermission::getDelFlag, 0);
- queryQserMatch.eq(SysPermission::getUrl, userMatchUrl);
- if(oConvertUtils.isNotEmpty(userMatchUrl)){
- currentSyspermission = sysPermissionMapper.selectList(queryQserMatch);
- }
- }
- //3.未找到 再通过正则匹配获取菜单
- if(currentSyspermission==null || currentSyspermission.size()==0) {
- //通过正则匹配权限配置
- String regUrl = getRegexpUrl(requestPath);
- if(regUrl!=null) {
- currentSyspermission = sysPermissionMapper.selectList(new LambdaQueryWrapper().eq(SysPermission::getMenuType,2).eq(SysPermission::getUrl, regUrl).eq(SysPermission::getDelFlag,0));
- }
- }
- }
- if(currentSyspermission!=null && currentSyspermission.size()>0){
- List dataRules = new ArrayList();
- for (SysPermission sysPermission : currentSyspermission) {
- // update-begin--Author:scott Date:20191119 for:数据权限规则编码不规范,项目存在相同包名和类名 #722
- List temp = sysPermissionDataRuleService.queryPermissionDataRules(username, sysPermission.getId());
- if(temp!=null && temp.size()>0) {
- //dataRules.addAll(temp);
- dataRules = oConvertUtils.entityListToModelList(temp,SysPermissionDataRuleModel.class);
- }
- // update-end--Author:scott Date:20191119 for:数据权限规则编码不规范,项目存在相同包名和类名 #722
- }
- return dataRules;
- }
- return null;
- }
+ currentSyspermission = sysPermissionMapper.selectList(query);
+ //2.未找到 再通过自定义匹配URL 获取菜单
+ if (currentSyspermission == null || currentSyspermission.size() == 0) {
+ //通过自定义URL匹配规则 获取菜单(实现通过菜单配置数据权限规则,实际上针对获取数据接口进行数据规则控制)
+ String userMatchUrl = UrlMatchEnum.getMatchResultByUrl(requestPath);
+ LambdaQueryWrapper queryQserMatch = new LambdaQueryWrapper();
+ // update-begin-author:taoyan date:20211027 for: online菜单如果配置成一级菜单 权限查询不到 取消menuType = 1
+ //queryQserMatch.eq(SysPermission::getMenuType, 1);
+ // update-end-author:taoyan date:20211027 for: online菜单如果配置成一级菜单 权限查询不到 取消menuType = 1
+ queryQserMatch.eq(SysPermission::getDelFlag, 0);
+ queryQserMatch.eq(SysPermission::getUrl, userMatchUrl);
+ if (oConvertUtils.isNotEmpty(userMatchUrl)) {
+ currentSyspermission = sysPermissionMapper.selectList(queryQserMatch);
+ }
+ }
+ //3.未找到 再通过正则匹配获取菜单
+ if (currentSyspermission == null || currentSyspermission.size() == 0) {
+ //通过正则匹配权限配置
+ String regUrl = getRegexpUrl(requestPath);
+ if (regUrl != null) {
+ currentSyspermission = sysPermissionMapper.selectList(new LambdaQueryWrapper().eq(SysPermission::getMenuType, 2).eq(SysPermission::getUrl, regUrl).eq(SysPermission::getDelFlag, 0));
+ }
+ }
+ }
+ if (currentSyspermission != null && currentSyspermission.size() > 0) {
+ List dataRules = new ArrayList();
+ for (SysPermission sysPermission : currentSyspermission) {
+ // update-begin--Author:scott Date:20191119 for:数据权限规则编码不规范,项目存在相同包名和类名 #722
+ List temp = sysPermissionDataRuleService.queryPermissionDataRules(username, sysPermission.getId());
+ if (temp != null && temp.size() > 0) {
+ //dataRules.addAll(temp);
+ dataRules = oConvertUtils.entityListToModelList(temp, SysPermissionDataRuleModel.class);
+ }
+ // update-end--Author:scott Date:20191119 for:数据权限规则编码不规范,项目存在相同包名和类名 #722
+ }
+ return dataRules;
+ }
+ return null;
+ }
- /**
- * 匹配前端传过来的地址 匹配成功返回正则地址
- * AntPathMatcher匹配地址
- *()* 匹配0个或多个字符
- *()**匹配0个或多个目录
- */
- private String getRegexpUrl(String url) {
- List list = sysPermissionMapper.queryPermissionUrlWithStar();
- if(list!=null && list.size()>0) {
- for (String p : list) {
- PathMatcher matcher = new AntPathMatcher();
- if(matcher.match(p, url)) {
- return p;
- }
- }
- }
- return null;
- }
+ /**
+ * 匹配前端传过来的地址 匹配成功返回正则地址
+ * AntPathMatcher匹配地址
+ * ()* 匹配0个或多个字符
+ * ()**匹配0个或多个目录
+ */
+ private String getRegexpUrl(String url) {
+ List list = sysPermissionMapper.queryPermissionUrlWithStar();
+ if (list != null && list.size() > 0) {
+ for (String p : list) {
+ PathMatcher matcher = new AntPathMatcher();
+ if (matcher.match(p, url)) {
+ return p;
+ }
+ }
+ }
+ return null;
+ }
- @Override
- public SysUserCacheInfo getCacheUser(String username) {
- SysUserCacheInfo info = new SysUserCacheInfo();
- info.setOneDepart(true);
- LoginUser user = this.getUserByName(username);
+ @Override
+ public SysUserCacheInfo getCacheUser(String username) {
+ SysUserCacheInfo info = new SysUserCacheInfo();
+ info.setOneDepart(true);
+ LoginUser user = this.getUserByName(username);
// try {
// //相同类中方法间调用时脱敏@SensitiveDecodeAble解密 Aop失效处理
@@ -279,508 +285,509 @@ public class SysBaseApiImpl implements ISysBaseAPI {
// e.printStackTrace();
// }
- if(user!=null) {
- info.setSysUserId(user.getId());
- info.setSysUserCode(user.getUsername());
- info.setSysUserName(user.getRealname());
- info.setSysOrgCode(user.getOrgCode());
- info.setSysOrgId(user.getOrgId());
- info.setSysRoleCode(user.getRoleCode());
- }else{
- return null;
- }
- //多部门支持in查询
- List list = departMapper.queryUserDeparts(user.getId());
- List sysMultiOrgCode = new ArrayList();
- if(list==null || list.size()==0) {
- //当前用户无部门
- //sysMultiOrgCode.add("0");
- }else if(list.size()==1) {
- sysMultiOrgCode.add(list.get(0).getOrgCode());
- }else {
- info.setOneDepart(false);
- for (SysDepart dpt : list) {
- sysMultiOrgCode.add(dpt.getOrgCode());
- }
- }
- info.setSysMultiOrgCode(sysMultiOrgCode);
- return info;
- }
+ if (user != null) {
+ info.setSysUserId(user.getId());
+ info.setSysUserCode(user.getUsername());
+ info.setSysUserName(user.getRealname());
+ info.setSysOrgCode(user.getOrgCode());
+ info.setSysOrgId(user.getOrgId());
+ info.setSysRoleCode(user.getRoleCode());
+ } else {
+ return null;
+ }
+ //多部门支持in查询
+ List list = departMapper.queryUserDeparts(user.getId());
+ List sysMultiOrgCode = new ArrayList();
+ if (list == null || list.size() == 0) {
+ //当前用户无部门
+ //sysMultiOrgCode.add("0");
+ } else if (list.size() == 1) {
+ sysMultiOrgCode.add(list.get(0).getOrgCode());
+ } else {
+ info.setOneDepart(false);
+ for (SysDepart dpt : list) {
+ sysMultiOrgCode.add(dpt.getOrgCode());
+ }
+ }
+ info.setSysMultiOrgCode(sysMultiOrgCode);
+ return info;
+ }
- @Override
- public LoginUser getUserById(String id) {
- if(oConvertUtils.isEmpty(id)) {
- return null;
- }
- LoginUser loginUser = new LoginUser();
- SysUser sysUser = userMapper.selectById(id);
- if(sysUser==null) {
- return null;
- }
- BeanUtils.copyProperties(sysUser, loginUser);
- //去掉用户敏感信息
- loginUser.setPassword(null);
- loginUser.setRelTenantIds(null);
- loginUser.setDepartIds(null);
- return loginUser;
- }
+ @Override
+ public LoginUser getUserById(String id) {
+ if (oConvertUtils.isEmpty(id)) {
+ return null;
+ }
+ LoginUser loginUser = new LoginUser();
+ SysUser sysUser = userMapper.selectById(id);
+ if (sysUser == null) {
+ return null;
+ }
+ BeanUtils.copyProperties(sysUser, loginUser);
+ //去掉用户敏感信息
+ loginUser.setPassword(null);
+ loginUser.setRelTenantIds(null);
+ loginUser.setDepartIds(null);
+ return loginUser;
+ }
- @Override
- public List getRolesByUsername(String username) {
- return sysUserRoleMapper.getRoleByUserName(username);
- }
+ @Override
+ public List getRolesByUsername(String username) {
+ return sysUserRoleMapper.getRoleByUserName(username);
+ }
- @Override
- public List getRolesByUserId(String userId) {
- return sysUserRoleMapper.getRoleCodeByUserId(userId);
- }
+ @Override
+ public List getRolesByUserId(String userId) {
+ return sysUserRoleMapper.getRoleCodeByUserId(userId);
+ }
- @Override
- public List getDepartIdsByUsername(String username) {
- List list = sysDepartService.queryDepartsByUsername(username);
- List result = new ArrayList<>(list.size());
- for (SysDepart depart : list) {
- result.add(depart.getId());
- }
- return result;
- }
+ @Override
+ public List getDepartIdsByUsername(String username) {
+ List list = sysDepartService.queryDepartsByUsername(username);
+ List result = new ArrayList<>(list.size());
+ for (SysDepart depart : list) {
+ result.add(depart.getId());
+ }
+ return result;
+ }
- @Override
- public List getDepartIdsByUserId(String userId) {
- return sysDepartService.queryDepartsByUserId(userId);
- }
+ @Override
+ public List getDepartIdsByUserId(String userId) {
+ return sysDepartService.queryDepartsByUserId(userId);
+ }
- @Override
- public Set getDepartParentIdsByUsername(String username) {
- List list = sysDepartService.queryDepartsByUsername(username);
- Set result = new HashSet<>(list.size());
- for (SysDepart depart : list) {
- result.add(depart.getParentId());
- }
- return result;
- }
+ @Override
+ public Set getDepartParentIdsByUsername(String username) {
+ List list = sysDepartService.queryDepartsByUsername(username);
+ Set result = new HashSet<>(list.size());
+ for (SysDepart depart : list) {
+ result.add(depart.getParentId());
+ }
+ return result;
+ }
- @Override
- public Set getDepartParentIdsByDepIds(Set depIds) {
- LambdaQueryWrapper departQuery = new LambdaQueryWrapper().in(SysDepart::getId, depIds);
- List departList = departMapper.selectList(departQuery);
+ @Override
+ public Set getDepartParentIdsByDepIds(Set depIds) {
+ LambdaQueryWrapper departQuery = new LambdaQueryWrapper().in(SysDepart::getId, depIds);
+ List departList = departMapper.selectList(departQuery);
- if(CollectionUtils.isEmpty(departList)){
- return null;
- }
- Set parentIds = departList.stream()
- .map(SysDepart::getParentId)
- .collect(Collectors.toSet());
- return parentIds;
- }
+ if (CollectionUtils.isEmpty(departList)) {
+ return null;
+ }
+ Set parentIds = departList.stream()
+ .map(SysDepart::getParentId)
+ .collect(Collectors.toSet());
+ return parentIds;
+ }
- @Override
- public List getDepartNamesByUsername(String username) {
- List list = sysDepartService.queryDepartsByUsername(username);
- List result = new ArrayList<>(list.size());
- for (SysDepart depart : list) {
- result.add(depart.getDepartName());
- }
- return result;
- }
+ @Override
+ public List getDepartNamesByUsername(String username) {
+ List list = sysDepartService.queryDepartsByUsername(username);
+ List result = new ArrayList<>(list.size());
+ for (SysDepart depart : list) {
+ result.add(depart.getDepartName());
+ }
+ return result;
+ }
- @Override
- public DictModel getParentDepartId(String departId) {
- SysDepart depart = departMapper.getParentDepartId(departId);
- DictModel model = new DictModel(depart.getId(),depart.getParentId());
- return model;
- }
+ @Override
+ public DictModel getParentDepartId(String departId) {
+ SysDepart depart = departMapper.getParentDepartId(departId);
+ DictModel model = new DictModel(depart.getId(), depart.getParentId());
+ return model;
+ }
- @Override
- @Cacheable(value = CacheConstant.SYS_DICT_CACHE,key = "#code", unless = "#result == null ")
- public List queryDictItemsByCode(String code) {
- return sysDictService.queryDictItemsByCode(code);
- }
+ @Override
+ @Cacheable(value = CacheConstant.SYS_DICT_CACHE, key = "#code", unless = "#result == null ")
+ public List queryDictItemsByCode(String code) {
+ return sysDictService.queryDictItemsByCode(code);
+ }
- @Override
- @Cacheable(value = CacheConstant.SYS_ENABLE_DICT_CACHE,key = "#code", unless = "#result == null ")
- public List queryEnableDictItemsByCode(String code) {
- return sysDictService.queryEnableDictItemsByCode(code);
- }
+ @Override
+ @Cacheable(value = CacheConstant.SYS_ENABLE_DICT_CACHE, key = "#code", unless = "#result == null ")
+ public List queryEnableDictItemsByCode(String code) {
+ return sysDictService.queryEnableDictItemsByCode(code);
+ }
- @Override
- public List queryTableDictItemsByCode(String tableFilterSql, String text, String code) {
- //【Online+系统】字典表加权限控制机制逻辑,想法不错 LOWCOD-799
- if(tableFilterSql.indexOf(SymbolConstant.SYS_VAR_PREFIX)>=0){
- tableFilterSql = QueryGenerator.getSqlRuleValue(tableFilterSql);
- }
- return sysDictService.queryTableDictItemsByCode(tableFilterSql, text, code);
- }
+ @Override
+ public List queryTableDictItemsByCode(String tableFilterSql, String text, String code) {
+ //【Online+系统】字典表加权限控制机制逻辑,想法不错 LOWCOD-799
+ if (tableFilterSql.indexOf(SymbolConstant.SYS_VAR_PREFIX) >= 0) {
+ tableFilterSql = QueryGenerator.getSqlRuleValue(tableFilterSql);
+ }
+ return sysDictService.queryTableDictItemsByCode(tableFilterSql, text, code);
+ }
- @Override
- public List queryAllDepartBackDictModel() {
- return sysDictService.queryAllDepartBackDictModel();
- }
+ @Override
+ public List queryAllDepartBackDictModel() {
+ return sysDictService.queryAllDepartBackDictModel();
+ }
- @Override
- public void sendSysAnnouncement(MessageDTO message) {
- this.sendSysAnnouncement(message.getFromUser(),
- message.getToUser(),
- message.getTitle(),
- message.getContent(),
- message.getCategory());
- try {
- // 同步发送第三方APP消息
- wechatEnterpriseService.sendMessage(message, true);
- dingtalkService.sendMessage(message, true);
- } catch (Exception e) {
- log.error("同步发送第三方APP消息失败!", e);
- }
- }
+ @Override
+ public void sendSysAnnouncement(MessageDTO message) {
+ this.sendSysAnnouncement(message.getFromUser(),
+ message.getToUser(),
+ message.getTitle(),
+ message.getContent(),
+ message.getCategory());
+ try {
+ // 同步发送第三方APP消息
+ wechatEnterpriseService.sendMessage(message, true);
+ dingtalkService.sendMessage(message, true);
+ } catch (Exception e) {
+ log.error("同步发送第三方APP消息失败!", e);
+ }
+ }
- @Override
- public void sendBusAnnouncement(BusMessageDTO message) {
- sendBusAnnouncement(message.getFromUser(),
- message.getToUser(),
- message.getTitle(),
- message.getContent(),
- message.getCategory(),
- message.getBusType(),
- message.getBusId());
- try {
- // 同步发送第三方APP消息
- wechatEnterpriseService.sendMessage(message, true);
- dingtalkService.sendMessage(message, true);
- } catch (Exception e) {
- log.error("同步发送第三方APP消息失败!", e);
- }
- }
+ @Override
+ public void sendBusAnnouncement(BusMessageDTO message) {
+ sendBusAnnouncement(message.getFromUser(),
+ message.getToUser(),
+ message.getTitle(),
+ message.getContent(),
+ message.getCategory(),
+ message.getBusType(),
+ message.getBusId());
+ try {
+ // 同步发送第三方APP消息
+ wechatEnterpriseService.sendMessage(message, true);
+ dingtalkService.sendMessage(message, true);
+ } catch (Exception e) {
+ log.error("同步发送第三方APP消息失败!", e);
+ }
+ }
- @Override
- public void sendTemplateAnnouncement(TemplateMessageDTO message) {
- String templateCode = message.getTemplateCode();
- String title = message.getTitle();
- Map tmplateParam = message.getTemplateParam();
- String fromUser = message.getFromUser();
- String toUser = message.getToUser();
+ @Override
+ public void sendTemplateAnnouncement(TemplateMessageDTO message) {
+ String templateCode = message.getTemplateCode();
+ String title = message.getTitle();
+ Map tmplateParam = message.getTemplateParam();
+ String fromUser = message.getFromUser();
+ String toUser = message.getToUser();
- List sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
- if(sysSmsTemplates==null||sysSmsTemplates.size()==0){
- throw new JeecgBootException("消息模板不存在,模板编码:"+templateCode);
- }
- SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
- //模板标题
- title = title==null?sysSmsTemplate.getTemplateName():title;
- //模板内容
- String content = sysSmsTemplate.getTemplateContent();
- if(tmplateParam!=null) {
- for (Map.Entry entry : tmplateParam.entrySet()) {
- String str = "${" + entry.getKey() + "}";
- if(oConvertUtils.isNotEmpty(title)){
- title = title.replace(str, entry.getValue());
- }
- content = content.replace(str, entry.getValue());
- }
- }
- String mobileOpenUrl = null;
- if(tmplateParam!=null && oConvertUtils.isNotEmpty(tmplateParam.get(CommonConstant.MSG_HREF_URL))){
- mobileOpenUrl = tmplateParam.get(CommonConstant.MSG_HREF_URL);
- }
- SysAnnouncement announcement = new SysAnnouncement();
- announcement.setTitile(title);
- announcement.setMsgContent(content);
- announcement.setSender(fromUser);
- announcement.setPriority(CommonConstant.PRIORITY_M);
- announcement.setMsgType(CommonConstant.MSG_TYPE_UESR);
- announcement.setSendStatus(CommonConstant.HAS_SEND);
- announcement.setSendTime(new Date());
- announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2);
- announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
- sysAnnouncementMapper.insert(announcement);
- // 2.插入用户通告阅读标记表记录
- String userId = toUser;
- String[] userIds = userId.split(",");
- String anntId = announcement.getId();
- for(int i=0;i sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
+ if (sysSmsTemplates == null || sysSmsTemplates.size() == 0) {
+ throw new JeecgBootException("消息模板不存在,模板编码:" + templateCode);
+ }
+ SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
+ //模板标题
+ title = title == null ? sysSmsTemplate.getTemplateName() : title;
+ //模板内容
+ String content = sysSmsTemplate.getTemplateContent();
+ if (tmplateParam != null) {
+ for (Map.Entry entry : tmplateParam.entrySet()) {
+ String str = "${" + entry.getKey() + "}";
+ if (oConvertUtils.isNotEmpty(title)) {
+ title = title.replace(str, entry.getValue());
+ }
+ content = content.replace(str, entry.getValue());
+ }
+ }
+ String mobileOpenUrl = null;
+ if (tmplateParam != null && oConvertUtils.isNotEmpty(tmplateParam.get(CommonConstant.MSG_HREF_URL))) {
+ mobileOpenUrl = tmplateParam.get(CommonConstant.MSG_HREF_URL);
+ }
+ SysAnnouncement announcement = new SysAnnouncement();
+ announcement.setTitile(title);
+ announcement.setMsgContent(content);
+ announcement.setSender(fromUser);
+ announcement.setPriority(CommonConstant.PRIORITY_M);
+ announcement.setMsgType(CommonConstant.MSG_TYPE_UESR);
+ announcement.setSendStatus(CommonConstant.HAS_SEND);
+ announcement.setSendTime(new Date());
+ announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2);
+ announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
+ sysAnnouncementMapper.insert(announcement);
+ // 2.插入用户通告阅读标记表记录
+ String userId = toUser;
+ String[] userIds = userId.split(",");
+ String anntId = announcement.getId();
+ for (int i = 0; i < userIds.length; i++) {
+ if (oConvertUtils.isNotEmpty(userIds[i])) {
+ SysUser sysUser = userMapper.getUserByName(userIds[i]);
+ if (sysUser == null) {
+ continue;
+ }
+ SysAnnouncementSend announcementSend = new SysAnnouncementSend();
+ announcementSend.setAnntId(anntId);
+ announcementSend.setUserId(sysUser.getId());
+ announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
+ sysAnnouncementSendMapper.insert(announcementSend);
+ JSONObject obj = new JSONObject();
+ obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER);
+ obj.put(WebsocketConst.MSG_USER_ID, sysUser.getId());
+ obj.put(WebsocketConst.MSG_ID, announcement.getId());
+ obj.put(WebsocketConst.MSG_TXT, announcement.getTitile());
+ webSocket.sendMessage(sysUser.getId(), obj.toJSONString());
+ }
+ }
+ try {
+ // 同步企业微信、钉钉的消息通知
+ dingtalkService.sendActionCardMessage(announcement, mobileOpenUrl, true);
+ wechatEnterpriseService.sendTextCardMessage(announcement, true);
+ } catch (Exception e) {
+ log.error("同步发送第三方APP消息失败!", e);
+ }
- }
+ }
- @Override
- public void sendBusTemplateAnnouncement(BusTemplateMessageDTO message) {
- String templateCode = message.getTemplateCode();
- String title = message.getTitle();
- Map tmplateParam = message.getTemplateParam();
- String fromUser = message.getFromUser();
- String toUser = message.getToUser();
- String busId = message.getBusId();
- String busType = message.getBusType();
+ @Override
+ public void sendBusTemplateAnnouncement(BusTemplateMessageDTO message) {
+ String templateCode = message.getTemplateCode();
+ String title = message.getTitle();
+ Map tmplateParam = message.getTemplateParam();
+ String fromUser = message.getFromUser();
+ String toUser = message.getToUser();
+ String busId = message.getBusId();
+ String busType = message.getBusType();
- List sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
- if(sysSmsTemplates==null||sysSmsTemplates.size()==0){
- throw new JeecgBootException("消息模板不存在,模板编码:"+templateCode);
- }
- SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
- //模板标题
- title = title==null?sysSmsTemplate.getTemplateName():title;
- //模板内容
- String content = sysSmsTemplate.getTemplateContent();
- if(tmplateParam!=null) {
- for (Map.Entry entry : tmplateParam.entrySet()) {
- String str = "${" + entry.getKey() + "}";
- if (entry.getValue() != null) {
- title = title.replace(str, entry.getValue());
- content = content.replace(str, entry.getValue());
- }
- }
- }
- SysAnnouncement announcement = new SysAnnouncement();
- announcement.setTitile(title);
- announcement.setMsgContent(content);
- announcement.setSender(fromUser);
- announcement.setPriority(CommonConstant.PRIORITY_M);
- announcement.setMsgType(CommonConstant.MSG_TYPE_UESR);
- announcement.setSendStatus(CommonConstant.HAS_SEND);
- announcement.setSendTime(new Date());
+ List sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
+ if (sysSmsTemplates == null || sysSmsTemplates.size() == 0) {
+ throw new JeecgBootException("消息模板不存在,模板编码:" + templateCode);
+ }
+ SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
+ //模板标题
+ title = title == null ? sysSmsTemplate.getTemplateName() : title;
+ //模板内容
+ String content = sysSmsTemplate.getTemplateContent();
+ if (tmplateParam != null) {
+ for (Map.Entry entry : tmplateParam.entrySet()) {
+ String str = "${" + entry.getKey() + "}";
+ if (entry.getValue() != null) {
+ title = title.replace(str, entry.getValue());
+ content = content.replace(str, entry.getValue());
+ }
+ }
+ }
+ SysAnnouncement announcement = new SysAnnouncement();
+ announcement.setTitile(title);
+ announcement.setMsgContent(content);
+ announcement.setSender(fromUser);
+ announcement.setPriority(CommonConstant.PRIORITY_M);
+ announcement.setMsgType(CommonConstant.MSG_TYPE_UESR);
+ announcement.setSendStatus(CommonConstant.HAS_SEND);
+ announcement.setSendTime(new Date());
- if(tmplateParam!=null && oConvertUtils.isNotEmpty(tmplateParam.get(CommonSendStatus.MSG_ABSTRACT_JSON))){
- announcement.setMsgAbstract(tmplateParam.get(CommonSendStatus.MSG_ABSTRACT_JSON));
- }
- String mobileOpenUrl = null;
- if(tmplateParam!=null && oConvertUtils.isNotEmpty(tmplateParam.get(CommonConstant.MSG_HREF_URL))){
- mobileOpenUrl = tmplateParam.get(CommonConstant.MSG_HREF_URL);
- }
+ if (tmplateParam != null && oConvertUtils.isNotEmpty(tmplateParam.get(CommonSendStatus.MSG_ABSTRACT_JSON))) {
+ announcement.setMsgAbstract(tmplateParam.get(CommonSendStatus.MSG_ABSTRACT_JSON));
+ }
+ String mobileOpenUrl = null;
+ if (tmplateParam != null && oConvertUtils.isNotEmpty(tmplateParam.get(CommonConstant.MSG_HREF_URL))) {
+ mobileOpenUrl = tmplateParam.get(CommonConstant.MSG_HREF_URL);
+ }
- announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2);
- announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
- announcement.setBusId(busId);
- announcement.setBusType(busType);
- announcement.setOpenType(SysAnnmentTypeEnum.getByType(busType).getOpenType());
- announcement.setOpenPage(SysAnnmentTypeEnum.getByType(busType).getOpenPage());
- sysAnnouncementMapper.insert(announcement);
- // 2.插入用户通告阅读标记表记录
- String userId = toUser;
- String[] userIds = userId.split(",");
- String anntId = announcement.getId();
- for(int i=0;i map = templateDTO.getTemplateParam();
- List sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
- if(sysSmsTemplates==null||sysSmsTemplates.size()==0){
- throw new JeecgBootException("消息模板不存在,模板编码:"+templateCode);
- }
- SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
- //模板内容
- String content = sysSmsTemplate.getTemplateContent();
- if(map!=null) {
- for (Map.Entry entry : map.entrySet()) {
- String str = "${" + entry.getKey() + "}";
- content = content.replace(str, entry.getValue());
- }
- }
- return content;
- }
+ @Override
+ public String parseTemplateByCode(TemplateDTO templateDTO) {
+ String templateCode = templateDTO.getTemplateCode();
+ Map map = templateDTO.getTemplateParam();
+ List sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
+ if (sysSmsTemplates == null || sysSmsTemplates.size() == 0) {
+ throw new JeecgBootException("消息模板不存在,模板编码:" + templateCode);
+ }
+ SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
+ //模板内容
+ String content = sysSmsTemplate.getTemplateContent();
+ if (map != null) {
+ for (Map.Entry entry : map.entrySet()) {
+ String str = "${" + entry.getKey() + "}";
+ content = content.replace(str, entry.getValue());
+ }
+ }
+ return content;
+ }
- @Override
- public void updateSysAnnounReadFlag(String busType, String busId) {
- SysAnnouncement announcement = sysAnnouncementMapper.selectOne(new QueryWrapper().eq("bus_type",busType).eq("bus_id",busId));
- if(announcement != null){
- LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
- String userId = sysUser.getId();
- LambdaUpdateWrapper updateWrapper = new UpdateWrapper().lambda();
- updateWrapper.set(SysAnnouncementSend::getReadFlag, CommonConstant.HAS_READ_FLAG);
- updateWrapper.set(SysAnnouncementSend::getReadTime, new Date());
- updateWrapper.eq(SysAnnouncementSend::getAnntId,announcement.getId());
- updateWrapper.eq(SysAnnouncementSend::getUserId,userId);
- //updateWrapper.last("where annt_id ='"+announcement.getId()+"' and user_id ='"+userId+"'");
- SysAnnouncementSend announcementSend = new SysAnnouncementSend();
- sysAnnouncementSendMapper.update(announcementSend, updateWrapper);
- }
- }
+ @Override
+ public void updateSysAnnounReadFlag(String busType, String busId) {
+ SysAnnouncement announcement = sysAnnouncementMapper.selectOne(new QueryWrapper().eq("bus_type", busType).eq("bus_id", busId));
+ if (announcement != null) {
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ String userId = sysUser.getId();
+ LambdaUpdateWrapper updateWrapper = new UpdateWrapper().lambda();
+ updateWrapper.set(SysAnnouncementSend::getReadFlag, CommonConstant.HAS_READ_FLAG);
+ updateWrapper.set(SysAnnouncementSend::getReadTime, new Date());
+ updateWrapper.eq(SysAnnouncementSend::getAnntId, announcement.getId());
+ updateWrapper.eq(SysAnnouncementSend::getUserId, userId);
+ //updateWrapper.last("where annt_id ='"+announcement.getId()+"' and user_id ='"+userId+"'");
+ SysAnnouncementSend announcementSend = new SysAnnouncementSend();
+ sysAnnouncementSendMapper.update(announcementSend, updateWrapper);
+ }
+ }
- /**
- * 获取数据库类型
- * @param dataSource
- * @return
- * @throws SQLException
- */
- private String getDatabaseTypeByDataSource(DataSource dataSource) throws SQLException{
- if("".equals(DB_TYPE)) {
- Connection connection = dataSource.getConnection();
- try {
- DatabaseMetaData md = connection.getMetaData();
- String dbType = md.getDatabaseProductName().toLowerCase();
- if(dbType.indexOf(DataBaseConstant.DB_TYPE_MYSQL.toLowerCase())>=0) {
- DB_TYPE = DataBaseConstant.DB_TYPE_MYSQL;
- }else if(dbType.indexOf(DataBaseConstant.DB_TYPE_ORACLE.toLowerCase())>=0) {
- DB_TYPE = DataBaseConstant.DB_TYPE_ORACLE;
- }else if(dbType.indexOf(DataBaseConstant.DB_TYPE_SQLSERVER.toLowerCase())>=0||dbType.indexOf(DataBaseConstant.DB_TYPE_SQL_SERVER_BLANK)>=0) {
- DB_TYPE = DataBaseConstant.DB_TYPE_SQLSERVER;
- }else if(dbType.indexOf(DataBaseConstant.DB_TYPE_POSTGRESQL.toLowerCase())>=0) {
- DB_TYPE = DataBaseConstant.DB_TYPE_POSTGRESQL;
- }else if(dbType.indexOf(DataBaseConstant.DB_TYPE_MARIADB.toLowerCase())>=0) {
- DB_TYPE = DataBaseConstant.DB_TYPE_MARIADB;
- }else {
- log.error("数据库类型:[" + dbType + "]不识别!");
- //throw new JeecgBootException("数据库类型:["+dbType+"]不识别!");
- }
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- }finally {
- connection.close();
- }
- }
- return DB_TYPE;
+ /**
+ * 获取数据库类型
+ *
+ * @param dataSource
+ * @return
+ * @throws SQLException
+ */
+ private String getDatabaseTypeByDataSource(DataSource dataSource) throws SQLException {
+ if ("".equals(DB_TYPE)) {
+ Connection connection = dataSource.getConnection();
+ try {
+ DatabaseMetaData md = connection.getMetaData();
+ String dbType = md.getDatabaseProductName().toLowerCase();
+ if (dbType.indexOf(DataBaseConstant.DB_TYPE_MYSQL.toLowerCase()) >= 0) {
+ DB_TYPE = DataBaseConstant.DB_TYPE_MYSQL;
+ } else if (dbType.indexOf(DataBaseConstant.DB_TYPE_ORACLE.toLowerCase()) >= 0) {
+ DB_TYPE = DataBaseConstant.DB_TYPE_ORACLE;
+ } else if (dbType.indexOf(DataBaseConstant.DB_TYPE_SQLSERVER.toLowerCase()) >= 0 || dbType.indexOf(DataBaseConstant.DB_TYPE_SQL_SERVER_BLANK) >= 0) {
+ DB_TYPE = DataBaseConstant.DB_TYPE_SQLSERVER;
+ } else if (dbType.indexOf(DataBaseConstant.DB_TYPE_POSTGRESQL.toLowerCase()) >= 0) {
+ DB_TYPE = DataBaseConstant.DB_TYPE_POSTGRESQL;
+ } else if (dbType.indexOf(DataBaseConstant.DB_TYPE_MARIADB.toLowerCase()) >= 0) {
+ DB_TYPE = DataBaseConstant.DB_TYPE_MARIADB;
+ } else {
+ log.error("数据库类型:[" + dbType + "]不识别!");
+ //throw new JeecgBootException("数据库类型:["+dbType+"]不识别!");
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ } finally {
+ connection.close();
+ }
+ }
+ return DB_TYPE;
- }
+ }
- @Override
- public List queryAllDict() {
- // 查询并排序
- QueryWrapper queryWrapper = new QueryWrapper();
- queryWrapper.orderByAsc("create_time");
- List dicts = sysDictService.list(queryWrapper);
- // 封装成 model
- List list = new ArrayList();
- for (SysDict dict : dicts) {
- list.add(new DictModel(dict.getDictCode(), dict.getDictName()));
- }
+ @Override
+ public List queryAllDict() {
+ // 查询并排序
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.orderByAsc("create_time");
+ List dicts = sysDictService.list(queryWrapper);
+ // 封装成 model
+ List list = new ArrayList();
+ for (SysDict dict : dicts) {
+ list.add(new DictModel(dict.getDictCode(), dict.getDictName()));
+ }
- return list;
- }
+ return list;
+ }
- @Override
- public List queryAllSysCategory() {
- List ls = categoryMapper.selectList(null);
- List res = oConvertUtils.entityListToModelList(ls,SysCategoryModel.class);
- return res;
- }
+ @Override
+ public List queryAllSysCategory() {
+ List ls = categoryMapper.selectList(null);
+ List res = oConvertUtils.entityListToModelList(ls, SysCategoryModel.class);
+ return res;
+ }
- @Override
- public List queryFilterTableDictInfo(String table, String text, String code, String filterSql) {
- return sysDictService.queryTableDictItemsByCodeAndFilter(table,text,code,filterSql);
- }
+ @Override
+ public List queryFilterTableDictInfo(String table, String text, String code, String filterSql) {
+ return sysDictService.queryTableDictItemsByCodeAndFilter(table, text, code, filterSql);
+ }
- @Override
- public List queryTableDictByKeys(String table, String text, String code, String[] keyArray) {
- return sysDictService.queryTableDictByKeys(table,text,code,Joiner.on(",").join(keyArray));
- }
+ @Override
+ public List queryTableDictByKeys(String table, String text, String code, String[] keyArray) {
+ return sysDictService.queryTableDictByKeys(table, text, code, Joiner.on(",").join(keyArray));
+ }
- @Override
- public List queryAllUserBackCombo() {
- List list = new ArrayList();
- List userList = userMapper.selectList(new QueryWrapper().eq("status",1).eq("del_flag",0));
- for(SysUser user : userList){
- ComboModel model = new ComboModel();
- model.setTitle(user.getRealname());
- model.setId(user.getId());
- model.setUsername(user.getUsername());
- list.add(model);
- }
- return list;
- }
+ @Override
+ public List queryAllUserBackCombo() {
+ List list = new ArrayList();
+ List userList = userMapper.selectList(new QueryWrapper().eq("status", 1).eq("del_flag", 0));
+ for (SysUser user : userList) {
+ ComboModel model = new ComboModel();
+ model.setTitle(user.getRealname());
+ model.setId(user.getId());
+ model.setUsername(user.getUsername());
+ list.add(model);
+ }
+ return list;
+ }
- @Override
- public JSONObject queryAllUser(String userIds, Integer pageNo, Integer pageSize) {
- JSONObject json = new JSONObject();
- QueryWrapper queryWrapper = new QueryWrapper().eq("status",1).eq("del_flag",0);
- List list = new ArrayList();
- Page page = new Page(pageNo, pageSize);
- IPage pageList = userMapper.selectPage(page, queryWrapper);
- for(SysUser user : pageList.getRecords()){
- ComboModel model = new ComboModel();
- model.setUsername(user.getUsername());
- model.setTitle(user.getRealname());
- model.setId(user.getId());
- model.setEmail(user.getEmail());
- if(oConvertUtils.isNotEmpty(userIds)){
- String[] temp = userIds.split(",");
- for(int i = 0; i queryWrapper = new QueryWrapper().eq("status", 1).eq("del_flag", 0);
+ List list = new ArrayList();
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = userMapper.selectPage(page, queryWrapper);
+ for (SysUser user : pageList.getRecords()) {
+ ComboModel model = new ComboModel();
+ model.setUsername(user.getUsername());
+ model.setTitle(user.getRealname());
+ model.setId(user.getId());
+ model.setEmail(user.getEmail());
+ if (oConvertUtils.isNotEmpty(userIds)) {
+ String[] temp = userIds.split(",");
+ for (int i = 0; i < temp.length; i++) {
+ if (temp[i].equals(user.getId())) {
+ model.setChecked(true);
+ }
+ }
+ }
+ list.add(model);
+ }
+ json.put("list", list);
+ json.put("total", pageList.getTotal());
+ return json;
+ }
- @Override
- public List queryAllRole() {
- List list = new ArrayList();
- List roleList = roleMapper.selectList(new QueryWrapper());
- for(SysRole role : roleList){
- ComboModel model = new ComboModel();
- model.setTitle(role.getRoleName());
- model.setId(role.getId());
- list.add(model);
- }
- return list;
- }
+ @Override
+ public List queryAllRole() {
+ List list = new ArrayList();
+ List roleList = roleMapper.selectList(new QueryWrapper());
+ for (SysRole role : roleList) {
+ ComboModel model = new ComboModel();
+ model.setTitle(role.getRoleName());
+ model.setId(role.getId());
+ list.add(model);
+ }
+ return list;
+ }
@Override
public List queryAllRole(String[] roleIds) {
List list = new ArrayList();
List roleList = roleMapper.selectList(new QueryWrapper());
- for(SysRole role : roleList){
+ for (SysRole role : roleList) {
ComboModel model = new ComboModel();
model.setTitle(role.getRoleName());
model.setId(role.getId());
model.setRoleCode(role.getRoleCode());
- if(oConvertUtils.isNotEmpty(roleIds)) {
+ if (oConvertUtils.isNotEmpty(roleIds)) {
for (int i = 0; i < roleIds.length; i++) {
if (roleIds[i].equals(role.getId())) {
model.setChecked(true);
@@ -792,1040 +799,1076 @@ public class SysBaseApiImpl implements ISysBaseAPI {
return list;
}
- @Override
- public List getRoleIdsByUsername(String username) {
- return sysUserRoleMapper.getRoleIdByUserName(username);
- }
+ @Override
+ public List getRoleIdsByUsername(String username) {
+ return sysUserRoleMapper.getRoleIdByUserName(username);
+ }
- @Override
- public String getDepartIdsByOrgCode(String orgCode) {
- return departMapper.queryDepartIdByOrgCode(orgCode);
- }
+ @Override
+ public String getDepartIdsByOrgCode(String orgCode) {
+ return departMapper.queryDepartIdByOrgCode(orgCode);
+ }
- @Override
- public List getAllSysDepart() {
- List departModelList = new ArrayList();
- List departList = departMapper.selectList(new QueryWrapper().eq("del_flag","0"));
- for(SysDepart depart : departList){
- SysDepartModel model = new SysDepartModel();
- BeanUtils.copyProperties(depart,model);
- departModelList.add(model);
- }
- return departModelList;
- }
+ @Override
+ public List getAllSysDepart() {
+ List departModelList = new ArrayList();
+ List departList = departMapper.selectList(new QueryWrapper().eq("del_flag", "0"));
+ for (SysDepart depart : departList) {
+ SysDepartModel model = new SysDepartModel();
+ BeanUtils.copyProperties(depart, model);
+ departModelList.add(model);
+ }
+ return departModelList;
+ }
- @Override
- public DynamicDataSourceModel getDynamicDbSourceById(String dbSourceId) {
- SysDataSource dbSource = dataSourceService.getById(dbSourceId);
- if(dbSource!=null && StringUtils.isNotBlank(dbSource.getDbPassword())){
- String dbPassword = dbSource.getDbPassword();
- String decodedStr = SecurityUtil.jiemi(dbPassword);
- dbSource.setDbPassword(decodedStr);
- }
- return new DynamicDataSourceModel(dbSource);
- }
+ @Override
+ public DynamicDataSourceModel getDynamicDbSourceById(String dbSourceId) {
+ SysDataSource dbSource = dataSourceService.getById(dbSourceId);
+ if (dbSource != null && StringUtils.isNotBlank(dbSource.getDbPassword())) {
+ String dbPassword = dbSource.getDbPassword();
+ String decodedStr = SecurityUtil.jiemi(dbPassword);
+ dbSource.setDbPassword(decodedStr);
+ }
+ return new DynamicDataSourceModel(dbSource);
+ }
- @Override
- public DynamicDataSourceModel getDynamicDbSourceByCode(String dbSourceCode) {
- SysDataSource dbSource = dataSourceService.getOne(new LambdaQueryWrapper().eq(SysDataSource::getCode, dbSourceCode));
- if(dbSource!=null && StringUtils.isNotBlank(dbSource.getDbPassword())){
- String dbPassword = dbSource.getDbPassword();
- String decodedStr = SecurityUtil.jiemi(dbPassword);
- dbSource.setDbPassword(decodedStr);
- }
- return new DynamicDataSourceModel(dbSource);
- }
+ @Override
+ public DynamicDataSourceModel getDynamicDbSourceByCode(String dbSourceCode) {
+ SysDataSource dbSource = dataSourceService.getOne(new LambdaQueryWrapper().eq(SysDataSource::getCode, dbSourceCode));
+ if (dbSource != null && StringUtils.isNotBlank(dbSource.getDbPassword())) {
+ String dbPassword = dbSource.getDbPassword();
+ String decodedStr = SecurityUtil.jiemi(dbPassword);
+ dbSource.setDbPassword(decodedStr);
+ }
+ return new DynamicDataSourceModel(dbSource);
+ }
- @Override
- public List getDeptHeadByDepId(String deptId) {
- QueryWrapper queryWrapper = new QueryWrapper().eq("status", 1).eq("del_flag", 0);
- //支持逗号分割传递多个部门id
- if (oConvertUtils.isNotEmpty(deptId) && deptId.contains(SymbolConstant.COMMA)) {
- String[] vals = deptId.split(SymbolConstant.COMMA);
- queryWrapper.and(andWrapper -> {
- for (int i = 0; i < vals.length; i++) {
- andWrapper.like("depart_ids", vals[i]);
- andWrapper.or();
- }
- });
- } else {
- queryWrapper.like("depart_ids", deptId);
- }
+ @Override
+ public List getDeptHeadByDepId(String deptId) {
+ QueryWrapper queryWrapper = new QueryWrapper().eq("status", 1).eq("del_flag", 0);
+ //支持逗号分割传递多个部门id
+ if (oConvertUtils.isNotEmpty(deptId) && deptId.contains(SymbolConstant.COMMA)) {
+ String[] vals = deptId.split(SymbolConstant.COMMA);
+ queryWrapper.and(andWrapper -> {
+ for (int i = 0; i < vals.length; i++) {
+ andWrapper.like("depart_ids", vals[i]);
+ andWrapper.or();
+ }
+ });
+ } else {
+ queryWrapper.like("depart_ids", deptId);
+ }
- List userList = userMapper.selectList(queryWrapper);
- List list = new ArrayList<>();
- for(SysUser user : userList){
- list.add(user.getUsername());
- }
- return list;
- }
+ List userList = userMapper.selectList(queryWrapper);
+ List list = new ArrayList<>();
+ for (SysUser user : userList) {
+ list.add(user.getUsername());
+ }
+ return list;
+ }
- @Override
- public void sendWebSocketMsg(String[] userIds, String cmd) {
- JSONObject obj = new JSONObject();
- obj.put(WebsocketConst.MSG_CMD, cmd);
- webSocket.sendMessage(userIds, obj.toJSONString());
- }
+ @Override
+ public void sendWebSocketMsg(String[] userIds, String cmd) {
+ JSONObject obj = new JSONObject();
+ obj.put(WebsocketConst.MSG_CMD, cmd);
+ webSocket.sendMessage(userIds, obj.toJSONString());
+ }
- @Override
- public List queryAllUserByIds(String[] userIds) {
- QueryWrapper queryWrapper = new QueryWrapper().eq("status",1).eq("del_flag",0);
- queryWrapper.in("id",userIds);
- List loginUsers = new ArrayList<>();
- List sysUsers = userMapper.selectList(queryWrapper);
- for (SysUser user:sysUsers) {
- UserAccountInfo loginUser=new UserAccountInfo();
- BeanUtils.copyProperties(user, loginUser);
- loginUsers.add(loginUser);
- }
- return loginUsers;
- }
+ @Override
+ public List queryAllUserByIds(String[] userIds) {
+ QueryWrapper queryWrapper = new QueryWrapper().eq("status", 1).eq("del_flag", 0);
+ queryWrapper.in("id", userIds);
+ List loginUsers = new ArrayList<>();
+ List sysUsers = userMapper.selectList(queryWrapper);
+ for (SysUser user : sysUsers) {
+ UserAccountInfo loginUser = new UserAccountInfo();
+ BeanUtils.copyProperties(user, loginUser);
+ loginUsers.add(loginUser);
+ }
+ return loginUsers;
+ }
- /**
- * 推送签到人员信息
- * @param userId
- */
- @Override
- public void meetingSignWebsocket(String userId) {
- JSONObject obj = new JSONObject();
- obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_SIGN);
- obj.put(WebsocketConst.MSG_USER_ID,userId);
- //TODO 目前全部推送,后面修改
- webSocket.sendMessage(obj.toJSONString());
- }
+ /**
+ * 推送签到人员信息
+ *
+ * @param userId
+ */
+ @Override
+ public void meetingSignWebsocket(String userId) {
+ JSONObject obj = new JSONObject();
+ obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_SIGN);
+ obj.put(WebsocketConst.MSG_USER_ID, userId);
+ //TODO 目前全部推送,后面修改
+ webSocket.sendMessage(obj.toJSONString());
+ }
- @Override
- public List queryUserByNames(String[] userNames) {
- QueryWrapper queryWrapper = new QueryWrapper().eq("status",1).eq("del_flag",0);
- queryWrapper.in("username",userNames);
- List loginUsers = new ArrayList<>();
- List sysUsers = userMapper.selectList(queryWrapper);
- for (SysUser user:sysUsers) {
- UserAccountInfo loginUser=new UserAccountInfo();
- BeanUtils.copyProperties(user, loginUser);
- loginUsers.add(loginUser);
- }
- return loginUsers;
- }
+ @Override
+ public List queryUserByNames(String[] userNames) {
+ QueryWrapper queryWrapper = new QueryWrapper().eq("status", 1).eq("del_flag", 0);
+ queryWrapper.in("username", userNames);
+ List loginUsers = new ArrayList<>();
+ List sysUsers = userMapper.selectList(queryWrapper);
+ for (SysUser user : sysUsers) {
+ UserAccountInfo loginUser = new UserAccountInfo();
+ BeanUtils.copyProperties(user, loginUser);
+ loginUsers.add(loginUser);
+ }
+ return loginUsers;
+ }
- @Override
- public List queryUserBySuperQuery(String superQuery,String matchType) {
- List result=new ArrayList<>();
- Map parameterMap=new HashMap<>();
- parameterMap.put("superQueryMatchType",new String[]{matchType});
- parameterMap.put("superQueryParams",new String[]{superQuery});
- SysUser sysUser=new SysUser();
- QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysUser, parameterMap);
- List list= sysUserService.list(queryWrapper);
- if(ObjectUtils.isNotEmpty(list)){
+ @Override
+ public List queryUserBySuperQuery(String superQuery, String matchType) {
+ List result = new ArrayList<>();
+ Map parameterMap = new HashMap<>();
+ parameterMap.put("superQueryMatchType", new String[]{matchType});
+ parameterMap.put("superQueryParams", new String[]{superQuery});
+ SysUser sysUser = new SysUser();
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysUser, parameterMap);
+ List list = sysUserService.list(queryWrapper);
+ if (ObjectUtils.isNotEmpty(list)) {
- //update-begin-author:taoyan date:2023-5-19 for: QQYUN-5326【简流】获取组织人员 单/多 筛选条件 没有部门筛选
- String departKey = "depart";
- QueryCondition departCondition = null;
- try {
- String temp = URLDecoder.decode(superQuery, "UTF-8");
- List conditions = JSON.parseArray(temp, QueryCondition.class);
- for(QueryCondition condition: conditions){
- if(departKey.equals(condition.getField())){
- departCondition = condition;
- break;
- }
- }
- } catch (UnsupportedEncodingException e) {
- log.error("查询用户信息,查询条件json转化失败", e);
- }
+ //update-begin-author:taoyan date:2023-5-19 for: QQYUN-5326【简流】获取组织人员 单/多 筛选条件 没有部门筛选
+ String departKey = "depart";
+ QueryCondition departCondition = null;
+ try {
+ String temp = URLDecoder.decode(superQuery, "UTF-8");
+ List conditions = JSON.parseArray(temp, QueryCondition.class);
+ for (QueryCondition condition : conditions) {
+ if (departKey.equals(condition.getField())) {
+ departCondition = condition;
+ break;
+ }
+ }
+ } catch (UnsupportedEncodingException e) {
+ log.error("查询用户信息,查询条件json转化失败", e);
+ }
- for (SysUser user : list) {
- JSONObject userJson = JSONObject.parseObject(JSONObject.toJSONString(user));
- List