⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smsdocumentaction.java

📁 oa 源码
💻 JAVA
字号:
package cn.js.fan.module.cms.plugin.sms;import cn.js.fan.util.ErrMsgException;import javax.servlet.ServletContext;import org.apache.log4j.Logger;import cn.js.fan.module.cms.plugin.base.IPluginDocumentAction;import cn.js.fan.module.cms.CMSMultiFileUploadBean;import cn.js.fan.module.cms.Document;import cn.js.fan.util.StrUtil;import com.cloudwebsoft.framework.aop.ProxyFactory;import com.cloudwebsoft.framework.aop.base.Advisor;import com.cloudwebsoft.framework.aop.Pointcut.MethodNamePointcut;import com.redmoon.oa.message.IMessage;import com.redmoon.oa.message.MobileAfterAdvice;import com.redmoon.oa.message.MessageDb;import javax.servlet.http.HttpServletRequest;import org.htmlparser.Node;import org.htmlparser.nodes.TextNode;import org.htmlparser.filters.OrFilter;import org.htmlparser.util.ParserException;import org.htmlparser.NodeFilter;import org.htmlparser.tags.ImageTag;import org.htmlparser.Parser;import org.htmlparser.util.NodeList;import org.htmlparser.filters.NodeClassFilter;import org.htmlparser.tags.LinkTag;import cn.js.fan.util.NumberUtil;import com.redmoon.oa.sms.IMsgUtil;import com.redmoon.oa.sms.SMSFactory;import com.redmoon.oa.sms.SMSSendRecordDb;public class SMSDocumentAction implements IPluginDocumentAction {    Logger logger = Logger.getLogger(this.getClass().getName());    public SMSDocumentAction() {    }    public static String getTextFromHTML(String content) {        String str = "";        try {            Parser myParser;            NodeList nodeList = null;            myParser = Parser.createParser(content, "utf-8");            NodeFilter textFilter = new NodeClassFilter(TextNode.class);            NodeFilter linkFilter = new NodeClassFilter(LinkTag.class);            NodeFilter imgFilter = new NodeClassFilter(ImageTag.class);                                    OrFilter lastFilter = new OrFilter();            lastFilter.setPredicates(new NodeFilter[] {textFilter, linkFilter,                                     imgFilter});            nodeList = myParser.parse(lastFilter);            Node[] nodes = nodeList.toNodeArray();            for (int i = 0; i < nodes.length; i++) {                Node anode = (Node) nodes[i];                String line = "";                if (anode instanceof TextNode) {                    TextNode textnode = (TextNode) anode;                                        line = textnode.getText();                }                str += line;            }        }        catch (ParserException e) {            Logger.getLogger(SMSDocumentAction.class).error("getAbstract:" + e.getMessage());        }        return str;    }    public boolean create(ServletContext application, HttpServletRequest request,                          CMSMultiFileUploadBean mfu, Document doc) throws            ErrMsgException {        String receiver = StrUtil.getNullStr(mfu.getFieldValue("receiver"));        boolean isToMobile = StrUtil.getNullStr(mfu.getFieldValue("isToMobile")).equals("true");        IMessage imsg = null;        String[] users = StrUtil.split(receiver, ",");        if (users==null)            return true;                if (doc.getExamine()==doc.EXAMINE_PASS) {            if (isToMobile) {                ProxyFactory proxyFactory = new ProxyFactory(                        "com.redmoon.oa.message.MessageDb");                Advisor adv = new Advisor();                MobileAfterAdvice mba = new MobileAfterAdvice();                adv.setAdvice(mba);                adv.setPointcut(new MethodNamePointcut("sendSysMsg", false));                proxyFactory.addAdvisor(adv);                imsg = (IMessage) proxyFactory.getProxy();                int len = users.length;                String msgContent = getTextFromHTML(doc.getContent(1));                                synchronized (SMSSendRecordDb.tailAddrObj) {                    IMsgUtil imu = SMSFactory.getMsgUtil();                    imu.increaseTailAddr();                                        String orgAddr = imu.getOrgAddr();                    doc.setOrgAddr(orgAddr);                    doc.updateOrgAddr();                    for (int i = 0; i < len; i++) {                        imsg.sendSysMsg(users[i], doc.getTitle(), msgContent);                    }                }            }            else {                                MessageDb md = new MessageDb();                int len = users.length;                for (int i = 0; i < len; i++) {                    md.sendSysMsg(users[i], doc.getTitle(), doc.getContent(1));                }            }        }        return true;    }    public boolean update(ServletContext application,HttpServletRequest request,                   CMSMultiFileUploadBean mfu, Document doc) throws            ErrMsgException {        String receiver = StrUtil.getNullStr(mfu.getFieldValue("receiver"));        boolean isToMobile = StrUtil.getNullStr(mfu.getFieldValue("isToMobile")).equals("true");        IMessage imsg = null;        String[] users = StrUtil.split(receiver, ",");        if (users==null)            return true;                if (doc.getExamine()==doc.EXAMINE_PASS) {            if (isToMobile) {                ProxyFactory proxyFactory = new ProxyFactory(                        "com.redmoon.oa.message.MessageDb");                Advisor adv = new Advisor();                MobileAfterAdvice mba = new MobileAfterAdvice();                adv.setAdvice(mba);                adv.setPointcut(new MethodNamePointcut("sendSysMsg", false));                proxyFactory.addAdvisor(adv);                imsg = (IMessage) proxyFactory.getProxy();                int len = users.length;                String msgContent = getTextFromHTML(doc.getContent(1));                                synchronized (SMSSendRecordDb.tailAddrObj) {                    IMsgUtil imu = SMSFactory.getMsgUtil();                    imu.increaseTailAddr();                                        String orgAddr = imu.getOrgAddr();                    doc.setOrgAddr(orgAddr);                    doc.updateOrgAddr();                    for (int i = 0; i < len; i++) {                        imsg.sendSysMsg(users[i], doc.getTitle(), msgContent);                    }                }            } else {                                MessageDb md = new MessageDb();                int len = users.length;                for (int i = 0; i < len; i++) {                    md.sendSysMsg(users[i], doc.getTitle(), doc.getContent(1));                }            }        }        return true;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -