<?xml version="1.0" encoding="UTF-8"?>
<a:service xmlns:p="uncertain.proc"
    xmlns:a="http://www.leaf-framework.org/application"
    xmlns:s="leaf.plugin.script"
    trace="true">

    <a:init-procedure>
    <s:server-script><![CDATA[
        importPackage(Packages.java.util)
        importPackage(Packages.com.hand.hls.hlcm.sms.service)
        importPackage(Packages.com.hand.hls.hlcm.sms.formbean)
        importPackage(Packages.com.hand.hap.system.dto)


        //step1 配置信息
        var sms_server_bm = $bm('sys.SYS403.sys_sms_server');
        var sms_server_result = sms_server_bm.queryAsMap({});
        var sms_server_records = sms_server_result.getChildren();
        var account = sms_server_records[0].account_id; //用户名
        var password = sms_server_records[0].password; // 密码(必填)
        var sign = sms_server_records[0].sign; // 短信签名(必填)
        var subcode = sms_server_records[0].subcode; // 子号码(必填)
        var submitUrl = sms_server_records[0].server_url; //提交网址


          //step2 发送短信
    function sendsms() {
                // 查询待发送短信表
        var sms_id = $ctx.parameter.sms_id;
        var sms_list_bm = $bm('sys.SYS404.sys_sms_list_for_send');

        if (sms_id) {
            var sms_list_result = sms_list_bm.queryAsMap({
                                        "sms_id": sms_id,
                                        "status":'NEW'
                                    });
            var sms_list_records = sms_list_result.getChildren();
        } else {
            var sms_list_result = sms_list_bm.queryAsMap({ "status":'NEW',"error_count_check":'Y'});
            var sms_list_records = sms_list_result.getChildren();
        }

        var service = $spring(ISysSmsService);

        for (var i = 0;i < sms_list_records.length;i++) {
            var phones = sms_list_records[i].phone_number;
            var content = sms_list_records[i].text;
            var sms_id = sms_list_records[i].sms_id;
            var send_date = sms_list_records[i].send_date||null;

            var msgid;
            var result;
            var desc;
            var message;

            try {

                var formbean = new SysSms;

                formbean.setPhone(phones);
                formbean.setSendTime(send_date);
                formbean.setContent(content);
                formbean.setAccount(account);
                formbean.setPassword(password);
                formbean.setSign(sign);
                formbean.setSubcode(subcode);
                formbean.setSubmitUrl(submitUrl);


                var responseData = new ResponseData;
                responseData =  service.sendSmsMessage(formbean);


                message =responseData.getMessage();
                var message_json = JSON.parse(message);
                msgid =  message_json.msgid;
                result = message_json.result;
                desc = message_json.desc;
                //println(message);
            } catch (e) {
                //println("抛出异常:" + e);
                desc ="抛出异常:" + e;
                message =  "抛出异常:" + e;
            }

            //发送后请求更新
            $bm('sys.SYS404.ds_sys_sms_after_send').update({
                                                    sms_id: sms_id,
                                                    msgid: msgid,
                                                    result: result,
                                                    desc: desc,
                                                    message:message,
            });

        }
    }
    sendsms();



    ]]></s:server-script>
    </a:init-procedure>
    <a:service-output output="/parameter"/>
</a:service>