From 8c64d21f9e49cea37d6099022886d4e03e2dbe81 Mon Sep 17 00:00:00 2001 From: roo00 Date: Wed, 30 Oct 2019 18:48:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=A2=9E=E5=8A=A0topUnitList?= =?UTF-8?q?=E5=B8=A6=E6=9D=A5=E7=9A=84=E6=A0=A1=E9=AA=8C=E9=97=AE=E9=A2=98?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/project/config/CenterServers.java | 22 +-- .../x/base/core/project/config/Config.java | 29 +++- .../x/base/core/project/config/Messages.java | 11 ++ .../core/project/test/list/TestClient.java | 8 + .../control/factory/MessageFactory.java | 2 +- .../control/jaxrs/appinfo/ActionSave.java | 2 - .../ActionPersistPublishAndNotify.java | 14 +- .../ActionPersistPublishByWorkFlow.java | 25 +++ .../document/ActionPersistPublishContent.java | 26 +++ .../jaxrs/document/ActionQueryGetControl.java | 159 +++--------------- .../ActionQueryListVisiblePersons.java | 8 + .../queue/QueueSendDocumentNotify.java | 38 ++++- .../com/x/server/console/ResourceFactory.java | 2 +- .../console/node/RegistApplicationsEvent.java | 9 +- .../server/console/node/VoteCenterEvent.java | 14 +- .../console/server/web/WebServerTools.java | 2 +- .../control/jaxrs/identity/ActionCreate.java | 5 +- .../control/jaxrs/identity/ActionEdit.java | 7 +- .../jaxrs/identity/ActionListLike.java | 2 + .../control/jaxrs/person/ActionCreate.java | 7 +- .../control/jaxrs/person/ActionEdit.java | 6 + .../x/program/center/CodeTransferQueue.java | 117 ------------- .../com/x/program/center/ThisApplication.java | 4 +- .../center/jaxrs/ActionApplication.java | 5 +- .../program/center/jaxrs/TestJaxrsFilter.java | 4 +- .../center/jaxrs/center/CenterAction.java | 19 +-- .../center/jaxrs/config/ActionGet.java | 2 +- .../jaxrs/config/ActionGetCenterServer.java | 2 +- .../center/jaxrs/config/ActionGetProxy.java | 6 +- .../jaxrs/config/ActionSetCenterServer.java | 4 +- .../center/jaxrs/config/ActionSetCollect.java | 2 +- .../center/jaxrs/config/ActionSetPerson.java | 3 +- .../center/jaxrs/config/ActionSetProxy.java | 2 +- .../center/jaxrs/config/ActionSetToken.java | 2 +- .../center/jaxrs/test/ActionTest1.java | 68 +++++--- .../program/center/jaxrs/test/TestAction.java | 2 +- .../center/schedule/CollectPerson.java | 2 +- 37 files changed, 282 insertions(+), 360 deletions(-) delete mode 100644 o2server/x_program_center/src/main/java/com/x/program/center/CodeTransferQueue.java diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/CenterServers.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/CenterServers.java index 1d9fe68129..b553b2bd4c 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/CenterServers.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/CenterServers.java @@ -1,10 +1,10 @@ package com.x.base.core.project.config; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.ConcurrentSkipListMap; -import org.apache.commons.collections4.set.ListOrderedSet; import org.apache.commons.lang3.BooleanUtils; -import org.apache.commons.lang3.StringUtils; public class CenterServers extends ConcurrentSkipListMap { @@ -23,24 +23,24 @@ public class CenterServers extends ConcurrentSkipListMap { } } - public ListOrderedSet> orderedEntrySet() { - ListOrderedSet> set = new ListOrderedSet<>(); + public List> orderedEntry() { + List> list = new ArrayList<>(); this.entrySet().stream().sorted((o1, o2) -> { - return o1.getValue().getOrder() - o2.getValue().getOrder(); + return o1.getValue().getOrder().compareTo(o2.getValue().getOrder()); }).forEachOrdered(o -> { - set.add(o); + list.add(o); }); - return set; + return list; } - public CenterServer first() { + public Entry first() { - ListOrderedSet> set = orderedEntrySet(); + List> list = orderedEntry(); - if (set.isEmpty()) { + if (list.isEmpty()) { return null; } else { - return set.get(0).getValue(); + return list.get(0); } } diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Config.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Config.java index ab7410754f..dee10feb8a 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Config.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Config.java @@ -6,7 +6,7 @@ import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.Map.Entry; import java.util.concurrent.LinkedBlockingQueue; import javax.naming.InitialContext; @@ -829,6 +829,33 @@ public class Config { return buffer.toString(); } + public static String url_x_program_center_jaxrs(Entry entry, String... paths) + throws Exception { + String n = entry.getKey(); + Integer p = entry.getValue().getPort(); + Boolean s = entry.getValue().getSslEnable(); + StringBuffer buffer = new StringBuffer(); + if (s) { + buffer.append("https://").append(n); + if (!NumberTools.valueEuqals(p, 443)) { + buffer.append(":").append(p); + } + } else { + buffer.append("http://").append(n); + if (!NumberTools.valueEuqals(p, 80)) { + buffer.append(":").append(p); + } + } + buffer.append("/").append(x_program_center.class.getSimpleName()); + buffer.append("/jaxrs/"); + List os = new ArrayList<>(); + for (String path : paths) { + os.add(URLEncoder.encode(StringUtils.strip(path, "/"), DefaultCharset.name)); + } + buffer.append(StringUtils.join(os, "/")); + return buffer.toString(); + } + private Messages messages; public static Messages messages() throws Exception { diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Messages.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Messages.java index 8521288beb..d28112b544 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Messages.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Messages.java @@ -93,6 +93,17 @@ public class Messages extends ConcurrentSkipListMap { o.put(MessageConnector.TYPE_READCOMPLETED_DELETE, new Message()); /* 待阅已阅通知结束 */ + /* 日程管理消息通知 */ + o.put(MessageConnector.TYPE_CALENDAR_ALARM, + new Message(MessageConnector.CONSUME_WS, MessageConnector.CONSUME_PMS, + MessageConnector.CONSUME_DINGDING, MessageConnector.CONSUME_ZHENGWUDINGDING, + MessageConnector.CONSUME_QIYEWEIXIN)); + + /* 文档发布消息通知 */ + o.put(MessageConnector.TYPE_CMS_PUBLISH, + new Message(MessageConnector.CONSUME_WS, MessageConnector.CONSUME_PMS, + MessageConnector.CONSUME_DINGDING, MessageConnector.CONSUME_ZHENGWUDINGDING, + MessageConnector.CONSUME_QIYEWEIXIN)); return o; } diff --git a/o2server/x_base_core_project/src/test/java/com/x/base/core/project/test/list/TestClient.java b/o2server/x_base_core_project/src/test/java/com/x/base/core/project/test/list/TestClient.java index e37b344e35..220779f6ab 100644 --- a/o2server/x_base_core_project/src/test/java/com/x/base/core/project/test/list/TestClient.java +++ b/o2server/x_base_core_project/src/test/java/com/x/base/core/project/test/list/TestClient.java @@ -28,4 +28,12 @@ public class TestClient { System.out.println(tree.tailMap(1, true).firstEntry().getValue()); } + @Test + public void test1() { + Integer a = 1; + Integer b = 2; + System.out.println(a.compareTo(b)); + + } + } diff --git a/o2server/x_calendar_assemble_control/src/main/java/com/x/calendar/assemble/control/factory/MessageFactory.java b/o2server/x_calendar_assemble_control/src/main/java/com/x/calendar/assemble/control/factory/MessageFactory.java index 60256bf047..e067413ffd 100644 --- a/o2server/x_calendar_assemble_control/src/main/java/com/x/calendar/assemble/control/factory/MessageFactory.java +++ b/o2server/x_calendar_assemble_control/src/main/java/com/x/calendar/assemble/control/factory/MessageFactory.java @@ -13,7 +13,7 @@ public class MessageFactory { LogUtil.INFO( "send calendar alarm message", event.getTitle() + ", StartTime: " + event.getStartTimeStr() ); if( ListTools.isNotEmpty( event.getParticipants() )) { for( String participant : event.getParticipants() ) { - MessageConnector.send( MessageConnector.TYPE_CALENDAR_ALARM, event.getValarm_Summary(), participant, event ); + MessageConnector.send( MessageConnector.TYPE_CALENDAR_ALARM, "日程提醒:"+event.getTitle(), participant, event ); } } diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/appinfo/ActionSave.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/appinfo/ActionSave.java index a0130cfef4..ddafdae185 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/appinfo/ActionSave.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/appinfo/ActionSave.java @@ -149,8 +149,6 @@ public class ActionSave extends BaseAction { if( StringUtils.equals( "信息", wi.getDocumentType() ) && wi.getSendNotify() == null ) { wi.setSendNotify( true ); - }else { - wi.setSendNotify( false ); } try { diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishAndNotify.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishAndNotify.java index 06e1a337ca..3ee871da9e 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishAndNotify.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishAndNotify.java @@ -191,8 +191,18 @@ public class ActionPersistPublishAndNotify extends BaseAction { try { CategoryInfo categoryInfo = categoryInfoServiceAdv.getWithFlag( document.getCategoryId() ); if( categoryInfo != null ){ - //如果分类配置为需要推送通知,或者(分类配置为空,但是文档为信息文档时),推送通知 - if( categoryInfo.getSendNotify() || (categoryInfo.getSendNotify() == null && StringUtils.equals("信息", categoryInfo.getDocumentType()))){ + Boolean notify = false; + if( categoryInfo.getSendNotify() == null ) { + if( StringUtils.equals("信息", categoryInfo.getDocumentType()) ) { + notify = true; + } + }else { + if( categoryInfo.getSendNotify() ) { + notify = true; + } + } + if( notify ){ + logger.info("try to add notify object to queue for document:" + document.getTitle() ); ThisApplication.queueSendDocumentNotify.send( document ); } } diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishByWorkFlow.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishByWorkFlow.java index 70b6c4c487..af52bc6d50 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishByWorkFlow.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishByWorkFlow.java @@ -367,6 +367,31 @@ public class ActionPersistPublishByWorkFlow extends BaseAction { } } + //判断是否需要发送通知消息 + if (check) { + try { + Boolean notify = false; + if( categoryInfo.getSendNotify() == null ) { + if( StringUtils.equals("信息", categoryInfo.getDocumentType()) ) { + notify = true; + } + }else { + if( categoryInfo.getSendNotify() ) { + notify = true; + } + } + if( notify ){ + logger.info("try to add notify object to queue for document:" + document.getTitle() ); + ThisApplication.queueSendDocumentNotify.send( document ); + } + } catch (Exception e) { + check = false; + Exception exception = new ExceptionDocumentInfoProcess( e, "根据ID查询分类信息对象时发生异常。Flag:" + document.getCategoryId() ); + result.error( exception ); + logger.error( e, effectivePerson, request, null); + } + } + ApplicationCache.notify(Document.class); return result; } diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishContent.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishContent.java index 6b3b53c599..1bc851fbba 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishContent.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistPublishContent.java @@ -23,6 +23,7 @@ import com.x.base.core.project.http.EffectivePerson; import com.x.base.core.project.jaxrs.WoId; import com.x.base.core.project.logger.Logger; import com.x.base.core.project.logger.LoggerFactory; +import com.x.cms.assemble.control.ThisApplication; import com.x.cms.assemble.control.jaxrs.permission.element.PermissionInfo; import com.x.cms.core.entity.AppInfo; import com.x.cms.core.entity.CategoryInfo; @@ -327,6 +328,31 @@ public class ActionPersistPublishContent extends BaseAction { } } + //判断是否需要发送通知消息 + if (check) { + try { + Boolean notify = false; + if( categoryInfo.getSendNotify() == null ) { + if( StringUtils.equals("信息", categoryInfo.getDocumentType()) ) { + notify = true; + } + }else { + if( categoryInfo.getSendNotify() ) { + notify = true; + } + } + if( notify ){ + logger.info("try to add notify object to queue for document:" + document.getTitle() ); + ThisApplication.queueSendDocumentNotify.send( document ); + } + } catch (Exception e) { + check = false; + Exception exception = new ExceptionDocumentInfoProcess( e, "根据ID查询分类信息对象时发生异常。Flag:" + document.getCategoryId() ); + result.error( exception ); + logger.error( e, effectivePerson, request, null); + } + } + ApplicationCache.notify(Document.class); return result; } diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryGetControl.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryGetControl.java index 0c5cec8bad..16ac2468ed 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryGetControl.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryGetControl.java @@ -74,37 +74,28 @@ public class ActionQueryGetControl extends BaseAction { } } - String cacheKey = ApplicationCache.concreteCacheKey( id, "getControl", isManager, effectivePerson.getDistinguishedName() ); - Element element = cache.get(cacheKey); - if ((null != element) && (null != element.getObjectValue())) { - document = wo = (Wo) element.getObjectValue(); - result.setData(wo); - } else { - if (check) { - try { - document = documentQueryService.get(id); - if (document == null) { - check = false; - Exception exception = new ExceptionDocumentNotExists(id); - result.error(exception); - } else { - try { - wo = Wo.copier.copy(document); - } catch (Exception e) { - check = false; - Exception exception = new ExceptionDocumentInfoProcess(e, "将查询出来的文档信息对象转换为可输出的数据信息时发生异常。"); - result.error(exception); - logger.error(e, effectivePerson, request, null); - } - } - } catch (Exception e) { + if (check) { + try { + document = documentQueryService.get(id); + if (document == null) { check = false; - Exception exception = new ExceptionDocumentInfoProcess(e, "文档信息获取操作时发生异常。Id:" + id + ", Name:" + personName); + Exception exception = new ExceptionDocumentNotExists(id); result.error(exception); - logger.error(e, effectivePerson, request, null); } + } catch (Exception e) { + check = false; + Exception exception = new ExceptionDocumentInfoProcess(e, "文档信息获取操作时发生异常。Id:" + id + ", Name:" + personName); + result.error(exception); + logger.error(e, effectivePerson, request, null); } - + } + + String cacheKey = ApplicationCache.concreteCacheKey( id, "getControl", isManager, effectivePerson.getDistinguishedName() ); + Element element = cache.get(cacheKey); + if ((null != element) && (null != element.getObjectValue())) { + wo = (Wo) element.getObjectValue(); + result.setData(wo); + } else { if (check) { try { reviewCount = documentQueryService.getViewableReview(id, personName); @@ -121,7 +112,7 @@ public class ActionQueryGetControl extends BaseAction { //判断用户是否是文档的创建者,创建者是有权限编辑文档的 if (check) { - if (wo != null && StringUtils.equals( personName, wo.getCreatorPerson())) { + if (wo != null && StringUtils.equals( personName, document.getCreatorPerson())) { isCreator = true; woControl.setAllowVisit(true); } @@ -223,15 +214,15 @@ public class ActionQueryGetControl extends BaseAction { // 判断当前登录者是不是该文档的可编辑者 try { if( ListTools.isNotEmpty( document.getAuthorPersonList() )) { - if ( wo.getAuthorPersonList().contains( personName )) { + if ( document.getAuthorPersonList().contains( personName )) { woControl.setAllowVisit(true); woControl.setAllowEdit(true); } - if( ListTools.containsAny( unitNames , wo.getAuthorUnitList() )) { + if( ListTools.containsAny( unitNames , document.getAuthorUnitList() )) { woControl.setAllowVisit(true); woControl.setAllowEdit(true); } - if( ListTools.containsAny( groupNames , wo.getAuthorGroupList() )) { + if( ListTools.containsAny( groupNames , document.getAuthorGroupList() )) { woControl.setAllowVisit(true); woControl.setAllowEdit(true); } @@ -248,111 +239,9 @@ public class ActionQueryGetControl extends BaseAction { result.setData(wo); return result; } - -// private List composeAuthorUnitsWithAppAndCagetory(AppInfo appInfo, CategoryInfo category) { -// List authorUnits = new ArrayList<>(); -// if( ListTools.isNotEmpty( appInfo.getManageableUnitList() )) { -// for( String name : appInfo.getManageableUnitList() ) { -// if( !authorUnits.contains( name )) { -// authorUnits.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( appInfo.getPublishableUnitList() )) { -// for( String name : appInfo.getPublishableUnitList() ) { -// if( !authorUnits.contains( name )) { -// authorUnits.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( category.getManageableUnitList() )) { -// for( String name : category.getManageableUnitList() ) { -// if( !authorUnits.contains( name )) { -// authorUnits.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( category.getPublishableUnitList() )) { -// for( String name : category.getPublishableUnitList() ) { -// if( !authorUnits.contains( name )) { -// authorUnits.add( name ); -// } -// } -// } -// return authorUnits; -// } -// -// private List composeAuthorGroupsWithAppAndCagetory(AppInfo appInfo, CategoryInfo category) { -// List authorGroups = new ArrayList<>(); -// if( ListTools.isNotEmpty( appInfo.getManageableGroupList() )) { -// for( String name : appInfo.getManageableGroupList() ) { -// if( !authorGroups.contains( name )) { -// authorGroups.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( appInfo.getPublishableGroupList() )) { -// for( String name : appInfo.getPublishableGroupList() ) { -// if( !authorGroups.contains( name )) { -// authorGroups.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( category.getManageableGroupList() )) { -// for( String name : category.getManageableGroupList() ) { -// if( !authorGroups.contains( name )) { -// authorGroups.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( category.getPublishableGroupList() )) { -// for( String name : category.getPublishableGroupList() ) { -// if( !authorGroups.contains( name )) { -// authorGroups.add( name ); -// } -// } -// } -// return authorGroups; -// } -// -// private List composeAuthorPersonsWithAppAndCagetory(AppInfo appInfo, CategoryInfo category) { -// List authorPersons = new ArrayList<>(); -// if( ListTools.isNotEmpty( appInfo.getManageablePersonList() )) { -// for( String name : appInfo.getManageablePersonList() ) { -// if( !authorPersons.contains( name )) { -// authorPersons.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( appInfo.getPublishablePersonList() )) { -// for( String name : appInfo.getPublishablePersonList() ) { -// if( !authorPersons.contains( name )) { -// authorPersons.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( category.getManageablePersonList() )) { -// for( String name : category.getManageablePersonList() ) { -// if( !authorPersons.contains( name )) { -// authorPersons.add( name ); -// } -// } -// } -// if( ListTools.isNotEmpty( category.getPublishablePersonList() )) { -// for( String name : category.getPublishablePersonList() ) { -// if( !authorPersons.contains( name )) { -// authorPersons.add( name ); -// } -// } -// } -// return authorPersons; -// } - - public static class Wo extends Document { - - private static final long serialVersionUID = -5076990764713538973L; + public static class Wo { public static WrapCopier copier = WrapCopierFactory.wo(Document.class, Wo.class, null, JpaObject.FieldsInvisible); @@ -366,7 +255,7 @@ public class ActionQueryGetControl extends BaseAction { this.control = control; } } - + public static class WoControl extends GsonPropertyObject { @FieldDescribe("是否允许查看.") diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryListVisiblePersons.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryListVisiblePersons.java index 580d69a809..e9f39cd285 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryListVisiblePersons.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryListVisiblePersons.java @@ -1,6 +1,7 @@ package com.x.cms.assemble.control.jaxrs.document; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import javax.servlet.http.HttpServletRequest; @@ -107,6 +108,7 @@ public class ActionQueryListVisiblePersons extends BaseAction { //计算该文档有多少阅读者 ReviewService reviewService = new ReviewService(); List persons = reviewService.listPermissionPersons( appInfo, categoryInfo, document ); + if( ListTools.isNotEmpty( persons )) { //有可能是*, 一般是所有的人员标识列表 if( persons.contains( "*" )) { @@ -124,6 +126,12 @@ public class ActionQueryListVisiblePersons extends BaseAction { if( persons == null ) { persons = new ArrayList<>(); } + + //去一下重复 + HashSet set = new HashSet( persons ); + persons.clear(); + persons.addAll(set); + wo.setValueList(persons); result.setData(wo); result.setCount( Long.parseLong( persons.size() + "")); diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/queue/QueueSendDocumentNotify.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/queue/QueueSendDocumentNotify.java index c500fefa2c..dedf3c0f69 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/queue/QueueSendDocumentNotify.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/queue/QueueSendDocumentNotify.java @@ -1,6 +1,7 @@ package com.x.cms.assemble.control.queue; import java.util.ArrayList; import java.util.Date; +import java.util.HashSet; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -31,14 +32,35 @@ public class QueueSendDocumentNotify extends AbstractQueue { public void execute( Document document ) throws Exception { if( document == null ) { + logger.info("can not send publish notify , document is NULL!" ); return; } - logger.debug("send publish notify for new document:" + document.getTitle() ); + logger.info("send publish notify for new document:" + document.getTitle() ); try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { AppInfo appInfo = emc.find( document.getAppId(), AppInfo.class ); CategoryInfo category = emc.find( document.getCategoryId(), CategoryInfo.class ); +// Boolean sendNotify = false; if( appInfo != null && category != null ) { - //计算该文档有多少阅读者 +// //根据栏目和分类配置判断是否需要提醒 +// if(StringUtils.equals( "信息", document.getDocumentType() )) { +// if( category.getSendNotify() == null ) { +// if( appInfo.getSendNotify() == null ) { +// //都为空,默认发送通知 +// sendNotify = true; +// }else { +// sendNotify = appInfo.getSendNotify(); +// } +// }else { +// sendNotify = category.getSendNotify(); +// } +// }else { +// //数据类型,只有分类设置了需要通知,才会有通知,为空和为false都不通知 +// if( category.getSendNotify() ) { +// sendNotify = true; +// } +// } + // if( sendNotify ) { + //计算该文档有多少阅读者 ReviewService reviewService = new ReviewService(); List persons = reviewService.listPermissionPersons( appInfo, category, document ); if( ListTools.isNotEmpty( persons )) { @@ -56,16 +78,24 @@ public class QueueSendDocumentNotify extends AbstractQueue { } } if( ListTools.isNotEmpty( persons )) { + + //去一下重复 + HashSet set = new HashSet( persons ); + persons.clear(); + persons.addAll(set); + MessageWo wo = MessageWo.copier.copy(document); for( String person : persons ) { if( !StringUtils.equals( "*", person )) { MessageFactory.cms_publish(person, wo); } } - logger.debug("send total count:" + persons.size() ); + logger.info("send total count:" + persons.size() ); } - logger.debug("send publish notify for new document completed! " ); + logger.info("send publish notify for new document completed! " ); + //} } + logger.info("can not send publish notify for document, category or appinfo not exists! ID: " + document.getId() ); } } diff --git a/o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java b/o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java index ff12cc3833..593435eba8 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java +++ b/o2server/x_console/src/main/java/com/x/server/console/ResourceFactory.java @@ -62,7 +62,7 @@ public class ResourceFactory { new Resource(Config.RESOURCE_NODE_EVENTQUEUEEXECUTOR, eventQueueExecutor); new Resource(Config.RESOURCE_NODE_APPLICATIONS, null); new Resource(Config.RESOURCE_NODE_APPLICATIONSTIMESTAMP, null); - Entry entry = Config.nodes().centerServers().orderedEntrySet().get(0); + Entry entry = Config.nodes().centerServers().first(); new Resource(Config.RESOURCE_NODE_CENTERSPRIMARYNODE, entry.getKey()); new Resource(Config.RESOURCE_NODE_CENTERSPRIMARYPORT, entry.getValue().getPort()); new Resource(Config.RESOURCE_NODE_CENTERSPRIMARYSSLENABLE, entry.getValue().getSslEnable()); diff --git a/o2server/x_console/src/main/java/com/x/server/console/node/RegistApplicationsEvent.java b/o2server/x_console/src/main/java/com/x/server/console/node/RegistApplicationsEvent.java index f8f5f5d1a3..bab92db159 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/node/RegistApplicationsEvent.java +++ b/o2server/x_console/src/main/java/com/x/server/console/node/RegistApplicationsEvent.java @@ -2,6 +2,7 @@ package com.x.server.console.node; import java.util.ArrayList; import java.util.List; +import java.util.Map.Entry; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -12,6 +13,7 @@ import org.eclipse.jetty.server.handler.gzip.GzipHandler; import com.x.base.core.project.Application; import com.x.base.core.project.Applications; +import com.x.base.core.project.config.CenterServer; import com.x.base.core.project.config.Config; import com.x.base.core.project.connection.CipherConnectionAction; import com.x.base.core.project.gson.XGsonBuilder; @@ -65,8 +67,11 @@ public class RegistApplicationsEvent implements Event { req.setValue(XGsonBuilder.toJson(list)); - CipherConnectionAction.put(false, Config.url_x_program_center_jaxrs("center", "regist", "applications"), - req); + for (Entry entry : Config.nodes().centerServers().orderedEntry()) { + CipherConnectionAction.put(false, + Config.url_x_program_center_jaxrs(entry, "center", "regist", "applications"), req); + + } Config.resource_node_eventQueue().put(XGsonBuilder.instance().toJsonTree(new UpdateApplicationsEvent())); } diff --git a/o2server/x_console/src/main/java/com/x/server/console/node/VoteCenterEvent.java b/o2server/x_console/src/main/java/com/x/server/console/node/VoteCenterEvent.java index 26d617d3d2..34a446fd07 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/node/VoteCenterEvent.java +++ b/o2server/x_console/src/main/java/com/x/server/console/node/VoteCenterEvent.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; import java.util.Objects; -import java.util.Set; import org.apache.commons.lang3.StringUtils; @@ -24,12 +23,13 @@ public class VoteCenterEvent implements Event { public void execute() throws Exception { - Set> set = Config.nodes().centerServers().orderedEntrySet(); + List> list = Config.nodes().centerServers().orderedEntry(); - for (Entry entry : set) { + for (Entry entry : list) { try { - ActionResponse response = CipherConnectionAction.get(false, Config.url_x_program_center_jaxrs("echo")); + ActionResponse response = CipherConnectionAction.get(false, + Config.url_x_program_center_jaxrs(entry, "echo")); JsonElement jsonElement = response.getData(); @@ -38,7 +38,7 @@ public class VoteCenterEvent implements Event { || (!Objects.equals(Config.resource_node_centersPirmaryPort(), entry.getValue().getPort())) || (!Objects.equals(Config.resource_node_centersPirmarySslEnable(), entry.getValue().getSslEnable()))) { - logger.print("pirmary center set as:{}, in {}.", entry.getKey(), this.nodes(set)); + logger.print("pirmary center set as:{}, in {}.", entry.getKey(), this.nodes(list)); Config.resource_node_centersPirmaryNode(entry.getKey()); Config.resource_node_centersPirmaryPort(entry.getValue().getPort()); Config.resource_node_centersPirmarySslEnable(entry.getValue().getSslEnable()); @@ -53,9 +53,9 @@ public class VoteCenterEvent implements Event { } - private String nodes(Set> set) { + private String nodes(List> list) { List os = new ArrayList<>(); - for (Entry entry : set) { + for (Entry entry : list) { os.add(entry.getKey()); } return StringUtils.join(os, ","); diff --git a/o2server/x_console/src/main/java/com/x/server/console/server/web/WebServerTools.java b/o2server/x_console/src/main/java/com/x/server/console/server/web/WebServerTools.java index 3bad310c72..8fc40d02dc 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/server/web/WebServerTools.java +++ b/o2server/x_console/src/main/java/com/x/server/console/server/web/WebServerTools.java @@ -88,7 +88,7 @@ public class WebServerTools extends JettySeverTools { Gson gson = XGsonBuilder.instance(); LinkedHashMap map = new LinkedHashMap<>(); /** 覆盖掉配置的参数 */ - com.x.base.core.project.config.CenterServer centerServerConfig = Config.nodes().centerServers().first(); + com.x.base.core.project.config.CenterServer centerServerConfig = Config.nodes().centerServers().first().getValue(); map.putAll(centerServerConfig.getConfig()); List> centers = new ArrayList<>(); map.put("center", centers); diff --git a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionCreate.java b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionCreate.java index 972a76320d..f7a332b982 100644 --- a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionCreate.java +++ b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionCreate.java @@ -84,8 +84,9 @@ class ActionCreate extends BaseAction { emc.beginTransaction(Person.class); emc.persist(identity, CheckPersistType.all); - person.setTopUnitList( - (ListTools.trim(person.getTopUnitList(), true, true, this.topUnit(business, unit).getId()))); + List topUnits = business.unit() + .pick(ListTools.trim(person.getTopUnitList(), true, true, this.topUnit(business, unit).getId())); + person.setTopUnitList(ListTools.extractField(topUnits, Unit.id_FIELDNAME, String.class, true, true)); emc.persist(person, CheckPersistType.all); emc.commit(); diff --git a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionEdit.java b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionEdit.java index f4a57d7263..ed428fd17f 100644 --- a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionEdit.java +++ b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionEdit.java @@ -1,5 +1,7 @@ package com.x.organization.assemble.control.jaxrs.identity; +import java.util.List; + import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; @@ -68,8 +70,9 @@ class ActionEdit extends BaseAction { } } emc.check(identity, CheckPersistType.all); - person.setTopUnitList( - (ListTools.trim(person.getTopUnitList(), true, true, this.topUnit(business, unit).getId()))); + List topUnits = business.unit() + .pick(ListTools.trim(person.getTopUnitList(), true, true, this.topUnit(business, unit).getId())); + person.setTopUnitList(ListTools.extractField(topUnits, Unit.id_FIELDNAME, String.class, true, true)); emc.check(person, CheckPersistType.all); emc.commit(); ApplicationCache.notify(Identity.class); diff --git a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionListLike.java b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionListLike.java index 96afe84322..8fcfaa2c4f 100644 --- a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionListLike.java +++ b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionListLike.java @@ -57,6 +57,8 @@ class ActionListLike extends BaseAction { private String key; @FieldDescribe("搜索组织范围,为空则不限定") private List unitList = new ArrayList<>(); + @FieldDescribe("搜索职务范围,为空则不限定") + private List dutyList = new ArrayList<>(); public String getKey() { return key; diff --git a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionCreate.java b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionCreate.java index e8ae213959..edd13c3b5e 100644 --- a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionCreate.java +++ b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionCreate.java @@ -23,10 +23,8 @@ import com.x.base.core.project.logger.LoggerFactory; import com.x.base.core.project.organization.OrganizationDefinition; import com.x.base.core.project.tools.ListTools; import com.x.organization.assemble.control.Business; -import com.x.organization.assemble.control.jaxrs.person.ActionGet.Wo; import com.x.organization.core.entity.Person; - -import net.sf.ehcache.Element; +import com.x.organization.core.entity.Unit; class ActionCreate extends BaseAction { @@ -49,7 +47,8 @@ class ActionCreate extends BaseAction { if ((!Config.token().isInitialManager(effectivePerson.getDistinguishedName())) && (!effectivePerson.isCipher())) { Person current = business.person().pick(effectivePerson.getDistinguishedName()); - person.setTopUnitList(current.getTopUnitList()); + List topUnits = business.unit().pick(current.getTopUnitList()); + person.setTopUnitList(ListTools.extractField(topUnits, Unit.id_FIELDNAME, String.class, true, true)); } else { person.setTopUnitList(new ArrayList()); } diff --git a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionEdit.java b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionEdit.java index 2199743505..f3893fc387 100644 --- a/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionEdit.java +++ b/o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionEdit.java @@ -21,6 +21,7 @@ import com.x.base.core.project.jaxrs.WoId; import com.x.base.core.project.tools.ListTools; import com.x.organization.assemble.control.Business; import com.x.organization.core.entity.Person; +import com.x.organization.core.entity.Unit; class ActionEdit extends BaseAction { @@ -37,6 +38,7 @@ class ActionEdit extends BaseAction { throw new ExceptionAccessDenied(effectivePerson); } Wi.copier.copy(wi, person); + this.checkName(business, person.getName(), person.getId()); this.checkMobile(business, person.getMobile(), person.getId()); this.checkEmployee(business, person.getEmployee(), person.getId()); @@ -52,6 +54,10 @@ class ActionEdit extends BaseAction { person.setSuperior(superior.getId()); } this.convertControllerList(effectivePerson, business, person); + if (ListTools.isNotEmpty(person.getTopUnitList())) { + List topUnits = business.unit().pick(person.getTopUnitList()); + person.setTopUnitList(ListTools.extractField(topUnits, Unit.id_FIELDNAME, String.class, true, true)); + } emc.beginTransaction(Person.class); /* * 从内存中pick出来的无法作为实体保存,不能在前面执行,以为后面的convertControllerList也有一个pick, diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/CodeTransferQueue.java b/o2server/x_program_center/src/main/java/com/x/program/center/CodeTransferQueue.java deleted file mode 100644 index 7925650f3c..0000000000 --- a/o2server/x_program_center/src/main/java/com/x/program/center/CodeTransferQueue.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.x.program.center; - -import org.apache.commons.lang3.BooleanUtils; - -import com.x.base.core.project.cache.ApplicationCache; -import com.x.base.core.project.config.Config; -import com.x.base.core.project.connection.ActionResponse; -import com.x.base.core.project.connection.ConnectionAction; -import com.x.base.core.project.gson.GsonPropertyObject; -import com.x.base.core.project.jaxrs.WrapBoolean; -import com.x.base.core.project.logger.Logger; -import com.x.base.core.project.logger.LoggerFactory; -import com.x.base.core.project.queue.AbstractQueue; -import com.x.program.center.CodeTransferQueue.Message; -import com.x.program.center.core.entity.Code; - -import net.sf.ehcache.Ehcache; -import net.sf.ehcache.Element; - -public class CodeTransferQueue extends AbstractQueue { - - private static Logger logger = LoggerFactory.getLogger(CodeTransferQueue.class); - - private static final Integer TRANSFER_INTERVAL = 30; - - private static final Integer MAX_INTERVAL_COUNT = 5; - - /** 进行缓存主要目的是判断上次发送时间,不能在短时间内重复发送 */ - private static Ehcache cache = ApplicationCache.instance().getCache(Code.class, 1000, TRANSFER_INTERVAL, - TRANSFER_INTERVAL); - - private static final String collect_code_transfer_address = "http://collect.xplatform.tech:20080/o2_collect_assemble/jaxrs/code/transfer"; - - public void execute(Message message) { - try { - if (BooleanUtils.isNotTrue(Config.collect().getEnable())) { - logger.warn("短信无法发送,系统没有启用O2云服务."); - return; - } - Integer count = this.intervalCount(message); - if (count > MAX_INTERVAL_COUNT) { - logger.warn("短信发送请求被忽略.手机号: {}, 在{}秒内重复发送{}次.", message.getMobile(), TRANSFER_INTERVAL, count); - return; - } - message.setName(Config.collect().getName()); - message.setPassword(Config.collect().getPassword()); - ActionResponse resp = ConnectionAction.put(collect_code_transfer_address, null, message); - Wo wo = resp.getData(Wo.class); - if (BooleanUtils.isNotTrue(wo.getValue())) { - throw new Exception("transfer code message error:" + resp); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static class Wo extends WrapBoolean { - - } - - private Integer intervalCount(Message message) { - String cacheKey = ApplicationCache.concreteCacheKey(message.getMobile()); - Element element = cache.get(cacheKey); - Integer count = 1; - if ((null != element) && (null != element.getObjectValue())) { - count = (Integer) element.getObjectValue(); - count = count + 1; - } - cache.put(new Element(cacheKey, count)); - return count; - } - - public class Message extends GsonPropertyObject { - - private String mobile; - - private String answer; - - private String name; - - private String password; - - public String getMobile() { - return mobile; - } - - public void setMobile(String mobile) { - this.mobile = mobile; - } - - public String getAnswer() { - return answer; - } - - public void setAnswer(String answer) { - this.answer = answer; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - } - -} diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/ThisApplication.java b/o2server/x_program_center/src/main/java/com/x/program/center/ThisApplication.java index 0689eea22b..6cbb97c8a3 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/ThisApplication.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/ThisApplication.java @@ -35,7 +35,7 @@ public class ThisApplication { public static LogQueue logQueue; - public static CodeTransferQueue codeTransferQueue; + // public static CodeTransferQueue codeTransferQueue; public static List dingdingSyncOrganizationCallbackRequest = new ArrayList<>(); @@ -96,7 +96,7 @@ public class ThisApplication { try { centerQueue.stop(); logQueue.stop(); - codeTransferQueue.stop(); + // codeTransferQueue.stop(); } catch (Exception e) { e.printStackTrace(); } diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/ActionApplication.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/ActionApplication.java index 711b7e4679..e0d3189cb0 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/ActionApplication.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/ActionApplication.java @@ -25,7 +25,6 @@ import com.x.program.center.jaxrs.pms.PmsAction; import com.x.program.center.jaxrs.prompterrorlog.PromptErrorLogAction; import com.x.program.center.jaxrs.qiyeweixin.QiyeweixinAction; import com.x.program.center.jaxrs.schedule.ScheduleAction; -import com.x.program.center.jaxrs.storagemappings.StorageMappingsAction; import com.x.program.center.jaxrs.test.TestAction; import com.x.program.center.jaxrs.unexpectederrorlog.UnexpectedErrorLogAction; import com.x.program.center.jaxrs.validation.ValidationAction; @@ -43,13 +42,10 @@ public class ActionApplication extends AbstractActionApplication { classes.add(CenterAction.class); classes.add(CodeAction.class); classes.add(CollectAction.class); - // classes.add(DataMappingsAction.class); classes.add(DistributeAction.class); classes.add(PromptErrorLogAction.class); - // classes.add(StorageMappingsAction.class); classes.add(UnexpectedErrorLogAction.class); classes.add(WarnLogAction.class); - classes.add(TestAction.class); classes.add(JestAction.class); classes.add(ModuleAction.class); classes.add(PmsAction.class); @@ -63,6 +59,7 @@ public class ActionApplication extends AbstractActionApplication { classes.add(ScheduleAction.class); classes.add(AuthenticationAction.class); classes.add(ValidationAction.class); + classes.add(TestAction.class); return classes; } } diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/TestJaxrsFilter.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/TestJaxrsFilter.java index 25a4fee007..bdd54b8a60 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/TestJaxrsFilter.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/TestJaxrsFilter.java @@ -2,9 +2,9 @@ package com.x.program.center.jaxrs; import javax.servlet.annotation.WebFilter; -import com.x.base.core.project.jaxrs.CipherManagerJaxrsFilter; +import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter; @WebFilter(urlPatterns = "/jaxrs/test/*", asyncSupported = true) -public class TestJaxrsFilter extends CipherManagerJaxrsFilter { +public class TestJaxrsFilter extends AnonymousCipherManagerUserJaxrsFilter { } diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/center/CenterAction.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/center/CenterAction.java index bdee5c32a0..aef4c2d197 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/center/CenterAction.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/center/CenterAction.java @@ -28,24 +28,7 @@ public class CenterAction extends StandardJaxrsAction { private static Logger logger = LoggerFactory.getLogger(CenterAction.class); -// @PUT -// @Path("report/application") -// @JaxrsMethodDescribe(value = "应用报告.", action = ActionReportApplication.class) -// @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) -// @Consumes(MediaType.APPLICATION_JSON) -// public void report(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, -// JsonElement jsonElement) { -// ActionResult result = new ActionResult<>(); -// EffectivePerson effectivePerson = this.effectivePerson(request); -// try { -// result = new ActionReportApplication().execute(effectivePerson, jsonElement); -// } catch (Exception e) { -// logger.error(e, effectivePerson, request, jsonElement); -// result.error(e); -// } -// asyncResponse.resume(ResponseFactory.getDefaultActionResultResponse(result)); -// } - + @PUT @Path("regist/applications") @JaxrsMethodDescribe(value = "批量注册应用.", action = ActionRegistApplications.class) diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGet.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGet.java index 4d3f352404..bbabf941a7 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGet.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGet.java @@ -13,7 +13,7 @@ class ActionGet extends BaseAction { ActionResult execute(EffectivePerson effectivePerson) throws Exception { ActionResult result = new ActionResult<>(); Wo wo = new Wo(); - wo.setCenterServer(WoCenterServer.copier.copy(Config.nodes().centerServers().first())); + wo.setCenterServer(WoCenterServer.copier.copy(Config.nodes().centerServers().first().getValue())); result.setData(wo); return result; diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGetCenterServer.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGetCenterServer.java index a4875d9709..474bf842fb 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGetCenterServer.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGetCenterServer.java @@ -11,7 +11,7 @@ class ActionGetCenterServer extends BaseAction { ActionResult execute(EffectivePerson effectivePerson) throws Exception { ActionResult result = new ActionResult<>(); - Wo wo = Wo.copier.copy(Config.nodes().centerServers().first()); + Wo wo = Wo.copier.copy(Config.nodes().centerServers().first().getValue()); result.setData(wo); return result; } diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGetProxy.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGetProxy.java index 7a9b611a6c..b25a60f74d 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGetProxy.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionGetProxy.java @@ -21,10 +21,10 @@ class ActionGetProxy extends BaseAction { ActionResult result = new ActionResult<>(); Wo wo = new Wo(); wo.setApplicationList(new ArrayList()); - wo.setHttpProtocol(Config.nodes().centerServers().first().getHttpProtocol()); + wo.setHttpProtocol(Config.nodes().centerServers().first().getValue().getHttpProtocol()); Center center = new Center(); - center.setProxyHost(Config.nodes().centerServers().first().getProxyHost()); - center.setProxyPort(Config.nodes().centerServers().first().getProxyPort()); + center.setProxyHost(Config.nodes().centerServers().first().getValue().getProxyHost()); + center.setProxyPort(Config.nodes().centerServers().first().getValue().getProxyPort()); wo.setCenter(center); for (Entry en : Config.nodes().entrySet()) { if (null != en.getValue()) { diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetCenterServer.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetCenterServer.java index fae8bdf411..ca4f753613 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetCenterServer.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetCenterServer.java @@ -14,10 +14,10 @@ public class ActionSetCenterServer extends BaseAction { ActionResult execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception { ActionResult result = new ActionResult<>(); Wi wi = this.convertToWrapIn(jsonElement, Wi.class); - if (!Config.nodes().centerServers().first().getConfigApiEnable()) { + if (!Config.nodes().centerServers().first().getValue().getConfigApiEnable()) { throw new ExceptionModifyConfig(); } - Wi.copier.copy(wi, Config.nodes().centerServers().first()); + Wi.copier.copy(wi, Config.nodes().centerServers().first().getValue()); Config.nodes().save(); this.configFlush(effectivePerson); Wo wo = new Wo(); diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetCollect.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetCollect.java index aa34e18ff1..7dfd8a4cf1 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetCollect.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetCollect.java @@ -14,7 +14,7 @@ public class ActionSetCollect extends BaseAction { ActionResult execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception { ActionResult result = new ActionResult<>(); Wi wi = this.convertToWrapIn(jsonElement, Wi.class); - if (!Config.nodes().centerServers().first().getConfigApiEnable()) { + if (!Config.nodes().centerServers().first().getValue().getConfigApiEnable()) { throw new ExceptionModifyConfig(); } Wi.copier.copy(wi, Config.collect()); diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetPerson.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetPerson.java index 392af1666f..4844bcf0bf 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetPerson.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetPerson.java @@ -5,7 +5,6 @@ import com.x.base.core.project.bean.WrapCopier; import com.x.base.core.project.bean.WrapCopierFactory; import com.x.base.core.project.config.Config; import com.x.base.core.project.config.Person; -import com.x.base.core.project.exception.ExceptionAccessDenied; import com.x.base.core.project.http.ActionResult; import com.x.base.core.project.http.EffectivePerson; import com.x.base.core.project.jaxrs.WrapBoolean; @@ -15,7 +14,7 @@ public class ActionSetPerson extends BaseAction { ActionResult execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception { ActionResult result = new ActionResult<>(); Wi wi = this.convertToWrapIn(jsonElement, Wi.class); - if (!Config.nodes().centerServers().first().getConfigApiEnable()) { + if (!Config.nodes().centerServers().first().getValue().getConfigApiEnable()) { throw new ExceptionModifyConfig(); } Wi.copier.copy(wi, Config.person()); diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetProxy.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetProxy.java index 080dd45217..13943153f9 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetProxy.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetProxy.java @@ -17,7 +17,7 @@ class ActionSetProxy extends BaseAction { ActionResult execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception { ActionResult result = new ActionResult<>(); Wi wi = this.convertToWrapIn(jsonElement, Wi.class); - if (!Config.nodes().centerServers().first().getConfigApiEnable()) { + if (!Config.nodes().centerServers().first().getValue().getConfigApiEnable()) { throw new ExceptionModifyConfig(); } for (Entry en : Config.nodes().entrySet()) { diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetToken.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetToken.java index 590bc09882..f7ca08eba9 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetToken.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/config/ActionSetToken.java @@ -26,7 +26,7 @@ public class ActionSetToken extends BaseAction { ActionResult execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception { ActionResult result = new ActionResult<>(); Wi wi = this.convertToWrapIn(jsonElement, Wi.class); - if (!Config.nodes().centerServers().first().getConfigApiEnable()) { + if (!Config.nodes().centerServers().first().getValue().getConfigApiEnable()) { throw new ExceptionModifyConfig(); } /** 需要修改数据库密码 */ diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/test/ActionTest1.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/test/ActionTest1.java index 8b99211da8..7a0b93eec2 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/test/ActionTest1.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/test/ActionTest1.java @@ -1,44 +1,56 @@ package com.x.program.center.jaxrs.test; +import java.util.ArrayList; import java.util.List; - -import javax.persistence.EntityManager; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; - -import com.x.base.core.container.EntityManagerContainer; -import com.x.base.core.container.factory.EntityManagerContainerFactory; -import com.x.base.core.entity.JpaObject; +import java.util.Map.Entry; + +import com.x.base.core.project.Applications; +import com.x.base.core.project.config.CenterServer; +import com.x.base.core.project.config.CenterServers; +import com.x.base.core.project.config.Config; +import com.x.base.core.project.exception.ExceptionAccessDenied; +import com.x.base.core.project.gson.GsonPropertyObject; import com.x.base.core.project.http.ActionResult; import com.x.base.core.project.http.EffectivePerson; -import com.x.organization.core.entity.Person; class ActionTest1 extends BaseAction { - ActionResult> execute(EffectivePerson effectivePerson) throws Exception { - ActionResult> result = new ActionResult<>(); + ActionResult execute(EffectivePerson effectivePerson) throws Exception { - try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { - EntityManager em = emc.get(Person.class); - List os = em.createQuery(this.criteriaQuery(Person.class, Person.class)).setMaxResults(1) - .getResultList(); - result.setData(os); + ActionResult result = new ActionResult<>(); + + if (!effectivePerson.isManager()) { + throw new ExceptionAccessDenied(effectivePerson); } - return result; - } - private CriteriaQuery criteriaQuery(Class t, Class w) throws Exception { - try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { - EntityManager em = emc.get(t); - CriteriaBuilder cb = em.getCriteriaBuilder(); - CriteriaQuery cq = cb.createQuery(); - Root root = cq.from(t); - Predicate p = cb.isNotNull(root.get("id")); - return cq.where(p); + Wo wo = new Wo(); + + wo.applications = gson.fromJson(Config.resource_node_applications(), Applications.class); + wo.resource_node_centersPirmaryNode = Config.resource_node_centersPirmaryNode(); + wo.resource_node_centersPirmaryPort = Config.resource_node_centersPirmaryPort(); + wo.resource_node_centersPirmarySslEnable = Config.resource_node_centersPirmarySslEnable(); + for (Entry en : Config.nodes().centerServers().orderedEntry()) { + wo.nodes_centerServers_ordered.add(en.getValue()); } + wo.centerServers = Config.nodes().centerServers(); + result.setData(wo); + return result; } + public static class Wo extends GsonPropertyObject { + + private Applications applications; + + private String resource_node_centersPirmaryNode; + + private Integer resource_node_centersPirmaryPort; + + private Boolean resource_node_centersPirmarySslEnable; + + private List nodes_centerServers_ordered = new ArrayList<>(); + + private CenterServers centerServers; + + } } \ No newline at end of file diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/test/TestAction.java b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/test/TestAction.java index bd752f50fa..66ec110bbe 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/test/TestAction.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/test/TestAction.java @@ -34,7 +34,7 @@ public class TestAction extends StandardJaxrsAction { @Consumes(MediaType.APPLICATION_JSON) @JaxrsMethodDescribe(value = "测试,触发Area行政区域同步.", action = ActionTest1.class) public void test1(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) { - ActionResult> result = new ActionResult<>(); + ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionTest1().execute(effectivePerson); diff --git a/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectPerson.java b/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectPerson.java index 9452889b59..aead636e5f 100644 --- a/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectPerson.java +++ b/o2server/x_program_center/src/main/java/com/x/program/center/schedule/CollectPerson.java @@ -45,7 +45,7 @@ public class CollectPerson extends BaseAction { req.setSecret(Config.collect().getSecret()); req.setKey(Config.collect().getKey()); req.setMobileList(mobiles); - CenterServer centerServer = Config.nodes().centerServers().first(); + CenterServer centerServer = Config.nodes().centerServers().first().getValue(); req.setCenterProxyHost(centerServer.getProxyHost()); if (StringUtils.isEmpty(req.getCenterProxyHost())) { /* 如果没有设置地址,那么使用远程得到的服务器地址 */ -- GitLab