mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 17:38:32 +08:00
delete maxkey-synchronizer-reorgdept & settings.gradle文件优化
This commit is contained in:
parent
2df897913b
commit
f3ccc7c831
@ -102,13 +102,14 @@ public class OrganizationsService extends JpaService<Organizations>{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void reorgNamePath(String instId) {
|
public void reorgNamePath(String instId) {
|
||||||
_logger.debug("instId {}", instId);
|
_logger.debug("instId {}", instId);
|
||||||
if(StringUtils.isBlank(instId)) {
|
if (StringUtils.isBlank(instId)) {
|
||||||
instId = "1";
|
instId = "1";
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<String, Organizations> reorgOrgMap = new HashMap<>();
|
HashMap<String, Organizations> reorgOrgMap = new HashMap<>();
|
||||||
List<Organizations> orgList = find(" where instid ='" + instId + "'");
|
List<Organizations> orgList = find(" where instid ='" + instId + "'");
|
||||||
List<Organizations> originOrgList = new ArrayList<>();
|
List<Organizations> originOrgList = new ArrayList<>();
|
||||||
Organizations rootOrg = null;
|
Organizations rootOrg = null;
|
||||||
@ -117,7 +118,7 @@ public class OrganizationsService extends JpaService<Organizations>{
|
|||||||
if (isRootOrg(org)) {
|
if (isRootOrg(org)) {
|
||||||
rootOrg = org;
|
rootOrg = org;
|
||||||
}
|
}
|
||||||
Organizations cloneOrg = new Organizations();
|
Organizations cloneOrg = new Organizations();
|
||||||
BeanUtils.copyProperties(org, cloneOrg);
|
BeanUtils.copyProperties(org, cloneOrg);
|
||||||
originOrgList.add(cloneOrg);
|
originOrgList.add(cloneOrg);
|
||||||
}
|
}
|
||||||
@ -126,10 +127,10 @@ public class OrganizationsService extends JpaService<Organizations>{
|
|||||||
_logger.debug("reorged .");
|
_logger.debug("reorged .");
|
||||||
long reorgCount = 0;
|
long reorgCount = 0;
|
||||||
for (Organizations originOrg : originOrgList) {
|
for (Organizations originOrg : originOrgList) {
|
||||||
Organizations reorgOrg = reorgOrgMap.get( originOrg.getId());
|
Organizations reorgOrg = reorgOrgMap.get(originOrg.getId());
|
||||||
_logger.trace("reorged Organization {}" ,reorgOrg);
|
_logger.trace("reorged Organization {}", reorgOrg);
|
||||||
if(originOrg.getNamePath()== null || !originOrg.getNamePath().equals(reorgOrg.getNamePath())) {
|
if (originOrg.getNamePath() == null || !originOrg.getNamePath().equals(reorgOrg.getNamePath())) {
|
||||||
_logger.debug("update reorgCount {} , Organization {}" ,++reorgCount,reorgOrg);
|
_logger.debug("update reorgCount {} , Organization {}", ++reorgCount, reorgOrg);
|
||||||
getMapper().updateNamePath(reorgOrg);
|
getMapper().updateNamePath(reorgOrg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -139,31 +140,29 @@ public class OrganizationsService extends JpaService<Organizations>{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isRootOrg(Organizations rootOrg){
|
boolean isRootOrg(Organizations rootOrg) {
|
||||||
return (
|
if (rootOrg.getParentId() == null || rootOrg.getParentId().equalsIgnoreCase("-1")
|
||||||
rootOrg.getParentId() == null
|
|
||||||
|| rootOrg.getParentId().equalsIgnoreCase("-1")
|
|
||||||
|| rootOrg.getParentId().equalsIgnoreCase("0")
|
|
||||||
|| rootOrg.getParentId().equalsIgnoreCase(rootOrg.getId())
|
|| rootOrg.getParentId().equalsIgnoreCase(rootOrg.getId())
|
||||||
|| rootOrg.getParentId().equalsIgnoreCase(rootOrg.getInstId())
|
|| rootOrg.getParentId().equalsIgnoreCase(rootOrg.getInstId())) {
|
||||||
);
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reorg(HashMap<String, Organizations> orgMap, List<Organizations> orgList,Organizations rootOrg) {
|
void reorg(HashMap<String, Organizations> orgMap, List<Organizations> orgList, Organizations rootOrg) {
|
||||||
if (isRootOrg(rootOrg)) {
|
if (isRootOrg(rootOrg)) {
|
||||||
rootOrg.setCodePath("/" + rootOrg.getId()+"/");
|
rootOrg.setCodePath("/" + rootOrg.getId() + "/");
|
||||||
rootOrg.setNamePath("/" + rootOrg.getOrgName()+"/");
|
rootOrg.setNamePath("/" + rootOrg.getOrgName() + "/");
|
||||||
} else {
|
} else {
|
||||||
Organizations parent = orgMap.get(rootOrg.getParentId());
|
Organizations parent = orgMap.get(rootOrg.getParentId());
|
||||||
rootOrg.setCodePath(parent.getCodePath() + rootOrg.getId()+ "/");
|
rootOrg.setCodePath(parent.getCodePath() + rootOrg.getId() + "/");
|
||||||
rootOrg.setNamePath(parent.getNamePath() + rootOrg.getOrgName()+ "/");
|
rootOrg.setNamePath(parent.getNamePath() + rootOrg.getOrgName() + "/");
|
||||||
}
|
}
|
||||||
rootOrg.setReorgNamePath(true);
|
rootOrg.setReorgNamePath(true);
|
||||||
|
|
||||||
for (Organizations org : orgList) {
|
for (Organizations org : orgList) {
|
||||||
if (org.isReorgNamePath()) {
|
if (org.isReorgNamePath())
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
if (org.getParentId().equalsIgnoreCase(rootOrg.getId())) {
|
if (org.getParentId().equalsIgnoreCase(rootOrg.getId())) {
|
||||||
reorg(orgMap, orgList, org);
|
reorg(orgMap, orgList, org);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
description = "maxkey-synchronizer-reorgdept"
|
|
||||||
|
|
||||||
apply plugin: 'java'
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
//local jars
|
|
||||||
implementation fileTree(dir: '../maxkey-lib/*/', include: '*.jar')
|
|
||||||
|
|
||||||
implementation project(":maxkey-common")
|
|
||||||
implementation project(":maxkey-core")
|
|
||||||
implementation project(":maxkey-persistence")
|
|
||||||
implementation project(":maxkey-synchronizers:maxkey-synchronizer")
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2021] [MaxKey of copyright http://www.maxkey.top]
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package org.dromara.maxkey.synchronizer.reorg;
|
|
||||||
|
|
||||||
import org.dromara.maxkey.entity.Synchronizers;
|
|
||||||
import org.dromara.maxkey.synchronizer.ISynchronizerService;
|
|
||||||
import org.dromara.maxkey.synchronizer.reorg.service.ReorgDeptService;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class ReorgDeptSynchronizerService implements ISynchronizerService {
|
|
||||||
static final Logger _logger = LoggerFactory.getLogger(ReorgDeptSynchronizerService.class);
|
|
||||||
Synchronizers synchronizer;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
ReorgDeptService reorgDeptService;
|
|
||||||
|
|
||||||
|
|
||||||
public ReorgDeptSynchronizerService() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void sync() throws Exception {
|
|
||||||
_logger.info("Sync ...");
|
|
||||||
reorgDeptService.setSynchronizer(synchronizer);
|
|
||||||
reorgDeptService.sync();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setReorgDeptService(ReorgDeptService reorgDeptService) {
|
|
||||||
this.reorgDeptService = reorgDeptService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSynchronizer(Synchronizers synchronizer) {
|
|
||||||
this.synchronizer = synchronizer;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright [2021] [MaxKey of copyright http://www.maxkey.top]
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package org.dromara.maxkey.synchronizer.reorg.service;
|
|
||||||
|
|
||||||
import org.dromara.maxkey.synchronizer.AbstractSynchronizerService;
|
|
||||||
import org.dromara.maxkey.synchronizer.ISynchronizerService;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class ReorgDeptService extends AbstractSynchronizerService implements ISynchronizerService{
|
|
||||||
static final Logger _logger = LoggerFactory.getLogger(ReorgDeptService.class);
|
|
||||||
|
|
||||||
public void sync() {
|
|
||||||
_logger.info("Sync Organizations ...");
|
|
||||||
organizationsService.reorgNamePath(this.synchronizer.getInstId());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -22,9 +22,11 @@ import org.dromara.maxkey.configuration.ApplicationConfig;
|
|||||||
import org.dromara.maxkey.listener.DynamicGroupsListenerAdapter;
|
import org.dromara.maxkey.listener.DynamicGroupsListenerAdapter;
|
||||||
import org.dromara.maxkey.listener.ListenerAdapter;
|
import org.dromara.maxkey.listener.ListenerAdapter;
|
||||||
import org.dromara.maxkey.listener.ListenerParameter;
|
import org.dromara.maxkey.listener.ListenerParameter;
|
||||||
|
import org.dromara.maxkey.listener.ReorgDeptListenerAdapter;
|
||||||
import org.dromara.maxkey.listener.SessionListenerAdapter;
|
import org.dromara.maxkey.listener.SessionListenerAdapter;
|
||||||
import org.dromara.maxkey.persistence.service.ConnectorsService;
|
import org.dromara.maxkey.persistence.service.ConnectorsService;
|
||||||
import org.dromara.maxkey.persistence.service.GroupsService;
|
import org.dromara.maxkey.persistence.service.GroupsService;
|
||||||
|
import org.dromara.maxkey.persistence.service.OrganizationsService;
|
||||||
import org.dromara.maxkey.provision.thread.ProvisioningRunner;
|
import org.dromara.maxkey.provision.thread.ProvisioningRunner;
|
||||||
import org.dromara.maxkey.provision.thread.ProvisioningRunnerThread;
|
import org.dromara.maxkey.provision.thread.ProvisioningRunnerThread;
|
||||||
import org.quartz.Scheduler;
|
import org.quartz.Scheduler;
|
||||||
@ -55,6 +57,20 @@ public class MaxKeyMgtListenerConfig {
|
|||||||
return "sessionListenerAdapter";
|
return "sessionListenerAdapter";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public String reorgDeptListenerAdapter(
|
||||||
|
Scheduler scheduler,
|
||||||
|
OrganizationsService organizationsService) throws SchedulerException {
|
||||||
|
ListenerAdapter.addListener(
|
||||||
|
scheduler,
|
||||||
|
ReorgDeptListenerAdapter.class,
|
||||||
|
"0 0/30 * * * ?",//30 minutes
|
||||||
|
new ListenerParameter().add("organizationsService",organizationsService).build()
|
||||||
|
);
|
||||||
|
logger.debug("ReorgDept ListenerAdapter inited .");
|
||||||
|
return "reorgDeptListenerAdapter";
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public String dynamicGroupsListenerAdapter(
|
public String dynamicGroupsListenerAdapter(
|
||||||
Scheduler scheduler,
|
Scheduler scheduler,
|
||||||
|
|||||||
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright [2024] [MaxKey of copyright http://www.maxkey.top]
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.dromara.maxkey.listener;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import org.dromara.maxkey.persistence.service.OrganizationsService;
|
||||||
|
import org.quartz.Job;
|
||||||
|
import org.quartz.JobExecutionContext;
|
||||||
|
import org.quartz.JobExecutionException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
public class ReorgDeptListenerAdapter extends ListenerAdapter implements Job , Serializable {
|
||||||
|
static final Logger _logger = LoggerFactory.getLogger(ReorgDeptListenerAdapter.class);
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 4782358765969474833L;
|
||||||
|
|
||||||
|
transient OrganizationsService organizationsService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(JobExecutionContext context) throws JobExecutionException {
|
||||||
|
if(jobStatus == JOBSTATUS.RUNNING) {return;}
|
||||||
|
init(context);
|
||||||
|
|
||||||
|
_logger.debug("running ... " );
|
||||||
|
jobStatus = JOBSTATUS.RUNNING;
|
||||||
|
try {
|
||||||
|
organizationsService.reorgNamePath(null);
|
||||||
|
_logger.debug("finished " );
|
||||||
|
jobStatus = JOBSTATUS.FINISHED;
|
||||||
|
}catch(Exception e) {
|
||||||
|
jobStatus = JOBSTATUS.ERROR;
|
||||||
|
_logger.error("Exception " ,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void init(JobExecutionContext context){
|
||||||
|
super.init(context);
|
||||||
|
if(organizationsService == null) {
|
||||||
|
organizationsService = getParameter("organizationsService",OrganizationsService.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -48,7 +48,7 @@ public class SessionListenerAdapter extends ListenerAdapter implements Job , S
|
|||||||
for (HistoryLogin login : sessionManager.querySessions()) {
|
for (HistoryLogin login : sessionManager.querySessions()) {
|
||||||
Session session = sessionManager.get(login.getSessionId());
|
Session session = sessionManager.get(login.getSessionId());
|
||||||
if(session == null) {
|
if(session == null) {
|
||||||
logger.debug("user {} session {} Login at {} and TimeOut at {} ." ,
|
logger.debug("TimeOut user {} session {} Login at {} and at {} ." ,
|
||||||
login.getUsername(),
|
login.getUsername(),
|
||||||
login.getId(),
|
login.getId(),
|
||||||
login.getLoginTime(),
|
login.getLoginTime(),
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2021] [MaxKey of copyright http://www.maxkey.top]
|
* Copyright [2024] [MaxKey of copyright http://www.maxkey.top]
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -45,7 +45,6 @@ include ('maxkey-synchronizers:maxkey-synchronizer-dingtalk')
|
|||||||
include ('maxkey-synchronizers:maxkey-synchronizer-feishu')
|
include ('maxkey-synchronizers:maxkey-synchronizer-feishu')
|
||||||
include ('maxkey-synchronizers:maxkey-synchronizer-jdbc')
|
include ('maxkey-synchronizers:maxkey-synchronizer-jdbc')
|
||||||
include ('maxkey-synchronizers:maxkey-synchronizer-ldap')
|
include ('maxkey-synchronizers:maxkey-synchronizer-ldap')
|
||||||
include ('maxkey-synchronizers:maxkey-synchronizer-reorgdept')
|
|
||||||
include ('maxkey-synchronizers:maxkey-synchronizer-workweixin')
|
include ('maxkey-synchronizers:maxkey-synchronizer-workweixin')
|
||||||
|
|
||||||
//Protocol
|
//Protocol
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user