📄 smsdocumentaction.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 + -