2020-09-30 14:25:39 +08:00

325 lines
12 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ page contentType="text/html; charset=GBK"%>
<%@page import="com.tenwa.reckon.util.UUIDUtil"%>
<%@ include file="/Frame/resources/include/include_begin_info.jspf"%>
<script type="text/javascript" src="<%=sWebRootPath%>/Frame/resources/js/base64.min.js"> </script>
<%
/*
Author: undefined 2017-08-17
Content: 示例详情页面
History Log:
*/
String id = CurPage.getParameter("id");
String type = CurPage.getParameter("type");
String sTempletNo = "MsgTempletInfo";//--模板号--
ASObjectModel doTemp = new ASObjectModel(sTempletNo);
doTemp.setHtmlEvent("MSG_SEND_TIME", "onblur", "dateObjClose");
ASObjectWindow dwTemp = new ASObjectWindow(CurPage, doTemp,request);
dwTemp.Style = "2";//freeform
//dwTemp.ReadOnly = "-2";//只读模式
dwTemp.genHTMLObjectWindow(id);
String sButtons[][] = {
{"true","All","Button","保存","保存所有修改","save()","","","","btn_icon_save"},
{"true","All","Button","返回","返回","AsDialog.ClosePage()","","","","btn_icon_back"}
};
sButtonPosition = "south";
%><%@ include file="/Frame/resources/include/ui/include_info.jspf"%>
<script type="text/javascript">
var oldValue = getItemValue(0,0,"msg_type");
var mousestatus;
changeMsgTimeType();
checkMsg();
function changeMsgTimeType(){
var value = getItemValue(0,0,"msg_time_type");
switch(value){
case "msg_time_type01":
setItemDisabled(0,0,"delay_day",true);
setItemDisabled(0,0,"msg_send_time",true);
setItemRequired(0,"delay_day",false);
setItemRequired(0,"msg_send_time",false);
$("#MSG_SEND_TIME").next().hide();
break;
case "msg_time_type02":
setItemDisabled(0,0,"delay_day",true);
setItemDisabled(0,0,"msg_send_time",false);
setItemRequired(0,"delay_day",false);
setItemRequired(0,"msg_send_time",true);
$("#MSG_SEND_TIME").next().show();
break;
case "msg_time_type03":
setItemDisabled(0,0,"delay_day",true);
setItemDisabled(0,0,"msg_send_time",false);
setItemRequired(0,"delay_day",false);
setItemRequired(0,"msg_send_time",true);
$("#MSG_SEND_TIME").next().show();
break;
case "msg_time_type04":
setItemDisabled(0,0,"delay_day",true);
setItemDisabled(0,0,"msg_send_time",false);
setItemRequired(0,"delay_day",false);
setItemRequired(0,"msg_send_time",true);
$("#MSG_SEND_TIME").next().show();
break;
case "msg_time_type05":
setItemDisabled(0,0,"delay_day",false);
setItemDisabled(0,0,"msg_send_time",false);
setItemRequired(0,"delay_day",true);
setItemRequired(0,"msg_send_time",true);
$("#MSG_SEND_TIME").next().show();
break;
}
}
function createCronExpression(){
var msgtype = getItemValue(0,0,"MSG_TYPE");
if(msgtype.indexOf("holiday") != -1 || msgtype.indexOf("birthday") != -1){
return;
}
var cronExpression = this.getItemValue(0,getRow(0),"CRON_EXPRESSION");
var sParam = "cronExpression="+cronExpression;
AsDialog.PopView("/Tenwa/Core/quartz/QuartzCronManager.jsp",sParam,"resizable=yes;dialogWidth=600px;dialogHeight=350px;center:yes;status:no;statusbar:no",function(e){
setItemValue(0,getRow(),"CRON_EXPRESSION",e);
},"Cron表达式");
}
function checkMsgType(){
var id = getItemValue(0,0,"id");
var msgType = getItemValue(0,0,"msg_type");
var sResult = RunJavaMethodTrans("com.tenwa.message.QuartzMessageManager","checkMsgType","id="+id+",msgType="+msgType+",type=<%=type%>");
if("FAILED" == sResult){
setItemValue(0,0,"msg_type",oldValue?oldValue:"");
alert("此短信类型已存在!");
return;
}
checkMsg();
}
function selectSendRelativeCol(){
var param = getItemValue(0,0,"MSG_SQL_PARAM");
if(param){
param = "checkValue=" + param.replace(/,/ig,"@");
}
AsDialog.OpenSelector("SelectSendRelativeCol",param,"dialogWidth=" + parseInt(window.screen.width * 0.4) + "px dialogHeight=" + parseInt(window.screen.height * 0.3) + "px",function(sReturn){
if(!sReturn||sReturn=="_CANCEL_"){
return;
}
sReturn = sReturn.split("~");
var val = "";
for(var i=0;i<sReturn.length;i++){
if(sReturn[i]){
val += "," + sReturn[i].split("@")[0];
}
}
val = val.substring(1);
setItemValue(0,0,"MSG_SQL_PARAM",val);
},"请选择发送关联字段");
}
function getTime(){
//AsDialog.OpenCalender("MSG_SEND_TIME", 'hh:mm:ss','',new Date());
var dateObj = document.getElementById("dateObj");
document.getElementById("MSG_SEND_TIME").focus();
if(dateObj){
$(dateObj).hide();
$(dateObj).show();
return;
}
var msgSendTime = getItemValue(0,0,"MSG_SEND_TIME");
var hh = 0;
var mm = 0;
var ss = 0;
if(msgSendTime){
hh = msgSendTime.split(":")[0];
mm = msgSendTime.split(":")[1];
ss = msgSendTime.split(":")[2];
}
var hour = "";
var minute = "";
var second = "";
for(var i=0;i<24;i++){
var n = (i+"").length == 1?"0"+i:i;
if(hh == n){
hour += "<option selected>"+n+"</option>";
}else{
hour += "<option>"+n+"</option>";
}
}
for(var i=0;i<60;i++){
var n = (i+"").length == 1?"0"+i:i;
if(mm == n){
minute += "<option selected>"+n+"</option>";
}else{
minute += "<option>"+n+"</option>";
}
if(ss == n){
second += "<option selected>"+n+"</option>";
}else{
second += "<option>"+n+"</option>";
}
}
var e = event || window.event;
var left = e.clientX - 190;
var right = e.clientY + 11;
var dateObject = $("<div id='dateObj' onmouseover='setMousein()' onmouseout='setMouseout()' style='border:1px solid gray;background-color:white;font-size:13px;width:200px;height:50px;position:absolute;left:"+left+";top:"+right+";'>&nbsp;&nbsp;<select id='hour' style='width:50px' onchange='setFocus()'>"+hour+"</select>时<select id='minute' style='width:50px' onchange='setFocus()'>"+minute+"</select>分<select id='second' style='width:50px' onchange='setFocus()'>"+second+"</select>秒</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='button' id='dateSelect' style='position:relative;top:7px;width:40px;height:20px;font-size:6px' onclick='selectDate()' value='确定'/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='button' id='dateClose' style='position:relative;top:7px;width:40px;height:20px;font-size:6px' onclick='dateObjClose(\"close\");' value='关闭'/></div>");
$(document.body).append(dateObject);
}
function checkData(){
var msgcontent = getItemValue(0,0,"MSG_CONTENT");
var msgsql = getItemValue(0,0,"MSG_SQL");
var msgsqlparam = getItemValue(0,0,"MSG_SQL_PARAM");
var msgtype = getItemValue(0,0,"MSG_TYPE");
var isrepeatbydate = getItemValue(0,0,"IS_REPEAT_BYDATE");
var params = [];
var num = msgcontent.length-msgcontent.replace(/}/g,"").length;
if(num > 0)
var index = 0;
for(var p=0;p<num;p++){
var start = msgcontent.indexOf("{", index);
var end = msgcontent.indexOf("}", index);
params.push(msgcontent.substring(start+1, end));
index = end+1;
}
var sqlparam = msgsqlparam.split(",");
if(sqlparam.length > 0){
for(var s=0;s<sqlparam.length;s++){
params.push(sqlparam[s]);
}
}
var ale = "SQL语句中缺少必须的返回字段";
var fl = false;
var sq;
msgsql = msgsql.toLowerCase();
if(msgsql.substring(0,"select".length) == "select" && msgsql.indexOf("from") != -1){
sq = msgsql.substring(msgsql.indexOf("select")+6,msgsql.indexOf("from"));
}else{
alert("SQL语法有问题");
return false;
}
sq = sq.split(",");
for(var p=0;p<sq.length;p++){
sq[p] = sq[p].indexOf(".") != -1?sq[p].split(".")[1]:sq[p];
if(sq[p].trim().indexOf("as") != -1){
sq[p] = sq[p].indexOf("as") != -1?sq[p].split("as")[1]:sq[p];
sq[p] = sq[p].replace(/\s/ig,"");
continue;
}
if(sq[p].trim().indexOf(" ") != -1){
sq[p] = sq[p].indexOf(" ") != -1?sq[p].split(" ")[1]:sq[p];
sq[p] = sq[p].replace(/\s/ig,"");
}
}
for(var i=0;i<params.length;i++){
if("subjecturl"!=params[i] && sq.indexOf(params[i].toLowerCase()) == -1){
ale += params[i]+",";
fl = true;
}
}
if(fl){
alert(ale.substring(0,ale.length-1)+"");
return false;
}
/* var reg = /^\d{1,2}:\d{1,2}:\d{1,2}$/;
if(!data.msgsendtime.match(reg)){
mini.alert("短信发送时间格式错误,请参照00:00:00或0:0:0");
return false;
} */
if(isrepeatbydate=='yes'){
if(sq.indexOf("checkdate") == -1 ){
alert("通过日期判断重复发送的短信SQL中必须返回checkdate!");
return false;
}
}
/* if(msgsqlparam.toLowerCase().indexOf("phonenumber")==-1){
alert("SQL关联关键字必须含有phonenumber!");
return false;
} */
if(msgsqlparam.toLowerCase().indexOf("customer_id")==-1){
alert("SQL关联关键字必须含有customer_id!");
return false;
}
if(msgtype.indexOf("holiday") != -1 || msgtype.indexOf("birthday") != -1){
return true;
}
if(msgsql.toLowerCase().indexOf("proj_manage")==-1 && msgsql.toLowerCase().indexOf("proj_manager")!=-1){
alert("项目短信:SQL必须返回proj_manage信息!");
return false;
}
if(msgsql.toLowerCase().indexOf("contract_id")==-1){
alert("项目短信:SQL必须返回contract_id信息!");
return false;
}
return true;
}
function checkMsg(){
var msgtype = getItemValue(0,0,"MSG_TYPE");
if(msgtype.indexOf("holiday") != -1 || msgtype.indexOf("birthday") != -1){
setItemDisabled(0,0,"CRON_EXPRESSION",true);
setItemRequired(0,"CRON_EXPRESSION",false);
}else{
setItemDisabled(0,0,"CRON_EXPRESSION",false);
setItemRequired(0,"CRON_EXPRESSION",true);
}
}
function save(){
if(!iV_all("myiframe0"))return;
if(!checkData()){
return;
}
setItemValue(0,0, "MSG_SQL", "ABCDEFG" + Base64.encode(getItemValue(0,0,"MSG_SQL")));
as_save(0,'createJobAndTrigger()');
}
function createJobAndTrigger(){
var id = getItemValue(0,0,"ID");
var msgType = getItemValue(0,0,"MSG_TYPE");
var jobName = getItemValue(0,0,"JOBNAME");
var triggerName = getItemValue(0,0,"TRIGGERNAME");
var msgtypename = getObjs(0,"MSG_TYPE")[0][(getObjs(0,"MSG_TYPE")[0].selectedIndex)].text;
var msgSql = "";//getItemValue(0,0,"MSG_SQL").replace(/,/ig,"△").replace(/=/ig,"&").replace(/[ ]/ig,"@@@");
var triggermode = getItemValue(0,0,"TRIGGER_MODE");
var msgcontent = getItemValue(0,0,"MSG_CONTENT");
var msgsqlparam = getItemValue(0,0,"MSG_SQL_PARAM").replace(/,/ig,"&");
var msgsendtype = getItemValue(0,0,"MSG_TIME_TYPE");
var msgsendtime = getItemValue(0,0,"MSG_SEND_TIME");
var delayday = getItemValue(0,0,"DELAY_DAY");
var durabledays = getItemValue(0,0,"DURABLEDAYS");
var isrepeatbydate = getItemValue(0,0,"IS_REPEAT_BYDATE");
var cronExpression = getItemValue(0,0,"CRON_EXPRESSION");
var triggerState = getItemValue(0,0,"MSG_STATUS");
var isoverdateexecute = getItemValue(0,0,"IS_OVERDATE_EXECUTE");
var params = "msgType="+msgType+",jobName="+jobName+",triggerName="+triggerName+",msgtypename="+msgtypename+",msgSql="+msgSql+",id="+id
+",triggermode="+triggermode+",msgcontent="+msgcontent+",msgsqlparam="+msgsqlparam+",msgsendtype="+msgsendtype+",isoverdateexecute="+isoverdateexecute
+",msgsendtime="+msgsendtime+",delayday="+delayday+",isrepeatbydate="+isrepeatbydate+",durabledays="+durabledays+",triggerState="+triggerState+",cronExpression="+cronExpression+",userID=<%=CurUser.getUserID()%>";
var sResult = RunJavaMethodTrans("com.tenwa.message.QuartzMessageManager","saveOrUpdateJobAndTrigger",params);
}
function setMousein(){
mousestatus = false;
}
function setMouseout(){
mousestatus = true;
}
function dateObjClose(obj){
if(mousestatus || obj == "close"){
$("#dateObj").hide();
}
}
function setFocus(){
document.getElementById("MSG_SEND_TIME").focus();
}
function selectDate(){
setItemValue(0,0,"MSG_SEND_TIME",$("#hour").val()+":"+$("#minute").val()+":"+$("#second").val());
$("#dateObj").hide();
}
</script>
<%@ include file="/Frame/resources/include/include_end.jspf"%>