【I57I6O】 修复路由添加时Path无法添加问题

【I59M95】自定义JeecgCloudException异常供微服务,及starter模块使用,解决注解添加之后无法实现重复提交的拦截提示
【I58FJ5】修改quartz默认配置参数,延迟启动解决服务重启多次执行问题
【#3755】优化rabbitmq代码删除setQueueNames方法避免发送延迟
升级springcloud到2021.0.3,解决Spring Cloud Gateway SpEL表达式注入问题
升级积木报表到最新版
【issues/3666】同步钉钉用户到本地,违反数据库唯一主键规则,导致插入失败
This commit is contained in:
zhangdaiscott
2022-05-31 10:35:46 +08:00
parent c41d94f9bc
commit fab3eddfb8
14 changed files with 96 additions and 40 deletions

View File

@ -17,7 +17,7 @@ import java.net.UnknownHostException;
/**
* 单体启动类(采用此类启动为单体模式)
* 特别提醒:
* 1.需要集成mogodb请删除 exclude={MongoAutoConfiguration.class}
* 1.需要集成mongodb请删除 exclude={MongoAutoConfiguration.class}
* 2.切换微服务 勾选profile的SpringCloud这个类就无法启动启动会报错
*/
@Slf4j

View File

@ -44,8 +44,9 @@ import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@ -370,7 +371,8 @@ public class ThirdAppDingtalkServiceImpl implements IThirdAppService {
}
// api 接口执行成功,并且 sys_third_account 表匹配失败,就向 sys_third_account 里插入一条数据
if (apiSuccess && (sysThirdAccount == null || oConvertUtils.isEmpty(sysThirdAccount.getThirdUserId()))) {
boolean flag = (sysThirdAccount == null || oConvertUtils.isEmpty(sysThirdAccount.getThirdUserId()));
if (apiSuccess && flag) {
if (sysThirdAccount == null) {
sysThirdAccount = new SysThirdAccount();
sysThirdAccount.setSysUserId(sysUser.getId());
@ -402,8 +404,14 @@ public class ThirdAppDingtalkServiceImpl implements IThirdAppService {
List<Department> allDepartment = JdtDepartmentAPI.listAll(accessToken);
// 根据钉钉部门查询所有钉钉用户,用于反向同步到本地
List<User> ddUserList = this.getDtAllUserByDepartment(allDepartment, accessToken);
// 记录已经同步过的用户id当有多个部门的情况时只同步一次
Set<String> syncedUserIdSet = new HashSet<>();
for (User dtUserInfo : ddUserList) {
if (syncedUserIdSet.contains(dtUserInfo.getUserid())) {
continue;
}
syncedUserIdSet.add(dtUserInfo.getUserid());
SysThirdAccount sysThirdAccount = sysThirdAccountService.getOneByThirdUserId(dtUserInfo.getUserid(), THIRD_TYPE);
List<SysUser> collect = sysUsersList.stream().filter(user -> (dtUserInfo.getMobile().equals(user.getPhone()) || dtUserInfo.getUserid().equals(user.getUsername()))
).collect(Collectors.toList());
@ -581,12 +589,6 @@ public class ThirdAppDingtalkServiceImpl implements IThirdAppService {
// update-begin--Author:liusq Date:20210713 for钉钉同步到本地的人员没有状态导致同步之后无法登录 #I3ZC2L
sysUser.setStatus(1);
// update-end--Author:liusq Date:20210713 for钉钉同步到本地的人员没有状态导致同步之后无法登录 #I3ZC2L
// 设置工号如果工号为空则使用username
if (oConvertUtils.isEmpty(dtUser.getJob_number())) {
sysUser.setWorkNo(dtUser.getUserid());
} else {
sysUser.setWorkNo(dtUser.getJob_number());
}
return this.dtUserToSysUser(dtUser, sysUser);
}
@ -611,7 +613,12 @@ public class ThirdAppDingtalkServiceImpl implements IThirdAppService {
} else {
sysUser.setPhone(null);
}
sysUser.setWorkNo(null);
// 设置工号如果工号为空则使用username
if (oConvertUtils.isEmpty(dtUser.getJob_number())) {
sysUser.setWorkNo(dtUser.getUserid());
} else {
sysUser.setWorkNo(dtUser.getJob_number());
}
// --- 钉钉没有逻辑删除功能
// sysUser.getDelFlag()
// --- 钉钉没有冻结、启用禁用功能
@ -763,8 +770,8 @@ public class ThirdAppDingtalkServiceImpl implements IThirdAppService {
return JdtMessageAPI.sendTextMessage(textMessage, accessToken);
}
public boolean recallMessage(String msg_task_id) {
Response<JSONObject> response = this.recallMessageResponse(msg_task_id);
public boolean recallMessage(String msgTaskId) {
Response<JSONObject> response = this.recallMessageResponse(msgTaskId);
if (response == null) {
return false;
}
@ -774,16 +781,16 @@ public class ThirdAppDingtalkServiceImpl implements IThirdAppService {
/**
* 撤回消息
*
* @param msg_task_id
* @param msgTaskId
* @return
*/
public Response<JSONObject> recallMessageResponse(String msg_task_id) {
public Response<JSONObject> recallMessageResponse(String msgTaskId) {
String accessToken = this.getAccessToken();
if (accessToken == null) {
return null;
}
int agentId = thirdAppConfig.getDingtalk().getAgentIdInt();
return JdtMessageAPI.recallMessage(agentId, msg_task_id, getAccessToken());
return JdtMessageAPI.recallMessage(agentId, msgTaskId, getAccessToken());
}
/**

View File

@ -41,6 +41,8 @@ spring:
initialize-schema: embedded
#定时任务启动开关true-开 false-关
auto-startup: true
#延迟1秒启动定时任务
startup-delay: 1s
#启动时更新己存在的Job
overwrite-existing-jobs: true
properties:
@ -54,8 +56,8 @@ spring:
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: true
misfireThreshold: 60000
clusterCheckinInterval: 10000
misfireThreshold: 12000
clusterCheckinInterval: 15000
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 10

View File

@ -39,6 +39,8 @@ spring:
quartz:
job-store-type: jdbc
initialize-schema: embedded
#延迟1秒启动定时任务
startup-delay: 1s
#定时任务启动开关true-开 false-关
auto-startup: true
#启动时更新己存在的Job
@ -54,8 +56,8 @@ spring:
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: true
misfireThreshold: 60000
clusterCheckinInterval: 10000
misfireThreshold: 12000
clusterCheckinInterval: 15000
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 10

View File

@ -41,6 +41,8 @@ spring:
initialize-schema: embedded
#定时任务启动开关true-开 false-关
auto-startup: true
#延迟1秒启动定时任务
startup-delay: 1s
#启动时更新己存在的Job
overwrite-existing-jobs: true
properties:
@ -54,8 +56,8 @@ spring:
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: true
misfireThreshold: 60000
clusterCheckinInterval: 10000
misfireThreshold: 12000
clusterCheckinInterval: 15000
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 10