From a9053864bb3b5f4ec33e5df78d5502f9fc116739 Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Thu, 27 Nov 2025 09:47:19 +0800 Subject: [PATCH] commit --- .../sms/impl/jshvc/SmsJshvcServiceImpl.java | 149 +++ .../sms/impl/njupt/SmsNjuptServiceImpl.java | 85 -- .../impl/njupt/ucp/serv/MessageSender.java | 31 - .../impl/njupt/ucp/serv/client/Address.java | 112 --- .../njupt/ucp/serv/client/Attachment.java | 133 --- .../impl/njupt/ucp/serv/client/Channel.java | 208 ---- .../ucp/serv/client/ChannelDeliverState.java | 265 ----- .../ucp/serv/client/ChannelMessageDetail.java | 323 ------ .../ChannelMessageDetailProperties.java | 107 -- .../ChannelMessageDetailPropertiesEntry.java | 112 --- .../impl/njupt/ucp/serv/client/Message.java | 280 ------ .../ucp/serv/client/MessageException.java | 104 -- .../ucp/serv/client/MessageProperties.java | 112 --- .../serv/client/MessagePropertiesEntry.java | 117 --- .../impl/njupt/ucp/serv/client/Recipient.java | 113 --- .../njupt/ucp/serv/client/SendResult.java | 171 ---- .../client/UcpWebServPortBindingStub.java | 940 ------------------ .../ucp/serv/client/UcpWebServ_PortType.java | 36 - .../ucp/serv/client/UcpWebServ_Service.java | 18 - .../client/UcpWebServ_ServiceLocator.java | 127 --- .../njupt/ucp/serv/client/WrongAddress.java | 208 ---- .../sms/impl/njupt/ucp/ws/MessageService.java | 38 - .../impl/njupt/ucp/ws/SmsMessageSender.java | 46 - .../impl/njupt/ucp/ws/SmsMessageSender1.java | 48 - .../ws/client/SmsServicePortBindingStub.java | 350 ------- .../ucp/ws/client/SmsService_PortType.java | 22 - .../ucp/ws/client/SmsService_Service.java | 18 - .../ws/client/SmsService_ServiceLocator.java | 127 --- .../njupt/ucp/ws/client/msg/UcpMessage.java | 217 ---- .../msg/UcpMessageServicePortBindingStub.java | 236 ----- .../msg/UcpMessageService_PortType.java | 15 - .../client/msg/UcpMessageService_Service.java | 18 - .../msg/UcpMessageService_ServiceLocator.java | 127 --- .../one/SmsService1PortBindingStub.java | 362 ------- .../ws/client/one/SmsService1_PortType.java | 22 - .../ws/client/one/SmsService1_Service.java | 18 - .../one/SmsService1_ServiceLocator.java | 127 --- .../impl/njupt/ucp/ws/om/DeliverState.java | 156 --- .../njupt/ucp/ws/om/MessageException.java | 104 -- .../impl/njupt/ucp/ws/om/MessageState.java | 214 ---- .../ucp/ws/om/MessageStateProperties.java | 112 --- .../ws/om/MessageStatePropertiesEntry.java | 117 --- .../sms/impl/njupt/ucp/ws/om/SendResult.java | 150 --- .../impl/njupt/ucp/ws/om/WrongAddress.java | 117 --- .../njupt/ucp/ws/util/MessageBuilder.java | 117 --- .../impl/njupt/ucp/ws/util/TokenBuilder.java | 68 -- .../flow/controller/FlowDesignController.java | 335 +++---- .../app/flow/entity/ProcessCategory.java | 31 +- .../budwk/app/flow/entity/ProcessDesign.java | 92 +- .../controller/v4/SysV4AppsController.java | 177 ++-- .../controller/v4/SysV4ServController.java | 56 +- .../assets/platform/img/home/family.png | Bin 0 -> 364398 bytes src/main/resources/views/layouts/v4/apps.html | 59 +- .../resources/views/layouts/v4/home/entry.js | 42 +- .../views/layouts/v4/home/index.html | 2 +- .../resources/views/layouts/v4/home/stats.js | 67 +- src/main/resources/views/layouts/v4/serv.html | 37 +- .../views/platform/flow/category/index.html | 9 + .../views/platform/flow/design/index.html | 9 + .../views/platform/zhghh5/sys/home/apps.js | 46 +- src/test/java/com/budwk/app/JugTest.java | 192 +--- src/test/java/com/budwk/app/Test.java | 39 - 62 files changed, 654 insertions(+), 7236 deletions(-) create mode 100644 src/main/java/com/budwk/app/base/sms/impl/jshvc/SmsJshvcServiceImpl.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/SmsNjuptServiceImpl.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/MessageSender.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Address.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Attachment.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Channel.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelDeliverState.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetail.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetailProperties.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetailPropertiesEntry.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Message.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessageException.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessageProperties.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessagePropertiesEntry.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Recipient.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/SendResult.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServPortBindingStub.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_PortType.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_Service.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_ServiceLocator.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/WrongAddress.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/MessageService.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/SmsMessageSender.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/SmsMessageSender1.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsServicePortBindingStub.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_PortType.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_Service.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_ServiceLocator.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessage.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageServicePortBindingStub.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_PortType.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_Service.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_ServiceLocator.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1PortBindingStub.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_PortType.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_Service.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_ServiceLocator.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/DeliverState.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageException.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageState.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageStateProperties.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageStatePropertiesEntry.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/SendResult.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/WrongAddress.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/util/MessageBuilder.java delete mode 100644 src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/util/TokenBuilder.java create mode 100644 src/main/resources/static/assets/platform/img/home/family.png diff --git a/src/main/java/com/budwk/app/base/sms/impl/jshvc/SmsJshvcServiceImpl.java b/src/main/java/com/budwk/app/base/sms/impl/jshvc/SmsJshvcServiceImpl.java new file mode 100644 index 0000000..a93f3ba --- /dev/null +++ b/src/main/java/com/budwk/app/base/sms/impl/jshvc/SmsJshvcServiceImpl.java @@ -0,0 +1,149 @@ +package com.budwk.app.base.sms.impl.jshvc; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.digest.DigestUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import com.budwk.app.base.sms.SmsService; +import lombok.extern.slf4j.Slf4j; +import org.nutz.integration.jedis.RedisService; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; +import org.nutz.lang.Lang; +import org.nutz.lang.util.NutMap; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName SmsJshvcServiceImpl + * @Author JyuHsin + * @Date 2025/11/26 19:32 + * @Version 1.0 + * @Description TODO + */ +@Slf4j +@IocBean +public class SmsJshvcServiceImpl implements SmsService { + + private static final String APPID = "1430576717768122368"; + private static final String APP_SECRET = "19A0ACB03FBQHL4R4XQD"; + private static final String TOKEN_URL = "/token/gateway/accessToken"; + private static final String MSG_URL = "/mp/restful/v2/message/send"; + private static final String REDIS_KEY_MSG_ACCESS_TOKEN = "msg:token:"; + + @Inject + private RedisService redisService; + + @Override + public void send(String loginName, String content) { + send(loginName, "智慧工会", content); + } + + @Override + public void send(String loginName, String title, String content) { + send(loginName, "智慧工会", content, null); + } + + @Override + public void send(String loginName, String title, String content, String link) { + Map paramMap = Map.of("userId", loginName); + doSend(title, content, List.of(paramMap), link); + } + + @Override + public void massSend(List loginNames, String title, String content, String link) { + List> receivers = loginNames.stream() + .map(name -> Map.of("userId", name)) + .toList(); + doSend(title, content, receivers, link); + } + + /** + * sign: 请求签名:(accessToken + 第一个receivers 的userID )的32位小写的MD5加密值,其中如果相应部分没有则忽略 + * msgType: 0: 普通消息(默认) 1: 必读消息 2: 验证码(为验证码时消息一定不入收件箱) + * expiredTime: 当msgType 为1必读消息 ,该字段为必填字段 格式:yyyy-MM-dd HH:mm:ss + * sendType: 1.只发送PC门户 2.只发送移动校园 3.邮件 4.短信 5.微信企业号 6.钉钉企业内部应用工作通知 7.微信服务号 8.welink + * wxSendType: 当发送类型为5时此字段才会生效:text(文本消息)、textcard(文本卡片)、nes(图文卡片,如果图文,则qyWeChatImgUrl必填)、button(按钮卡片详见示例),不传默认为text + * receiverType: 1:用户 2:用户组 3:部门,默认为1 + * + * @param title + * @param content + * @param receivers + */ + private void doSend(String title, String content, List> receivers, String link) { + + if (Lang.isEmpty(receivers)) { + log.error("send fail by receivers is null"); + return; + } + + // 获取token + String accessToken = buildAccessToken(); + // 获取第一个接收人的userID + String firstUserId = receivers.get(0).get("userId"); + // md5小写加密生成签名 + String sign = DigestUtil.md5Hex(accessToken + firstUserId); + + NutMap paramsMap = new NutMap(); + paramsMap.put("sign", sign); + paramsMap.put("msgType", "0"); + paramsMap.put("subject", title); + paramsMap.put("content", content); + paramsMap.put("sendType", "5"); + paramsMap.put("receivers", receivers); + if (StrUtil.isBlank(link)) { + paramsMap.put("wxSendType", "text"); + } else { + paramsMap.put("wxSendType", "textcard"); + paramsMap.put("mobileUrl", link); + // 这是图文卡片,后面用到再对接吧 + // paramsMap.put("qyWeChatImgUrl", ""); + } + + log.debug("send params: {}", Json.toJson(paramsMap)); + + HttpRequest request = HttpRequest.post(MSG_URL) + .header("appId", APPID) + .header("accessToken", accessToken) + .body(Json.toJson(paramsMap)); + + try { + HttpResponse response = request.execute(); + log.info("send response body: {}", response.body()); + + NutMap bodyMap = Json.fromJson(NutMap.class, response.body()); + if (bodyMap.getInt("status") == 200) { + log.info("send success code: {}, msg: {}", bodyMap.getInt("status"), bodyMap.getString("msg")); + } else { + log.error("send error code: {}, msg: {}", bodyMap.getInt("status"), bodyMap.getString("msg")); + } + } catch (Exception e) { + log.error("Failed to send: {}", e.getMessage(), e); + } + } + + private String buildAccessToken() { + String token = redisService.get(REDIS_KEY_MSG_ACCESS_TOKEN); + if (StrUtil.isNotBlank(token)) { + return token; + } + HttpRequest request = HttpRequest.get(TOKEN_URL); + request.header("appId", APPID); + request.header("appSecret", APP_SECRET); + + HttpResponse response = request.execute(); + + log.info("accessToken response: {}", Json.toJson(response.body())); + + NutMap bodyMap = Json.fromJson(NutMap.class, response.body()); + if (bodyMap.getInt("errcode") == 0) { + log.info("accessToken status: {}", bodyMap.getInt("errorcode")); + return bodyMap.getString("data"); + } else { + log.error("accessToken status: {}", bodyMap.getInt("errorcode")); + } + return ""; + } +} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/SmsNjuptServiceImpl.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/SmsNjuptServiceImpl.java deleted file mode 100644 index f826df4..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/SmsNjuptServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt; - -import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.budwk.app.base.sms.SmsService; -import com.budwk.app.base.sms.impl.njupt.ucp.serv.MessageSender; -import com.budwk.app.base.sms.impl.njupt.ucp.serv.client.*; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.util.TokenBuilder; -import com.budwk.app.web.commons.base.Globals; -import lombok.extern.slf4j.Slf4j; -import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.json.Json; - -import java.util.ArrayList; -import java.util.List; - -/** - * 南邮短信实现 - * channeIds 短信、邮箱、及时消息(1,2,3) - */ -@IocBean -@Slf4j -public class SmsNjuptServiceImpl implements SmsService { - @Override - public void send(String loginName, String content) { - Address[] address = new Address[]{ - new Address("(" + loginName + ")", "uc_ux") - }; - Message message = builder(address, null, content, null); - send(message); - } - - @Override - public void send(String loginName, String title, String content) { - Address[] address = new Address[]{ - new Address("(" + loginName + ")", "uc_ux") - }; - Message message = builder(address, title, content, null); - send(message); - } - - @Override - public void send(String loginName, String title, String content, String link) { - Address[] address = new Address[]{ - new Address("(" + loginName + ")", "uc_ux") - }; - Message message = builder(address, title, content, link); - send(message); - } - - @Override - public void massSend(List loginNames, String title, String content, String link) { -// List
sms = loginNames.stream().map(loginName -> new Address(loginName, "sms")).toList(); - List
sms = loginNames.stream().map(loginName -> new Address("(" + loginName + ")", "uc_ux")).toList(); - Address[] addresses = ArrayUtil.toArray(sms, Address.class); - Message message = builder(addresses, title, content, link); - send(message); - } - - private void send(Message message) { - - } - - - private Message builder(Address[] address, String title, String content, String linkUrl) { - Message message = new Message(); - message.setTo(address); //接收人地址 - message.setSubject(title); //标题 - message.setContent(content); //内容 - message.setMsgType(StrUtil.isNotBlank(linkUrl) ? 1 : 0); //是否有链接 - MessagePropertiesEntry signature = buildProperty("smsSignature", ""); //用户签名 - MessagePropertiesEntry innermsg = buildProperty("innerMsg", "true"); //支持站内信 - MessagePropertiesEntry imLinkUrl = buildProperty("im_linkUrl", linkUrl);//短信中的链接 - MessagePropertiesEntry[] entrys = StrUtil.isNotBlank(linkUrl) ? new MessagePropertiesEntry[]{signature, innermsg, imLinkUrl} : new MessagePropertiesEntry[]{signature, innermsg}; - message.setProperties(new MessageProperties(entrys)); - return message; - } - - private MessagePropertiesEntry buildProperty(String key, String value) { - return new MessagePropertiesEntry(key, value); - } - - -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/MessageSender.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/MessageSender.java deleted file mode 100644 index fe493fa..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/MessageSender.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt.ucp.serv; - -import com.budwk.app.base.sms.impl.njupt.ucp.serv.client.UcpWebServ_PortType; -import com.budwk.app.base.sms.impl.njupt.ucp.serv.client.UcpWebServ_Service; -import com.budwk.app.base.sms.impl.njupt.ucp.serv.client.UcpWebServ_ServiceLocator; - -import java.net.URL; - -public class MessageSender { - public static final int[] MESSAGE_SOLUTION = new int[]{1}; - public static final int CHANNEL_SMS = 1; - public static final int CHANNEL_EMAIL = 2; - public static final int CHANNEL_IM = 3; - private String ws_url; - - public MessageSender(String url) { - this.ws_url = url; - } - - public MessageSender(String path, String url) { - this.ws_url = url; - System.setProperty("javax.net.ssl.keyStore", path); - System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); - System.setProperty("javax.net.ssl.keyStoreType", "PKCS12"); - } - - public UcpWebServ_PortType loadUcpClient() throws Exception { - UcpWebServ_Service uws_s = new UcpWebServ_ServiceLocator(); - return uws_s.getUcpWebServPort(new URL(this.ws_url)); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Address.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Address.java deleted file mode 100644 index f4ca773..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Address.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; - -public class Address implements Serializable { - private String address; - private String type; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(Address.class, true); - - public Address() { - } - - public Address(String address, String type) { - this.address = address; - this.type = type; - } - - public String getAddress() { - return this.address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getType() { - return this.type; - } - - public void setType(String type) { - this.type = type; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof Address)) { - return false; - } else { - Address other = (Address)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.address == null && other.getAddress() == null || this.address != null && this.address.equals(other.getAddress())) && (this.type == null && other.getType() == null || this.type != null && this.type.equals(other.getType())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getAddress() != null) { - _hashCode += this.getAddress().hashCode(); - } - - if (this.getType() != null) { - _hashCode += this.getType().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "address")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("address"); - elemField.setXmlName(new QName("", "address")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("type"); - elemField.setXmlName(new QName("", "type")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Attachment.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Attachment.java deleted file mode 100644 index 0530085..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Attachment.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; - -public class Attachment implements Serializable { - private String content; - private String mimeType; - private String name; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(Attachment.class, true); - - public Attachment() { - } - - public Attachment(String content, String mimeType, String name) { - this.content = content; - this.mimeType = mimeType; - this.name = name; - } - - public String getContent() { - return this.content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getMimeType() { - return this.mimeType; - } - - public void setMimeType(String mimeType) { - this.mimeType = mimeType; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof Attachment)) { - return false; - } else { - Attachment other = (Attachment)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.content == null && other.getContent() == null || this.content != null && this.content.equals(other.getContent())) && (this.mimeType == null && other.getMimeType() == null || this.mimeType != null && this.mimeType.equals(other.getMimeType())) && (this.name == null && other.getName() == null || this.name != null && this.name.equals(other.getName())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getContent() != null) { - _hashCode += this.getContent().hashCode(); - } - - if (this.getMimeType() != null) { - _hashCode += this.getMimeType().hashCode(); - } - - if (this.getName() != null) { - _hashCode += this.getName().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "attachment")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("content"); - elemField.setXmlName(new QName("", "content")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("mimeType"); - elemField.setXmlName(new QName("", "mimeType")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("name"); - elemField.setXmlName(new QName("", "name")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Channel.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Channel.java deleted file mode 100644 index 32335be..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Channel.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class Channel implements Serializable { - private String[] addressTypes; - private String config; - private String friendlyName; - private int id; - private String implClass; - private String name; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(Channel.class, true); - - public Channel() { - } - - public Channel(String[] addressTypes, String config, String friendlyName, int id, String implClass, String name) { - this.addressTypes = addressTypes; - this.config = config; - this.friendlyName = friendlyName; - this.id = id; - this.implClass = implClass; - this.name = name; - } - - public String[] getAddressTypes() { - return this.addressTypes; - } - - public void setAddressTypes(String[] addressTypes) { - this.addressTypes = addressTypes; - } - - public String getAddressTypes(int i) { - return this.addressTypes[i]; - } - - public void setAddressTypes(int i, String _value) { - this.addressTypes[i] = _value; - } - - public String getConfig() { - return this.config; - } - - public void setConfig(String config) { - this.config = config; - } - - public String getFriendlyName() { - return this.friendlyName; - } - - public void setFriendlyName(String friendlyName) { - this.friendlyName = friendlyName; - } - - public int getId() { - return this.id; - } - - public void setId(int id) { - this.id = id; - } - - public String getImplClass() { - return this.implClass; - } - - public void setImplClass(String implClass) { - this.implClass = implClass; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof Channel)) { - return false; - } else { - Channel other = (Channel)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.addressTypes == null && other.getAddressTypes() == null || this.addressTypes != null && Arrays.equals(this.addressTypes, other.getAddressTypes())) && (this.config == null && other.getConfig() == null || this.config != null && this.config.equals(other.getConfig())) && (this.friendlyName == null && other.getFriendlyName() == null || this.friendlyName != null && this.friendlyName.equals(other.getFriendlyName())) && this.id == other.getId() && (this.implClass == null && other.getImplClass() == null || this.implClass != null && this.implClass.equals(other.getImplClass())) && (this.name == null && other.getName() == null || this.name != null && this.name.equals(other.getName())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getAddressTypes() != null) { - for(int i = 0; i < Array.getLength(this.getAddressTypes()); ++i) { - Object obj = Array.get(this.getAddressTypes(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - if (this.getConfig() != null) { - _hashCode += this.getConfig().hashCode(); - } - - if (this.getFriendlyName() != null) { - _hashCode += this.getFriendlyName().hashCode(); - } - - _hashCode += this.getId(); - if (this.getImplClass() != null) { - _hashCode += this.getImplClass().hashCode(); - } - - if (this.getName() != null) { - _hashCode += this.getName().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "channel")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("addressTypes"); - elemField.setXmlName(new QName("", "addressTypes")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("config"); - elemField.setXmlName(new QName("", "config")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("friendlyName"); - elemField.setXmlName(new QName("", "friendlyName")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("id"); - elemField.setXmlName(new QName("", "id")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("implClass"); - elemField.setXmlName(new QName("", "implClass")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("name"); - elemField.setXmlName(new QName("", "name")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelDeliverState.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelDeliverState.java deleted file mode 100644 index c0419ab..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelDeliverState.java +++ /dev/null @@ -1,265 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.util.Calendar; - -public class ChannelDeliverState implements Serializable { - private int billCount; - private String chanelDeliverId; - private int channelId; - private String errorMessage; - private int frameNo; - private Recipient recipientBy; - private String recvMessageId; - private Calendar sendTime; - private Recipient sendTo; - private int state; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(ChannelDeliverState.class, true); - - public ChannelDeliverState() { - } - - public ChannelDeliverState(int billCount, String chanelDeliverId, int channelId, String errorMessage, int frameNo, Recipient recipientBy, String recvMessageId, Calendar sendTime, Recipient sendTo, int state) { - this.billCount = billCount; - this.chanelDeliverId = chanelDeliverId; - this.channelId = channelId; - this.errorMessage = errorMessage; - this.frameNo = frameNo; - this.recipientBy = recipientBy; - this.recvMessageId = recvMessageId; - this.sendTime = sendTime; - this.sendTo = sendTo; - this.state = state; - } - - public int getBillCount() { - return this.billCount; - } - - public void setBillCount(int billCount) { - this.billCount = billCount; - } - - public String getChanelDeliverId() { - return this.chanelDeliverId; - } - - public void setChanelDeliverId(String chanelDeliverId) { - this.chanelDeliverId = chanelDeliverId; - } - - public int getChannelId() { - return this.channelId; - } - - public void setChannelId(int channelId) { - this.channelId = channelId; - } - - public String getErrorMessage() { - return this.errorMessage; - } - - public void setErrorMessage(String errorMessage) { - this.errorMessage = errorMessage; - } - - public int getFrameNo() { - return this.frameNo; - } - - public void setFrameNo(int frameNo) { - this.frameNo = frameNo; - } - - public Recipient getRecipientBy() { - return this.recipientBy; - } - - public void setRecipientBy(Recipient recipientBy) { - this.recipientBy = recipientBy; - } - - public String getRecvMessageId() { - return this.recvMessageId; - } - - public void setRecvMessageId(String recvMessageId) { - this.recvMessageId = recvMessageId; - } - - public Calendar getSendTime() { - return this.sendTime; - } - - public void setSendTime(Calendar sendTime) { - this.sendTime = sendTime; - } - - public Recipient getSendTo() { - return this.sendTo; - } - - public void setSendTo(Recipient sendTo) { - this.sendTo = sendTo; - } - - public int getState() { - return this.state; - } - - public void setState(int state) { - this.state = state; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof ChannelDeliverState)) { - return false; - } else { - ChannelDeliverState other = (ChannelDeliverState)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = this.billCount == other.getBillCount() && (this.chanelDeliverId == null && other.getChanelDeliverId() == null || this.chanelDeliverId != null && this.chanelDeliverId.equals(other.getChanelDeliverId())) && this.channelId == other.getChannelId() && (this.errorMessage == null && other.getErrorMessage() == null || this.errorMessage != null && this.errorMessage.equals(other.getErrorMessage())) && this.frameNo == other.getFrameNo() && (this.recipientBy == null && other.getRecipientBy() == null || this.recipientBy != null && this.recipientBy.equals(other.getRecipientBy())) && (this.recvMessageId == null && other.getRecvMessageId() == null || this.recvMessageId != null && this.recvMessageId.equals(other.getRecvMessageId())) && (this.sendTime == null && other.getSendTime() == null || this.sendTime != null && this.sendTime.equals(other.getSendTime())) && (this.sendTo == null && other.getSendTo() == null || this.sendTo != null && this.sendTo.equals(other.getSendTo())) && this.state == other.getState(); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - _hashCode += this.getBillCount(); - if (this.getChanelDeliverId() != null) { - _hashCode += this.getChanelDeliverId().hashCode(); - } - - _hashCode += this.getChannelId(); - if (this.getErrorMessage() != null) { - _hashCode += this.getErrorMessage().hashCode(); - } - - _hashCode += this.getFrameNo(); - if (this.getRecipientBy() != null) { - _hashCode += this.getRecipientBy().hashCode(); - } - - if (this.getRecvMessageId() != null) { - _hashCode += this.getRecvMessageId().hashCode(); - } - - if (this.getSendTime() != null) { - _hashCode += this.getSendTime().hashCode(); - } - - if (this.getSendTo() != null) { - _hashCode += this.getSendTo().hashCode(); - } - - _hashCode += this.getState(); - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "channelDeliverState")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("billCount"); - elemField.setXmlName(new QName("", "billCount")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("chanelDeliverId"); - elemField.setXmlName(new QName("", "chanelDeliverId")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("channelId"); - elemField.setXmlName(new QName("", "channelId")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("errorMessage"); - elemField.setXmlName(new QName("", "errorMessage")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("frameNo"); - elemField.setXmlName(new QName("", "frameNo")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("recipientBy"); - elemField.setXmlName(new QName("", "recipientBy")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "recipient")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("recvMessageId"); - elemField.setXmlName(new QName("", "recvMessageId")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("sendTime"); - elemField.setXmlName(new QName("", "sendTime")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "dateTime")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("sendTo"); - elemField.setXmlName(new QName("", "sendTo")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "recipient")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("state"); - elemField.setXmlName(new QName("", "state")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetail.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetail.java deleted file mode 100644 index 80e5bd5..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetail.java +++ /dev/null @@ -1,323 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.util.Calendar; - -public class ChannelMessageDetail implements Serializable { - private int billCount; - private String chanelDeliverId; - private int channelId; - private String errorMessage; - private int frameNo; - private ChannelMessageDetailProperties properties; - private Recipient recipientBy; - private String recvMessageId; - private String replyContent; - private int replyCount; - private Calendar sendTime; - private Recipient sendTo; - private int state; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(ChannelMessageDetail.class, true); - - public ChannelMessageDetail() { - } - - public ChannelMessageDetail(int billCount, String chanelDeliverId, int channelId, String errorMessage, int frameNo, ChannelMessageDetailProperties properties, Recipient recipientBy, String recvMessageId, String replyContent, int replyCount, Calendar sendTime, Recipient sendTo, int state) { - this.billCount = billCount; - this.chanelDeliverId = chanelDeliverId; - this.channelId = channelId; - this.errorMessage = errorMessage; - this.frameNo = frameNo; - this.properties = properties; - this.recipientBy = recipientBy; - this.recvMessageId = recvMessageId; - this.replyContent = replyContent; - this.replyCount = replyCount; - this.sendTime = sendTime; - this.sendTo = sendTo; - this.state = state; - } - - public int getBillCount() { - return this.billCount; - } - - public void setBillCount(int billCount) { - this.billCount = billCount; - } - - public String getChanelDeliverId() { - return this.chanelDeliverId; - } - - public void setChanelDeliverId(String chanelDeliverId) { - this.chanelDeliverId = chanelDeliverId; - } - - public int getChannelId() { - return this.channelId; - } - - public void setChannelId(int channelId) { - this.channelId = channelId; - } - - public String getErrorMessage() { - return this.errorMessage; - } - - public void setErrorMessage(String errorMessage) { - this.errorMessage = errorMessage; - } - - public int getFrameNo() { - return this.frameNo; - } - - public void setFrameNo(int frameNo) { - this.frameNo = frameNo; - } - - public ChannelMessageDetailProperties getProperties() { - return this.properties; - } - - public void setProperties(ChannelMessageDetailProperties properties) { - this.properties = properties; - } - - public Recipient getRecipientBy() { - return this.recipientBy; - } - - public void setRecipientBy(Recipient recipientBy) { - this.recipientBy = recipientBy; - } - - public String getRecvMessageId() { - return this.recvMessageId; - } - - public void setRecvMessageId(String recvMessageId) { - this.recvMessageId = recvMessageId; - } - - public String getReplyContent() { - return this.replyContent; - } - - public void setReplyContent(String replyContent) { - this.replyContent = replyContent; - } - - public int getReplyCount() { - return this.replyCount; - } - - public void setReplyCount(int replyCount) { - this.replyCount = replyCount; - } - - public Calendar getSendTime() { - return this.sendTime; - } - - public void setSendTime(Calendar sendTime) { - this.sendTime = sendTime; - } - - public Recipient getSendTo() { - return this.sendTo; - } - - public void setSendTo(Recipient sendTo) { - this.sendTo = sendTo; - } - - public int getState() { - return this.state; - } - - public void setState(int state) { - this.state = state; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof ChannelMessageDetail)) { - return false; - } else { - ChannelMessageDetail other = (ChannelMessageDetail)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = this.billCount == other.getBillCount() && (this.chanelDeliverId == null && other.getChanelDeliverId() == null || this.chanelDeliverId != null && this.chanelDeliverId.equals(other.getChanelDeliverId())) && this.channelId == other.getChannelId() && (this.errorMessage == null && other.getErrorMessage() == null || this.errorMessage != null && this.errorMessage.equals(other.getErrorMessage())) && this.frameNo == other.getFrameNo() && (this.properties == null && other.getProperties() == null || this.properties != null && this.properties.equals(other.getProperties())) && (this.recipientBy == null && other.getRecipientBy() == null || this.recipientBy != null && this.recipientBy.equals(other.getRecipientBy())) && (this.recvMessageId == null && other.getRecvMessageId() == null || this.recvMessageId != null && this.recvMessageId.equals(other.getRecvMessageId())) && (this.replyContent == null && other.getReplyContent() == null || this.replyContent != null && this.replyContent.equals(other.getReplyContent())) && this.replyCount == other.getReplyCount() && (this.sendTime == null && other.getSendTime() == null || this.sendTime != null && this.sendTime.equals(other.getSendTime())) && (this.sendTo == null && other.getSendTo() == null || this.sendTo != null && this.sendTo.equals(other.getSendTo())) && this.state == other.getState(); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - _hashCode += this.getBillCount(); - if (this.getChanelDeliverId() != null) { - _hashCode += this.getChanelDeliverId().hashCode(); - } - - _hashCode += this.getChannelId(); - if (this.getErrorMessage() != null) { - _hashCode += this.getErrorMessage().hashCode(); - } - - _hashCode += this.getFrameNo(); - if (this.getProperties() != null) { - _hashCode += this.getProperties().hashCode(); - } - - if (this.getRecipientBy() != null) { - _hashCode += this.getRecipientBy().hashCode(); - } - - if (this.getRecvMessageId() != null) { - _hashCode += this.getRecvMessageId().hashCode(); - } - - if (this.getReplyContent() != null) { - _hashCode += this.getReplyContent().hashCode(); - } - - _hashCode += this.getReplyCount(); - if (this.getSendTime() != null) { - _hashCode += this.getSendTime().hashCode(); - } - - if (this.getSendTo() != null) { - _hashCode += this.getSendTo().hashCode(); - } - - _hashCode += this.getState(); - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "channelMessageDetail")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("billCount"); - elemField.setXmlName(new QName("", "billCount")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("chanelDeliverId"); - elemField.setXmlName(new QName("", "chanelDeliverId")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("channelId"); - elemField.setXmlName(new QName("", "channelId")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("errorMessage"); - elemField.setXmlName(new QName("", "errorMessage")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("frameNo"); - elemField.setXmlName(new QName("", "frameNo")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("properties"); - elemField.setXmlName(new QName("", "properties")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", ">channelMessageDetail>properties")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("recipientBy"); - elemField.setXmlName(new QName("", "recipientBy")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "recipient")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("recvMessageId"); - elemField.setXmlName(new QName("", "recvMessageId")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("replyContent"); - elemField.setXmlName(new QName("", "replyContent")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("replyCount"); - elemField.setXmlName(new QName("", "replyCount")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("sendTime"); - elemField.setXmlName(new QName("", "sendTime")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "dateTime")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("sendTo"); - elemField.setXmlName(new QName("", "sendTo")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "recipient")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("state"); - elemField.setXmlName(new QName("", "state")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetailProperties.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetailProperties.java deleted file mode 100644 index 9f34d87..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetailProperties.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class ChannelMessageDetailProperties implements Serializable { - private ChannelMessageDetailPropertiesEntry[] entry; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(ChannelMessageDetailProperties.class, true); - - public ChannelMessageDetailProperties() { - } - - public ChannelMessageDetailProperties(ChannelMessageDetailPropertiesEntry[] entry) { - this.entry = entry; - } - - public ChannelMessageDetailPropertiesEntry[] getEntry() { - return this.entry; - } - - public void setEntry(ChannelMessageDetailPropertiesEntry[] entry) { - this.entry = entry; - } - - public ChannelMessageDetailPropertiesEntry getEntry(int i) { - return this.entry[i]; - } - - public void setEntry(int i, ChannelMessageDetailPropertiesEntry _value) { - this.entry[i] = _value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof ChannelMessageDetailProperties)) { - return false; - } else { - ChannelMessageDetailProperties other = (ChannelMessageDetailProperties)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = this.entry == null && other.getEntry() == null || this.entry != null && Arrays.equals(this.entry, other.getEntry()); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getEntry() != null) { - for(int i = 0; i < Array.getLength(this.getEntry()); ++i) { - Object obj = Array.get(this.getEntry(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", ">channelMessageDetail>properties")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("entry"); - elemField.setXmlName(new QName("", "entry")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", ">>channelMessageDetail>properties>entry")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetailPropertiesEntry.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetailPropertiesEntry.java deleted file mode 100644 index a9a7522..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/ChannelMessageDetailPropertiesEntry.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; - -public class ChannelMessageDetailPropertiesEntry implements Serializable { - private String key; - private String value; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(ChannelMessageDetailPropertiesEntry.class, true); - - public ChannelMessageDetailPropertiesEntry() { - } - - public ChannelMessageDetailPropertiesEntry(String key, String value) { - this.key = key; - this.value = value; - } - - public String getKey() { - return this.key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getValue() { - return this.value; - } - - public void setValue(String value) { - this.value = value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof ChannelMessageDetailPropertiesEntry)) { - return false; - } else { - ChannelMessageDetailPropertiesEntry other = (ChannelMessageDetailPropertiesEntry)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.key == null && other.getKey() == null || this.key != null && this.key.equals(other.getKey())) && (this.value == null && other.getValue() == null || this.value != null && this.value.equals(other.getValue())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getKey() != null) { - _hashCode += this.getKey().hashCode(); - } - - if (this.getValue() != null) { - _hashCode += this.getValue().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", ">>channelMessageDetail>properties>entry")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("key"); - elemField.setXmlName(new QName("", "key")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("value"); - elemField.setXmlName(new QName("", "value")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Message.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Message.java deleted file mode 100644 index f00497b..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Message.java +++ /dev/null @@ -1,280 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class Message implements Serializable { - private Address[] bcc; - private Address[] cc; - private String content; - private int msgType; - private boolean needReply; - private MessageProperties properties; - private String subject; - private Address[] to; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(Message.class, true); - - public Message() { - } - - public Message(Address[] bcc, Address[] cc, String content, int msgType, boolean needReply, MessageProperties properties, String subject, Address[] to) { - this.bcc = bcc; - this.cc = cc; - this.content = content; - this.msgType = msgType; - this.needReply = needReply; - this.properties = properties; - this.subject = subject; - this.to = to; - } - - public Address[] getBcc() { - return this.bcc; - } - - public void setBcc(Address[] bcc) { - this.bcc = bcc; - } - - public Address getBcc(int i) { - return this.bcc[i]; - } - - public void setBcc(int i, Address _value) { - this.bcc[i] = _value; - } - - public Address[] getCc() { - return this.cc; - } - - public void setCc(Address[] cc) { - this.cc = cc; - } - - public Address getCc(int i) { - return this.cc[i]; - } - - public void setCc(int i, Address _value) { - this.cc[i] = _value; - } - - public String getContent() { - return this.content; - } - - public void setContent(String content) { - this.content = content; - } - - public int getMsgType() { - return this.msgType; - } - - public void setMsgType(int msgType) { - this.msgType = msgType; - } - - public boolean isNeedReply() { - return this.needReply; - } - - public void setNeedReply(boolean needReply) { - this.needReply = needReply; - } - - public MessageProperties getProperties() { - return this.properties; - } - - public void setProperties(MessageProperties properties) { - this.properties = properties; - } - - public String getSubject() { - return this.subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } - - public Address[] getTo() { - return this.to; - } - - public void setTo(Address[] to) { - this.to = to; - } - - public Address getTo(int i) { - return this.to[i]; - } - - public void setTo(int i, Address _value) { - this.to[i] = _value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof Message)) { - return false; - } else { - Message other = (Message)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.bcc == null && other.getBcc() == null || this.bcc != null && Arrays.equals(this.bcc, other.getBcc())) && (this.cc == null && other.getCc() == null || this.cc != null && Arrays.equals(this.cc, other.getCc())) && (this.content == null && other.getContent() == null || this.content != null && this.content.equals(other.getContent())) && this.msgType == other.getMsgType() && this.needReply == other.isNeedReply() && (this.properties == null && other.getProperties() == null || this.properties != null && this.properties.equals(other.getProperties())) && (this.subject == null && other.getSubject() == null || this.subject != null && this.subject.equals(other.getSubject())) && (this.to == null && other.getTo() == null || this.to != null && Arrays.equals(this.to, other.getTo())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - int i; - Object obj; - if (this.getBcc() != null) { - for(i = 0; i < Array.getLength(this.getBcc()); ++i) { - obj = Array.get(this.getBcc(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - if (this.getCc() != null) { - for(i = 0; i < Array.getLength(this.getCc()); ++i) { - obj = Array.get(this.getCc(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - if (this.getContent() != null) { - _hashCode += this.getContent().hashCode(); - } - - _hashCode += this.getMsgType(); - _hashCode += (this.isNeedReply() ? Boolean.TRUE : Boolean.FALSE).hashCode(); - if (this.getProperties() != null) { - _hashCode += this.getProperties().hashCode(); - } - - if (this.getSubject() != null) { - _hashCode += this.getSubject().hashCode(); - } - - if (this.getTo() != null) { - for(i = 0; i < Array.getLength(this.getTo()); ++i) { - obj = Array.get(this.getTo(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "message")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("bcc"); - elemField.setXmlName(new QName("", "bcc")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "address")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("cc"); - elemField.setXmlName(new QName("", "cc")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "address")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("content"); - elemField.setXmlName(new QName("", "content")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("msgType"); - elemField.setXmlName(new QName("", "msgType")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("needReply"); - elemField.setXmlName(new QName("", "needReply")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "boolean")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("properties"); - elemField.setXmlName(new QName("", "properties")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", ">message>properties")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("subject"); - elemField.setXmlName(new QName("", "subject")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("to"); - elemField.setXmlName(new QName("", "to")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "address")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessageException.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessageException.java deleted file mode 100644 index b547520..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessageException.java +++ /dev/null @@ -1,104 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.AxisFault; -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.SerializationContext; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; -import org.xml.sax.Attributes; - -import javax.xml.namespace.QName; -import java.io.IOException; -import java.io.Serializable; - -public class MessageException extends AxisFault implements Serializable { - private String message1; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(MessageException.class, true); - - public MessageException() { - } - - public MessageException(String message1) { - this.message1 = message1; - } - - public String getMessage1() { - return this.message1; - } - - public void setMessage1(String message1) { - this.message1 = message1; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof MessageException)) { - return false; - } else { - MessageException other = (MessageException)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = this.message1 == null && other.getMessage1() == null || this.message1 != null && this.message1.equals(other.getMessage1()); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getMessage1() != null) { - _hashCode += this.getMessage1().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - public void writeDetails(QName qname, SerializationContext context) throws IOException { - context.serialize(qname, (Attributes)null, this); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "MessageException")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("message1"); - elemField.setXmlName(new QName("", "message")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessageProperties.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessageProperties.java deleted file mode 100644 index e2aab06..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessageProperties.java +++ /dev/null @@ -1,112 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class MessageProperties implements Serializable { - private MessagePropertiesEntry[] entry; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(MessageProperties.class, true); - - public MessageProperties() { - } - - public MessageProperties(MessagePropertiesEntry[] entry) { - this.entry = entry; - } - - public MessagePropertiesEntry[] getEntry() { - return this.entry; - } - - public void setEntry(MessagePropertiesEntry[] entry) { - this.entry = entry; - } - - public MessagePropertiesEntry getEntry(int i) { - return this.entry[i]; - } - - public void setEntry(int i, MessagePropertiesEntry _value) { - this.entry[i] = _value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof MessageProperties)) { - return false; - } else { - MessageProperties other = (MessageProperties)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = this.entry == null && other.getEntry() == null || this.entry != null && Arrays.equals(this.entry, other.getEntry()); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getEntry() != null) { - for(int i = 0; i < Array.getLength(this.getEntry()); ++i) { - Object obj = Array.get(this.getEntry(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", ">message>properties")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("entry"); - elemField.setXmlName(new QName("", "entry")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", ">>message>properties>entry")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessagePropertiesEntry.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessagePropertiesEntry.java deleted file mode 100644 index 7b34a02..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/MessagePropertiesEntry.java +++ /dev/null @@ -1,117 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; - -public class MessagePropertiesEntry implements Serializable { - private String key; - private String value; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(MessagePropertiesEntry.class, true); - - public MessagePropertiesEntry() { - } - - public MessagePropertiesEntry(String key, String value) { - this.key = key; - this.value = value; - } - - public String getKey() { - return this.key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getValue() { - return this.value; - } - - public void setValue(String value) { - this.value = value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof MessagePropertiesEntry)) { - return false; - } else { - MessagePropertiesEntry other = (MessagePropertiesEntry)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.key == null && other.getKey() == null || this.key != null && this.key.equals(other.getKey())) && (this.value == null && other.getValue() == null || this.value != null && this.value.equals(other.getValue())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getKey() != null) { - _hashCode += this.getKey().hashCode(); - } - - if (this.getValue() != null) { - _hashCode += this.getValue().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", ">>message>properties>entry")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("key"); - elemField.setXmlName(new QName("", "key")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("value"); - elemField.setXmlName(new QName("", "value")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Recipient.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Recipient.java deleted file mode 100644 index be04d73..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/Recipient.java +++ /dev/null @@ -1,113 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; - -public class Recipient implements Serializable { - private Address address; - private int type; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(Recipient.class, true); - - public Recipient() { - } - - public Recipient(Address address, int type) { - this.address = address; - this.type = type; - } - - public Address getAddress() { - return this.address; - } - - public void setAddress(Address address) { - this.address = address; - } - - public int getType() { - return this.type; - } - - public void setType(int type) { - this.type = type; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof Recipient)) { - return false; - } else { - Recipient other = (Recipient)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.address == null && other.getAddress() == null || this.address != null && this.address.equals(other.getAddress())) && this.type == other.getType(); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getAddress() != null) { - _hashCode += this.getAddress().hashCode(); - } - - _hashCode += this.getType(); - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "recipient")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("address"); - elemField.setXmlName(new QName("", "address")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "address")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("type"); - elemField.setXmlName(new QName("", "type")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/SendResult.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/SendResult.java deleted file mode 100644 index a5e7fec..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/SendResult.java +++ /dev/null @@ -1,171 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class SendResult implements Serializable { - private String errorInfo; - private String messageId; - private boolean succeeded; - private WrongAddress[] wrongAddresses; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(SendResult.class, true); - - public SendResult() { - } - - public SendResult(String errorInfo, String messageId, boolean succeeded, WrongAddress[] wrongAddresses) { - this.errorInfo = errorInfo; - this.messageId = messageId; - this.succeeded = succeeded; - this.wrongAddresses = wrongAddresses; - } - - public String getErrorInfo() { - return this.errorInfo; - } - - public void setErrorInfo(String errorInfo) { - this.errorInfo = errorInfo; - } - - public String getMessageId() { - return this.messageId; - } - - public void setMessageId(String messageId) { - this.messageId = messageId; - } - - public boolean isSucceeded() { - return this.succeeded; - } - - public void setSucceeded(boolean succeeded) { - this.succeeded = succeeded; - } - - public WrongAddress[] getWrongAddresses() { - return this.wrongAddresses; - } - - public void setWrongAddresses(WrongAddress[] wrongAddresses) { - this.wrongAddresses = wrongAddresses; - } - - public WrongAddress getWrongAddresses(int i) { - return this.wrongAddresses[i]; - } - - public void setWrongAddresses(int i, WrongAddress _value) { - this.wrongAddresses[i] = _value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof SendResult)) { - return false; - } else { - SendResult other = (SendResult)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.errorInfo == null && other.getErrorInfo() == null || this.errorInfo != null && this.errorInfo.equals(other.getErrorInfo())) && (this.messageId == null && other.getMessageId() == null || this.messageId != null && this.messageId.equals(other.getMessageId())) && this.succeeded == other.isSucceeded() && (this.wrongAddresses == null && other.getWrongAddresses() == null || this.wrongAddresses != null && Arrays.equals(this.wrongAddresses, other.getWrongAddresses())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getErrorInfo() != null) { - _hashCode += this.getErrorInfo().hashCode(); - } - - if (this.getMessageId() != null) { - _hashCode += this.getMessageId().hashCode(); - } - - _hashCode += (this.isSucceeded() ? Boolean.TRUE : Boolean.FALSE).hashCode(); - if (this.getWrongAddresses() != null) { - for(int i = 0; i < Array.getLength(this.getWrongAddresses()); ++i) { - Object obj = Array.get(this.getWrongAddresses(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "sendResult")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("errorInfo"); - elemField.setXmlName(new QName("", "errorInfo")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("messageId"); - elemField.setXmlName(new QName("", "messageId")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("succeeded"); - elemField.setXmlName(new QName("", "succeeded")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "boolean")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("wrongAddresses"); - elemField.setXmlName(new QName("", "wrongAddresses")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "wrongAddress")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServPortBindingStub.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServPortBindingStub.java deleted file mode 100644 index b37ec73..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServPortBindingStub.java +++ /dev/null @@ -1,940 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.AxisFault; -import org.apache.axis.NoEndPointException; -import org.apache.axis.client.Call; -import org.apache.axis.client.Stub; -import org.apache.axis.constants.Style; -import org.apache.axis.constants.Use; -import org.apache.axis.description.FaultDesc; -import org.apache.axis.description.OperationDesc; -import org.apache.axis.description.ParameterDesc; -import org.apache.axis.encoding.DeserializerFactory; -import org.apache.axis.encoding.ser.*; -import org.apache.axis.soap.SOAPConstants; -import org.apache.axis.utils.JavaUtils; - -import javax.xml.namespace.QName; -import javax.xml.rpc.Service; -import javax.xml.rpc.encoding.SerializerFactory; -import java.net.URL; -import java.rmi.RemoteException; -import java.util.Calendar; -import java.util.Enumeration; -import java.util.Vector; - -public class UcpWebServPortBindingStub extends Stub implements UcpWebServ_PortType { - private Vector cachedSerClasses; - private Vector cachedSerQNames; - private Vector cachedSerFactories; - private Vector cachedDeserFactories; - static OperationDesc[] _operations = new OperationDesc[12]; - - private static void _initOperationDesc1() { - OperationDesc oper = new OperationDesc(); - oper.setName("sendMessage"); - ParameterDesc param = new ParameterDesc(new QName("", "boxId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "message"), (byte)1, new QName("http://serv.ucp.sudytech.com/", "message"), Message.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "channels"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), int[].class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "usesSignature"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "boolean"), Boolean.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "plannedTime"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "dateTime"), Calendar.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://serv.ucp.sudytech.com/", "sendResult")); - oper.setReturnClass(SendResult.class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://serv.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.serv.client.MessageException", new QName("http://serv.ucp.sudytech.com/", "MessageException"), true)); - _operations[0] = oper; - oper = new OperationDesc(); - oper.setName("addAttachment"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "attachment"), (byte)1, new QName("http://serv.ucp.sudytech.com/", "attachment"), Attachment.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - oper.setReturnClass(String.class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://serv.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.serv.client.MessageException", new QName("http://serv.ucp.sudytech.com/", "MessageException"), true)); - _operations[1] = oper; - oper = new OperationDesc(); - oper.setName("deleteAttachment"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "attachmentId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://www.w3.org/2001/XMLSchema", "boolean")); - oper.setReturnClass(Boolean.TYPE); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://serv.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.serv.client.MessageException", new QName("http://serv.ucp.sudytech.com/", "MessageException"), true)); - _operations[2] = oper; - oper = new OperationDesc(); - oper.setName("createMessage"); - param = new ParameterDesc(new QName("", "boxId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "message"), (byte)1, new QName("http://serv.ucp.sudytech.com/", "message"), Message.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - oper.setReturnClass(String.class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://serv.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.serv.client.MessageException", new QName("http://serv.ucp.sudytech.com/", "MessageException"), true)); - _operations[3] = oper; - oper = new OperationDesc(); - oper.setName("deleteMessage"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://www.w3.org/2001/XMLSchema", "boolean")); - oper.setReturnClass(Boolean.TYPE); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://serv.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.serv.client.MessageException", new QName("http://serv.ucp.sudytech.com/", "MessageException"), true)); - _operations[4] = oper; - oper = new OperationDesc(); - oper.setName("sendSavedMessage"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "channels"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), int[].class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "usesSignature"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "boolean"), Boolean.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "plannedTime"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "dateTime"), Calendar.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://serv.ucp.sudytech.com/", "sendResult")); - oper.setReturnClass(SendResult.class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://serv.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.serv.client.MessageException", new QName("http://serv.ucp.sudytech.com/", "MessageException"), true)); - _operations[5] = oper; - oper = new OperationDesc(); - oper.setName("sendIndivMessage"); - param = new ParameterDesc(new QName("", "boxId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "message"), (byte)1, new QName("http://serv.ucp.sudytech.com/", "message"), Message.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "channels"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), int[].class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "usesSignature"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "boolean"), Boolean.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "solution"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "datasrc"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "idvidualParams"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "plannedTime"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "dateTime"), Calendar.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://serv.ucp.sudytech.com/", "sendResult")); - oper.setReturnClass(SendResult.class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://serv.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.serv.client.MessageException", new QName("http://serv.ucp.sudytech.com/", "MessageException"), true)); - _operations[6] = oper; - oper = new OperationDesc(); - oper.setName("sendIndivSavedMessage"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "channels"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), int[].class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "usesSignature"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "boolean"), Boolean.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "solution"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "datasrc"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "idvidualParams"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "plannedTime"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "dateTime"), Calendar.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://serv.ucp.sudytech.com/", "sendResult")); - oper.setReturnClass(SendResult.class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://serv.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.serv.client.MessageException", new QName("http://serv.ucp.sudytech.com/", "MessageException"), true)); - _operations[7] = oper; - oper = new OperationDesc(); - oper.setName("getMessageDeliverCount"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "channel"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - oper.setReturnClass(Integer.TYPE); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - _operations[8] = oper; - oper = new OperationDesc(); - oper.setName("getMessageDelivers"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "channel"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "beginIndex"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "count"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://serv.ucp.sudytech.com/", "channelDeliverState")); - oper.setReturnClass(ChannelDeliverState[].class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - _operations[9] = oper; - } - - private static void _initOperationDesc2() { - OperationDesc oper = new OperationDesc(); - oper.setName("getChannelMessageDetailCount"); - ParameterDesc param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "channel"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - oper.setReturnClass(Integer.TYPE); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - _operations[10] = oper; - oper = new OperationDesc(); - oper.setName("getChannelMessageDetails"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "channel"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "beginIndex"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "count"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "serviceToken"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://serv.ucp.sudytech.com/", "channelMessageDetail")); - oper.setReturnClass(ChannelMessageDetail[].class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - _operations[11] = oper; - } - - public UcpWebServPortBindingStub() throws AxisFault { - this((Service)null); - } - - public UcpWebServPortBindingStub(URL endpointURL, Service service) throws AxisFault { - this(service); - super.cachedEndpoint = endpointURL; - } - - public UcpWebServPortBindingStub(Service service) throws AxisFault { - this.cachedSerClasses = new Vector(); - this.cachedSerQNames = new Vector(); - this.cachedSerFactories = new Vector(); - this.cachedDeserFactories = new Vector(); - if (service == null) { - super.service = new org.apache.axis.client.Service(); - } else { - super.service = service; - } - - ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); - Class beansf = BeanSerializerFactory.class; - Class beandf = BeanDeserializerFactory.class; - Class enumsf = EnumSerializerFactory.class; - Class enumdf = EnumDeserializerFactory.class; - Class arraysf = ArraySerializerFactory.class; - Class arraydf = ArrayDeserializerFactory.class; - Class simplesf = SimpleSerializerFactory.class; - Class simpledf = SimpleDeserializerFactory.class; - Class simplelistsf = SimpleListSerializerFactory.class; - Class simplelistdf = SimpleListDeserializerFactory.class; - QName qName = new QName("http://serv.ucp.sudytech.com/", ">>channelMessageDetail>properties>entry"); - this.cachedSerQNames.add(qName); - Class cls = ChannelMessageDetailPropertiesEntry.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", ">>message>properties>entry"); - this.cachedSerQNames.add(qName); - cls = MessagePropertiesEntry.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", ">channelMessageDetail>properties"); - this.cachedSerQNames.add(qName); - cls = ChannelMessageDetailProperties.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", ">message>properties"); - this.cachedSerQNames.add(qName); - cls = MessageProperties.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "address"); - this.cachedSerQNames.add(qName); - cls = Address.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "attachment"); - this.cachedSerQNames.add(qName); - cls = Attachment.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "channel"); - this.cachedSerQNames.add(qName); - cls = Channel.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "channelDeliverState"); - this.cachedSerQNames.add(qName); - cls = ChannelDeliverState.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "channelMessageDetail"); - this.cachedSerQNames.add(qName); - cls = ChannelMessageDetail.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "message"); - this.cachedSerQNames.add(qName); - cls = Message.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "MessageException"); - this.cachedSerQNames.add(qName); - cls = MessageException.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "recipient"); - this.cachedSerQNames.add(qName); - cls = Recipient.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "sendResult"); - this.cachedSerQNames.add(qName); - cls = SendResult.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://serv.ucp.sudytech.com/", "wrongAddress"); - this.cachedSerQNames.add(qName); - cls = WrongAddress.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - } - - protected Call createCall() throws RemoteException { - try { - Call _call = super._createCall(); - if (super.maintainSessionSet) { - _call.setMaintainSession(super.maintainSession); - } - - if (super.cachedUsername != null) { - _call.setUsername(super.cachedUsername); - } - - if (super.cachedPassword != null) { - _call.setPassword(super.cachedPassword); - } - - if (super.cachedEndpoint != null) { - _call.setTargetEndpointAddress(super.cachedEndpoint); - } - - if (super.cachedTimeout != null) { - _call.setTimeout(super.cachedTimeout); - } - - if (super.cachedPortName != null) { - _call.setPortName(super.cachedPortName); - } - - Enumeration keys = super.cachedProperties.keys(); - - while(keys.hasMoreElements()) { - String key = (String)keys.nextElement(); - _call.setProperty(key, super.cachedProperties.get(key)); - } - - synchronized(this) { - if (this.firstCall()) { - _call.setEncodingStyle((String)null); - - for(int i = 0; i < this.cachedSerFactories.size(); ++i) { - Class cls = (Class)this.cachedSerClasses.get(i); - QName qName = (QName)this.cachedSerQNames.get(i); - Object x = this.cachedSerFactories.get(i); - if (x instanceof Class) { - Class sf = (Class)this.cachedSerFactories.get(i); - Class df = (Class)this.cachedDeserFactories.get(i); - _call.registerTypeMapping(cls, qName, sf, df, false); - } else if (x instanceof SerializerFactory) { - org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)this.cachedSerFactories.get(i); - DeserializerFactory df = (DeserializerFactory)this.cachedDeserFactories.get(i); - _call.registerTypeMapping(cls, qName, sf, df, false); - } - } - } - } - - return _call; - } catch (Throwable var12) { - throw new AxisFault("Failure trying to get the Call object", var12); - } - } - - public SendResult sendMessage(int boxId, Message message, int[] channels, boolean usesSignature, Calendar plannedTime, String serviceToken) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[0]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "sendMessage")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{new Integer(boxId), message, channels, new Boolean(usesSignature), plannedTime, serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (SendResult)_resp; - } catch (Exception var10) { - return (SendResult)JavaUtils.convert(_resp, SendResult.class); - } - } - } catch (AxisFault var11) { - if (var11.detail != null) { - if (var11.detail instanceof RemoteException) { - throw (RemoteException)var11.detail; - } - - if (var11.detail instanceof MessageException) { - throw (MessageException)var11.detail; - } - } - - throw var11; - } - } - } - - public String addAttachment(String messageId, Attachment attachment, String serviceToken) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[1]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "addAttachment")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, attachment, serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (String)_resp; - } catch (Exception var7) { - return (String)JavaUtils.convert(_resp, String.class); - } - } - } catch (AxisFault var8) { - if (var8.detail != null) { - if (var8.detail instanceof RemoteException) { - throw (RemoteException)var8.detail; - } - - if (var8.detail instanceof MessageException) { - throw (MessageException)var8.detail; - } - } - - throw var8; - } - } - } - - public boolean deleteAttachment(String messageId, String attachmentId, String serviceToken) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[2]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "deleteAttachment")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, attachmentId, serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (Boolean)_resp; - } catch (Exception var7) { - return (Boolean)JavaUtils.convert(_resp, Boolean.TYPE); - } - } - } catch (AxisFault var8) { - if (var8.detail != null) { - if (var8.detail instanceof RemoteException) { - throw (RemoteException)var8.detail; - } - - if (var8.detail instanceof MessageException) { - throw (MessageException)var8.detail; - } - } - - throw var8; - } - } - } - - public String createMessage(int boxId, Message message, String serviceToken) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[3]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "createMessage")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{new Integer(boxId), message, serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (String)_resp; - } catch (Exception var7) { - return (String)JavaUtils.convert(_resp, String.class); - } - } - } catch (AxisFault var8) { - if (var8.detail != null) { - if (var8.detail instanceof RemoteException) { - throw (RemoteException)var8.detail; - } - - if (var8.detail instanceof MessageException) { - throw (MessageException)var8.detail; - } - } - - throw var8; - } - } - } - - public boolean deleteMessage(String messageId, String serviceToken) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[4]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "deleteMessage")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (Boolean)_resp; - } catch (Exception var6) { - return (Boolean)JavaUtils.convert(_resp, Boolean.TYPE); - } - } - } catch (AxisFault var7) { - if (var7.detail != null) { - if (var7.detail instanceof RemoteException) { - throw (RemoteException)var7.detail; - } - - if (var7.detail instanceof MessageException) { - throw (MessageException)var7.detail; - } - } - - throw var7; - } - } - } - - public SendResult sendSavedMessage(String messageId, int[] channels, boolean usesSignature, Calendar plannedTime, String serviceToken) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[5]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "sendSavedMessage")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, channels, new Boolean(usesSignature), plannedTime, serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (SendResult)_resp; - } catch (Exception var9) { - return (SendResult)JavaUtils.convert(_resp, SendResult.class); - } - } - } catch (AxisFault var10) { - if (var10.detail != null) { - if (var10.detail instanceof RemoteException) { - throw (RemoteException)var10.detail; - } - - if (var10.detail instanceof MessageException) { - throw (MessageException)var10.detail; - } - } - - throw var10; - } - } - } - - public SendResult sendIndivMessage(int boxId, Message message, int[] channels, boolean usesSignature, int solution, String datasrc, String idvidualParams, Calendar plannedTime, String serviceToken) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[6]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "sendIndivMessage")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{new Integer(boxId), message, channels, new Boolean(usesSignature), new Integer(solution), datasrc, idvidualParams, plannedTime, serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (SendResult)_resp; - } catch (Exception var13) { - return (SendResult)JavaUtils.convert(_resp, SendResult.class); - } - } - } catch (AxisFault var14) { - if (var14.detail != null) { - if (var14.detail instanceof RemoteException) { - throw (RemoteException)var14.detail; - } - - if (var14.detail instanceof MessageException) { - throw (MessageException)var14.detail; - } - } - - throw var14; - } - } - } - - public SendResult sendIndivSavedMessage(String messageId, int[] channels, boolean usesSignature, int solution, String datasrc, String idvidualParams, Calendar plannedTime, String serviceToken) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[7]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "sendIndivSavedMessage")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, channels, new Boolean(usesSignature), new Integer(solution), datasrc, idvidualParams, plannedTime, serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (SendResult)_resp; - } catch (Exception var12) { - return (SendResult)JavaUtils.convert(_resp, SendResult.class); - } - } - } catch (AxisFault var13) { - if (var13.detail != null) { - if (var13.detail instanceof RemoteException) { - throw (RemoteException)var13.detail; - } - - if (var13.detail instanceof MessageException) { - throw (MessageException)var13.detail; - } - } - - throw var13; - } - } - } - - public int getMessageDeliverCount(String messageId, int channel, String serviceToken) throws RemoteException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[8]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "getMessageDeliverCount")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, new Integer(channel), serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (Integer)_resp; - } catch (Exception var7) { - return (Integer)JavaUtils.convert(_resp, Integer.TYPE); - } - } - } catch (AxisFault var8) { - throw var8; - } - } - } - - public ChannelDeliverState[] getMessageDelivers(String messageId, int channel, int beginIndex, int count, String serviceToken) throws RemoteException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[9]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "getMessageDelivers")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, new Integer(channel), new Integer(beginIndex), new Integer(count), serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (ChannelDeliverState[])((ChannelDeliverState[])_resp); - } catch (Exception var9) { - return (ChannelDeliverState[])((ChannelDeliverState[])JavaUtils.convert(_resp, ChannelDeliverState[].class)); - } - } - } catch (AxisFault var10) { - throw var10; - } - } - } - - public int getChannelMessageDetailCount(String messageId, int channel, String serviceToken) throws RemoteException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[10]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "getChannelMessageDetailCount")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, new Integer(channel), serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (Integer)_resp; - } catch (Exception var7) { - return (Integer)JavaUtils.convert(_resp, Integer.TYPE); - } - } - } catch (AxisFault var8) { - throw var8; - } - } - } - - public ChannelMessageDetail[] getChannelMessageDetails(String messageId, int channel, int beginIndex, int count, String serviceToken) throws RemoteException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[11]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://serv.ucp.sudytech.com/", "getChannelMessageDetails")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, new Integer(channel), new Integer(beginIndex), new Integer(count), serviceToken}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (ChannelMessageDetail[])((ChannelMessageDetail[])_resp); - } catch (Exception var9) { - return (ChannelMessageDetail[])((ChannelMessageDetail[])JavaUtils.convert(_resp, ChannelMessageDetail[].class)); - } - } - } catch (AxisFault var10) { - throw var10; - } - } - } - - static { - _initOperationDesc1(); - _initOperationDesc2(); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_PortType.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_PortType.java deleted file mode 100644 index 3c9c0e3..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_PortType.java +++ /dev/null @@ -1,36 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import java.rmi.Remote; -import java.rmi.RemoteException; -import java.util.Calendar; - -public interface UcpWebServ_PortType extends Remote { - SendResult sendMessage(int var1, Message var2, int[] var3, boolean var4, Calendar var5, String var6) throws RemoteException, MessageException; - - String addAttachment(String var1, Attachment var2, String var3) throws RemoteException, MessageException; - - boolean deleteAttachment(String var1, String var2, String var3) throws RemoteException, MessageException; - - String createMessage(int var1, Message var2, String var3) throws RemoteException, MessageException; - - boolean deleteMessage(String var1, String var2) throws RemoteException, MessageException; - - SendResult sendSavedMessage(String var1, int[] var2, boolean var3, Calendar var4, String var5) throws RemoteException, MessageException; - - SendResult sendIndivMessage(int var1, Message var2, int[] var3, boolean var4, int var5, String var6, String var7, Calendar var8, String var9) throws RemoteException, MessageException; - - SendResult sendIndivSavedMessage(String var1, int[] var2, boolean var3, int var4, String var5, String var6, Calendar var7, String var8) throws RemoteException, MessageException; - - int getMessageDeliverCount(String var1, int var2, String var3) throws RemoteException; - - ChannelDeliverState[] getMessageDelivers(String var1, int var2, int var3, int var4, String var5) throws RemoteException; - - int getChannelMessageDetailCount(String var1, int var2, String var3) throws RemoteException; - - ChannelMessageDetail[] getChannelMessageDetails(String var1, int var2, int var3, int var4, String var5) throws RemoteException; -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_Service.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_Service.java deleted file mode 100644 index 8cf0fc2..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_Service.java +++ /dev/null @@ -1,18 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import javax.xml.rpc.Service; -import javax.xml.rpc.ServiceException; -import java.net.URL; - -public interface UcpWebServ_Service extends Service { - String getUcpWebServPortAddress(); - - UcpWebServ_PortType getUcpWebServPort() throws ServiceException; - - UcpWebServ_PortType getUcpWebServPort(URL var1) throws ServiceException; -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_ServiceLocator.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_ServiceLocator.java deleted file mode 100644 index 8cda203..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/UcpWebServ_ServiceLocator.java +++ /dev/null @@ -1,127 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.AxisFault; -import org.apache.axis.EngineConfiguration; -import org.apache.axis.client.Service; -import org.apache.axis.client.Stub; - -import javax.xml.namespace.QName; -import javax.xml.rpc.ServiceException; -import java.net.MalformedURLException; -import java.net.URL; -import java.rmi.Remote; -import java.util.HashSet; -import java.util.Iterator; - -public class UcpWebServ_ServiceLocator extends Service implements UcpWebServ_Service { - private String UcpWebServPort_address = "http://172.18.10.32:8181/UcpWebServ"; - private String UcpWebServPortWSDDServiceName = "UcpWebServPort"; - private HashSet ports = null; - - public UcpWebServ_ServiceLocator() { - } - - public UcpWebServ_ServiceLocator(EngineConfiguration config) { - super(config); - } - - public UcpWebServ_ServiceLocator(String wsdlLoc, QName sName) throws ServiceException { - super(wsdlLoc, sName); - } - - public String getUcpWebServPortAddress() { - return this.UcpWebServPort_address; - } - - public String getUcpWebServPortWSDDServiceName() { - return this.UcpWebServPortWSDDServiceName; - } - - public void setUcpWebServPortWSDDServiceName(String name) { - this.UcpWebServPortWSDDServiceName = name; - } - - public UcpWebServ_PortType getUcpWebServPort() throws ServiceException { - URL endpoint; - try { - endpoint = new URL(this.UcpWebServPort_address); - } catch (MalformedURLException var3) { - throw new ServiceException(var3); - } - - return this.getUcpWebServPort(endpoint); - } - - public UcpWebServ_PortType getUcpWebServPort(URL portAddress) throws ServiceException { - try { - UcpWebServPortBindingStub _stub = new UcpWebServPortBindingStub(portAddress, this); - _stub.setPortName(this.getUcpWebServPortWSDDServiceName()); - return _stub; - } catch (AxisFault var3) { - return null; - } - } - - public void setUcpWebServPortEndpointAddress(String address) { - this.UcpWebServPort_address = address; - } - - public Remote getPort(Class serviceEndpointInterface) throws ServiceException { - try { - if (UcpWebServ_PortType.class.isAssignableFrom(serviceEndpointInterface)) { - UcpWebServPortBindingStub _stub = new UcpWebServPortBindingStub(new URL(this.UcpWebServPort_address), this); - _stub.setPortName(this.getUcpWebServPortWSDDServiceName()); - return _stub; - } - } catch (Throwable var3) { - throw new ServiceException(var3); - } - - throw new ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); - } - - public Remote getPort(QName portName, Class serviceEndpointInterface) throws ServiceException { - if (portName == null) { - return this.getPort(serviceEndpointInterface); - } else { - String inputPortName = portName.getLocalPart(); - if ("UcpWebServPort".equals(inputPortName)) { - return this.getUcpWebServPort(); - } else { - Remote _stub = this.getPort(serviceEndpointInterface); - ((Stub)_stub).setPortName(portName); - return _stub; - } - } - } - - public QName getServiceName() { - return new QName("http://serv.ucp.sudytech.com/", "UcpWebServ"); - } - - public Iterator getPorts() { - if (this.ports == null) { - this.ports = new HashSet(); - this.ports.add(new QName("http://serv.ucp.sudytech.com/", "UcpWebServPort")); - } - - return this.ports.iterator(); - } - - public void setEndpointAddress(String portName, String address) throws ServiceException { - if ("UcpWebServPort".equals(portName)) { - this.setUcpWebServPortEndpointAddress(address); - } else { - throw new ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); - } - } - - public void setEndpointAddress(QName portName, String address) throws ServiceException { - this.setEndpointAddress(portName.getLocalPart(), address); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/WrongAddress.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/WrongAddress.java deleted file mode 100644 index 372d9f3..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/serv/client/WrongAddress.java +++ /dev/null @@ -1,208 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.serv.client; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class WrongAddress implements Serializable { - private Address address; - private String errorInfo; - private int errorType; - private Channel[] forbiddenChannels; - private Address[] subAddresses; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(WrongAddress.class, true); - - public WrongAddress() { - } - - public WrongAddress(Address address, String errorInfo, int errorType, Channel[] forbiddenChannels, Address[] subAddresses) { - this.address = address; - this.errorInfo = errorInfo; - this.errorType = errorType; - this.forbiddenChannels = forbiddenChannels; - this.subAddresses = subAddresses; - } - - public Address getAddress() { - return this.address; - } - - public void setAddress(Address address) { - this.address = address; - } - - public String getErrorInfo() { - return this.errorInfo; - } - - public void setErrorInfo(String errorInfo) { - this.errorInfo = errorInfo; - } - - public int getErrorType() { - return this.errorType; - } - - public void setErrorType(int errorType) { - this.errorType = errorType; - } - - public Channel[] getForbiddenChannels() { - return this.forbiddenChannels; - } - - public void setForbiddenChannels(Channel[] forbiddenChannels) { - this.forbiddenChannels = forbiddenChannels; - } - - public Channel getForbiddenChannels(int i) { - return this.forbiddenChannels[i]; - } - - public void setForbiddenChannels(int i, Channel _value) { - this.forbiddenChannels[i] = _value; - } - - public Address[] getSubAddresses() { - return this.subAddresses; - } - - public void setSubAddresses(Address[] subAddresses) { - this.subAddresses = subAddresses; - } - - public Address getSubAddresses(int i) { - return this.subAddresses[i]; - } - - public void setSubAddresses(int i, Address _value) { - this.subAddresses[i] = _value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof WrongAddress)) { - return false; - } else { - WrongAddress other = (WrongAddress)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.address == null && other.getAddress() == null || this.address != null && this.address.equals(other.getAddress())) && (this.errorInfo == null && other.getErrorInfo() == null || this.errorInfo != null && this.errorInfo.equals(other.getErrorInfo())) && this.errorType == other.getErrorType() && (this.forbiddenChannels == null && other.getForbiddenChannels() == null || this.forbiddenChannels != null && Arrays.equals(this.forbiddenChannels, other.getForbiddenChannels())) && (this.subAddresses == null && other.getSubAddresses() == null || this.subAddresses != null && Arrays.equals(this.subAddresses, other.getSubAddresses())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getAddress() != null) { - _hashCode += this.getAddress().hashCode(); - } - - if (this.getErrorInfo() != null) { - _hashCode += this.getErrorInfo().hashCode(); - } - - _hashCode += this.getErrorType(); - int i; - Object obj; - if (this.getForbiddenChannels() != null) { - for(i = 0; i < Array.getLength(this.getForbiddenChannels()); ++i) { - obj = Array.get(this.getForbiddenChannels(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - if (this.getSubAddresses() != null) { - for(i = 0; i < Array.getLength(this.getSubAddresses()); ++i) { - obj = Array.get(this.getSubAddresses(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://serv.ucp.sudytech.com/", "wrongAddress")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("address"); - elemField.setXmlName(new QName("", "address")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "address")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("errorInfo"); - elemField.setXmlName(new QName("", "errorInfo")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("errorType"); - elemField.setXmlName(new QName("", "errorType")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("forbiddenChannels"); - elemField.setXmlName(new QName("", "forbiddenChannels")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "channel")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("subAddresses"); - elemField.setXmlName(new QName("", "subAddresses")); - elemField.setXmlType(new QName("http://serv.ucp.sudytech.com/", "address")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/MessageService.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/MessageService.java deleted file mode 100644 index f22bd68..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/MessageService.java +++ /dev/null @@ -1,38 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws; - -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg.UcpMessage; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg.UcpMessageService_PortType; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg.UcpMessageService_Service; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg.UcpMessageService_ServiceLocator; - -import java.net.URL; - -public class MessageService { - private String url; - - public MessageService(String url) { - this.url = url; - } - - public UcpMessageService_PortType loadMessageServiceClient() throws Exception { - UcpMessageService_Service service = new UcpMessageService_ServiceLocator(); - return service.getUcpMessageServicePort(new URL(this.url)); - } - - public int findUnreadMessageCount(String loginName) throws Exception { - return this.loadMessageServiceClient().findUnreadMessageCount(loginName); - } - - public UcpMessage[] findUnreadMessages(String loginName) throws Exception { - return this.loadMessageServiceClient().findUnreadMessages(loginName, -1, -1); - } - - public UcpMessage[] findUnreadMessages(String loginName, int beginIndex, int count) throws Exception { - return this.loadMessageServiceClient().findUnreadMessages(loginName, beginIndex, count); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/SmsMessageSender.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/SmsMessageSender.java deleted file mode 100644 index ec48f93..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/SmsMessageSender.java +++ /dev/null @@ -1,46 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws; - -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.SmsService_PortType; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.SmsService_Service; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.SmsService_ServiceLocator; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.DeliverState; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.MessageState; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.SendResult; - -import java.net.URL; - -public class SmsMessageSender { - private String url; - - public SmsMessageSender(String path, String url) { - this.url = url; - System.setProperty("javax.net.ssl.keyStore", path); - System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); - System.setProperty("javax.net.ssl.keyStoreType", "PKCS12"); - } - - private SmsService_PortType loadSmsClient() throws Exception { - SmsService_Service service = new SmsService_ServiceLocator(); - return service.getSmsServicePort(new URL(this.url)); - } - - public SendResult send(String context, String[] phones) throws Exception { - SmsService_PortType client = this.loadSmsClient(); - return client.sendSmsMessage(context, phones); - } - - public DeliverState[] findSmsMessageDelivers(String messageId) throws Exception { - SmsService_PortType client = this.loadSmsClient(); - return client.findSmsMessageDelivers(messageId); - } - - public MessageState[] findSmsMessageStates(String messageId) throws Exception { - SmsService_PortType client = this.loadSmsClient(); - return client.findSmsMessageStates(messageId); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/SmsMessageSender1.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/SmsMessageSender1.java deleted file mode 100644 index 3dfbfda..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/SmsMessageSender1.java +++ /dev/null @@ -1,48 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws; - - -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.one.SmsService1_PortType; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.one.SmsService1_Service; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.client.one.SmsService1_ServiceLocator; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.DeliverState; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.MessageState; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.SendResult; - -import java.net.URL; - -public class SmsMessageSender1 { - private String url; - private String username; - private String password; - - public SmsMessageSender1(String url, String username, String password) { - this.url = url; - this.username = username; - this.password = password; - } - - private SmsService1_PortType loadSmsClient() throws Exception { - SmsService1_Service service = new SmsService1_ServiceLocator(); - return service.getSmsService1Port(new URL(this.url)); - } - - public SendResult send(String context, String[] phones) throws Exception { - SmsService1_PortType client = this.loadSmsClient(); - return client.sendSmsMessage(context, phones, this.username, this.password); - } - - public DeliverState[] findSmsMessageDelivers(String messageId) throws Exception { - SmsService1_PortType client = this.loadSmsClient(); - return client.findSmsMessageDelivers(messageId, this.username, this.password); - } - - public MessageState[] findSmsMessageStates(String messageId) throws Exception { - SmsService1_PortType client = this.loadSmsClient(); - return client.findSmsMessageStates(messageId, this.username, this.password); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsServicePortBindingStub.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsServicePortBindingStub.java deleted file mode 100644 index 53e692a..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsServicePortBindingStub.java +++ /dev/null @@ -1,350 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client; - -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.*; -import org.apache.axis.AxisFault; -import org.apache.axis.NoEndPointException; -import org.apache.axis.client.Call; -import org.apache.axis.client.Stub; -import org.apache.axis.constants.Style; -import org.apache.axis.constants.Use; -import org.apache.axis.description.FaultDesc; -import org.apache.axis.description.OperationDesc; -import org.apache.axis.description.ParameterDesc; -import org.apache.axis.encoding.DeserializerFactory; -import org.apache.axis.encoding.ser.*; -import org.apache.axis.soap.SOAPConstants; -import org.apache.axis.utils.JavaUtils; - -import javax.xml.namespace.QName; -import javax.xml.rpc.Service; -import javax.xml.rpc.encoding.SerializerFactory; -import java.net.URL; -import java.rmi.RemoteException; -import java.util.Enumeration; -import java.util.Vector; - -public class SmsServicePortBindingStub extends Stub implements SmsService_PortType { - private Vector cachedSerClasses; - private Vector cachedSerQNames; - private Vector cachedSerFactories; - private Vector cachedDeserFactories; - static OperationDesc[] _operations = new OperationDesc[3]; - - private static void _initOperationDesc1() { - OperationDesc oper = new OperationDesc(); - oper.setName("findSmsMessageDelivers"); - ParameterDesc param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://api.ws.ucp.sudytech.com/", "deliverState")); - oper.setReturnClass(DeliverState[].class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.ws.om.MessageException", new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), true)); - _operations[0] = oper; - oper = new OperationDesc(); - oper.setName("sendSmsMessage"); - param = new ParameterDesc(new QName("", "content"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "addresses"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String[].class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://api.ws.ucp.sudytech.com/", "sendResult")); - oper.setReturnClass(SendResult.class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.ws.om.MessageException", new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), true)); - _operations[1] = oper; - oper = new OperationDesc(); - oper.setName("findSmsMessageStates"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://api.ws.ucp.sudytech.com/", "messageState")); - oper.setReturnClass(MessageState[].class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.ws.om.MessageException", new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), true)); - _operations[2] = oper; - } - - public SmsServicePortBindingStub() throws AxisFault { - this((Service)null); - } - - public SmsServicePortBindingStub(URL endpointURL, Service service) throws AxisFault { - this(service); - super.cachedEndpoint = endpointURL; - } - - public SmsServicePortBindingStub(Service service) throws AxisFault { - this.cachedSerClasses = new Vector(); - this.cachedSerQNames = new Vector(); - this.cachedSerFactories = new Vector(); - this.cachedDeserFactories = new Vector(); - if (service == null) { - super.service = new org.apache.axis.client.Service(); - } else { - super.service = service; - } - - ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); - Class beansf = BeanSerializerFactory.class; - Class beandf = BeanDeserializerFactory.class; - Class enumsf = EnumSerializerFactory.class; - Class enumdf = EnumDeserializerFactory.class; - Class arraysf = ArraySerializerFactory.class; - Class arraydf = ArrayDeserializerFactory.class; - Class simplesf = SimpleSerializerFactory.class; - Class simpledf = SimpleDeserializerFactory.class; - Class simplelistsf = SimpleListSerializerFactory.class; - Class simplelistdf = SimpleListDeserializerFactory.class; - QName qName = new QName("http://api.ws.ucp.sudytech.com/", ">>messageState>properties>entry"); - this.cachedSerQNames.add(qName); - Class cls = MessageStatePropertiesEntry.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", ">messageState>properties"); - this.cachedSerQNames.add(qName); - cls = MessageStateProperties.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "deliverState"); - this.cachedSerQNames.add(qName); - cls = DeliverState.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "MessageException"); - this.cachedSerQNames.add(qName); - cls = MessageException.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "messageState"); - this.cachedSerQNames.add(qName); - cls = MessageState.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "sendResult"); - this.cachedSerQNames.add(qName); - cls = SendResult.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "wrongAddress"); - this.cachedSerQNames.add(qName); - cls = WrongAddress.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - } - - protected Call createCall() throws RemoteException { - try { - Call _call = super._createCall(); - if (super.maintainSessionSet) { - _call.setMaintainSession(super.maintainSession); - } - - if (super.cachedUsername != null) { - _call.setUsername(super.cachedUsername); - } - - if (super.cachedPassword != null) { - _call.setPassword(super.cachedPassword); - } - - if (super.cachedEndpoint != null) { - _call.setTargetEndpointAddress(super.cachedEndpoint); - } - - if (super.cachedTimeout != null) { - _call.setTimeout(super.cachedTimeout); - } - - if (super.cachedPortName != null) { - _call.setPortName(super.cachedPortName); - } - - Enumeration keys = super.cachedProperties.keys(); - - while(keys.hasMoreElements()) { - String key = (String)keys.nextElement(); - _call.setProperty(key, super.cachedProperties.get(key)); - } - - synchronized(this) { - if (this.firstCall()) { - _call.setEncodingStyle((String)null); - - for(int i = 0; i < this.cachedSerFactories.size(); ++i) { - Class cls = (Class)this.cachedSerClasses.get(i); - QName qName = (QName)this.cachedSerQNames.get(i); - Object x = this.cachedSerFactories.get(i); - if (x instanceof Class) { - Class sf = (Class)this.cachedSerFactories.get(i); - Class df = (Class)this.cachedDeserFactories.get(i); - _call.registerTypeMapping(cls, qName, sf, df, false); - } else if (x instanceof SerializerFactory) { - org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)this.cachedSerFactories.get(i); - DeserializerFactory df = (DeserializerFactory)this.cachedDeserFactories.get(i); - _call.registerTypeMapping(cls, qName, sf, df, false); - } - } - } - } - - return _call; - } catch (Throwable var12) { - throw new AxisFault("Failure trying to get the Call object", var12); - } - } - - public DeliverState[] findSmsMessageDelivers(String messageId) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[0]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://api.ws.ucp.sudytech.com/", "findSmsMessageDelivers")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (DeliverState[])((DeliverState[])_resp); - } catch (Exception var5) { - return (DeliverState[])((DeliverState[])JavaUtils.convert(_resp, DeliverState[].class)); - } - } - } catch (AxisFault var6) { - if (var6.detail != null) { - if (var6.detail instanceof RemoteException) { - throw (RemoteException)var6.detail; - } - - if (var6.detail instanceof MessageException) { - throw (MessageException)var6.detail; - } - } - - throw var6; - } - } - } - - public SendResult sendSmsMessage(String content, String[] addresses) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[1]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://api.ws.ucp.sudytech.com/", "sendSmsMessage")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{content, addresses}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (SendResult)_resp; - } catch (Exception var6) { - return (SendResult)JavaUtils.convert(_resp, SendResult.class); - } - } - } catch (AxisFault var7) { - if (var7.detail != null) { - if (var7.detail instanceof RemoteException) { - throw (RemoteException)var7.detail; - } - - if (var7.detail instanceof MessageException) { - throw (MessageException)var7.detail; - } - } - - throw var7; - } - } - } - - public MessageState[] findSmsMessageStates(String messageId) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[2]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://api.ws.ucp.sudytech.com/", "findSmsMessageStates")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (MessageState[])((MessageState[])_resp); - } catch (Exception var5) { - return (MessageState[])((MessageState[])JavaUtils.convert(_resp, MessageState[].class)); - } - } - } catch (AxisFault var6) { - if (var6.detail != null) { - if (var6.detail instanceof RemoteException) { - throw (RemoteException)var6.detail; - } - - if (var6.detail instanceof MessageException) { - throw (MessageException)var6.detail; - } - } - - throw var6; - } - } - } - - static { - _initOperationDesc1(); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_PortType.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_PortType.java deleted file mode 100644 index 4d867f0..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_PortType.java +++ /dev/null @@ -1,22 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client; - -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.DeliverState; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.MessageException; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.MessageState; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.SendResult; - -import java.rmi.Remote; -import java.rmi.RemoteException; - -public interface SmsService_PortType extends Remote { - DeliverState[] findSmsMessageDelivers(String var1) throws RemoteException, MessageException; - - SendResult sendSmsMessage(String var1, String[] var2) throws RemoteException, MessageException; - - MessageState[] findSmsMessageStates(String var1) throws RemoteException, MessageException; -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_Service.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_Service.java deleted file mode 100644 index fad577e..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_Service.java +++ /dev/null @@ -1,18 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client; - -import javax.xml.rpc.Service; -import javax.xml.rpc.ServiceException; -import java.net.URL; - -public interface SmsService_Service extends Service { - String getSmsServicePortAddress(); - - SmsService_PortType getSmsServicePort() throws ServiceException; - - SmsService_PortType getSmsServicePort(URL var1) throws ServiceException; -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_ServiceLocator.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_ServiceLocator.java deleted file mode 100644 index 8f5a09c..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/SmsService_ServiceLocator.java +++ /dev/null @@ -1,127 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client; - -import org.apache.axis.AxisFault; -import org.apache.axis.EngineConfiguration; -import org.apache.axis.client.Service; -import org.apache.axis.client.Stub; - -import javax.xml.namespace.QName; -import javax.xml.rpc.ServiceException; -import java.net.MalformedURLException; -import java.net.URL; -import java.rmi.Remote; -import java.util.HashSet; -import java.util.Iterator; - -public class SmsService_ServiceLocator extends Service implements SmsService_Service { - private String SmsServicePort_address = "http://172.18.10.32:8181/SmsService"; - private String SmsServicePortWSDDServiceName = "SmsServicePort"; - private HashSet ports = null; - - public SmsService_ServiceLocator() { - } - - public SmsService_ServiceLocator(EngineConfiguration config) { - super(config); - } - - public SmsService_ServiceLocator(String wsdlLoc, QName sName) throws ServiceException { - super(wsdlLoc, sName); - } - - public String getSmsServicePortAddress() { - return this.SmsServicePort_address; - } - - public String getSmsServicePortWSDDServiceName() { - return this.SmsServicePortWSDDServiceName; - } - - public void setSmsServicePortWSDDServiceName(String name) { - this.SmsServicePortWSDDServiceName = name; - } - - public SmsService_PortType getSmsServicePort() throws ServiceException { - URL endpoint; - try { - endpoint = new URL(this.SmsServicePort_address); - } catch (MalformedURLException var3) { - throw new ServiceException(var3); - } - - return this.getSmsServicePort(endpoint); - } - - public SmsService_PortType getSmsServicePort(URL portAddress) throws ServiceException { - try { - SmsServicePortBindingStub _stub = new SmsServicePortBindingStub(portAddress, this); - _stub.setPortName(this.getSmsServicePortWSDDServiceName()); - return _stub; - } catch (AxisFault var3) { - return null; - } - } - - public void setSmsServicePortEndpointAddress(String address) { - this.SmsServicePort_address = address; - } - - public Remote getPort(Class serviceEndpointInterface) throws ServiceException { - try { - if (SmsService_PortType.class.isAssignableFrom(serviceEndpointInterface)) { - SmsServicePortBindingStub _stub = new SmsServicePortBindingStub(new URL(this.SmsServicePort_address), this); - _stub.setPortName(this.getSmsServicePortWSDDServiceName()); - return _stub; - } - } catch (Throwable var3) { - throw new ServiceException(var3); - } - - throw new ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); - } - - public Remote getPort(QName portName, Class serviceEndpointInterface) throws ServiceException { - if (portName == null) { - return this.getPort(serviceEndpointInterface); - } else { - String inputPortName = portName.getLocalPart(); - if ("SmsServicePort".equals(inputPortName)) { - return this.getSmsServicePort(); - } else { - Remote _stub = this.getPort(serviceEndpointInterface); - ((Stub)_stub).setPortName(portName); - return _stub; - } - } - } - - public QName getServiceName() { - return new QName("http://api.ws.ucp.sudytech.com/", "SmsService"); - } - - public Iterator getPorts() { - if (this.ports == null) { - this.ports = new HashSet(); - this.ports.add(new QName("http://api.ws.ucp.sudytech.com/", "SmsServicePort")); - } - - return this.ports.iterator(); - } - - public void setEndpointAddress(String portName, String address) throws ServiceException { - if ("SmsServicePort".equals(portName)) { - this.setSmsServicePortEndpointAddress(address); - } else { - throw new ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); - } - } - - public void setEndpointAddress(QName portName, String address) throws ServiceException { - this.setEndpointAddress(portName.getLocalPart(), address); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessage.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessage.java deleted file mode 100644 index 2b0534e..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessage.java +++ /dev/null @@ -1,217 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class UcpMessage implements Serializable { - private String content; - private String createTime; - private String id; - private String[] properties; - private String sender; - private String subject; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(UcpMessage.class, true); - - public UcpMessage() { - } - - public UcpMessage(String content, String createTime, String id, String[] properties, String sender, String subject) { - this.content = content; - this.createTime = createTime; - this.id = id; - this.properties = properties; - this.sender = sender; - this.subject = subject; - } - - public String getContent() { - return this.content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getCreateTime() { - return this.createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getId() { - return this.id; - } - - public void setId(String id) { - this.id = id; - } - - public String[] getProperties() { - return this.properties; - } - - public void setProperties(String[] properties) { - this.properties = properties; - } - - public String getProperties(int i) { - return this.properties[i]; - } - - public void setProperties(int i, String _value) { - this.properties[i] = _value; - } - - public String getSender() { - return this.sender; - } - - public void setSender(String sender) { - this.sender = sender; - } - - public String getSubject() { - return this.subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof UcpMessage)) { - return false; - } else { - UcpMessage other = (UcpMessage)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.content == null && other.getContent() == null || this.content != null && this.content.equals(other.getContent())) && (this.createTime == null && other.getCreateTime() == null || this.createTime != null && this.createTime.equals(other.getCreateTime())) && (this.id == null && other.getId() == null || this.id != null && this.id.equals(other.getId())) && (this.properties == null && other.getProperties() == null || this.properties != null && Arrays.equals(this.properties, other.getProperties())) && (this.sender == null && other.getSender() == null || this.sender != null && this.sender.equals(other.getSender())) && (this.subject == null && other.getSubject() == null || this.subject != null && this.subject.equals(other.getSubject())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getContent() != null) { - _hashCode += this.getContent().hashCode(); - } - - if (this.getCreateTime() != null) { - _hashCode += this.getCreateTime().hashCode(); - } - - if (this.getId() != null) { - _hashCode += this.getId().hashCode(); - } - - if (this.getProperties() != null) { - for(int i = 0; i < Array.getLength(this.getProperties()); ++i) { - Object obj = Array.get(this.getProperties(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - if (this.getSender() != null) { - _hashCode += this.getSender().hashCode(); - } - - if (this.getSubject() != null) { - _hashCode += this.getSubject().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", "ucpMessage")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("content"); - elemField.setXmlName(new QName("", "content")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("createTime"); - elemField.setXmlName(new QName("", "createTime")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("id"); - elemField.setXmlName(new QName("", "id")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("properties"); - elemField.setXmlName(new QName("", "properties")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("sender"); - elemField.setXmlName(new QName("", "sender")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("subject"); - elemField.setXmlName(new QName("", "subject")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageServicePortBindingStub.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageServicePortBindingStub.java deleted file mode 100644 index 26da6e2..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageServicePortBindingStub.java +++ /dev/null @@ -1,236 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg; - -import org.apache.axis.AxisFault; -import org.apache.axis.NoEndPointException; -import org.apache.axis.client.Call; -import org.apache.axis.client.Stub; -import org.apache.axis.constants.Style; -import org.apache.axis.constants.Use; -import org.apache.axis.description.OperationDesc; -import org.apache.axis.description.ParameterDesc; -import org.apache.axis.encoding.DeserializerFactory; -import org.apache.axis.encoding.ser.*; -import org.apache.axis.soap.SOAPConstants; -import org.apache.axis.utils.JavaUtils; - -import javax.xml.namespace.QName; -import javax.xml.rpc.Service; -import javax.xml.rpc.encoding.SerializerFactory; -import java.net.URL; -import java.rmi.RemoteException; -import java.util.Enumeration; -import java.util.Vector; - -public class UcpMessageServicePortBindingStub extends Stub implements UcpMessageService_PortType { - private Vector cachedSerClasses; - private Vector cachedSerQNames; - private Vector cachedSerFactories; - private Vector cachedDeserFactories; - static OperationDesc[] _operations = new OperationDesc[2]; - - private static void _initOperationDesc1() { - OperationDesc oper = new OperationDesc(); - oper.setName("findUnreadMessageCount"); - ParameterDesc param = new ParameterDesc(new QName("", "arg0"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - oper.setReturnClass(Integer.TYPE); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - _operations[0] = oper; - oper = new OperationDesc(); - oper.setName("findUnreadMessages"); - param = new ParameterDesc(new QName("", "arg0"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "arg1"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "arg2"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "int"), Integer.TYPE, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://api.ws.ucp.sudytech.com/", "ucpMessage")); - oper.setReturnClass(UcpMessage[].class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - _operations[1] = oper; - } - - public UcpMessageServicePortBindingStub() throws AxisFault { - this((Service)null); - } - - public UcpMessageServicePortBindingStub(URL endpointURL, Service service) throws AxisFault { - this(service); - super.cachedEndpoint = endpointURL; - } - - public UcpMessageServicePortBindingStub(Service service) throws AxisFault { - this.cachedSerClasses = new Vector(); - this.cachedSerQNames = new Vector(); - this.cachedSerFactories = new Vector(); - this.cachedDeserFactories = new Vector(); - if (service == null) { - super.service = new org.apache.axis.client.Service(); - } else { - super.service = service; - } - - ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); - Class beansf = BeanSerializerFactory.class; - Class beandf = BeanDeserializerFactory.class; - Class enumsf = EnumSerializerFactory.class; - Class enumdf = EnumDeserializerFactory.class; - Class arraysf = ArraySerializerFactory.class; - Class arraydf = ArrayDeserializerFactory.class; - Class simplesf = SimpleSerializerFactory.class; - Class simpledf = SimpleDeserializerFactory.class; - Class simplelistsf = SimpleListSerializerFactory.class; - Class simplelistdf = SimpleListDeserializerFactory.class; - QName qName = new QName("http://api.ws.ucp.sudytech.com/", "ucpMessage"); - this.cachedSerQNames.add(qName); - Class cls = UcpMessage.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - } - - protected Call createCall() throws RemoteException { - try { - Call _call = super._createCall(); - if (super.maintainSessionSet) { - _call.setMaintainSession(super.maintainSession); - } - - if (super.cachedUsername != null) { - _call.setUsername(super.cachedUsername); - } - - if (super.cachedPassword != null) { - _call.setPassword(super.cachedPassword); - } - - if (super.cachedEndpoint != null) { - _call.setTargetEndpointAddress(super.cachedEndpoint); - } - - if (super.cachedTimeout != null) { - _call.setTimeout(super.cachedTimeout); - } - - if (super.cachedPortName != null) { - _call.setPortName(super.cachedPortName); - } - - Enumeration keys = super.cachedProperties.keys(); - - while(keys.hasMoreElements()) { - String key = (String)keys.nextElement(); - _call.setProperty(key, super.cachedProperties.get(key)); - } - - synchronized(this) { - if (this.firstCall()) { - _call.setEncodingStyle((String)null); - - for(int i = 0; i < this.cachedSerFactories.size(); ++i) { - Class cls = (Class)this.cachedSerClasses.get(i); - QName qName = (QName)this.cachedSerQNames.get(i); - Object x = this.cachedSerFactories.get(i); - if (x instanceof Class) { - Class sf = (Class)this.cachedSerFactories.get(i); - Class df = (Class)this.cachedDeserFactories.get(i); - _call.registerTypeMapping(cls, qName, sf, df, false); - } else if (x instanceof SerializerFactory) { - org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)this.cachedSerFactories.get(i); - DeserializerFactory df = (DeserializerFactory)this.cachedDeserFactories.get(i); - _call.registerTypeMapping(cls, qName, sf, df, false); - } - } - } - } - - return _call; - } catch (Throwable var12) { - throw new AxisFault("Failure trying to get the Call object", var12); - } - } - - public int findUnreadMessageCount(String arg0) throws RemoteException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[0]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://api.ws.ucp.sudytech.com/", "findUnreadMessageCount")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{arg0}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (Integer)_resp; - } catch (Exception var5) { - return (Integer)JavaUtils.convert(_resp, Integer.TYPE); - } - } - } catch (AxisFault var6) { - throw var6; - } - } - } - - public UcpMessage[] findUnreadMessages(String arg0, int arg1, int arg2) throws RemoteException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[1]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://api.ws.ucp.sudytech.com/", "findUnreadMessages")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{arg0, new Integer(arg1), new Integer(arg2)}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (UcpMessage[])((UcpMessage[])_resp); - } catch (Exception var7) { - return (UcpMessage[])((UcpMessage[])JavaUtils.convert(_resp, UcpMessage[].class)); - } - } - } catch (AxisFault var8) { - throw var8; - } - } - } - - static { - _initOperationDesc1(); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_PortType.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_PortType.java deleted file mode 100644 index 54856c6..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_PortType.java +++ /dev/null @@ -1,15 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg; - -import java.rmi.Remote; -import java.rmi.RemoteException; - -public interface UcpMessageService_PortType extends Remote { - int findUnreadMessageCount(String var1) throws RemoteException; - - UcpMessage[] findUnreadMessages(String var1, int var2, int var3) throws RemoteException; -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_Service.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_Service.java deleted file mode 100644 index 50f58bb..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_Service.java +++ /dev/null @@ -1,18 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg; - -import javax.xml.rpc.Service; -import javax.xml.rpc.ServiceException; -import java.net.URL; - -public interface UcpMessageService_Service extends Service { - String getUcpMessageServicePortAddress(); - - UcpMessageService_PortType getUcpMessageServicePort() throws ServiceException; - - UcpMessageService_PortType getUcpMessageServicePort(URL var1) throws ServiceException; -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_ServiceLocator.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_ServiceLocator.java deleted file mode 100644 index e62427f..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/msg/UcpMessageService_ServiceLocator.java +++ /dev/null @@ -1,127 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.msg; - -import org.apache.axis.AxisFault; -import org.apache.axis.EngineConfiguration; -import org.apache.axis.client.Service; -import org.apache.axis.client.Stub; - -import javax.xml.namespace.QName; -import javax.xml.rpc.ServiceException; -import java.net.MalformedURLException; -import java.net.URL; -import java.rmi.Remote; -import java.util.HashSet; -import java.util.Iterator; - -public class UcpMessageService_ServiceLocator extends Service implements UcpMessageService_Service { - private String UcpMessageServicePort_address = "http://172.18.10.141:83/UcpMessageService"; - private String UcpMessageServicePortWSDDServiceName = "UcpMessageServicePort"; - private HashSet ports = null; - - public UcpMessageService_ServiceLocator() { - } - - public UcpMessageService_ServiceLocator(EngineConfiguration config) { - super(config); - } - - public UcpMessageService_ServiceLocator(String wsdlLoc, QName sName) throws ServiceException { - super(wsdlLoc, sName); - } - - public String getUcpMessageServicePortAddress() { - return this.UcpMessageServicePort_address; - } - - public String getUcpMessageServicePortWSDDServiceName() { - return this.UcpMessageServicePortWSDDServiceName; - } - - public void setUcpMessageServicePortWSDDServiceName(String name) { - this.UcpMessageServicePortWSDDServiceName = name; - } - - public UcpMessageService_PortType getUcpMessageServicePort() throws ServiceException { - URL endpoint; - try { - endpoint = new URL(this.UcpMessageServicePort_address); - } catch (MalformedURLException var3) { - throw new ServiceException(var3); - } - - return this.getUcpMessageServicePort(endpoint); - } - - public UcpMessageService_PortType getUcpMessageServicePort(URL portAddress) throws ServiceException { - try { - UcpMessageServicePortBindingStub _stub = new UcpMessageServicePortBindingStub(portAddress, this); - _stub.setPortName(this.getUcpMessageServicePortWSDDServiceName()); - return _stub; - } catch (AxisFault var3) { - return null; - } - } - - public void setUcpMessageServicePortEndpointAddress(String address) { - this.UcpMessageServicePort_address = address; - } - - public Remote getPort(Class serviceEndpointInterface) throws ServiceException { - try { - if (UcpMessageService_PortType.class.isAssignableFrom(serviceEndpointInterface)) { - UcpMessageServicePortBindingStub _stub = new UcpMessageServicePortBindingStub(new URL(this.UcpMessageServicePort_address), this); - _stub.setPortName(this.getUcpMessageServicePortWSDDServiceName()); - return _stub; - } - } catch (Throwable var3) { - throw new ServiceException(var3); - } - - throw new ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); - } - - public Remote getPort(QName portName, Class serviceEndpointInterface) throws ServiceException { - if (portName == null) { - return this.getPort(serviceEndpointInterface); - } else { - String inputPortName = portName.getLocalPart(); - if ("UcpMessageServicePort".equals(inputPortName)) { - return this.getUcpMessageServicePort(); - } else { - Remote _stub = this.getPort(serviceEndpointInterface); - ((Stub)_stub).setPortName(portName); - return _stub; - } - } - } - - public QName getServiceName() { - return new QName("http://api.ws.ucp.sudytech.com/", "UcpMessageService"); - } - - public Iterator getPorts() { - if (this.ports == null) { - this.ports = new HashSet(); - this.ports.add(new QName("http://api.ws.ucp.sudytech.com/", "UcpMessageServicePort")); - } - - return this.ports.iterator(); - } - - public void setEndpointAddress(String portName, String address) throws ServiceException { - if ("UcpMessageServicePort".equals(portName)) { - this.setUcpMessageServicePortEndpointAddress(address); - } else { - throw new ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); - } - } - - public void setEndpointAddress(QName portName, String address) throws ServiceException { - this.setEndpointAddress(portName.getLocalPart(), address); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1PortBindingStub.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1PortBindingStub.java deleted file mode 100644 index b673a60..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1PortBindingStub.java +++ /dev/null @@ -1,362 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.one; - -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.*; -import org.apache.axis.AxisFault; -import org.apache.axis.NoEndPointException; -import org.apache.axis.client.Call; -import org.apache.axis.client.Stub; -import org.apache.axis.constants.Style; -import org.apache.axis.constants.Use; -import org.apache.axis.description.FaultDesc; -import org.apache.axis.description.OperationDesc; -import org.apache.axis.description.ParameterDesc; -import org.apache.axis.encoding.DeserializerFactory; -import org.apache.axis.encoding.ser.*; -import org.apache.axis.soap.SOAPConstants; -import org.apache.axis.utils.JavaUtils; - -import javax.xml.namespace.QName; -import javax.xml.rpc.Service; -import javax.xml.rpc.encoding.SerializerFactory; -import java.net.URL; -import java.rmi.RemoteException; -import java.util.Enumeration; -import java.util.Vector; - -public class SmsService1PortBindingStub extends Stub implements SmsService1_PortType { - private Vector cachedSerClasses; - private Vector cachedSerQNames; - private Vector cachedSerFactories; - private Vector cachedDeserFactories; - static OperationDesc[] _operations = new OperationDesc[3]; - - private static void _initOperationDesc1() { - OperationDesc oper = new OperationDesc(); - oper.setName("findSmsMessageDelivers"); - ParameterDesc param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "username"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "password"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://api.ws.ucp.sudytech.com/", "deliverState")); - oper.setReturnClass(DeliverState[].class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.ws.om.MessageException", new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), true)); - _operations[0] = oper; - oper = new OperationDesc(); - oper.setName("sendSmsMessage"); - param = new ParameterDesc(new QName("", "content"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "addresses"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String[].class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "username"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "password"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://api.ws.ucp.sudytech.com/", "sendResult")); - oper.setReturnClass(SendResult.class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.ws.om.MessageException", new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), true)); - _operations[1] = oper; - oper = new OperationDesc(); - oper.setName("findSmsMessageStates"); - param = new ParameterDesc(new QName("", "messageId"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "username"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - param = new ParameterDesc(new QName("", "password"), (byte)1, new QName("http://www.w3.org/2001/XMLSchema", "string"), String.class, false, false); - oper.addParameter(param); - oper.setReturnType(new QName("http://api.ws.ucp.sudytech.com/", "messageState")); - oper.setReturnClass(MessageState[].class); - oper.setReturnQName(new QName("", "return")); - oper.setStyle(Style.WRAPPED); - oper.setUse(Use.LITERAL); - oper.addFault(new FaultDesc(new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), "com.sudytech.ucp.ws.om.MessageException", new QName("http://api.ws.ucp.sudytech.com/", "MessageException"), true)); - _operations[2] = oper; - } - - public SmsService1PortBindingStub() throws AxisFault { - this((Service)null); - } - - public SmsService1PortBindingStub(URL endpointURL, Service service) throws AxisFault { - this(service); - super.cachedEndpoint = endpointURL; - } - - public SmsService1PortBindingStub(Service service) throws AxisFault { - this.cachedSerClasses = new Vector(); - this.cachedSerQNames = new Vector(); - this.cachedSerFactories = new Vector(); - this.cachedDeserFactories = new Vector(); - if (service == null) { - super.service = new org.apache.axis.client.Service(); - } else { - super.service = service; - } - - ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); - Class beansf = BeanSerializerFactory.class; - Class beandf = BeanDeserializerFactory.class; - Class enumsf = EnumSerializerFactory.class; - Class enumdf = EnumDeserializerFactory.class; - Class arraysf = ArraySerializerFactory.class; - Class arraydf = ArrayDeserializerFactory.class; - Class simplesf = SimpleSerializerFactory.class; - Class simpledf = SimpleDeserializerFactory.class; - Class simplelistsf = SimpleListSerializerFactory.class; - Class simplelistdf = SimpleListDeserializerFactory.class; - QName qName = new QName("http://api.ws.ucp.sudytech.com/", ">>messageState>properties>entry"); - this.cachedSerQNames.add(qName); - Class cls = MessageStatePropertiesEntry.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", ">messageState>properties"); - this.cachedSerQNames.add(qName); - cls = MessageStateProperties.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "deliverState"); - this.cachedSerQNames.add(qName); - cls = DeliverState.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "MessageException"); - this.cachedSerQNames.add(qName); - cls = MessageException.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "messageState"); - this.cachedSerQNames.add(qName); - cls = MessageState.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "sendResult"); - this.cachedSerQNames.add(qName); - cls = SendResult.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - qName = new QName("http://api.ws.ucp.sudytech.com/", "wrongAddress"); - this.cachedSerQNames.add(qName); - cls = WrongAddress.class; - this.cachedSerClasses.add(cls); - this.cachedSerFactories.add(beansf); - this.cachedDeserFactories.add(beandf); - } - - protected Call createCall() throws RemoteException { - try { - Call _call = super._createCall(); - if (super.maintainSessionSet) { - _call.setMaintainSession(super.maintainSession); - } - - if (super.cachedUsername != null) { - _call.setUsername(super.cachedUsername); - } - - if (super.cachedPassword != null) { - _call.setPassword(super.cachedPassword); - } - - if (super.cachedEndpoint != null) { - _call.setTargetEndpointAddress(super.cachedEndpoint); - } - - if (super.cachedTimeout != null) { - _call.setTimeout(super.cachedTimeout); - } - - if (super.cachedPortName != null) { - _call.setPortName(super.cachedPortName); - } - - Enumeration keys = super.cachedProperties.keys(); - - while(keys.hasMoreElements()) { - String key = (String)keys.nextElement(); - _call.setProperty(key, super.cachedProperties.get(key)); - } - - synchronized(this) { - if (this.firstCall()) { - _call.setEncodingStyle((String)null); - - for(int i = 0; i < this.cachedSerFactories.size(); ++i) { - Class cls = (Class)this.cachedSerClasses.get(i); - QName qName = (QName)this.cachedSerQNames.get(i); - Object x = this.cachedSerFactories.get(i); - if (x instanceof Class) { - Class sf = (Class)this.cachedSerFactories.get(i); - Class df = (Class)this.cachedDeserFactories.get(i); - _call.registerTypeMapping(cls, qName, sf, df, false); - } else if (x instanceof SerializerFactory) { - org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)this.cachedSerFactories.get(i); - DeserializerFactory df = (DeserializerFactory)this.cachedDeserFactories.get(i); - _call.registerTypeMapping(cls, qName, sf, df, false); - } - } - } - } - - return _call; - } catch (Throwable var12) { - throw new AxisFault("Failure trying to get the Call object", var12); - } - } - - public DeliverState[] findSmsMessageDelivers(String messageId, String username, String password) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[0]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://api.ws.ucp.sudytech.com/", "findSmsMessageDelivers")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, username, password}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (DeliverState[])((DeliverState[])_resp); - } catch (Exception var7) { - return (DeliverState[])((DeliverState[])JavaUtils.convert(_resp, DeliverState[].class)); - } - } - } catch (AxisFault var8) { - if (var8.detail != null) { - if (var8.detail instanceof RemoteException) { - throw (RemoteException)var8.detail; - } - - if (var8.detail instanceof MessageException) { - throw (MessageException)var8.detail; - } - } - - throw var8; - } - } - } - - public SendResult sendSmsMessage(String content, String[] addresses, String username, String password) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[1]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://api.ws.ucp.sudytech.com/", "sendSmsMessage")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{content, addresses, username, password}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (SendResult)_resp; - } catch (Exception var8) { - return (SendResult)JavaUtils.convert(_resp, SendResult.class); - } - } - } catch (AxisFault var9) { - if (var9.detail != null) { - if (var9.detail instanceof RemoteException) { - throw (RemoteException)var9.detail; - } - - if (var9.detail instanceof MessageException) { - throw (MessageException)var9.detail; - } - } - - throw var9; - } - } - } - - public MessageState[] findSmsMessageStates(String messageId, String username, String password) throws RemoteException, MessageException { - if (super.cachedEndpoint == null) { - throw new NoEndPointException(); - } else { - Call _call = this.createCall(); - _call.setOperation(_operations[2]); - _call.setUseSOAPAction(true); - _call.setSOAPActionURI(""); - _call.setEncodingStyle((String)null); - _call.setProperty("sendXsiTypes", Boolean.FALSE); - _call.setProperty("sendMultiRefs", Boolean.FALSE); - _call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS); - _call.setOperationName(new QName("http://api.ws.ucp.sudytech.com/", "findSmsMessageStates")); - this.setRequestHeaders(_call); - this.setAttachments(_call); - - try { - Object _resp = _call.invoke(new Object[]{messageId, username, password}); - if (_resp instanceof RemoteException) { - throw (RemoteException)_resp; - } else { - this.extractAttachments(_call); - - try { - return (MessageState[])((MessageState[])_resp); - } catch (Exception var7) { - return (MessageState[])((MessageState[])JavaUtils.convert(_resp, MessageState[].class)); - } - } - } catch (AxisFault var8) { - if (var8.detail != null) { - if (var8.detail instanceof RemoteException) { - throw (RemoteException)var8.detail; - } - - if (var8.detail instanceof MessageException) { - throw (MessageException)var8.detail; - } - } - - throw var8; - } - } - } - - static { - _initOperationDesc1(); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_PortType.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_PortType.java deleted file mode 100644 index 2027ed3..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_PortType.java +++ /dev/null @@ -1,22 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.one; - -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.DeliverState; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.MessageException; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.MessageState; -import com.budwk.app.base.sms.impl.njupt.ucp.ws.om.SendResult; - -import java.rmi.Remote; -import java.rmi.RemoteException; - -public interface SmsService1_PortType extends Remote { - DeliverState[] findSmsMessageDelivers(String var1, String var2, String var3) throws RemoteException, MessageException; - - SendResult sendSmsMessage(String var1, String[] var2, String var3, String var4) throws RemoteException, MessageException; - - MessageState[] findSmsMessageStates(String var1, String var2, String var3) throws RemoteException, MessageException; -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_Service.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_Service.java deleted file mode 100644 index 8517e19..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_Service.java +++ /dev/null @@ -1,18 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.one; - -import javax.xml.rpc.Service; -import javax.xml.rpc.ServiceException; -import java.net.URL; - -public interface SmsService1_Service extends Service { - String getSmsService1PortAddress(); - - SmsService1_PortType getSmsService1Port() throws ServiceException; - - SmsService1_PortType getSmsService1Port(URL var1) throws ServiceException; -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_ServiceLocator.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_ServiceLocator.java deleted file mode 100644 index 1493dbc..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/client/one/SmsService1_ServiceLocator.java +++ /dev/null @@ -1,127 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.client.one; - -import org.apache.axis.AxisFault; -import org.apache.axis.EngineConfiguration; -import org.apache.axis.client.Service; -import org.apache.axis.client.Stub; - -import javax.xml.namespace.QName; -import javax.xml.rpc.ServiceException; -import java.net.MalformedURLException; -import java.net.URL; -import java.rmi.Remote; -import java.util.HashSet; -import java.util.Iterator; - -public class SmsService1_ServiceLocator extends Service implements SmsService1_Service { - private String SmsService1Port_address = "http://172.18.10.32:8181/SmsService1"; - private String SmsService1PortWSDDServiceName = "SmsService1Port"; - private HashSet ports = null; - - public SmsService1_ServiceLocator() { - } - - public SmsService1_ServiceLocator(EngineConfiguration config) { - super(config); - } - - public SmsService1_ServiceLocator(String wsdlLoc, QName sName) throws ServiceException { - super(wsdlLoc, sName); - } - - public String getSmsService1PortAddress() { - return this.SmsService1Port_address; - } - - public String getSmsService1PortWSDDServiceName() { - return this.SmsService1PortWSDDServiceName; - } - - public void setSmsService1PortWSDDServiceName(String name) { - this.SmsService1PortWSDDServiceName = name; - } - - public SmsService1_PortType getSmsService1Port() throws ServiceException { - URL endpoint; - try { - endpoint = new URL(this.SmsService1Port_address); - } catch (MalformedURLException var3) { - throw new ServiceException(var3); - } - - return this.getSmsService1Port(endpoint); - } - - public SmsService1_PortType getSmsService1Port(URL portAddress) throws ServiceException { - try { - SmsService1PortBindingStub _stub = new SmsService1PortBindingStub(portAddress, this); - _stub.setPortName(this.getSmsService1PortWSDDServiceName()); - return _stub; - } catch (AxisFault var3) { - return null; - } - } - - public void setSmsService1PortEndpointAddress(String address) { - this.SmsService1Port_address = address; - } - - public Remote getPort(Class serviceEndpointInterface) throws ServiceException { - try { - if (SmsService1_PortType.class.isAssignableFrom(serviceEndpointInterface)) { - SmsService1PortBindingStub _stub = new SmsService1PortBindingStub(new URL(this.SmsService1Port_address), this); - _stub.setPortName(this.getSmsService1PortWSDDServiceName()); - return _stub; - } - } catch (Throwable var3) { - throw new ServiceException(var3); - } - - throw new ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); - } - - public Remote getPort(QName portName, Class serviceEndpointInterface) throws ServiceException { - if (portName == null) { - return this.getPort(serviceEndpointInterface); - } else { - String inputPortName = portName.getLocalPart(); - if ("SmsService1Port".equals(inputPortName)) { - return this.getSmsService1Port(); - } else { - Remote _stub = this.getPort(serviceEndpointInterface); - ((Stub)_stub).setPortName(portName); - return _stub; - } - } - } - - public QName getServiceName() { - return new QName("http://api.ws.ucp.sudytech.com/", "SmsService1"); - } - - public Iterator getPorts() { - if (this.ports == null) { - this.ports = new HashSet(); - this.ports.add(new QName("http://api.ws.ucp.sudytech.com/", "SmsService1Port")); - } - - return this.ports.iterator(); - } - - public void setEndpointAddress(String portName, String address) throws ServiceException { - if ("SmsService1Port".equals(portName)) { - this.setSmsService1PortEndpointAddress(address); - } else { - throw new ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); - } - } - - public void setEndpointAddress(QName portName, String address) throws ServiceException { - this.setEndpointAddress(portName.getLocalPart(), address); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/DeliverState.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/DeliverState.java deleted file mode 100644 index 4e23f70..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/DeliverState.java +++ /dev/null @@ -1,156 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.om; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.util.Calendar; - -public class DeliverState implements Serializable { - private String address; - private String errorInfo; - private Calendar sendTime; - private int state; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(DeliverState.class, true); - - public DeliverState() { - } - - public DeliverState(String address, String errorInfo, Calendar sendTime, int state) { - this.address = address; - this.errorInfo = errorInfo; - this.sendTime = sendTime; - this.state = state; - } - - public String getAddress() { - return this.address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getErrorInfo() { - return this.errorInfo; - } - - public void setErrorInfo(String errorInfo) { - this.errorInfo = errorInfo; - } - - public Calendar getSendTime() { - return this.sendTime; - } - - public void setSendTime(Calendar sendTime) { - this.sendTime = sendTime; - } - - public int getState() { - return this.state; - } - - public void setState(int state) { - this.state = state; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof DeliverState)) { - return false; - } else { - DeliverState other = (DeliverState)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.address == null && other.getAddress() == null || this.address != null && this.address.equals(other.getAddress())) && (this.errorInfo == null && other.getErrorInfo() == null || this.errorInfo != null && this.errorInfo.equals(other.getErrorInfo())) && (this.sendTime == null && other.getSendTime() == null || this.sendTime != null && this.sendTime.equals(other.getSendTime())) && this.state == other.getState(); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getAddress() != null) { - _hashCode += this.getAddress().hashCode(); - } - - if (this.getErrorInfo() != null) { - _hashCode += this.getErrorInfo().hashCode(); - } - - if (this.getSendTime() != null) { - _hashCode += this.getSendTime().hashCode(); - } - - _hashCode += this.getState(); - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", "deliverState")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("address"); - elemField.setXmlName(new QName("", "address")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("errorInfo"); - elemField.setXmlName(new QName("", "errorInfo")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("sendTime"); - elemField.setXmlName(new QName("", "sendTime")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "dateTime")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("state"); - elemField.setXmlName(new QName("", "state")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageException.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageException.java deleted file mode 100644 index d1528cf..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageException.java +++ /dev/null @@ -1,104 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.om; - -import org.apache.axis.AxisFault; -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.SerializationContext; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; -import org.xml.sax.Attributes; - -import javax.xml.namespace.QName; -import java.io.IOException; -import java.io.Serializable; - -public class MessageException extends AxisFault implements Serializable { - private String message1; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(MessageException.class, true); - - public MessageException() { - } - - public MessageException(String message1) { - this.message1 = message1; - } - - public String getMessage1() { - return this.message1; - } - - public void setMessage1(String message1) { - this.message1 = message1; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof MessageException)) { - return false; - } else { - MessageException other = (MessageException)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = this.message1 == null && other.getMessage1() == null || this.message1 != null && this.message1.equals(other.getMessage1()); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getMessage1() != null) { - _hashCode += this.getMessage1().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - public void writeDetails(QName qname, SerializationContext context) throws IOException { - context.serialize(qname, (Attributes)null, this); - } - - static { - typeDesc.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", "MessageException")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("message1"); - elemField.setXmlName(new QName("", "message")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageState.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageState.java deleted file mode 100644 index 93f35e5..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageState.java +++ /dev/null @@ -1,214 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.om; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.util.Calendar; - -public class MessageState implements Serializable { - private String address; - private String errorInfo; - private MessageStateProperties properties; - private String replyContent; - private int replyCount; - private Calendar sendTime; - private int state; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(MessageState.class, true); - - public MessageState() { - } - - public MessageState(String address, String errorInfo, MessageStateProperties properties, String replyContent, int replyCount, Calendar sendTime, int state) { - this.address = address; - this.errorInfo = errorInfo; - this.properties = properties; - this.replyContent = replyContent; - this.replyCount = replyCount; - this.sendTime = sendTime; - this.state = state; - } - - public String getAddress() { - return this.address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getErrorInfo() { - return this.errorInfo; - } - - public void setErrorInfo(String errorInfo) { - this.errorInfo = errorInfo; - } - - public MessageStateProperties getProperties() { - return this.properties; - } - - public void setProperties(MessageStateProperties properties) { - this.properties = properties; - } - - public String getReplyContent() { - return this.replyContent; - } - - public void setReplyContent(String replyContent) { - this.replyContent = replyContent; - } - - public int getReplyCount() { - return this.replyCount; - } - - public void setReplyCount(int replyCount) { - this.replyCount = replyCount; - } - - public Calendar getSendTime() { - return this.sendTime; - } - - public void setSendTime(Calendar sendTime) { - this.sendTime = sendTime; - } - - public int getState() { - return this.state; - } - - public void setState(int state) { - this.state = state; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof MessageState)) { - return false; - } else { - MessageState other = (MessageState)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.address == null && other.getAddress() == null || this.address != null && this.address.equals(other.getAddress())) && (this.errorInfo == null && other.getErrorInfo() == null || this.errorInfo != null && this.errorInfo.equals(other.getErrorInfo())) && (this.properties == null && other.getProperties() == null || this.properties != null && this.properties.equals(other.getProperties())) && (this.replyContent == null && other.getReplyContent() == null || this.replyContent != null && this.replyContent.equals(other.getReplyContent())) && this.replyCount == other.getReplyCount() && (this.sendTime == null && other.getSendTime() == null || this.sendTime != null && this.sendTime.equals(other.getSendTime())) && this.state == other.getState(); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getAddress() != null) { - _hashCode += this.getAddress().hashCode(); - } - - if (this.getErrorInfo() != null) { - _hashCode += this.getErrorInfo().hashCode(); - } - - if (this.getProperties() != null) { - _hashCode += this.getProperties().hashCode(); - } - - if (this.getReplyContent() != null) { - _hashCode += this.getReplyContent().hashCode(); - } - - _hashCode += this.getReplyCount(); - if (this.getSendTime() != null) { - _hashCode += this.getSendTime().hashCode(); - } - - _hashCode += this.getState(); - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", "messageState")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("address"); - elemField.setXmlName(new QName("", "address")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("errorInfo"); - elemField.setXmlName(new QName("", "errorInfo")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("properties"); - elemField.setXmlName(new QName("", "properties")); - elemField.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", ">messageState>properties")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("replyContent"); - elemField.setXmlName(new QName("", "replyContent")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("replyCount"); - elemField.setXmlName(new QName("", "replyCount")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("sendTime"); - elemField.setXmlName(new QName("", "sendTime")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "dateTime")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("state"); - elemField.setXmlName(new QName("", "state")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "int")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageStateProperties.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageStateProperties.java deleted file mode 100644 index fd62bb7..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageStateProperties.java +++ /dev/null @@ -1,112 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.om; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class MessageStateProperties implements Serializable { - private MessageStatePropertiesEntry[] entry; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(MessageStateProperties.class, true); - - public MessageStateProperties() { - } - - public MessageStateProperties(MessageStatePropertiesEntry[] entry) { - this.entry = entry; - } - - public MessageStatePropertiesEntry[] getEntry() { - return this.entry; - } - - public void setEntry(MessageStatePropertiesEntry[] entry) { - this.entry = entry; - } - - public MessageStatePropertiesEntry getEntry(int i) { - return this.entry[i]; - } - - public void setEntry(int i, MessageStatePropertiesEntry _value) { - this.entry[i] = _value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof MessageStateProperties)) { - return false; - } else { - MessageStateProperties other = (MessageStateProperties)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = this.entry == null && other.getEntry() == null || this.entry != null && Arrays.equals(this.entry, other.getEntry()); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getEntry() != null) { - for(int i = 0; i < Array.getLength(this.getEntry()); ++i) { - Object obj = Array.get(this.getEntry(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", ">messageState>properties")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("entry"); - elemField.setXmlName(new QName("", "entry")); - elemField.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", ">>messageState>properties>entry")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageStatePropertiesEntry.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageStatePropertiesEntry.java deleted file mode 100644 index 46ce4a7..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/MessageStatePropertiesEntry.java +++ /dev/null @@ -1,117 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.om; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; - -public class MessageStatePropertiesEntry implements Serializable { - private String key; - private String value; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(MessageStatePropertiesEntry.class, true); - - public MessageStatePropertiesEntry() { - } - - public MessageStatePropertiesEntry(String key, String value) { - this.key = key; - this.value = value; - } - - public String getKey() { - return this.key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getValue() { - return this.value; - } - - public void setValue(String value) { - this.value = value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof MessageStatePropertiesEntry)) { - return false; - } else { - MessageStatePropertiesEntry other = (MessageStatePropertiesEntry)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.key == null && other.getKey() == null || this.key != null && this.key.equals(other.getKey())) && (this.value == null && other.getValue() == null || this.value != null && this.value.equals(other.getValue())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getKey() != null) { - _hashCode += this.getKey().hashCode(); - } - - if (this.getValue() != null) { - _hashCode += this.getValue().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", ">>messageState>properties>entry")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("key"); - elemField.setXmlName(new QName("", "key")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("value"); - elemField.setXmlName(new QName("", "value")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/SendResult.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/SendResult.java deleted file mode 100644 index d76b106..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/SendResult.java +++ /dev/null @@ -1,150 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.om; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; -import java.lang.reflect.Array; -import java.util.Arrays; - -public class SendResult implements Serializable { - private String messageId; - private boolean success; - private WrongAddress[] wrongAddresses; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(SendResult.class, true); - - public SendResult() { - } - - public SendResult(String messageId, boolean success, WrongAddress[] wrongAddresses) { - this.messageId = messageId; - this.success = success; - this.wrongAddresses = wrongAddresses; - } - - public String getMessageId() { - return this.messageId; - } - - public void setMessageId(String messageId) { - this.messageId = messageId; - } - - public boolean isSuccess() { - return this.success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public WrongAddress[] getWrongAddresses() { - return this.wrongAddresses; - } - - public void setWrongAddresses(WrongAddress[] wrongAddresses) { - this.wrongAddresses = wrongAddresses; - } - - public WrongAddress getWrongAddresses(int i) { - return this.wrongAddresses[i]; - } - - public void setWrongAddresses(int i, WrongAddress _value) { - this.wrongAddresses[i] = _value; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof SendResult)) { - return false; - } else { - SendResult other = (SendResult)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.messageId == null && other.getMessageId() == null || this.messageId != null && this.messageId.equals(other.getMessageId())) && this.success == other.isSuccess() && (this.wrongAddresses == null && other.getWrongAddresses() == null || this.wrongAddresses != null && Arrays.equals(this.wrongAddresses, other.getWrongAddresses())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getMessageId() != null) { - _hashCode += this.getMessageId().hashCode(); - } - - _hashCode += (this.isSuccess() ? Boolean.TRUE : Boolean.FALSE).hashCode(); - if (this.getWrongAddresses() != null) { - for(int i = 0; i < Array.getLength(this.getWrongAddresses()); ++i) { - Object obj = Array.get(this.getWrongAddresses(), i); - if (obj != null && !obj.getClass().isArray()) { - _hashCode += obj.hashCode(); - } - } - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", "sendResult")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("messageId"); - elemField.setXmlName(new QName("", "messageId")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("success"); - elemField.setXmlName(new QName("", "success")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "boolean")); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("wrongAddresses"); - elemField.setXmlName(new QName("", "wrongAddresses")); - elemField.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", "wrongAddress")); - elemField.setMinOccurs(0); - elemField.setNillable(true); - elemField.setMaxOccursUnbounded(true); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/WrongAddress.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/WrongAddress.java deleted file mode 100644 index b463457..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/om/WrongAddress.java +++ /dev/null @@ -1,117 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.om; - -import org.apache.axis.description.ElementDesc; -import org.apache.axis.description.TypeDesc; -import org.apache.axis.encoding.Deserializer; -import org.apache.axis.encoding.Serializer; -import org.apache.axis.encoding.ser.BeanDeserializer; -import org.apache.axis.encoding.ser.BeanSerializer; - -import javax.xml.namespace.QName; -import java.io.Serializable; - -public class WrongAddress implements Serializable { - private String address; - private String errorInfo; - private Object __equalsCalc = null; - private boolean __hashCodeCalc = false; - private static TypeDesc typeDesc = new TypeDesc(WrongAddress.class, true); - - public WrongAddress() { - } - - public WrongAddress(String address, String errorInfo) { - this.address = address; - this.errorInfo = errorInfo; - } - - public String getAddress() { - return this.address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getErrorInfo() { - return this.errorInfo; - } - - public void setErrorInfo(String errorInfo) { - this.errorInfo = errorInfo; - } - - public synchronized boolean equals(Object obj) { - if (!(obj instanceof WrongAddress)) { - return false; - } else { - WrongAddress other = (WrongAddress)obj; - if (obj == null) { - return false; - } else if (this == obj) { - return true; - } else if (this.__equalsCalc != null) { - return this.__equalsCalc == obj; - } else { - this.__equalsCalc = obj; - boolean _equals = (this.address == null && other.getAddress() == null || this.address != null && this.address.equals(other.getAddress())) && (this.errorInfo == null && other.getErrorInfo() == null || this.errorInfo != null && this.errorInfo.equals(other.getErrorInfo())); - this.__equalsCalc = null; - return _equals; - } - } - } - - public synchronized int hashCode() { - if (this.__hashCodeCalc) { - return 0; - } else { - this.__hashCodeCalc = true; - int _hashCode = 1; - if (this.getAddress() != null) { - _hashCode += this.getAddress().hashCode(); - } - - if (this.getErrorInfo() != null) { - _hashCode += this.getErrorInfo().hashCode(); - } - - this.__hashCodeCalc = false; - return _hashCode; - } - } - - public static TypeDesc getTypeDesc() { - return typeDesc; - } - - public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanSerializer(_javaType, _xmlType, typeDesc); - } - - public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) { - return new BeanDeserializer(_javaType, _xmlType, typeDesc); - } - - static { - typeDesc.setXmlType(new QName("http://api.ws.ucp.sudytech.com/", "wrongAddress")); - ElementDesc elemField = new ElementDesc(); - elemField.setFieldName("address"); - elemField.setXmlName(new QName("", "address")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - elemField = new ElementDesc(); - elemField.setFieldName("errorInfo"); - elemField.setXmlName(new QName("", "errorInfo")); - elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string")); - elemField.setMinOccurs(0); - elemField.setNillable(false); - typeDesc.addFieldDesc(elemField); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/util/MessageBuilder.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/util/MessageBuilder.java deleted file mode 100644 index 918cc38..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/util/MessageBuilder.java +++ /dev/null @@ -1,117 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.util; - -import cn.hutool.json.JSONArray; -import com.budwk.app.base.sms.impl.njupt.ucp.serv.client.Address; -import com.budwk.app.base.sms.impl.njupt.ucp.serv.client.Message; -import com.budwk.app.base.sms.impl.njupt.ucp.serv.client.MessageProperties; -import com.budwk.app.base.sms.impl.njupt.ucp.serv.client.MessagePropertiesEntry; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.util.ArrayList; -import java.util.List; - -public class MessageBuilder { - private String _subject = "待办消息"; - private String _content = "消息测试,您的oa有一条待办提醒,需要处理!"; - private String _indivSubject = "待办提醒"; - private String _indivContent = "${message}${name}"; - private String _smsSignature = "东南大学"; - - public MessageBuilder() { - } - - public MessageBuilder(String smsSignature) { - this._smsSignature = smsSignature; - } - - public MessageBuilder(String subject, String content) { - this._subject = subject; - this._content = content; - this._indivSubject = subject; - this._indivContent = content; - } - - public Message buildMessage(Address[] address, boolean isLinkUrl) throws Exception { - Message message = new Message(); - message.setTo(address); - message.setSubject(this._subject); - message.setContent(this._content); - message.setMsgType(isLinkUrl ? 1 : 0); - MessagePropertiesEntry signature = this.buildProperty("smsSignature", this._smsSignature); - MessagePropertiesEntry imLinkUrl = this.buildProperty("im_linkUrl", "http://www.baidu.com"); - MessagePropertiesEntry[] entrys = isLinkUrl ? new MessagePropertiesEntry[]{signature, imLinkUrl} : new MessagePropertiesEntry[]{signature}; - message.setProperties(new MessageProperties(entrys)); - return message; - } - - public Message buildIndivMessage(boolean isLinkUrl) throws Exception { - Message message = new Message(); - message.setSubject(this._indivSubject); - message.setContent(this._indivContent); - message.setMsgType(isLinkUrl ? 1 : 0); - MessagePropertiesEntry signature = this.buildProperty("smsSignature", "东华大学"); - MessagePropertiesEntry imLinkUrl = this.buildProperty("im_linkUrl", "http://www.baidu.com"); - MessagePropertiesEntry[] entrys = isLinkUrl ? new MessagePropertiesEntry[]{signature, imLinkUrl} : new MessagePropertiesEntry[]{signature}; - message.setProperties(new MessageProperties(entrys)); - return message; - } - - public Address[] loadAddesses(String filePath, int count) throws Exception { - List
addressList = new ArrayList(); - FileReader fr = new FileReader(filePath); - BufferedReader br = new BufferedReader(fr); - int begin = 0; - - String line; - while((line = br.readLine()) != null && begin < count) { - if (line != null && line.length() != 0) { - ++begin; - addressList.add(new Address("(" + line + ")", "uc_ux")); - } - } - - br.close(); - fr.close(); - return (Address[])addressList.toArray(new Address[addressList.size()]); - } - - public String loadIndivAddesses(String filePath, int count) throws Exception { - JSONArray data = new JSONArray(); - JSONArray jsonHead = new JSONArray(); - jsonHead.add("type"); - jsonHead.add("address"); - jsonHead.add("message"); - jsonHead.add("name"); - data.add(jsonHead); - FileReader fr = new FileReader(filePath); - BufferedReader br = new BufferedReader(fr); - int begin = 0; - - String line; - while((line = br.readLine()) != null && begin < count) { - if (line != null && line.length() != 0) { - ++begin; - JSONArray jsonData = new JSONArray(); - jsonData.add("uc_ux"); - jsonData.add("(" + line + ")"); - jsonData.add("个性化消息测试,您的oa有一条待办提醒,需要处理!"); - jsonData.add(String.valueOf(begin)); - data.add(jsonData); - } - } - - br.close(); - fr.close(); - return data.toString(); - } - - public MessagePropertiesEntry buildProperty(String key, String value) { - return new MessagePropertiesEntry(key, value); - } -} diff --git a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/util/TokenBuilder.java b/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/util/TokenBuilder.java deleted file mode 100644 index 196bf81..0000000 --- a/src/main/java/com/budwk/app/base/sms/impl/njupt/ucp/ws/util/TokenBuilder.java +++ /dev/null @@ -1,68 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - -package com.budwk.app.base.sms.impl.njupt.ucp.ws.util; - -import cn.hutool.json.JSONObject; - -import java.security.MessageDigest; -import java.util.*; - -public class TokenBuilder { - private String _appId; - private String _privateKey; - - public TokenBuilder(String appId, String privateKey) { - this._appId = appId; - this._privateKey = privateKey; - } - - public String buildToken() throws Exception { - String timestamp = String.valueOf(System.currentTimeMillis()); - String nonce = String.valueOf((new Random()).nextInt(10000)); - JSONObject jsonObj = new JSONObject(); - jsonObj.put("authType", "sign1"); - jsonObj.put("appId", this._appId); - jsonObj.put("timestamp", timestamp); - jsonObj.put("nonce", nonce); - jsonObj.put("signature", this.buildSignature(this._privateKey, timestamp, this._appId, nonce)); - return jsonObj.toString(); - } - - private String buildSignature(String securyKey, String timestamp, String appId, String nonce) throws Exception { - List sParamList = new ArrayList(); - sParamList.add(securyKey); - sParamList.add(timestamp); - sParamList.add(nonce); - sParamList.add(appId); - Collections.sort(sParamList, new Comparator() { - public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }); - StringBuilder signature = new StringBuilder(); - Iterator i$ = sParamList.iterator(); - - while(i$.hasNext()) { - String sParam = (String)i$.next(); - signature.append(sParam); - } - - MessageDigest md = MessageDigest.getInstance("SHA-1"); - md.update(signature.toString().getBytes()); - return this.toHex(md.digest()); - } - - private String toHex(byte[] buffer) { - StringBuilder sb = new StringBuilder(buffer.length * 2); - - for(int i = 0; i < buffer.length; ++i) { - sb.append(Character.forDigit((buffer[i] & 240) >> 4, 16)); - sb.append(Character.forDigit(buffer[i] & 15, 16)); - } - - return sb.toString(); - } -} diff --git a/src/main/java/com/budwk/app/flow/controller/FlowDesignController.java b/src/main/java/com/budwk/app/flow/controller/FlowDesignController.java index e7c26a9..d0814f1 100644 --- a/src/main/java/com/budwk/app/flow/controller/FlowDesignController.java +++ b/src/main/java/com/budwk/app/flow/controller/FlowDesignController.java @@ -41,190 +41,193 @@ import java.util.*; @Slf4j public class FlowDesignController { - @Inject - private SysUserService sysUserService; - @Inject - private ProcessDesignService processDesignService; - @Inject - private Dao dao; + @Inject + private SysUserService sysUserService; + @Inject + private ProcessDesignService processDesignService; + @Inject + private Dao dao; - // 获取所有任务参与者处理类 - public static final List ASSIGMENT_HANDLER_LIST; - // 获取所有候选用户处理类 - public static final List CANDIDATE_HANDLER_LIST; + // 获取所有任务参与者处理类 + public static final List ASSIGMENT_HANDLER_LIST; + // 获取所有候选用户处理类 + public static final List CANDIDATE_HANDLER_LIST; - static { - Set> classes = ClassScanner.scanPackageBySuper("com.budwk.app", AssignmentHandler.class); - ArrayList list = new ArrayList<>(classes.size()); - for (Class aClass : classes) { - try { - AssignmentHandler handler = (AssignmentHandler) ReflectUtil.newInstance(aClass); - JSONObject jsonObject = new JSONObject(); - jsonObject.set("value", handler.getClass().getName()); - jsonObject.set("order", handler.getOrder()); - jsonObject.set("name", handler.getMessage()); - list.add(jsonObject); - } catch (Exception e) { - log.error("初始化AssignmentHandler失败: {}", aClass.getName()); - } - } - // 排序 按order - list.sort(Comparator.comparingInt(o -> o.getInt("order"))); - ASSIGMENT_HANDLER_LIST = Collections.unmodifiableList(list); - } + static { + Set> classes = ClassScanner.scanPackageBySuper("com.budwk.app", AssignmentHandler.class); + ArrayList list = new ArrayList<>(classes.size()); + for (Class aClass : classes) { + try { + AssignmentHandler handler = (AssignmentHandler) ReflectUtil.newInstance(aClass); + JSONObject jsonObject = new JSONObject(); + jsonObject.set("value", handler.getClass().getName()); + jsonObject.set("order", handler.getOrder()); + jsonObject.set("name", handler.getMessage()); + list.add(jsonObject); + } catch (Exception e) { + log.error("初始化AssignmentHandler失败: {}", aClass.getName()); + } + } + // 排序 按order + list.sort(Comparator.comparingInt(o -> o.getInt("order"))); + ASSIGMENT_HANDLER_LIST = Collections.unmodifiableList(list); + } - static { - Set> classes = ClassScanner.scanPackageBySuper("com.budwk.app", CandidateHandler.class); - ArrayList list = new ArrayList<>(classes.size()); - for (Class aClass : classes) { - try { - CandidateHandler handler = (CandidateHandler) ReflectUtil.newInstance(aClass); - JSONObject jsonObject = new JSONObject(); - jsonObject.set("value", handler.getClass().getName()); - jsonObject.set("order", handler.getOrder()); - jsonObject.set("name", handler.getMessage()); - list.add(jsonObject); - } catch (Exception e) { - log.error("初始化CandidateHandler失败: {}", aClass.getName()); - } - } - // 排序 按order - list.sort(Comparator.comparingInt(o -> o.getInt("order"))); - CANDIDATE_HANDLER_LIST = Collections.unmodifiableList(list); - } + static { + Set> classes = ClassScanner.scanPackageBySuper("com.budwk.app", CandidateHandler.class); + ArrayList list = new ArrayList<>(classes.size()); + for (Class aClass : classes) { + try { + CandidateHandler handler = (CandidateHandler) ReflectUtil.newInstance(aClass); + JSONObject jsonObject = new JSONObject(); + jsonObject.set("value", handler.getClass().getName()); + jsonObject.set("order", handler.getOrder()); + jsonObject.set("name", handler.getMessage()); + list.add(jsonObject); + } catch (Exception e) { + log.error("初始化CandidateHandler失败: {}", aClass.getName()); + } + } + // 排序 按order + list.sort(Comparator.comparingInt(o -> o.getInt("order"))); + CANDIDATE_HANDLER_LIST = Collections.unmodifiableList(list); + } - @At("") - @Ok("beetl:/platform/flow/design/index.html") + @At("") + @Ok("beetl:/platform/flow/design/index.html") @SaCheckPermission("flow.design") - public void index() { - } + public void index() { + } - @At - @Ok("beetl:/platform/flow/design/designer.html") - @SaCheckLogin - public void designer(HttpServletRequest request) { - request.setAttribute("id", request.getParameter("id")); - } + @At + @Ok("beetl:/platform/flow/design/designer.html") + @SaCheckLogin + public void designer(HttpServletRequest request) { + request.setAttribute("id", request.getParameter("id")); + } - @At - @ApiOperation("获取流程设计分页列表") + @At + @ApiOperation("获取流程设计分页列表") @SaCheckPermission("flow.design") - public Result pageData(PageForm pageForm, String displayName, String name, String category, Boolean deployed) { - Cnd cnd = Cnd.NEW(); + public Result pageData(PageForm pageForm, String displayName, String name, String category, Boolean deployed) { + Cnd cnd = Cnd.NEW(); cnd.and(Cnd.likeEX(ProcessDesign::getDisplayName, displayName)); cnd.and(Cnd.likeEX(ProcessDesign::getName, name)); cnd.andEX(ProcessDesign::getCategory, "=", category); cnd.andEX(ProcessDesign::getIsDeployed, "=", deployed); - Pagination pagination = processDesignService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd); - return Result.success(pagination); - } + Pagination pagination = processDesignService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd); + return Result.success(pagination); + } - @At - @ApiOperation("保存流程设计") + @At + @ApiOperation("保存流程设计") @SaCheckPermission("flow.design") - public Result insert(@Param("design") ProcessDesign processDesign) { - JSONObject jsonObject = new JSONObject(); - jsonObject.set("name", processDesign.getName()); - jsonObject.set("displayName", processDesign.getDisplayName()); - jsonObject.set("category", processDesign.getCategory()); - jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); - jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); - jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); - jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); - jsonObject.set("icon", processDesign.getIcon()); - jsonObject.set("description", processDesign.getDescription()); - processDesign.setContent(jsonObject); - dao.insert(processDesign); - return Result.success(); - } + public Result insert(@Param("design") ProcessDesign processDesign) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("name", processDesign.getName()); + jsonObject.set("displayName", processDesign.getDisplayName()); + jsonObject.set("category", processDesign.getCategory()); + jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); + jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); + jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); + jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); + jsonObject.set("icon", processDesign.getIcon()); + jsonObject.set("picIcon", processDesign.getPicIcon()); + jsonObject.set("description", processDesign.getDescription()); + processDesign.setContent(jsonObject); + dao.insert(processDesign); + return Result.success(); + } - @At - @ApiOperation("修改流程设计") + @At + @ApiOperation("修改流程设计") @SaCheckPermission("flow.design") - public Result update(@Param("design") ProcessDesign processDesign) { - JSONObject jsonObject = processDesign.getContent(); - jsonObject.set("name", processDesign.getName()); - jsonObject.set("displayName", processDesign.getDisplayName()); - jsonObject.set("category", processDesign.getCategory()); - jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); - jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); - jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); - jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); - jsonObject.set("icon", processDesign.getIcon()); - jsonObject.set("description", processDesign.getDescription()); - processDesign.setContent(jsonObject); - processDesignService.update(processDesign); - return Result.success(); - } + public Result update(@Param("design") ProcessDesign processDesign) { + JSONObject jsonObject = processDesign.getContent(); + jsonObject.set("name", processDesign.getName()); + jsonObject.set("displayName", processDesign.getDisplayName()); + jsonObject.set("category", processDesign.getCategory()); + jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); + jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); + jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); + jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); + jsonObject.set("icon", processDesign.getIcon()); + jsonObject.set("picIcon", processDesign.getPicIcon()); + jsonObject.set("description", processDesign.getDescription()); + processDesign.setContent(jsonObject); + processDesignService.update(processDesign); + return Result.success(); + } - @At - @ApiOperation("修改流程设计") + @At + @ApiOperation("修改流程设计") @SaCheckPermission("flow.design") - public Result updateContent(@Param("design") ProcessDesign processDesign) { - JSONObject jsonObject = processDesign.getContent(); - jsonObject.set("name", processDesign.getName()); - jsonObject.set("displayName", processDesign.getDisplayName()); - jsonObject.set("category", processDesign.getCategory()); - jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); - jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); - jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); - jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); - jsonObject.set("icon", processDesign.getIcon()); - jsonObject.set("description", processDesign.getDescription()); - processDesign.setContent(jsonObject); - processDesignService.update(processDesign); - return Result.success(); - } + public Result updateContent(@Param("design") ProcessDesign processDesign) { + JSONObject jsonObject = processDesign.getContent(); + jsonObject.set("name", processDesign.getName()); + jsonObject.set("displayName", processDesign.getDisplayName()); + jsonObject.set("category", processDesign.getCategory()); + jsonObject.set("instanceUrl", processDesign.getInstanceUrl()); + jsonObject.set("h5InstanceUrl", processDesign.getH5InstanceUrl()); + jsonObject.set("instanceViewUrl", processDesign.getInstanceViewUrl()); + jsonObject.set("h5InstanceViewUrl", processDesign.getH5InstanceViewUrl()); + jsonObject.set("icon", processDesign.getIcon()); + jsonObject.set("picIcon", processDesign.getPicIcon()); + jsonObject.set("description", processDesign.getDescription()); + processDesign.setContent(jsonObject); + processDesignService.update(processDesign); + return Result.success(); + } - @At - @ApiOperation("删除流程设计") + @At + @ApiOperation("删除流程设计") @SaCheckPermission("flow.design") - public Result delete(@Param("id") Long id) { - dao.delete(ProcessDesign.class, id); - return Result.success(); - } + public Result delete(@Param("id") Long id) { + dao.delete(ProcessDesign.class, id); + return Result.success(); + } - @At - @SaCheckLogin - @ApiOperation("流程设计详情") - public Result detail(@Param("id") Long id) { - ProcessDesign design = dao.fetch(ProcessDesign.class, id); - return Result.success(design); - } + @At + @SaCheckLogin + @ApiOperation("流程设计详情") + public Result detail(@Param("id") Long id) { + ProcessDesign design = dao.fetch(ProcessDesign.class, id); + return Result.success(design); + } - @At - @ApiOperation("发布流程设计") - @Aop(TransAop.READ_COMMITTED) + @At + @ApiOperation("发布流程设计") + @Aop(TransAop.READ_COMMITTED) @SaCheckPermission("flow.design") - public Result deploy(@Param("id") Long id) { - processDesignService.deploy(id); - return Result.success(); - } + public Result deploy(@Param("id") Long id) { + processDesignService.deploy(id); + return Result.success(); + } - @At - @SaCheckLogin - @ApiOperation("获取流程设计任务参与者处理类") - public Result assigmentHandlerClass() { - return Result.success(ASSIGMENT_HANDLER_LIST); - } + @At + @SaCheckLogin + @ApiOperation("获取流程设计任务参与者处理类") + public Result assigmentHandlerClass() { + return Result.success(ASSIGMENT_HANDLER_LIST); + } - @At - @SaCheckLogin - @ApiOperation("获取流程设计任务参与者处理类") - public Result candidateHandlerClass() { - return Result.success(CANDIDATE_HANDLER_LIST); - } + @At + @SaCheckLogin + @ApiOperation("获取流程设计任务参与者处理类") + public Result candidateHandlerClass() { + return Result.success(CANDIDATE_HANDLER_LIST); + } - @At - @SaCheckLogin - @ApiOperation("获取流程设计任务参与者分页数据") - public Result assigneePage(Integer pageNumber, Integer pageSize, String searchKeyword, @Param("userIds") String[] userIds) { - Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user $condition"); - Cnd cnd = Cnd.NEW(); + @At + @SaCheckLogin + @ApiOperation("获取流程设计任务参与者分页数据") + public Result assigneePage(Integer pageNumber, Integer pageSize, String searchKeyword, @Param("userIds") String[] userIds) { + Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user $condition"); + Cnd cnd = Cnd.NEW(); if(StrUtil.isNotBlank(searchKeyword)) { SqlExpressionGroup group = new SqlExpressionGroup(); group.orLike("username", searchKeyword); @@ -233,17 +236,17 @@ public class FlowDesignController { } sql.setCondition(cnd); // cnd.andEX("id", "in", userIds); - Pagination pagination = sysUserService.listPageMap(pageNumber, pageSize, sql); - return Result.success(pagination); - } + Pagination pagination = sysUserService.listPageMap(pageNumber, pageSize, sql); + return Result.success(pagination); + } - @At - @SaCheckLogin - @ApiOperation("获取流程设计任务参与者分页数据回显") - public Result assigneeEcho(@Param("userIds") String[] userIds) { - Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user where id in (@userIds)"); - sql.setParam("userIds", userIds); - List list = sysUserService.listMap(sql); - return Result.success(list); - } + @At + @SaCheckLogin + @ApiOperation("获取流程设计任务参与者分页数据回显") + public Result assigneeEcho(@Param("userIds") String[] userIds) { + Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user where id in (@userIds)"); + sql.setParam("userIds", userIds); + List list = sysUserService.listMap(sql); + return Result.success(list); + } } diff --git a/src/main/java/com/budwk/app/flow/entity/ProcessCategory.java b/src/main/java/com/budwk/app/flow/entity/ProcessCategory.java index 974e3bb..d334adc 100644 --- a/src/main/java/com/budwk/app/flow/entity/ProcessCategory.java +++ b/src/main/java/com/budwk/app/flow/entity/ProcessCategory.java @@ -12,20 +12,25 @@ import org.nutz.dao.interceptor.annotation.PrevInsert; @Comment("流程分类") public class ProcessCategory extends BaseModel { - @Name - @Comment("ID") - @PrevInsert(uu32 = true) - @ColDefine(type = ColType.VARCHAR, width = 32) - private String id; + @Name + @Comment("ID") + @PrevInsert(uu32 = true) + @ColDefine(type = ColType.VARCHAR, width = 32) + private String id; - @Comment("名称") - @Column - @ColDefine(type = ColType.VARCHAR, width = 10) - private String name; + @Comment("名称") + @Column + @ColDefine(type = ColType.VARCHAR, width = 10) + private String name; - @Comment("图标") - @Column - @ColDefine(type = ColType.VARCHAR, width = 255) - private String icon; + @Comment("图片图标") + @Column + @ColDefine(type = ColType.VARCHAR, width = 255) + private String picIcon; + + @Comment("图标") + @Column + @ColDefine(type = ColType.VARCHAR, width = 255) + private String icon; } diff --git a/src/main/java/com/budwk/app/flow/entity/ProcessDesign.java b/src/main/java/com/budwk/app/flow/entity/ProcessDesign.java index 90f4cf4..065c04b 100644 --- a/src/main/java/com/budwk/app/flow/entity/ProcessDesign.java +++ b/src/main/java/com/budwk/app/flow/entity/ProcessDesign.java @@ -20,62 +20,66 @@ import org.nutz.dao.entity.annotation.*; @Comment("流程设计") public class ProcessDesign extends BaseModel { - @Comment("主键") - @Id - private Long id; + @Comment("主键") + @Id + private Long id; - @Comment("唯一编码") - @Column - private String name; + @Comment("唯一编码") + @Column + private String name; - @Comment("显示名称") - @Column - private String displayName; + @Comment("显示名称") + @Column + private String displayName; - @Comment("流程分类") - @Column - private String type; + @Comment("流程分类") + @Column + private String type; - @Comment("流程分类") - @Column - private String category; + @Comment("流程分类") + @Column + private String category; - @Comment("电脑端发起地址") - @Column - private String instanceUrl; + @Comment("电脑端发起地址") + @Column + private String instanceUrl; - @Comment("手机端发起地址") - @Column - private String h5InstanceUrl; + @Comment("手机端发起地址") + @Column + private String h5InstanceUrl; - @Comment("电脑端发起地址") - @Column - private String instanceViewUrl; + @Comment("电脑端发起地址") + @Column + private String instanceViewUrl; - @Comment("手机端发起地址") - @Column - private String h5InstanceViewUrl; + @Comment("手机端发起地址") + @Column + private String h5InstanceViewUrl; - @Comment("图标") - @Column - private String icon; + @Comment("图片图标") + @Column + private String picIcon; - @Comment("是否已部署") - @Column - private Integer isDeployed; + @Comment("图标") + @Column + private String icon; - @Comment("备注") - @Column - private String remark; + @Comment("是否已部署") + @Column + private Integer isDeployed; - @Comment("流程描述") - @Column - @ColDefine(type = ColType.TEXT) - private String description; + @Comment("备注") + @Column + private String remark; - @Comment("流程定义") - @Column - @ColDefine(type = ColType.MYSQL_JSON) - private JSONObject content; + @Comment("流程描述") + @Column + @ColDefine(type = ColType.TEXT) + private String description; + + @Comment("流程定义") + @Column + @ColDefine(type = ColType.MYSQL_JSON) + private JSONObject content; } diff --git a/src/main/java/com/budwk/app/sys/controller/v4/SysV4AppsController.java b/src/main/java/com/budwk/app/sys/controller/v4/SysV4AppsController.java index 15fb6eb..9a8ba24 100644 --- a/src/main/java/com/budwk/app/sys/controller/v4/SysV4AppsController.java +++ b/src/main/java/com/budwk/app/sys/controller/v4/SysV4AppsController.java @@ -35,36 +35,37 @@ import java.util.Map; @Api(value = "应用中心接口", tags = "应用中心接口") public class SysV4AppsController { - @Inject - private Dao dao; - @Inject - private SysMenuService sysMenuService; - @Inject - private SysUserService sysUserService; + @Inject + private Dao dao; + @Inject + private SysMenuService sysMenuService; + @Inject + private SysUserService sysUserService; - @At("/categories") - @Ok("json") - @SaCheckLogin - @ApiOperation("获取应用分类") - public Result categories(@Param(value = "platform", df = "PC") String platform) { - List list = dao.query(Sys_module.class, Cnd.where(Sys_module::getPlatform, "=", platform).asc(Sys_module::getSortNum)); - List> categories = list.stream().map(module -> { - Map category = new HashMap<>(); - category.put("id", module.getId()); - category.put("name", module.getName()); - category.put("icon", module.getFaIcon()); - return category; - }).toList(); - return Result.success("获取应用分类成功").addData(categories); - } + @At("/categories") + @Ok("json") + @SaCheckLogin + @ApiOperation("获取应用分类") + public Result categories(@Param(value = "platform", df = "PC") String platform) { + List list = dao.query(Sys_module.class, Cnd.where(Sys_module::getPlatform, "=", platform).asc(Sys_module::getSortNum)); + List> categories = list.stream().map(module -> { + Map category = new HashMap<>(); + category.put("id", module.getId()); + category.put("name", module.getName()); + category.put("icon", module.getFaIcon()); + category.put("picIcon", module.getIcon()); + return category; + }).toList(); + return Result.success("获取应用分类成功").addData(categories); + } - @At("/list") - @Ok("json:full") - @SaCheckLogin - @ApiOperation("获取应用列表") - public Result list(@Param("categoryId") String categoryId, @Param("letter") String letter, @Param("keyword") String keyword, @Param(value = "platform", df = "PC") String platform, HttpServletRequest req) { - List menus = sysUserService.getMenus(SecurityUtil.getUserId()); - Sql sql = Sqls.create(""" + @At("/list") + @Ok("json:full") + @SaCheckLogin + @ApiOperation("获取应用列表") + public Result list(@Param("categoryId") String categoryId, @Param("letter") String letter, @Param("keyword") String keyword, @Param(value = "platform", df = "PC") String platform, HttpServletRequest req) { + List menus = sysUserService.getMenus(SecurityUtil.getUserId()); + Sql sql = Sqls.create(""" SELECT m.id, m.`name`, @@ -83,28 +84,28 @@ public class SysV4AppsController { LEFT JOIN sys_module sm ON sm.id = m.moduleId $condition """); - Cnd cnd = Cnd.NEW(); - cnd.and("m.platform", "=", platform); - cnd.and("m.disabled", "=", false); - cnd.and(Cnd.exps("m.parentId", "is", null).or("m.parentId", "=", "")); - cnd.and("m.id","in", menus.stream().map(Sys_menu::getId).toArray()); - cnd.andEX("m.moduleId", "=", categoryId); - cnd.asc("m.location"); - if (StrUtil.isNotBlank(keyword)) { - cnd.where().andLike("m.name", keyword); - } - cnd.andEX("m.initialPinyinName", "=", letter); - sql.setCondition(cnd); - sql.setParam("userId", SecurityUtil.getUserId()); - List list = sysMenuService.listMap(sql); - return Result.success(list); - } + Cnd cnd = Cnd.NEW(); + cnd.and("m.platform", "=", platform); + cnd.and("m.disabled", "=", false); + cnd.and(Cnd.exps("m.parentId", "is", null).or("m.parentId", "=", "")); + cnd.and("m.id","in", menus.stream().map(Sys_menu::getId).toArray()); + cnd.andEX("m.moduleId", "=", categoryId); + cnd.asc("m.location"); + if (StrUtil.isNotBlank(keyword)) { + cnd.where().andLike("m.name", keyword); + } + cnd.andEX("m.initialPinyinName", "=", letter); + sql.setCondition(cnd); + sql.setParam("userId", SecurityUtil.getUserId()); + List list = sysMenuService.listMap(sql); + return Result.success(list); + } - @At("/recommended") - @Ok("json") - @SaCheckLogin - @ApiOperation("获取推荐应用") - public Result recommended(HttpServletRequest req) { + @At("/recommended") + @Ok("json") + @SaCheckLogin + @ApiOperation("获取推荐应用") + public Result recommended(HttpServletRequest req) { // // 这里简单地返回前6个应用作为推荐应用 // int recommendCount = Math.min(6, APPS.size()); // List> recommendedApps = new ArrayList<>(); @@ -129,15 +130,15 @@ public class SysV4AppsController { // data.put("pageSize", recommendedApps.size()); // data.put("totalPage", 1); - return Result.success("获取推荐应用成功"); - } + return Result.success("获取推荐应用成功"); + } - @At("/favorite") - @Ok("json:full") - @SaCheckLogin - @ApiOperation("获取收藏的应用") - public Result favorite(HttpServletRequest req) { - Sql sql = Sqls.create(""" + @At("/favorite") + @Ok("json:full") + @SaCheckLogin + @ApiOperation("获取收藏的应用") + public Result favorite(HttpServletRequest req) { + Sql sql = Sqls.create(""" SELECT m.id, m.`name`, @@ -160,39 +161,39 @@ public class SysV4AppsController { ORDER BY m.location ASC; """); - sql.setParam("userId", SecurityUtil.getUserId()); - List list = sysMenuService.listMap(sql); - return Result.success(list); - } + sql.setParam("userId", SecurityUtil.getUserId()); + List list = sysMenuService.listMap(sql); + return Result.success(list); + } - @At("/addFavorite") - @Ok("json") - @SaCheckLogin - @ApiOperation("添加收藏") - @Aop(TransAop.READ_COMMITTED) - public Result addFavorite(@Param("appId") String appId, HttpServletRequest req) { - if (Strings.isBlank(appId)) { - return Result.error("应用ID不能为空"); - } + @At("/addFavorite") + @Ok("json") + @SaCheckLogin + @ApiOperation("添加收藏") + @Aop(TransAop.READ_COMMITTED) + public Result addFavorite(@Param("appId") String appId, HttpServletRequest req) { + if (Strings.isBlank(appId)) { + return Result.error("应用ID不能为空"); + } - dao.clear(Sys_user_favorite_app.class, Cnd.where(Sys_user_favorite_app::getAppId, "=", appId).and(Sys_user_favorite_app::getUserId, "=", SecurityUtil.getUserId())); + dao.clear(Sys_user_favorite_app.class, Cnd.where(Sys_user_favorite_app::getAppId, "=", appId).and(Sys_user_favorite_app::getUserId, "=", SecurityUtil.getUserId())); - Sys_user_favorite_app app = new Sys_user_favorite_app(); - app.setAppId(appId); - app.setUserId(SecurityUtil.getUserId()); - dao.insert(app); - return Result.success("收藏成功"); - } + Sys_user_favorite_app app = new Sys_user_favorite_app(); + app.setAppId(appId); + app.setUserId(SecurityUtil.getUserId()); + dao.insert(app); + return Result.success("收藏成功"); + } - @At("/removeFavorite") - @Ok("json") - @SaCheckLogin - @ApiOperation("取消收藏") - public Result removeFavorite(@Param("appId") String appId, HttpServletRequest req) { - if (Strings.isBlank(appId)) { - return Result.error("应用ID不能为空"); - } - dao.clear(Sys_user_favorite_app.class, Cnd.where(Sys_user_favorite_app::getAppId, "=", appId).and(Sys_user_favorite_app::getUserId, "=", SecurityUtil.getUserId())); - return Result.success("取消收藏成功"); - } + @At("/removeFavorite") + @Ok("json") + @SaCheckLogin + @ApiOperation("取消收藏") + public Result removeFavorite(@Param("appId") String appId, HttpServletRequest req) { + if (Strings.isBlank(appId)) { + return Result.error("应用ID不能为空"); + } + dao.clear(Sys_user_favorite_app.class, Cnd.where(Sys_user_favorite_app::getAppId, "=", appId).and(Sys_user_favorite_app::getUserId, "=", SecurityUtil.getUserId())); + return Result.success("取消收藏成功"); + } } diff --git a/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java b/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java index 49e5027..e12928e 100644 --- a/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java +++ b/src/main/java/com/budwk/app/sys/controller/v4/SysV4ServController.java @@ -26,27 +26,27 @@ import java.util.List; @Api(value = "服务中心接口", tags = "服务中心接口") public class SysV4ServController { - @Inject - private Dao dao; - @Inject - private SysMenuService sysMenuService; + @Inject + private Dao dao; + @Inject + private SysMenuService sysMenuService; - @At("/categories") - @Ok("json") - @SaCheckLogin - @ApiOperation("获取分类") - public Result categories() { - List list = dao.query(ProcessCategory.class, Cnd.NEW()); - return Result.success(list); - } + @At("/categories") + @Ok("json") + @SaCheckLogin + @ApiOperation("获取分类") + public Result categories() { + List list = dao.query(ProcessCategory.class, Cnd.NEW()); + return Result.success(list); + } - @At("/list") - @Ok("json:full") - @SaCheckLogin - @ApiOperation("获取应用列表") - public Result list(@Param("categoryId") String categoryId, @Param("letter") String letter, @Param("keyword") String keyword, HttpServletRequest req) { - Sql sql = Sqls.create(""" - SELECT t.* + @At("/list") + @Ok("json:full") + @SaCheckLogin + @ApiOperation("获取应用列表") + public Result list(@Param("categoryId") String categoryId, @Param("letter") String letter, @Param("keyword") String keyword, HttpServletRequest req) { + Sql sql = Sqls.create(""" + SELECT t.*,(select picIcon from wf_process_design where name = t.name) as picIcon FROM wf_process_define t INNER JOIN ( SELECT name, MAX(id) AS max_id @@ -55,15 +55,15 @@ public class SysV4ServController { ) sub ON t.name = sub.name AND t.id = sub.max_id $condition """); - Cnd cnd = Cnd.NEW(); - if (StrUtil.isNotBlank(keyword)) { - cnd.where().andLike("t.disPlayName", keyword); - } - cnd.andEX("t.category", "=", categoryId); - sql.setCondition(cnd); - List list = sysMenuService.listMap(sql); - return Result.success(list); - } + Cnd cnd = Cnd.NEW(); + if (StrUtil.isNotBlank(keyword)) { + cnd.where().andLike("t.disPlayName", keyword); + } + cnd.andEX("t.category", "=", categoryId); + sql.setCondition(cnd); + List list = sysMenuService.listMap(sql); + return Result.success(list); + } } diff --git a/src/main/resources/static/assets/platform/img/home/family.png b/src/main/resources/static/assets/platform/img/home/family.png new file mode 100644 index 0000000000000000000000000000000000000000..993cc8a05004be1c9015c460a45b92e1c991ed07 GIT binary patch literal 364398 zcmeFZc|4Te8#sJsvrhK4%`~BGG4>@HTOmqJ*0Rpn_a$2xQX$z%6e^W0Wv`^Dh>}Pl zREl?vb9J@AvsF@8^Br&-=&woSOSS`*L09TF<#HJzILcYK?xVy9)q@hLV5< z0Kf(S3Ik9u1~_5#SKJR4pC;1b-}ye@*vf0M{k}R^C_uQkemK0y%jF5~^@{eoISmPKC?uk-1`i z#f9MD%mDLi6eieeWhSCw=wI3RFr!sWn`>!Ln?0UT5OsPT z5Sy-R&hH$kI4Q=2On_Nj=}tGC#5qB#{$AxE+VJlw{Lg2w>8~j)4FEibF(x8LM>#7AsC5L{OJ zIZW7cA@@dcYpZ$S&xyBZcnATzLhi1+wg0Vz(%gETeNT%}ual$__qI$QJa_b`V5tL^ z8O^?%WA&j4$pWj_v-nllP7lV((0GFv2p#^r>;RhC!b1}&pjKvIn(BRnuuNCt?YO? zG+L|{6|nD-giz~XI}i4pEG2khbN2H&>4O&zMu&~ukF|)l{BVB@XV=&0n0fn+&g^0* zLxbLtF4IDK2W>>opzelTw|2*(IgTEB)*1V@z9na*JbYK1kJw)4sO(<#wfBw;Z0qW!o(F42G3k=6=Zi%fr=ve=_1vUS?k*XrH*mXO^}b(s zm1?uSFzHjfmcjeMeLuX~uJ+!4ummt6^ZGmSwf)i+-3K0N*gJozjAe<)87-gHtbP0W z#qM{JoHHK_4$ei2kTwR+YesF~GjTeA^T0jTdlnlx_uQWs>D2#HYi#to+E#m1_(r4_ zrG9Yrj`JGysz&F$sBfBik*?7LNA}O#x|av-XZ;brZQGp<@A?ka)a#a2PQ7UC-QDs~ z_|YD@*ROB-&hBQn&wZnrB=(` z-E4U>#it{AQ}k*-=L4;aqdi^^u0&}zx`;Pi{M7!k>(yGO$MfRjKZks~bU%KdD{GyZ z{$?Nb@nx4#FFktugQ42XAs6S82Z}~c2y$|!2!2=sAwN2NJq2rATvTJYUp3kdZH?Tz zR^;mrgW@((y0*+bnag0YLPVeaxz&WBn@nJcAhV*7Ou@@0!sn>8wK_nhv4jC5MN^C9m0sGn~}re3FfG5M&UCFsrR z9>T?PnkORn-ifV8Y66BGaGgOf6X(_E+Ej*b_Vfp*T)5iNwAD(pXYA+D-dkq}I~Na! zZF#oF+COwn{HobDmv=t%S`BAgwx%Z~z4A{DVxBqo<6*;)?4k7rtsIW|^6{A$m^qnt zNo==T0z2P21y&F=J}Z9SBF+5N%LnsRdftBLli4M(M`d85J@;{>erM022x=^5;atd# zXP-yYqqc4MIQG@I_S|P?FH76CYd3EjI$(Y?n=;_#TeJkadd9AHUw#_?>2`=|lg4;( z)*kbZ>odql`b@tP^A?Xae%{sTx)@oJR5d1a{=wbr&t}3szO-I{&ksfNB5u`A&^XJ`4q zmP=hwv{)O)TPuHT7tCoQI+{Jn0fhFM4wUG8?yKWV3L!CN%9Z#3>&GEoP z%Hv-(EyHiz%02u-@Z!FEmJZh+mgnc$_|_@6=dWG@(I2;+cwc<3-34vAMGA{*RUM6r zeR)Fb0dHdE#Do#gshg)16zE4etisPPn%SRMKG&c2BwVw>9Q`zWV|$bY#f8{9%9KsTV)C6)Xx~`B=()cII`;0abyq zMwcn?h|}{5^{107I|nPt7HId5r;jDlcjlN%?-F=!#$hiv=SCrO z%PV~K-w7h8tF}$sBp#Waa!kSBZ1feWPI8KC?7aIk-^>2{$euTIQa&P8WP93Rw24$fy4_YSAh2@xSoSLqzxF?u+wM$`-v}Eb_X; z1Hr2Du2q{XuZ^ZGh%~<2{q3p9<9W}!xu0Hea(Xrzj7x{!8k#Qi*w(4E!wR!sQ!<4# zaa(TJ)(b?P@7G*gI7BQjm@mvc91Xf5=a5?_EY{&OdHZOctAT!<;g*sh<7RvX$epV+Z@KGS-?MYzSyBKc>h zFK--JXuNOkoV-hTa@nqqOqcSFbA~wxv|&X+7Lq@2f4Omh~pDB{uc7t*&zV+9&o6;~J5T z*9zAbZsJbe7?$N=8bG>Ss46$mDz~+^4(!|LU($d1MdOFDZ&Cs6 zCpODJkkox5GG4Qb!=9D<_QuUS`-q`6C+E(-`TX(n#j)BT+tZZm_u%eZH@@wM=E?kv z-IYt=^b$Cm7S)-MLh~s-`$ny&SIYUBr-qHL3Z+j=>Z8isjgV-ykNtK(qVKe?IcIx3 z@JgvndF@?ynU+@Sp_$qGI{CgR=e&9QiRjnd_J?~|d>)lL8=QWkFYf9U<$Klly8fN$ zpe4|;&)}x0RP!6lovp17k+rY)$9;<-yXan3?d`C#t{ck^w;yMAlcd< zcRASWiW_?EP}hRyquC#6Pt*96FG#R!3{5RoFFl?SJ<-7`Wuo#iC~@wLXy$?>#b~Zl zREK>g!PH*0C|^MEL-m85@AWdW1wRyxzSm3FopIYG_(+04Ss?HxTXx(RFVZp$*>%gy z5Zh?9iTzzss$}$1|FRnU|HO0YGe5!9%{Rz5(9PG6ps+;_sOlJ+U=ce60Kv5=8-Q6O zw&V93+Cqpq#Hb_2sKeE|U+`^EtT zj#rS+uQ}kIg5AA>+qx{w!c$DS&hPT_2$i%;)7fprqj&npP`s z2IYt|$~b-v3SV0EWqQL*G4i1AVu=xcQQ;~^E<&&C8SRDtp2kcw(yWXpe4rS6cN4N> z5kJVUO#x7hd3|N%8UR@r7g*v2pNMAxX|$Yk=49^g9C=2*4ScTDQDWpE^zbW((dT!V z2EcD+*2{DM>xub*6#td}GxmR{i~$Q4r0*5#M3W)4!rw2rtw&-Ef6Fp8uSSxXi}0~L zdn5@kLJSWP0BZ1`5>SCZRp12V00}4p8ceIfxFXD>0eP6`0u*4{1;*uJ4i%Owz}k*5 zg|u~qWy&z7z=)Gzxg#uf0W#nK2m#?>2k?a{0!$Okd|j9K24fa~d#qp#WW9_s)fx|FQFd&Tk4q00sHU zZvsH32ABf9+?{EG7GA~(38Vft4vtXSo?{Z|`gg&_azmluT=8e|w~Kru01VU#Q@*?+6d>gF2|uI=US zx&kTA<;5GUWW$v+Q)w=a!3@UDdVm%X^bgf7R7?U^$FbK zh+Kr&;_T}!8|vsMOWGnQ3$|*7`Z+p#(t-$1G-#h{62IJNBof@InnX(_6FCz5*eMV!#I*HOC&I=1bJ!_ z85b@HRwkwdUEcs2L1~MEjI$hxL{L`VLQ+&xRwhXk0 z5aDP6R2OwKz3soof+*y0=DDoavRQ$zZYmzRMxWCFu{f*eC-d;&MF z^q@xzbPjN5_%#VgkI-iq9HdEvGhJSSx1Wj0?~eZwTHfBsx)`+sgUo1uP2(SH2O?&s ztQjrPH#oqV2CHxUtFit8IP(7rF@JBYe}Lu_^t(9({r|f0$~aW#-}U^UInMwS)mfJ2 zMe~OJ1;QOb`n@2(6+im#CVyMh?_$QbK?Z=(QeSppIC|;%ItL?N8tQ2hVaXP%J5`;g zpy((^qbbWMDXYrKC_1Ss$v7&}N| zNncM@g|uBwRaJqcLn6s5sQqqh=o1*^=;KUV8QUF>4foad?aFHMstUR)+u>eQmDk&@ zub?WYpeL_OQqWOhjH|92Ky!rdTMBgDuI$pkP7`!>kzJ`m*lg+UL-h>_l=!0!4SIZO znnbt&c^Q(tjJzs^q@=E-piWYjl2cGukXx>5;!AaR3Hx1DNrps{k(Z~CRMbfdaF0vL zsjADZRD~o%ghMOj;4d%K*Hu7aZepRE~A5IAqRI0b}kma(iy z3vfR`qizrI^(HX(y}J89z+6d5&6%dG;v}Q!tfC~NNTVsrK-|g6C@3pCIjcH5IVq|s z5`VR){;^+{`3B5^c>8M|a*mG9F3ymSX(XzejFO9@l8l;~oT3a(PTtv(B=4x?Op_zZ z{+^QbVklIG>L(Za3#nzkj#Ht2E;i{*+oS~Mo~rH zNk&ygQBB54jjAFer{+Q>IXNjgD<~_hv=4zk_`kM+f*ge;r>>}~E>Bw72Ft?)`nm*# zI0n$PT_K75AMLc|cFt~&KCU##ie(uqMR?Z#_4WMkNnv@g-)s4w?bH9WwU{gaNiqMp z4q0R&%P5jv-e7-Wk5TpqqlRc?WI^taM1PB&Z7bs8-}k=|_!k2ILf~Hr{0o79A@Khr z2>fNZ(tMzb6avjsc)NcC!`K8=GGY;902c<0S+TXT`8pV&kzuM&tad*sn_w#l`KuJD*Qz>zr7Zp-%Y zrFd7TwLn4xN`Y6R)3E4~TE&!PgF%DI83{lwdx`Gqutjqg3KM-z(e1{&l&bey+h7M| zSTdid!fvE((AAD^dChdtNzS|j+HK+St{H-}DG3Mol#(LDCjd31em4{w9RLffGJvny zzbCl|=JHDdAoPYg!zL*J=so4luEF4%jCm>KvT`8d)=V`8AP#R)ERc{z&LYQZCzFln z&N=8f!Q3WNM<9h{Q%I?=$ySTOrjba*>Z#Op+#Yca+}R2`&M4M2ky;sY5jtTEnvkJ+b~BNOoiHWSfS z0wMi@g(pC9CtBvlaGk&9puIU$N5YN8!h&?tsW8bR2A3t|O)%P^z>meY>_Ktqcq_${ z2`!|}dpU3%_Fv=R`}XFGQKCqt)fBRg4|BI!Vb13TCukr9u6SW%5ICcT;a8LEqYb^ znx|k(2KJ;U(TtFxDT<#l>OH3S5V#h_NW@vYC)9cYfnzbLf=7(n&@F{h$`HK<06)X_ zpbOa_fYks_421DjATPEyYDtv?P0M>-u zZj%Hr$mPI1i^LPAK++1q5Enj;|73$HUinl{OfuOlDvY>Yjm{+h#8iqzaVh050sOfm zIcQdpFsDsG7iX-CeQZTWpEv68Rf1Sruh{gU5N#SSRK5p#|8%&R_ChS>z9aw(V}Tfm z5FDEccu>?lTprt||!Lb;Q#5??Ngh091x z=(8z7hnCdN-{LWnM@@_uZFQpqY>PI3Zj7}JzZilnbTuEK8v%Y}2!Iw3I`f*@lR51I z0MC1H<`f;^zXEJ?Om-dM6i+jpN2OQE>(S+V$?dkh#~st9nQR6L3KqB(ItsO7zboS< zr4X8@tLbt+sW#QP`9Xk=lfOyp2}5*OgMm0%p_@D<;Vv#?oyrt$Y~&~rXSYSh7RU&K zed!bTtpSzJpU1BEQWP+S<7jRuI4l5}5cYsMZ6|!Lgu`TXRf_{m-4~IAPaH1`f*E`X zk<6_Gv~z23`vKNO3ky154TYyD6@a4N41fxaw`dab-l*ifmfq^|wm2yeuw}_8Vb-1D z4o!Rr#P$iqPtWo4KK~0h z8KK2Es*ntXGoZ96qTB9sADJc@7z)N?Ruw~nPaxk8P2Y+P5m8O?f_YE}(^goH)49E&Jdg7LP!Cvy@A2{wR@PA3f%Le7u_7r55@r3)Pu z>zkhe7o+eL@bWO(JOf*E^*4QBGHSce1KO^4h>NkIJrg1GwSgo(lA1Kiqv; zd{!!x0m{1KrptZ6epiePWO?0EiB3*r9ykN&o#xH2Lf(vk;-X7QTfnFtUzYJ>#?8Gw za&#s&03MtbWyz)ETnYim+5-uN4%yHzY%p0B@@0u{_qeBqO70Q%6nY2HaUJAVH(q{% zg+-izC9V)<)|4>EA`15MRoD=83N1YM2;?1X!raRdrT`;up>k8A1Byuzm8G5Npw~MI z&{YmKY$quAKm$pTd%rS23iK+o5PDma;Bwo?>2p3-&@CERPNj+mc4nyUoRI zZ6gG)64zJJ3A*=gC?0$#E{@~nwKgs_OcUivyztm6&%#Yyw2+P>2$f-E>{PmN+Q^be zE`O1$+3LB^wWwTJihy7Q?F2~zFlQJPEdYkNfzbX#+yIv{c71xMq2OV${9{)Vy>PFy z>-bN$TMLgWNz=+=Nbb7~?8*e@Z3MEzjd^Hg2?nvoGpP!XrPv-k_LJ9pS%@1RS>0dK zDxE5Dj4lsZTes8XMo}!cvS3+10ToIuhN$y~SJF@t$m|d<$#^3VZo^}`kc+`GbH#(m zyH!f3Q0NT+v^_jT56F+`05})q+q6MiL7#sLzvCRB+lW^KY9h+ejLNPDvBS#`#TO)$ zLe@l<%qGVgn3Q`+JJ`$v>xv4*a~1RF-qxAkljtnEOD)OaK_PI?Mn%W5 zA4~x8WTDSo+?z9tPP_n%4$sfoA^(Hh~>*^Fu0Gxnj9WgHUM_Q zP@Kb|;Wa@9wZIHd2RK0_2$kC~Bo07daGRq;*ry5{h5{Xc`not1GO+M~m`aXvmZ3V; z0BkWpXYl950dOgIv)ll=thxCm!MT>4Qw%r-Cf`^vX^>eGD5zwo^enGjNFZ(%33Dhc z-LWPs-Ki>#EylWxPgY6jf-JA$3R-Z6IcRRPLSaga9MMCTi%Ck4Ku7V!7@jvE@MZO6 zkp&nu6RREjK|c#^v@Ias_$*77Q3r_q5XVA}C2zHDNlV{sfF zLE51v0J#6N>oSL}sK+3`Z$sr)$Ou3n<7e0*oiK%8kd{)&u2SgruxhtPJ9VF$NsH}^ zGdftmOePpHmkCVU`6Bu?fg?5#f6Eir8XIm2VaNhS=~Q~G_?@qLq5!fqxGg*#u*Sv) zzz6~y2Hb1P`!YHbYu%jNO@?pwJLv#Ox+HQTm_c`4LNFstffy)z3dJ@)a2g}y%3la@ z_(TAqUs8zT$)P6Vl~biiZh3kZPSt3qv#dZ!R#-wosnrb_Q|L@m`i2y?hdQzX33Gsu zidRmrg5aT8co5En6}OOZfN3u%>xEwd>osx3Zw3N$L?;j2Fq0JdtTbKHnkUf&>Tu}- z77yqWilRD2cSMD@#93SEU8ts5=rF0}HS1M&0CZcN4vr?5o*^`LhDuH3K?!;9A(Tkx zW>bvhtf1nUwlAQHz-0&$SmTXQhV%_^nRIA59KZ4KUbR31pdNmOurFkbPPud4bRqwx zF4t-3G-@wPc_xph8Y}z^6x+Pv#t#i3HQXkhR5g!Vv-0fxU&hXq}2B_=-?YXBT;9#q&7P;7}E4=Bx7xHIeZDqx_mD{ z@uImTDJU()W&(RND)BKJ9k;VYLXlt6jBITy$;4jRZWB*QXJS8$PeidK#95d!AD_w7 zr?Jopf)>RxIIIp$Kg@=Wq}UG2QTq&utx-XIMH`+5!~o5|cCd8>a%YfCPqX}hQ452PmZk1f7Wi^WqX@%|Yl{!-ySQvz)q9x6QdOHvPi!Mk-b$C{-@t`MDdvE!w&(dp z>HCF=hj4VGLROr(l-vdYaYPqWB*#vo+aRrr;;0e?fJy#QRzCr>3A{WAHz1n-DIb1A z9ZY#TF!WjoG=;7$w#+TK;VeSfB`#Qq1(y)w|q#p zCP2;Bsxp*XMrSf$A$rMLSCN5hA+$Z9x<-d^&7=b~+~F&M%TSaNmEo@{bcQg-LGl1X zTc)I@8z2J$a&~Y$q4)2QI=4gb^WC?GC}7!OiW7xA-1?Ya%#oh^Tr&K0z{K9fCoj2y zCpA86yIOoIy}0Z)ntd~XJ3j&9f$gD%)7RV%z%TBZ=)jf*9u)HD#_JIP(TNLZbcnw+ zTM~*KS?)<9djDVqY`abmdSu*M9_Oc&FmEd2Ts z{B7?G6Uoq0M^i07KxJ0g(~JJ6ly-3uWr%5q|JwVZd1NE9@JE8{SquKGvl9usY&r^o z;IU&CcdBYwYphUCEw9t7K&9JXNMHy92uN%ZfF*KC5JY45LjAV50m^2+tXB~JLJv#g^@{dzE4Ev= zl6d&C*X&3$NQfuXt#u3-M#!on^woIGy3+6t7dl&pQi~kC@GVT?&rO8HlVJ^Fi-gMe zRZ^PbfP`XZJVpCI@bF6BBJR#P+#R^lNygN~7id;-sgX$ZS2Jj}oZ*sih<$9WcNaH2 zQB-)A#-$^sl*>-k5d&sUkL4X|jIgoQ#K)Lb7beM)X*7?DEHZ%K*>I?iPc=bgFdP@_ zO^6vY(B%=6E(-M+vbb?=omka>qr)N<|JB&a!c~Uq3T1c|$f>!gDW0MF?(T;CWqTZ| z!VS>>;pkTDLPp#sfMM-1q_cpu9TflU0*H8itdaoDnl5NSh(CrfU$)74$S?-uSjG!t zf(6QNgmT!p;O_T>cKCNXqynf6j}#y_5@h$NH)hx1M@qQ8P97=4bWLO16eI8{Zb`# zF#%zFluL;{!cLcsu8G47vSl+#Sqh7X|9qnQ zHXU=X!3c0ArSZ$~pQp1X4%cvpnvu2j9uUg9c=R8mc#I_Eq~rh>3REzyF(^~mj3vM& zKqOT41D+hjmVlx!OflZBngE%HydKnK$=LhZbt}3nM#;fO8g536CT8t|*Ro%P-f0a< zhxM4z_V8Wo`#86xHZqbBtYap6QTS0>P3j>H9!D>uc zHoAZLMNn{7$i$XI9J`(#v=HEz2Yd$T^i~HD#y|I<5ORFT{h>|@bqd@o6v?&_fRdV2 zz{0yzF9s6-Bw{~6%DKn7rKo5Re-2MEtVSzp{t4~qrx+-&v87Pq(V!5k0Mi=iNTHyo zr)q4fO(lzg+5JR1$)<)N>~x02B28^AG*(R*2~zysYAsL%@GQ37JjIYQr|kc@w7r(vvdZJI=^c78gJ_=40Na@1(j`)$k5 zwO2lDTL^L2c(J#_>&c@=*Y=MAz1}RDcg$I;p70*`>OtHg>;h1xpj!$F2^BRa!{lX? zV%f<1ZB;;kuLOu0XlNs;GY~2O^~Um@m?`8!fW5Z}N)TD$OY(R@I=IgVza|k*fZSIS zVg?xN4>Ne0P!rQ$eQs;Im?=clO?N`9w%I4tk!}`IqqFSI%l1ZSqdxv?A^N;_V$T#Y zHNk+N0wky{kREJOwX-GBPEcClhKueLvXBNqgK44xN(W`=T&;L;@?k%~XBAF<0eIyy z0TMlo+enc4m|v!`o)KAGir31x5N}p=co;#CAt-}G785Z17iFBtCSWwp1(xk> zf{pkD_Mvf+>p9#l`Y%N_UbNFtM6GpfCa*-Zv*%@smtF#9Y}3F!7lIQiZb-SDZJ|rV)aT04cj#+AhC`4*oWC3b;zju?j47zZ zo=fJ^6l_x*RK-Fs$rZP_wOikHOJ#5EuIl- z?QXI*jWaSjI|&a0PLf+B4UA;?(=${O=~7ArN{LTA0qS;d%dCNOjR9oNaEauR{88v9 zM^6;dmn{g$+3{%vhUg&wBWetx;>qykuJ9~g@oj5tyZA?FwKqEtpYufV6|*~GekQB8J*BMScB+x2SGtbQzzljXf*Fu=OrH#y6J%sUOrdl0yH9Anh*Y)65qg7_ zguLx;+j)PRLO^J@K@=>3Bf`*jb34AmE68JnDnrh%w=4Hgv+aeL)i^+fmc@)vaspRLw0KxYsq z(S?A8074rLF>U3d0M#1#$P7vm$i?nJazRfj049S}#8qgt-DZ&IuBg>7dmB=WYY| z=Udt*Yns?wnxLm${ILV5gj8bYG)ZJIF9Z$fiTkF15efie1PE#r%d+YfhjOC>ZY6lo zfrQ(B_n@oSJ_k6}F!&j3d<_MWF94MUXo(*-Swsvv_FEQc^ksgiOeX8F0EcVrEwCpD zeCUR6Lo7LqnCxmA6sn8NC`bit zB~0wQ!ds-#PK6K~XPB&tg|28rqtncBp9QpZ@aFp}twe$8KmX=8@5?Gn(tJ-ls2zW)cUWHi0l za{F=e`PtUigAs-BdU4~AktI-cdT{PM5U_FbFV8ImHFn$*=$53JG{a-f#}Ks(9)r;V zDxZ#{x&7v13?v{AE^C4gluo;hbqnz^?BTgoSa`k|=7wBB!}Tf51CTbNkr z&;XzrXhD~6fqI@Lq&wWGA!v2DZ!=uMB1$xc1W^xA{HdXhWIlynsFc}7ky-REl*Al) zl3i&FjSuJp#^KXUNduK~1YjoxH3XndNGNO3H>X0{P8`W|z48!cjXzKbxDy|<0ByHK zp~P5L)SgZ_608^g~)a4)+_VB~jz=z#}O?ov(ArGAB> z6QhzkL^Q}if@BS#Zx^~xY|`qWC^CvA4yqKm zE+)0Px8;>Kg>0$R#F*rsgcu+gPlT2epj0M$W=ld}fgl@~Hq>7vT-1yT;VD9*wOc$H z;x0)!J_oR}@Wkt(#l=O9nATXBQ|zFk50R(GpG$>XRidaVi$Q3uryo%u0V}}sAszrp z1{fcb@lJrpRglsUgAy=QXW)8P{Oie_)IW4Ly10yl@Q2Cr2+^>hG%P$(G{-j2M zZ)(!CZGMiw=R$xY1VnxrTE8GRKGdPgaBT5s70L+mkePJg2^Qi9u5^QlLp<|I%Oy)#;|1edYWqU0u-U7ijEvPwR$uWGSM3d*e1PRcek4^ zbXGD14)9+B{u#$~9ursz5Y3Q2QdyyExlZiJvUeY<=qNXMz$}W&kI(CMaY7vUxc}m! zcf_{s7eztO*+y%d*{Ab&n-;9n2(WY1P{YN}!KD5uh0HtBHOZL9573L%RYnIo*HX8ZG(lDc z&-BH?B?nZZ1GnVyAonF;@y%BL=}n!ckYvdr*TE~Tx2j)1?7esTYkp^lYw{=56R!|| z_h`Ea-I<81OF;G3xi39o+$LntC1C$u>4%SsW9Wxq5s^U~t=`2~3!BI7JG7#|jY2{m z%Ws>_9f~7)r?l+n@PEEP<^9jB%jahV>myE9Hq7=v95V6TX!t|QW$@}fh<0F2hOTdj zawu=jEa`l;?sA3*BQdnLAhT!#pjYUW8-pO$>a&>vU=toCGf7z-2`z-KKxoUc$P=7$ zc*=-m9E*I5|3IN$6WxyB&_HD195-Bu(i>@D*Tu)BLeA`Pjg>;*>iNi{7wS#TIvaR$ zJII&dxeClXaE@m76n-8+yo0Z2(oRwb@!W~2U)Mz=`o^UYRj`jZ}T72 zy=)i@|F+DK>le!>2;^mrCa~M!wr}D3Wvt5u4;J?4u6Zg__%sjp4nTZLm-xWX?_--n zF4KQmW6*sBK$~k(qOqMQJ{5x>Brw!Wj3!e5m$i&UksuKNi>6VD586=7Y1`T9P|Yj` z>-RckKmrHY4J5NB3||vSu$WZ8(Y?NPfMa6vR_#n*`GUR3$?A^5k=te7Qe&&~#-le_ zeEsO6bp1w3`p4%Fq7DYDd{FU-=rFJQIeTB1VzsICTJ_<~@w?Q}Lbn3zh=Q!SXO~|d z5KL9C?D}lN?Xd(x7f)Q(dKa?Rx&I<>kXoyMol3!!#Z9)J^#yOEmH_kEH~$MtDMdGr zS4Z}boG&IB1D2{nh;N}M&|-Jw!6+VlO)%>zY7(Ub!E(`72YzX&Y_XX@`^4N7*9A#F z!I%IxyOu+3z$OctFlcTTcnJg*1hHQjOJ=H`{Q0DKzlF)IgPmqCmw;BP&wzU)A zd$RiK{@zWMTaU5v1b1HkqICSom`N&aehJi^zO3SAVPkSfdFa_fXkJ)Huv=d~=~R$z zVMj=RMNnf+;~jDAM#}f>hp%=q2REFWHlEv@5M%1G13$2D)7{Url@*G`33PF8iFkPZ zfw9-~_q`pa@F0@TL*6EG>3*ajb1i>n^VHRdBVp0Ij~GA(#JIo0 z@S8z{1-Z+z5};p&p-&^55bnvtRCv`a!4z=0P+$#~y#y#?$S9t&mfFMTBV(#N`bJ(J z_Y~O?zHJk2=tb?@$ty2RKCOQ@riuHu?t<1_-IJlBHLMSQ&ep6QXhkOxb9$)fnrB-jlDwimjTNXTUvcHEOF4e*UJJua@WlaG3y* zY)Eu~^ERGA9hm{zn_8z;xB3svykggvB8aaoe=^&s-TLOv1|F2*C1K)riE^o#S7kdr z?RsjoMICE+^mqX7Y(?O%J!J=nu5$91Y<5kAp1y$IiX`P!tT1BQ>~Ph z=(YPv@8ERf&8vbR7N6S}&HIm%E+lR8_GISjx4-bY`n~LaOUnGd;#8%S_^~MB>u)!5 z9@X-TfiY&+u5S@nTbgq8=;#bGAybEjYz;Cr3}QY{k)YE=6g$A5ZPT$6-ipc9zh_VZ zeOgDzjH6c&c3MQ^UUz@N(Th{#t6J(dVZZh77NBar7YSK+qJ4Vq)|Jn*4^q7EjV$=u zH@%5EQTp~&;JL9)YgWB28$?a3te1H6dCcroLGs^hm6*5ilpWEg3i8W0%(%J9e7h^&$qLoFCLqTNuCtb~@q? z%gK-P=-fdh|9JFd-8e^N5xLy=^5@+jZy2NQud9=Je){NH==o|MfMg7V2z&3Ft&ZJq zZ;LWNKVUVxdDiN<3tIdWEIHW9d39tyuX6U+#g19~l=@3CK8>lbLS8)U z&p)tErO$Rc>&J81yny4rJyAzJJ{+=+sGhN}i`Gy(RC%{nD>nRUL%(?H`^!V9zU?9( zE~h%@wMGuwHtEKxmyP88*tgbGglT5+?zD({-7W zmF-QH(MtG72@n2gP(|^IWUaFO;C+}XWbr}4#EL23U-RVDR-YYr4yr}sTc(qr&38M(2llIEgip-c4lW1|rp%tY)!?;5qN%Pr`_t>; zm%WL{O0YyT5Xa5?%M;Fd_;VGRkjk!8)o#r%4RFKmf;@T6bS9gDCjtpjD!_X_?N_GO zuJ?HM!ugJJpK0~jbeV9S^M~utOD#4?z#X*5_vWYi%e}9xeElmr0v|;^G*vy}k+Fp*BJfTS zbXKo&cDv#{u}iiJw5)m_ZaY1q)%Q9buyxR(Zn{92=ne}Qc&;hzI4%2+Ek4?TDdOtvBZ$73+hni0J>5yCD z+@%X5%7W;c&RqS=lZ%(%+tS&zmZctfZY$?490St?NmVWKg^EV@_kN1r% z;#!nl`Dd)J1lH{+IBG3-{H|f6OSQMMdTE#Uu16s@or968^w7SboqR*9KQu?Kna2%k z6@Y^LR|l4WZ1d-7n*z^gBQHaS5~gnYMs)9Y{ctnRyHhe*s5Nl0!eQ{DgKfxzo3z`r zTDrBC7nS=zaI$({-96t*`*HQ&E7ayJGQ2SW{Th4uYB(j+Vn3P!W^)C+puNUUV*r4+ z;I1#pL9J5`@Z?pzFn-6;iTCcd4-3xQ?Y~8a#emfEZ4&+s=SNH6%4h$zwRKVylcqDF--@zyq^{+4Jq)x(GZe-J#rt4r)EZQ zeTTAbrsqPJOZ`RF2opqa zhnfg2yGqgu{a7hSFrjFlkuP!t@0hx5sohWbwzw&yu3)GCi=M8Vl~v!LG>m%@NdrT! zy}{2rl7rSB@BXUg+~*g0bn-xmTf{6R0%IzQQIgZ^)Uwyu7{lKu@A(eI|!Q9zsm$`T6<3K|G-tmb? zcU{zLpeJn(s+bqF)FV2TikV%j_v=<^w!S6hryL!XU#B$p<%Ko;b9on4p5(jsr93U; z45owk&(GO@mOb!&2B0^cS$*Si6|@fgE~{0j+KW7TL+5aB^V{auHnAa;4h{`Yg|2(i zZx;!I2JL)(=$|@`APWZoO&qj)871?v_A;pMU8Ddq2HPH*k|@x(Qvy0t+p$;$`T{4F~CTS4wo?C=fQgN^q>si~XD?e)BPIx@BYOAnQdrd9avo6FS_-N6#9ap|Y zoh#^Gh}JqcdFkuO;uW#UsD1e(V=~N753+}j-3SU@0_#dA)@?U`e0u-K)9K?W>nDZShL+aIEK25-hvvwAOCF8*QfmaGXH3h z|4i;S2b39pQu|0ZJgkRz9&d{lZxea_aB?^dlXmA&?6q~B@1(4JO$y(wo~=H8LO0Ap z%%EfDIMLyTr?ap)d;P(7%U9PfCr!v)?ajYR9RCs)@9{+7S)M@K#I8-R5A4&t^I6N- zc89jdlQo^;*L!Avh`0IWZM=LsI^yD~HEvPK-;N}HcBLhc)JD0!pZ)$)OCeQlt(O1H zcNQ)A)s0;Z8Q(@5^&+J7M{+;DXYQXr-=chCRM26N2>rUxOfm_2S-*eACPv$I~ z3s7Iz^)CEUbKS0P`J4Vlrz7g4DQgZrEC~GiI%An#Urd`<+jJYMY31 zdmk)7FVQPBKn|JP01KJlL_C!hf@hmbO&g9ujnKH~HMo}fQdFBD?CEK2Bg#+%1?$yk`j~<$SbMWH+m-FMY zj(w+8+=D`F!U?eTfgcVZAiMQ0P=NNh2yZWS_4_A_7l+4B$j-gopqZki9dme)ouX1z30LVeOW76_Jc45Gumq zlG5;c9`(kA42MAiXX9s5d2=}XT>?k4=Wd-DUz>0tM!{{tfyJrGs7o~=)o-oU-f!-` znei}qSHoA8VgmNFXISWsJb9BScpDHp_sR=l3#_sK#huwRH*DuQyZkk@IN#3>Y?+)a z;2xRlGp|_py5hynw|km}#zUH}UG6MtkUc)OrSn~G;K?eJ=x>_YT8E=FKTY{uaTqLk zH1B^Sud-pGEK*|3JMMF*WPnO=0$@Hr{B1w#>8-QheJ*YuNS>eg{`F^+PgTvu%DQ6> zKdtYEzKibjQt_U>;xU(Do9o>7gJ7ja@{UA3a`-uY99tX1po zDx^X4_)(l1(j*F#lB3@a3CftlJGcpJ?CN z?~9prA^G%#;u?6%;BFWlUim;Eh348OTl3`;J7B1gX!FoCEFHO70Lc$`_UfU+z7M>*|J&5%l9F+RN@x1@1M8+Fx#1^eqYOcN6 z>{ZRK#rHkAcebTL#oy)?az_o?US>e}qq=KP)Zj-Zgo}kv znvJJ8B$yFftyoHDp-*`5}wdf&)4(GO!)$#my7%A5B1=K?Cu9 zd9-i;vE~rzbfQLiJJ7p3EjJpKn?ZvqZw z8@>-emQX^=TPka*yd@!7hoK@`&`OB0g=}NVFw8JgsT4_NUrM2@Wj6+8Ez8)q!H{Jz z7|bwc27UMRe#ig+Ex+%3j(XpYrZLZb&vV_^cAn>zrSEU?iS1KRR?dBi=ZU;KzNOLX zbLUpu)3CwhmK(kW*vAj9+zEmoIWLb4=G0;0hJW8t0u5hleSm3m(C0l4Q8Q(VtNp@9 z=mJJKYRk2tEO!{SzDBHfGDV~}HEz(HvU1E>v;R{|iRJsvqEV@o>8)`OMUjcS5Z|3d zrNPbK!7cAGk1H$Gj?%*Y-wzr^b6ljwiI+WI_C^nB?pV>4oP zD7#*ro6sf2wv|{!rMUkN<}0uX2(8qaxOuN6WFoeXCKmemrNX#%faSoG@0*66L`_h? zuS;mx8O<6+M0bwHsr1?&EUGzYEpM=i=#Nat`VsIxqYf~=U#lfYG;3ZCtVAp1?Rj=w zHfHa2(67`={8c3Tcjx$i<4xB=5!enS{PKH#+zfohEry-p?cA5}x6`BaG(Zyj+Y=aO z-ppz7pDRbSA|z%|J|EQt&pJwh9^BI;)9s~JJ$8gDVv5RD9P~{)Ep57TXawdy8GQPI zeEA_N-%x}Rg_yVYB)P3+eXOMRzuGbXM}Se#aoa2jEx=mjUsdYb%C9Qim3wosLRaae z-}33Z^FE?I%%QZZ1lyNudbX!(dG2K%b;n;}x8#>=gFRM9U;_|V6_x@q&ttEE~;qB95#9uoBW~#&Ur22#$Twa&4v^EEc~?emx#GX;ED z3&$>q3$2C#wgr-Mt5YWytoz|FrQG*4ca3&iFbiJK>Gxp`wRFQPh6I+D%h%frj?Coe zF*2JpG-7I@v=?(Lr_mZ!0rn`6MJ`n+P-#K>y{O-fFh^4)$xp+)mw+w~WgA8#Gm z83Wzkb8Z4tA$99}K!B&}=H6aOLG-2>?9=>d`_E5cw|GwC0ADT4Z3uJ^d1v_jo8;?O z^GX>`+`9uSb|1RgvGKVVRi}0EcKSiK zz)fx24gge-&O^EV88+%>EOx&{8sqS{vt=mG3&i)l^_rJ$O{(wqnMDT{Z@afDgNPWy zmS^N|NR#g#$VV3^m)XoD?If{2Blf2uj}M1NOwcv0bLT5sisrP$68bnvP581Vl2yRX zggHbmdqYSrDscD@)FPV6xY+5t5L}T=y7fI@2MOys%~w|XIiBkIeOkNtK~hFbsGc?{ zaGrd&j}zbOZ;{}(BeA!kXyN3TL^xx2(F5cOdS%`&_msi?kvD{17r7grcM+)$&9F&% zzZFSse8$C+@;DhkeRUbMbQ1Qx0udl2*nmn|;$1!)i95zcU7qQylLdXd{Qv{vR2Q83 z@3Q!ZvvfRm+mcO<>r+}|c3;xA9_=5DXSgd(gvyb`dp7sme7AP|T7fIjg7fNFEe7-` zrKqT93!X0vHp_}wky0~Sv^|aZbK&+I6VE3~5_rv0r&s*_2^!*e=*i6}Inf3bCk)*} zBb0o?gw#z7#$Dp_KTbfPi!Ru@6rB3?frRx$`3P~?w-SD9Ud8m*{8vOUllmU?@whAk z`y}^B;~;9-vSKPEEl!LvekIV%REov8ZTh!m>01B&;vJF#TBNdx4?3hAzOVg(>Q^ha zrC;KI1rvVfZdz)OxBeJJ>bSOZAKNRsGgXLf8*oicj6(DFDZBobX8==lhk3=p)i!+$ zhR==n8rm1>CEp=^a8jCdknhnlA?%B;#QZn#DX$=Y@L$-8__>$yi^!wUG3Dq;>NgQJ zG-XulI8G#N0eJ>Rhj$&iO^>V2Ja)JZEnPDtFu$_xSl6gVybVs+4NdbB8!Riss#(lh;NZE>KC{FJIT z+gM2^G!6_2?f7u*ux@C*dfFZDlm@y@Xu#S?zS`jMgsETD^}MHVe9|r?tTIK1LO?Td zHOl261C1P7D`y6%2PDIb3TKeJfEDpY__T#}y}SoPo+D(f5)}hhnym(5a+Pe@ItM~~ z)okWQe!-|On~422x7n|h!xnY9&X8;`7}#9*al4fbiR(-G{9G1s_srY(H!}sJ{G7UM zpH40omGCa>>*z&jT&{KkmBob>?ia)p^|!1Tu<7FYeDWEeB!H?nwd+IK!2AwSD6WO; z$TZT26lu$$)NW}?D$??Uhqyb2D3hG{aO&joj@)|B0M&k}#QC7Zc^-ahEMnT>Q!#f@ zRV_IqX4sBoYqcS1$9%L!Z0)lTH$-iw{jrNQmBY8Fr1!1pfVX}A(K)o$?=L8rgWXQH z8vT^{>a?Bj9vLW6t7Y8se%VA=j%4xoMvdOgizwAi|yFfqboH6JVvC{QOjt ztHE)DdIRFQ<<@TN^>?+Kw-#m8HzP>ldv@*g)8{S@2c0qG{$bsVBwK8H4EH9oK8zm+ zup7+~V9)@*nNl=L=ia!U;cNjaNPe8-)iQvATi@uYL=>&7%R;P07x@fpGY3YN^Sn$F z#qT|jNHeSEJpGAcR8*v=&C7i3&yq*KVsz3v86%Y5N^K}mo7o!zNf;_k=G7QeHbBX4CTeTJOx-=_ zMo`4(_|vn}y2whh;kwKWE9IJWTr_baHRE64e)%ki-23!)_f5+3qAbcc5|}pmnjq`S zm|8`EPUYM9ct|@Ex40SP7HWn&46_)8D^J1cVqHo}e<1x0Du$*EI~eCii1VsB5|w2K zE3zGm?a>cNb78f-sJvR2TW&kTr@Lic&M2THgTwLlr;j^(!a!yBgvzDt@VxSiV|9ou zXZlNxf`v03Gb^SSXg*OtDU})2 zV0hfq<>da%#G)XKm{F`j1?U#x<;fw}mKEA&j%Tgz|E^AXi&m(t(+6OWu+-NoLmwP4 z$T$VcdP*G8Cs@z0Zedeg{3`=vOYB$qi1`DF6|W|T`1hSt8A0qTiyOe+28N1yy~X@w-~4|RLO7!R`r%3F&Fnl>57%*S4?fU)Gje-I+H`UWFF(l8-8196*t&)l zKjo*rfSE|h@`bhDB-y42HmNFgoNn&c9b5c*IT2JX1b<<)V$b%QY9yg!VLN^*!|_XJ zPQRHz+t#n-3cp6{=pyVndaf9vizaE;uwyYNu+3j}Q3QWYQ{& zx~3%R28M#mM@mn=KCBq*h^|g8eEGSsHA!gQEKPxNxUd+LEcRoeB<}gV$ivBUGi|?0 z&-;#AYsT!}75JO9m_YN+)j6cuYX)ArMelZSL|f?XwclY^l&<~ClrWFAGyE;YdsFDY zjgt`>aykd7KyR!;W&=#l>dOzSk+xR%vsI0bit;lrgZy<~kY!O}*p(8J$hF<&2O zoCp}O<1=Tg4oXVA@US!ODNB2yRdl?6HA&C?Tl|K%Zh%Zu7uIh^6ly@(&7Zc;!PgaS zP#BmKD%I-R;j>xR2t9kBxSLTX@6J>!v%-?=Pk%k&-A5pc?3K&f!M6; zt7{Cl7xFquBrF35@m%QhVI}_Pl5QS&M_!2&`JGVx4a1_I+}Of_c##?$740jXxs>(T z^kVsg{(Mv{LFa}(m(dWo3k27DchhE$Tue zsKAe~*a8DX$SU2w6B7m-xc7V!rh|KiF zZMI;|!HZ(8Bhgp>sq9T0iu(u(`wgguchpd1=*vCOKZUjh5;G9`cKR1Cxa29=u%EjG z>(|h`b{Rv(CeCO2et@1D{~lnH`y(MJ?XYK_k&o`}-ekIJo7F-S(F*oe6Q!iWN2y58 zvq0vx^zZCe zA#N(?uJ4eWrjJm;W_m zi0?4~cilduG+4+pViK8-Clzl@9gp20(f&Zz%TqX=z-rp&VHSOCV~cG@kDCz)#?;P- zAik)3R%`(B)XBv1F6sKQs|WxbI11_WM-9)5NGw)Jih{3BUte9T9P_@%GnAm|C*5Al z8SOqaEc0IHi1MgDbpDvKbDsXkMy<=$;!SVsLa|7kuoa?7(d}LPQ`XQg{C!)duKLRb!E-{J8a%Rk`8^dP*Sf{pI|b zA<*J`SHgSnN!doDyUA?DsXD8G2z*1$$;6z{t%s$@lQ^bkdsqHIU&_cc5{~!Vmza05 zOoLuT(($=WxLH9L++rT#(?JhVdjER2@MV6JN>=|QM!YZJKuFqAJ#!M0sAsb_?r)LP ztfzgb4C6(&chik_ikC49x|>9A$P0)*>KjBxx3J*q@gFnGY9dw(X5H`2AhOxZM-K(n zp;EI87h>2iNg@7JCSo`wWcA(haAR;bZ0`WW_|2P` z<(|Fn% zog}%E!M=BMD8WjaTUaYvRIr)QuF(5J+)rOixU`{^HKQlOBRnhLhDeWxhk8T1_mi0E z7_|ZsqdEBQ#x+Rt+0Xrguj0uWjU4ZkK%p0^X?ai7~k^W#+Moi=aKXw5FQmCeczoq7Ocl zhqU=Qqf~>ik+ZyMYt$umZ>B9`QA{4d^%ZwCb78Fq7U%YEs>D=!3cFZ)jMyx`Nhv0E14 z2CotSIb>S5W?rmEeW zS#S!iVT0h-w#wc%FyvPSaDvNZr5fQS4%~RsM^7;^BXnNycpa={`1d4Wn?-#M{dC)% zeyEMz(jP$1^nCw5&?T~co_Mbdo!!@{l{71cSfF(YbahIl&wpJ^eNdrCiL^$_bO^ zuysw6U`Lbs-X}>p^G3AE{?0p673br(u8eNq5cUm5fBM$mviS<~-bSWPH_L1W8=M13 zrEhRthX(Yo_DAk$1@v_T5O!AG-RbUK?!bj`-E9r^{Cdo3+`r3=I9Vqi;mJ zpVYN7ehOjlPuw-s!Sk?eME*n7z8pold1<9tzg=1pvfoR;SL@u>nNXpuifdN|(Nx6WZeZx^tZObiBW~dA`=~!`*1Ax(*#2_ zT#{f7WgE1IZLTw9r}-LmU@NdFZfP5asXdAVCCYmp&?8XPtXC^2W!&Yy3HZamMa`^U zR2Pp!R>acutYd5F$I<`o)mCR{L^0sg0^=Wns;1CUFyAgA)2cpP6&cQnH&7J}0@1I`f2)78>-iUi|KUtUFVadoBbb$*G{RA$A`3ibQ=7HWQU}8i6 z#5dVNRtN4;*OM2pZhAL7{Crs_OG*=}a%f^JBdvseCJ47<7R%x)2$zlD)EdeGNUJm7h?(LA8Bq?N7pjb97Z||Mrea3rU#!dx_F3|G~A1bmg z_N2aCj0<><@PSf?Fr0yQLIC-}4rCtu6 z{@FkM(AbECbq3zZF;gcx1x2Q`Netww9+0&oRO%I%%3MI@|73;KB|n+m7AGelLU;xya^ssm zBzS%m@k!e~zpR6=mF>g4H)}?0JB6+xr)ESG`Did5Ka#Jeq;;3G&HFYrF^fV%6^~96 zNJ(JP6mJ|XIBjP0p=a8eu(*U&3}GA8{t{Ba4czdh4(cRQ(b0}s4*xBkjEMP2;b3&CELUeI_*?8 zUkQ5j?Lf%bO8LH9I7s#x5DEco_;Z#oP!QC}lUn>7tM=?8_GJ-aYU0wf@w+$mdX16@ zF|+GZAUqK4WlBl65w=f;__mhRj^!G;dS|M94X!KEX$KZkdv0oD%&`o3pojWg&(kTy zmp6D(F3+YY!{NNcaSPxg`3`lw5*R2hc&}ygdEwEXJD<5NwL5f~S&jeQQX>Sx=ymh3 zyLWl^9>`3GfT9U+k@zj=T>Ij%T1j{}6<#BKd2&fG>GJOqeF%st0*d=Y{ZfEf>CrG1 zh)3`(GET!UDDl;~AIYYqpIVV|J>$hMu6s$3qip%8PWLQY;~}h3cLXyzU+m@H{zVxd zW{s`babL}wyZ`0x#JH`v&sg~MqNN}k^=Ge}+ zVRqXe$Sv#_Z~etoR)l6L&ITUY$mgJU}$z2e@Dp7eMwTr z^^k%YM=zrJPVc+*;gm}QmbL6fd^nz{#3GZHtK}Y@NscfHi6OuC5++uPSHLIeB6zQV z|97nc_zI8*?FPu$zu5ThHqV+Mg)fAY+n&nueM4t{9GIS6xdZuMfkqNHd*B&RfRU4{ zG-E+Y18|BVsNXq#Rq3{}O&7#Ybup{ZGhBxmOW)rVsxpQ|+nlW;a|gUea1N1l=W}68 zP3Mwv>edyQxWTK$TVY*__h#S#+jOCp|JC1Z1E(ufA#X%5V?#hTcAVWBF&$__Fc!S6 zY|`1Y5Q={%d&JQlPi`nC9F?}Imi#(8ZuOMTtO%UQYPl#>I<32REJc;oKgwFrhsAy^ zmI+=fNN5HWIn{k{Ko$bJ_1^;lj9O(6Bw(EPTaA>3wIA9!VdD4hcAjA4Dwb(j{0I7= z9h+0;61~iU_$^7g??0|>$8R*y&;&OruO9(ow+p4n-||Qk1&+)yoU)B_9=zuh9UJmb z2__LkRsL@U%2%hJLnHmUeB1o~uR|%y`fuLmf5rk-;^tU;m&IY%v;|?@!D)xa+KG4BXf_VOwg|<24uI&Oe zSEyy*k!wPb83P)e;H-6RzI5+X&oW}r z#m|zCqbN3-fnu^whib|08cs`M{NJBPo)gop2q_XXr5I57jzz*)r?boNaeW*2e+F6nW?z`$P zkK2Ivnp)ai%X!WXXCM#uO|g42q;Wbi88C8Z@;@`OOiLO$Pyo%Hl~hI&Gc<+{%0h=a zyS7THAyTD~(pdPnmfMN&gvp)^#>3C_nm_8ZxOE(;GOzpDW30cWpJ;J^>?N$cW)akF04q3E}_NOJ^MSPC40nEHwO~KMio;ir>P!f819I(19ap%;Kbtugd5&l zLfhUy0V^aT65v_U?fv@`S8I+jH6!j9EyyuP8Wn}sL(=4C8j~3oH&;_<8dlinm=ywQ zUkS@oUYIujw07^{s3JQ~T)`bwKSeUfDnQtY#U$29W`7UZ=Q!AJwpx(BDI-?gvN|!^ z`Fmq))T!Y^h2m9VR;ZUeVbVYCX6u|Tz+z{yMG@B-8;eP^=n;*+H7W5k zu|!XQU4D+E1C)Y-8-5=KfBA3+&fH-Rck&KjW3i~}grBx*#}pR7sFEK_@#hD^N=`X+ z(0i(`s616yI#R7W07qWq-?QCd4^H7MwByyeUU*S8H3Bg@A9>^lA!X~rscWwc_5)%M z8lD*^FWKPv@1tLbRo!}z3SISekqfu``{>`Wb1W2siuFOw4+mO$2^6Lu4;Plq6@uc* z9o_rV@pGBI+CpdcRyr_b(tj&eMxRB~<5Wgpd5>Nioek|GZB4sb1i&5W#KR8=ceu^c zE2;6I6tIni!a+H{A;^y5k;sYg4@nk|?peMIc98tHfr~PwWccjKT7MB_HU*oW&3 z9r$U+Mgc`eV}dSqVz6SXM8j)jtt#}%AE-p^bv1=l=?b7d5SK6fp>{_rXx2fHu%e3G zPEvEa18eia;502XC|^Sd60DqDB}FnK9_kci)n0;n`y$qmJ0`4!wyUG@7&NiMtN5Wl zc=84E7|5^d@&^XSL>-#FOg5^mm zQb8R@RiO=qsHln?sA{=YkL&kJTh+MjZ3BGte;3a$!s5Zw6xMJ36N*mv^=$oVyNC3- zFKJ1X*RM^?nC+Z(X$wu?!bi8rn6%EJ?%^@PUs8k@o;QmEq-?Y@ifTU-pAe6O_GAM! z8ZQ0(oIbSex>J{%;M>c6x8h?T``Eng%T+>R#LeCYpElx4`j+B1_=0Tmn?)3xIM{@r z@*gI?vx6tS9C&cyR#144PsK<=dvTeas>to6+2#EwROHP{3ewkeWZLoLrBwt5A;Rb= z?X8ppJU-<9_MX;PzE$+9xAk`}<&n+1R)l;i_E<=tZ zNyOp+fLdsd)dh#Nn917223g^m5O}bAFHkkBX!dmWXwkb94?7@$9tUs|OY;yro}*wZ zip@bm4ajNpfImOn@z5D3CaT!oo+0}<|EcN00z{y0X`;7HTG2)k|6&t5a%boD{ixWY z8F<0$65o^Z&FCr0ZJNyhC5Y&pAkD7_3nKe@X9*WQWAA&^Y#=|wlGN)CY3=;*B@;T} zseQjrJtXI=VkDa|w1r}OneF0v_ph-`T8e)~rA73;81%KO6RPUZH>N%JM_SB^y@0=+ zG@_~^(PiyrjXY8A?~49Cu)qs}OovYj2W}Qrh*ATBz++bnMA$$;51r|Cbtvmyk+17ieqDkztE}ee?rY4um-P{9)AGwi2P*X zFZiL9qC}r_Ap|KcB{*nr5mqJ(|2EHC`CW{z?u@P0BF7h%@V>ao(|>IbT(x-qto2;z z#mOgQ8?5)iNi?z36H}Orpil&=vY;q@^kehE*(1l4|C$95Cg!uTvhKsW{wUo5wZoB! z5BRCls$YL~CyJ>QnIMOPo*nWJ;89C5Rnz|5%zh~dSf%b6-26&>kalJ={s82? z2us-rupWi9#lH{~mTge_{Du`I`M%+OFXp|W`HP4g9nyw&?~{deLDZT>Y6YySZY*|2 zi(sKS$)4YF=v$|B`}kcyyT4mLjfqAqs0OXK7;iam?rb@u#aG-2bE0dgd zm)l&%{o)l`VJ(!KCuY+$y%eJKEhr#gmyhgOG}UfOTl(@L_Rvu0R`X&Mksf!_NmG`8 zR3VD^j*4G=JZE-&B@X+Dsp`z?ItuZrh3G?|va-u1m*;V)(T{~K@%-ixT4@8JMj;<) z{(w~g8OZHT1cax#2^n1daKx_o>iJy>rBz>ZN!E8# zYd2lIl+;-PEZmMCviuN#I#|aI0M`5MZ41e$w$t>*aUYAixN{PK193?|?$b8OCzy!3 zn4(gE@UJ`D5*(AaB$Dhpa^YC#hqPO4y~$u{tVt8P={!AOK1%dhGoGNpMs%pkLOaUj zr#D5~2C6l+Pn4k4D+5mVfv!kV!5B@hCFB7;Y3=kQ47B66&1geHW90@>eaAO{3&Qzs~oCCOR zc{Y_n;y?aCek4bIo-Qn6CiM+f>4LuC+t9ePlZhLmBo8T>!JREPjUmWQmRWhey7{Z-~G9Cb>5jKd;(SBb~m! zRdi&gF_%#TinZ;t^E552xL#&4#3%B(VSUT5|E{W6fct$`wuq~1nyW`maA5V%_-yIu zXG0G-Kw0S7*LixC_086*_pj^$eK1@%gxgow=TmbO`RE94d(s>SI_$T0#vBDAL(qR} z%=#d~T3>td1uP2$kRsW@ApVKZt>p!xU`5bX6N3)G!oM&F`0ec>#Um1>M1L>P_d5zi zsbut`*H=Q7+1-Jx8rTiug=Nl0sLWe7VyIGXqI`Hn(;g!aHUD>q(F{SRoea~&g+BcEri09s>X=R48TX8t z^}8l3Xrs1r=ZpCPr4w_<>)V6P!t9e?wpGP0YOINY$m!tB+s7YjdG;y;gy&yF04ia> z@A|=dogb~0L%wn7CjpUe=%&<_5eH}j9<9`C8@^T(wlax>_#7nsT5P@$i;MR_P*;Ca zs6N(0CJ|apZKgAW)}oVf5KrEw#@u4zxHV4HoaRj^MiTenARweBrP#*-Sz{2sb4;vy zK_wN_q84}Ee~S)rBcISS%MnKLt491I%Dm`M+1d)ds(ST6ex3Q@{Y_Y zrvn;s%-=7TFXMo?(o&55Vi)O}hVV>To>#n7hzS=vbhNg#-=Z>v z!%!%CP=E*;9Y68V?$Mrq;-1Nv2vI%T*!PFnf+-aQn|mxyA15*@L^onq-o>>|%buiR ztr_(lZWwms59HWNt+{4xrtcQMXCNr-2P%zv!JAdqR@Q2+9|knMKykD7ug&vb^@YSz zrkVb)03B!PW0;(xr)9#)$fMiCWHGddOeSR_fZeZS;hpN!Dam=}c*$SR-g&5mERh`5 zX;<#mU-bw2;J3za~C|iC7Pn*B`JcR#(wVWVCE3y z>6lU56QvAH5k;nCu5!5}rRZD9Y&j}U$&s+19%yU8j=oOy{y#Ggp1rOYfqF4eratiq zIF9{!j|?kGk38E#+>~wvMQPXpsFK!*`q-w-Sj=T|{s5|XX8(J}AE?cn^AwzU-|~o) zQO(Xl=>UTom2;$7f;qRiue_GeQ6l`;uw|#S&4aqNtUCV$NyyLqQbB0~ zq3YhlCDks>Q&!mXU&cIHfEE;7GsdopJKH1L<)ZE45FGsr2-GxEFa=_zEL*_`CH{`@ z37;)v26dWl_?iVrJczy%q|A#V&d7-Px}cxb*Vp5YxbwfwE3f&`x_m!*0zv(=4}9ns|rKE(7X z|76f4hkI_pgoaa1Ruq@{_JyPv_QRNuzve|!u;o<*@>oiEYl+72+CVi7;@1a~VV9f1 zi5hbw9eN1RvU#BSuouXr2DNM0_s$Ckt}5Bk+O=l^$fE)rD!ubkVnZH(AVc7>K5>I9 z;|5pozx~(1W`e%dsXgf{C(Z)T0tpF0=62B8-C+x+I7b$?7tjcf?N;5(f8^HHUxqGU zZJLbOwu6UmL1)7rdWwWHv_h%E?kr|Tihw1HQ>!632lI4=TX0r?+*-cR*myZ7a{-xV zH)j(*c>r_h*mqQuMG)xHdJMj+>=lssw&C6+;%^f-u(D2;X_)ej)(fX;$s9OS9gJ-) zdGg4=Z*o(0!9=9JYB4<|RIPDpA}s>Oh%G9%<9!@sF!lUte9zXgLVvzT3wnJ~V{~Lf zXgru?1)1xEF%Wx>=<|Nq&0U&|T00Hm-Frj-xTU)tI6U+rA3+>JH6vwtHpd_!+Jc() znY!+@ByAnDTBq7#gjKs(Jm8hwTQ?qT+jKGY6T=Gtq_Xk3aS@Z-a=c>a$QS+P5JGtc1G?U)6u1B zozL+&p0)~j<&-H?WOlKNymyy+bQQ*@9c@|;oqJvO9g$h(FO$VCc({n;H<&j=q7iR` z=T+ZwHcmmOL_fHi>XPc#*Zk(-l1tFj zlutCJLyQSqWJt9G%otL?S6TIJ;6v{Xw{i(6&tAO-{hjAi#YH^!&n~Ap8_t#kx=QhUkeGkloZZh|T**kN z$sWXpyTM5A&k%G@R_I?alLdmlRNr<4W3JY1GfvH!R*(rcwPkT%*8RpHv^Wc;aJGA- zaKK6|!S|(CJSfhyYJqaZRqu-zUi?lRx%F!M5j0WyC*})jTf!W)b3b(Kh7$M$AuzZB zjs}q+xOruYCq~b}ODq;ydreteqbKm^JVNyuHloWjKo37C~ObJcmyY5R-$}33+ zc&qB^iL_`9##>-Z5E%UMkJ^Q29#ZGHPVjTN&iEvG4C01n&`#9Ow_MRo@T_uWO@S#b z0#d+{Wm%A~?E(I%#oC`r=k#h@l1C%nfWG9>uF52QWsR*Ue~Yh;4qG)CZ1Ld=Jq=ec zuZHFCohCV7OS&si6%fQLlP)I5dhH!^A{5M60`X?9JrDQ3+2D%n=CPvGgAncxKM03=v5 z<)7ru(0HPgvr+tYI=Ta)H@h58!meB9(WgD4c?KI7SD^K+vg+>Wl+BT2eUO;{FDibp zXk)5F#B4U-oVHW|%D7vGTl&B}w?m8hKk3ZVP6zb+O;c7aZZEwAC$6Y%v$9P-vS8m_ zlR>b?qvf`Tki?bI)HBmpvuu~iSKj&G%UYJ$EL3yG-zqBMi+jdW7pg9=952 zy|hq74Z-9-A9Aoiaa9P^hmHU|Q(uq^z3z*qz~Y$B71tnQwCXdJjfu|X;PVhuGOETe z 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�t;I_|3L>> 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 z @@ -355,29 +356,31 @@ layout("/layouts/v4/baseLayout.html"){ - - - - - - - - - - - - - - + + + + + + + + + + + + + +
- - - + + + +
{{ app.name }}
@@ -385,9 +388,9 @@ layout("/layouts/v4/baseLayout.html"){
{{ app.status }}
@@ -505,8 +508,8 @@ layout("/layouts/v4/baseLayout.html"){ this.activeCategory === "all" ? "" : this.activeCategory === "favorites" || this.activeCategory === "recommended" - ? this.activeCategory - : this.activeCategory, + ? this.activeCategory + : this.activeCategory, letter: this.activeAlphabet, keyword: this.searchKeyword } diff --git a/src/main/resources/views/layouts/v4/home/entry.js b/src/main/resources/views/layouts/v4/home/entry.js index 942c076..dcd011c 100644 --- a/src/main/resources/views/layouts/v4/home/entry.js +++ b/src/main/resources/views/layouts/v4/home/entry.js @@ -20,17 +20,13 @@ const entry = {
-
{{ item.name }}
-
-
📅
-

暂无数据

-
@@ -129,7 +125,6 @@ const entry = { margin-top: 5px; display: flex; gap: 20px; - margin-bottom: 20px; border-bottom: 2px solid #e8e8e8; padding-bottom: 10px; } @@ -173,12 +168,12 @@ const entry = { justify-items: center; /* 子项内容居中(图标和文字) */ justify-content: start; /* 整体网格靠左对齐,避免居中 */ - gap: 12px; - padding: 12px; + gap: 4px; + padding: 12px 4px; background: #fff; overflow-x: hidden; - height: calc(350px - 74px); + max-height: calc(350px - 74px); overflow-y: auto; } @@ -187,11 +182,11 @@ const entry = { display: flex; flex-direction: column; align-items: center; - padding: 12px; border-radius: 8px; background: #fff; width: 100%; max-width: 100%; + padding: 6px; transition: transform 0.2s ease, box-shadow 0.2s ease; } @@ -248,32 +243,5 @@ const entry = { gap: 12px; } } - - .no-entry-placeholder { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 40px 20px; - color: #94a3b8; - text-align: center; - } - - .no-entry-placeholder .icon { - font-size: 48px; - margin-bottom: 12px; - opacity: 0.6; - } - - .no-entry-placeholder p { - margin: 4px 0 0; - font-size: 16px; - font-weight: 500; - } - - .no-entry-placeholder .subtext { - font-size: 13px; - opacity: 0.8; - } ` }; diff --git a/src/main/resources/views/layouts/v4/home/index.html b/src/main/resources/views/layouts/v4/home/index.html index 7f00da0..48bfd7d 100644 --- a/src/main/resources/views/layouts/v4/home/index.html +++ b/src/main/resources/views/layouts/v4/home/index.html @@ -17,7 +17,7 @@ layout("/layouts/v4/baseLayout.html"){ .section-banner .banner-img img { width: 100%; height: 100%; - object-fit: cover; + /*object-fit: cover;*/ } .section-wrapper { diff --git a/src/main/resources/views/layouts/v4/home/stats.js b/src/main/resources/views/layouts/v4/home/stats.js index d4efb43..56a54d6 100644 --- a/src/main/resources/views/layouts/v4/home/stats.js +++ b/src/main/resources/views/layouts/v4/home/stats.js @@ -1,13 +1,16 @@ const stats = { template: /*language=HTML*/ `
+
+ +
@@ -20,10 +23,10 @@ const stats = {
@@ -36,10 +39,10 @@ const stats = {
@@ -52,10 +55,10 @@ const stats = {
@@ -110,23 +113,25 @@ const stats = { style: /*language=CSS*/ ` /* 右侧统计区域 */ .stats-section { - position: absolute; - bottom: 24px; - right: 24px; /*background: white;*/ color: #333; padding: 20px; border-radius: 12px; - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); z-index: 10; - width: 680px; + width: 80%; + display: flex; + justify-content: space-between; + align-items: center; + margin: -130px auto 0; /*border: 1px solid #e8e8e8;*/ } .stats-grid { display: grid; - grid-template-columns: repeat(4, 1fr); + grid-template-columns: repeat(2, 1fr); gap: 16px; + width: 32%; + margin-left: 20px; } .stat-item { @@ -140,13 +145,15 @@ const stats = { cursor: pointer; transition: all 0.2s ease; box-shadow: 0 2px 6px rgba(0,0,0,0.08); + width: 100%; + height: 90px; } .stat-icon { - font-size: 20px; - width: 36px; - height: 36px; + font-size: 30px; + width: 50px; + height: 50px; background: #e6f7ff; color: #1890ff; border-radius: 50%; @@ -178,6 +185,7 @@ const stats = { .stat-content { display: flex; flex-direction: column; + margin-left: 10px; } .stat-label { @@ -192,5 +200,14 @@ const stats = { font-weight: bold; margin-top: 2px; } + + .stats-family { + width: 68%; + } + + .stats-family img { + height: 190px !important; + border-radius: 30px; + } ` }; diff --git a/src/main/resources/views/layouts/v4/serv.html b/src/main/resources/views/layouts/v4/serv.html index 7769c81..4c25a93 100644 --- a/src/main/resources/views/layouts/v4/serv.html +++ b/src/main/resources/views/layouts/v4/serv.html @@ -334,7 +334,8 @@ layout("/layouts/v4/baseLayout.html"){ :class="['apps-sidebar-item', activeCategory === category.id ? 'active' : '']" @click="changeCategory(category.id)" > - + + {{ category.name }}
@@ -350,29 +351,29 @@ layout("/layouts/v4/baseLayout.html"){
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
- +
diff --git a/src/main/resources/views/platform/flow/category/index.html b/src/main/resources/views/platform/flow/category/index.html index c3f5d20..ffdbf01 100644 --- a/src/main/resources/views/platform/flow/category/index.html +++ b/src/main/resources/views/platform/flow/category/index.html @@ -43,6 +43,15 @@ layout("/layouts/platform.html"){ :rules="{ required: true, message: '请输入类型名称', trigger: 'blur' }"> + + + diff --git a/src/main/resources/views/platform/flow/design/index.html b/src/main/resources/views/platform/flow/design/index.html index ee88633..04789ed 100644 --- a/src/main/resources/views/platform/flow/design/index.html +++ b/src/main/resources/views/platform/flow/design/index.html @@ -101,6 +101,15 @@ layout("/layouts/platform.html"){ + + + diff --git a/src/main/resources/views/platform/zhghh5/sys/home/apps.js b/src/main/resources/views/platform/zhghh5/sys/home/apps.js index 0a35367..a441b1b 100644 --- a/src/main/resources/views/platform/zhghh5/sys/home/apps.js +++ b/src/main/resources/views/platform/zhghh5/sys/home/apps.js @@ -23,8 +23,10 @@ const apps = { @click="onClickNav(index)" > @@ -46,7 +48,7 @@ const apps = { @touchmove="onTouchMove">
- +
@@ -57,7 +59,7 @@ const apps = {
- +
@@ -75,7 +77,8 @@ const apps = { class="grid-item" @click="navigateToMenu(menu)" > -
+ +
{{ menu.name }}
@@ -407,11 +410,11 @@ const apps = { .app-grid { display: grid; /* 改为自适应列数:每格最小 80px,自动换行 */ - grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(60px, 1fr)); justify-items: center; /* 子项内容居中(图标和文字) */ justify-content: start; /* 整体网格靠左对齐,避免居中 */ - + gap: 12px; padding: 12px; background: #fff; @@ -442,25 +445,25 @@ const apps = { } .app-grid-icon { - width: 64px; - height: 64px; - max-width: 64px; - max-height: 64px; - border-radius: 12px; - background: #f2f3f5; + width: 45px; + height: 45px; + max-width: 45px; + max-height: 45px; + /*border-radius: 12px; + background: #f2f3f5;*/ display: flex; align-items: center; justify-content: center; margin-bottom: 6px; overflow: hidden; - border: 2px solid transparent; + /*border: 2px solid transparent;*/ transition: all 0.2s ease; } .app-grid-name { width: 100%; - font-size: 12px; + font-size: 14px; color: #323233; text-align: center; overflow: hidden; @@ -540,6 +543,17 @@ const apps = { color: #fff; } + /deep/ .grid-img { + width: 48px; + height: 48px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 12px; + color: #fff; + } + /deep/ .grid-name { font-size: 14px; font-weight: 500; @@ -576,6 +590,6 @@ const apps = { font-size: 16px; color: #c8c9cc; } - + ` } diff --git a/src/test/java/com/budwk/app/JugTest.java b/src/test/java/com/budwk/app/JugTest.java index f331f95..a2a6dad 100644 --- a/src/test/java/com/budwk/app/JugTest.java +++ b/src/test/java/com/budwk/app/JugTest.java @@ -14,6 +14,7 @@ import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.budwk.app.base.sms.SmsService; import com.budwk.app.base.utils.ManyAddOrRenewUtil; import com.budwk.app.base.utils.PwdUtil; import com.budwk.app.sys.models.*; @@ -66,151 +67,19 @@ public class JugTest { @Inject private SysDictService sysDictService; - @Inject private SysUserService sysUserService; - @Inject private SysUnitService sysUnitService; - @Inject private Dao dao; + @Inject + private SmsService smsService; - @Test - public void t0001() { - String s = """ - {"@odata.context":"$metadata#DS0005_1926887238437818371","value":[{"机构编码":"006","机构名称":"教务处(教育教学发展与评估中心合署)[创新创业教育办公室(中心)挂靠](下设现代教育技术中心)/现代教育技术中心","机构类别":"4","隶属机构":"100085","是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"100001","机构名称":"党委办公室(保密办公室合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100006","机构名称":"党委组织部(党校合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100010","机构名称":"机关与直属单位党委","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100014","机构名称":"党委宣传部","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100021","机构名称":"党委统战部(社会主义学院合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100025","机构名称":"纪委","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100029","机构名称":"校长办公室[法律事务中心(信访办公室合署)挂靠]","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100036","机构名称":"研究生院(党委研究生工作部合署)(下设招生办公室、学位办公室、培养办公室、教育管理与就业办公室、综合办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100044","机构名称":"学科建设处(“双一流”建设办公室合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100047","机构名称":"科学技术研究院(应用研究院合署)(下设军工办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100056","机构名称":"人文社会科学研究院","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100060","机构名称":"人力资源处(党委教师工作部合署)(下设人才服务与管理办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100068","机构名称":"国际合作与交流处(港澳台事务办公室合署)(下设留学生管理办公室、孔子学院办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100075","机构名称":"学生工作处(党委学生工作部、人民武装部合署)(下设心理健康教育中心)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100085","机构名称":"教务处(教育教学发展与评估中心合署)[创新创业教育办公室(中心)挂靠](下设现代教育技术中心)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100093","机构名称":"财务处(下设财务结算中心)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100100","机构名称":"审计处","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100106","机构名称":"保卫处(党委保卫部合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100112","机构名称":"后勤管理处(下设公用后勤服务保障中心)(校医院挂靠)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100148","机构名称":"基建处","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100158","机构名称":"发展规划处(党委发展规划部合署)(下设校地合作办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100161","机构名称":"资产管理处(采购中心挂靠)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100167","机构名称":"信息化建设管理处(下设网络与信息中心)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100178","机构名称":"离退休工作处(离退休党工委合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100183","机构名称":"继续教育学院","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100188","机构名称":"工会","机构类别":"11","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"群团组织","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100192","机构名称":"团委","机构类别":"11","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"群团组织","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100193","机构名称":"美育中心","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100199","机构名称":"发展委员会(下设董事会及基金会工作办公室、校友工作办公室)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100203","机构名称":"档案馆","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100204","机构名称":"博物馆","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100205","机构名称":"灵岩融创区建设管理委员会办公室","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100218","机构名称":"图书馆","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100234","机构名称":"图书馆(出版社有限责任公司)","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100251","机构名称":"实验室与设备管理处(分析测试中心合署)","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100268","机构名称":"国际文化教育学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100276","机构名称":"文学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100286","机构名称":"学报编辑部(《中国美术教育》编辑部挂靠)","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100296","机构名称":"外国语学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100324","机构名称":"历史文博学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100347","机构名称":"商学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100364","机构名称":"法学院(下设中国法治现代化研究院)","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100387","机构名称":"教育科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100401","机构名称":"心理学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100423","机构名称":"公共管理学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100439","机构名称":"新闻与传播学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100458","机构名称":"音乐学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100472","机构名称":"美术学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100492","机构名称":"体育科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100511","机构名称":"计算机与电子信息学院 人工智能学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100546","机构名称":"物理科学与技术学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100564","机构名称":"化学与材料科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100587","机构名称":"地理科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100605","机构名称":"生命科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100631","机构名称":"电气与自动化工程学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100646","机构名称":"能源与机械工程学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100658","机构名称":"金陵女子学院 社会学院 会计学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100678","机构名称":"强化培养学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100684","机构名称":"中北学院","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100700","机构名称":"泰州学院","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100744","机构名称":"附属实验学校","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100749","机构名称":"数学科学学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100777","机构名称":"后勤管理处(资产经营有限责任公司)","机构类别":"6","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"附属单位","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100782","机构名称":"教师教育学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100788","机构名称":"校领导","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100791","机构名称":"博士后流动站","机构类别":"13","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"历史遗留机构","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100800","机构名称":"环境学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100801","机构名称":"马克思主义学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100802","机构名称":"海洋科学与工程学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100803","机构名称":"食品与制药工程学院","机构类别":"1","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"教学院系","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100804","机构名称":"随园校区办公室","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100805","机构名称":"紫金校区办公室","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100806","机构名称":"基础教育合作处","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100807","机构名称":"南京师范大学培训中心(江苏省高校师资培训中心合署)","机构类别":"10","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"直属单位(教辅机构)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"100808","机构名称":"教务处(教育教学发展与评估中心合署)[创新创业教育办公室(中心)挂靠](下设现代教育技术中心)/教务处","机构类别":"4","隶属机构":"100085","是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"100809","机构名称":"科学技术研究院(应用研究院合署)(下设军工办公室)/科学技术研究院","机构类别":"4","隶属机构":"100047","是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"100810","机构名称":"科学技术研究院(应用研究院合署)(下设军工办公室)/军工办公室","机构类别":"4","隶属机构":"100047","是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"100900","机构名称":"党委巡察工作办公室","机构类别":"4","隶属机构":null,"是否撤销_name":"否","是否撤销":"0","机构类别_name":"党务部门(含团委、工会)","更新时间":"2025-05-26T06:40:43.011Z"},{"机构编码":"101","机构名称":"入校后统一分配/辅导员","机构类别":null,"隶属机构":"100","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139801","机构名称":"后勤管理处(下设公用后勤服务保障中心)(校医院挂靠)/公用后勤服务保障中心","机构类别":null,"隶属机构":"100112","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139802","机构名称":"后勤管理处(下设公用后勤服务保障中心)(校医院挂靠)/后勤管理处","机构类别":null,"隶属机构":"100112","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139803","机构名称":"后勤管理处(下设公用后勤服务保障中心)(校医院挂靠)/校医院","机构类别":null,"隶属机构":"100112","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139804","机构名称":"法学院(下设中国法治现代化研究院)/法学院","机构类别":null,"隶属机构":"100364","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"},{"机构编码":"139805","机构名称":"法学院(下设中国法治现代化研究院)/中国法治现代化研究院","机构类别":null,"隶属机构":"100364","是否撤销_name":"否","是否撤销":"0","机构类别_name":null,"更新时间":"2024-11-20T02:56:28.187Z"}]} - """; - - JSONObject entries = JSONUtil.parseObj(s); - JSONArray value = entries.getJSONArray("value"); - - List units = value.stream().map(item -> { - JSONObject jsonObject = (JSONObject) item; - Sys_unit sysUnit = new Sys_unit(); - sysUnit.setId(jsonObject.getStr("机构编码")); - sysUnit.setName(jsonObject.getStr("机构名称")); - sysUnit.setUnitcode(jsonObject.getStr("机构编码")); - sysUnit.setParentId(StrUtil.blankToDefault(jsonObject.getStr("隶属机构"), "1")); - return sysUnit; - }).toList(); - - dao.fastInsert(units); - } - - @Test - public void t003() { - String s = """ - "党政_副处调", - 专任教师, - 管理_免职, - 校办企业, - 党政_科员, - 专业技术人员, - 教辅_实验教学, - 管理_团委书记, - 管理_办事员, - 管理_学生辅导员, - 管理_院党委副书记, - 管理_本科生教务员, - 党政_正科职, - 党政_正处职, - 无, - 党政_副处职, - 党政_副厅职, - 管理_副院长, - 管理_科研秘书, - 管理_研究生教务员, - 工勤人员, - 管理_院党委书记, - 管理_专职组织员、人事秘书, - 教辅_工勤人员, - 党政_正处调, - 教辅_实验设备维护, - 管理_科研辅助人员, - 管理_办公室主任, - 教辅_图书资料员, - 党政_副科职, - 党政_秘书, - 管理_成教生教务员, - 管理_其他正科职, - 管理_正处调, - 管理_副处调, - 管理_管理, - 教辅_其他人员, - 管理_学科秘书, - 管理_机构秘书, - 党政_副省职, - 管理_院长, - 党政_正厅职, - 管理_科研副院长; - """; - String[] split = s.split(","); - - String parentId = "c78bb5c7bc264b928307508357dea4f0"; - - for (String string : split) { - Sys_dict dict = new Sys_dict(); - dict.setCode(string.trim()); - dict.setName(string.trim()); - dict.setHasChildren(false); - dict.setDisabled(false); - sysDictService.save(dict, parentId); - } - - - } - - @Test - public void t004() { - String appId = "1926887238437818370"; - String secret = "32df31fcf4fc43f9a647ee1f47134f36"; - - List allUsers = new ArrayList<>(); - int skip = 0; - int totalCount = 0; - boolean firstRequest = true; - - do { - long ts = System.currentTimeMillis(); - String sign = Base64.encode(DigestUtil.md5Hex(appId + secret + ts, CharsetUtil.CHARSET_UTF_8)); - - HttpRequest httpRequest = HttpUtil.createPost("https://sjzcpt.nnu.edu.cn/cdsp/data-api/v2/DS0040"); - httpRequest.header("Content-Type", "application/json"); - httpRequest.header("appId", appId); - httpRequest.header("timestamp", String.valueOf(ts)); - httpRequest.header("sign", sign); - - HashMap reqBody = new HashMap<>(); - reqBody.put("$count", true); - reqBody.put("$skip", skip); - reqBody.put("$top", 1000); - - httpRequest.body(JSONUtil.toJsonStr(reqBody)); - String resBody = httpRequest.execute().body(); - - JSONObject entries = JSONUtil.parseObj(resBody); - - if (firstRequest) { - totalCount = entries.getInt("@odata.count", 0); - firstRequest = false; - } - - JSONArray value = entries.getJSONArray("value"); - - if (!value.isEmpty()) { - List list = value.stream().map(item -> (JSONObject) item).toList(); - allUsers.addAll(list); - skip += list.size(); - } else { - break; - } - - } while (skip < totalCount); - - Files.write(new File("C:\\Users\\administrator\\Desktop\\博士后.txt"),allUsers); - System.out.println(allUsers.size()); - } + @Test + public void sendMsg() { + smsService.send("20182040", "这是一条由智慧工会系统发出的测试消息。"); + } @Test public void userPwd(){ @@ -223,53 +92,6 @@ public class JugTest { dao.update(users,"password|salt"); } - @Inject - private ManyAddOrRenewUtil manyAddOrRenewUtil; - - @Test - public void test11111(){ -// File file = new File("C:\\temp\\response.json"); -// -// JSONObject entries = JSONUtil.parseObj(FileUtil.readUtf8String(file)); -// -// JSONArray records = entries.getJSONArray("records"); -// List list = records.stream().map(item -> (JSONObject) item).toList(); -// -// // 工号集合 -// List loginNameList = list.stream().map(v -> v.getStr("rydm")).toList(); -//// Sql sql = Sqls.create("update sys_user set member = 1, welfareMember = 1 where loginname in (@loginNameList)") -//// .setParam("loginNameList", loginNameList); -//// dao.execute(sql); -// -// Sql sql = Sqls.create("select id from sys_user where loginname in (@loginNameList)").setParam("loginNameList", loginNameList); -// sql.setCallback(Sqls.callback.strList()); -// dao.execute(sql); -// List userIds = sql.getList(String.class); -// -// List roleList = userIds.stream().map(v -> { -// Sys_user_role userRole = new Sys_user_role(); -// userRole.setUserId(v); -// userRole.setRoleId("6d603b652abee584ba6274dc1fcee3bb"); -// return userRole; -// }).toList(); -// -// dao.clear(Sys_user_role.class, Cnd.where("userId", "in", userIds)); -// dao.insert(roleList); - - -// Sql sql = Sqls.create("select id from sys_user group by id"); -// sql.setCallback(Sqls.callback.strList()); -// dao.execute(sql); -// List userIds = sql.getList(String.class);1 -// List roleList = userIds.stream().map(v -> { -// Sys_user_role userRole = new Sys_user_role(); -// userRole.setUserId(v); -// userRole.setRoleId("65195ad8f52c4d7d8864624e583b801b"); -// return userRole; -// }).toList(); -// dao.insert(roleList); - } - @Inject private SysClubUserServiceImpl clubUserService; @Test diff --git a/src/test/java/com/budwk/app/Test.java b/src/test/java/com/budwk/app/Test.java index 01b42e9..4342ea8 100644 --- a/src/test/java/com/budwk/app/Test.java +++ b/src/test/java/com/budwk/app/Test.java @@ -1,47 +1,8 @@ package com.budwk.app; - -import cn.hutool.core.codec.Base64; -import cn.hutool.core.util.CharsetUtil; -import cn.hutool.crypto.digest.DigestUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import com.budwk.app.base.sms.impl.njupt.SmsNjuptServiceImpl; - -import java.nio.charset.StandardCharsets; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.List; - public class Test { public static void main(String[] args) { - String appId = "1926887238437818370"; - String secret = "32df31fcf4fc43f9a647ee1f47134f36"; - long ts = System.currentTimeMillis(); - - String sign = Base64.encode(DigestUtil.md5Hex(appId + secret + ts, CharsetUtil.CHARSET_UTF_8)); - - HttpRequest httpRequest = HttpUtil.createPost("https://sjzcpt.nnu.edu.cn/cdsp/data-api/v2/DS0005"); - httpRequest.header("Content-Type", "application/json"); - httpRequest.header("appId", appId); - httpRequest.header("timestamp", String.valueOf(ts)); - httpRequest.header("sign", sign); - httpRequest.body("{}"); - String body = httpRequest.execute().body(); - System.out.println(body); - -// JSONObject entries = JSONUtil.parseObj(body); -// JSONArray value = entries.getJSONArray("value"); -// -// for (Object o : value) { -// JSONObject jsonObject = (JSONObject) o; -// } - - }

pUClh5s>_Hk7k8 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%0D#X2S)MZdZuEn>50<_k=$2$=Xl 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𝔤~PnAc>F!v%xO$A?) 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