通联卡扣签约验证
This commit is contained in:
parent
5dbb6a27de
commit
d8dff56edd
211
WebContent/Sign_index.jsp
Normal file
211
WebContent/Sign_index.jsp
Normal file
@ -0,0 +1,211 @@
|
||||
<%@ page language="java" contentType="text/html; charset=GBK"
|
||||
pageEncoding="GBK"%>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
|
||||
<title>通联卡扣签约</title>
|
||||
<style>
|
||||
.logon_footer{
|
||||
float:left;
|
||||
text-align:center;
|
||||
color:#818181;
|
||||
font-size:12px;
|
||||
line-height:35px;
|
||||
position:fixed;
|
||||
bottom:0;
|
||||
width:100%; height:15%;}
|
||||
</style>
|
||||
<link href="../css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../css/gloab.css" rel="stylesheet">
|
||||
<link href="../css/index.css" rel="stylesheet">
|
||||
<script src="../js/jquery/jquery.min.js" type="text/javascript"></script>
|
||||
<script src="../js/jquery/register.js" charset="GBK" type="text/javascript"></script>
|
||||
<link rel="shortcut icon" href="favicon.ico"/>
|
||||
<%--
|
||||
<script src="js/register.js"></script>--%>
|
||||
</head>
|
||||
<body class="bgf4">
|
||||
<div class="login-box f-mt10 f-pb50">
|
||||
<div class="main bgf">
|
||||
<div class="reg-box-pan display-inline">
|
||||
<div class="step">
|
||||
<ul>
|
||||
<li class="col-xs-4 on">
|
||||
<span class="num"><em class="f-r5"></em><i>1</i></span>
|
||||
<span class="line_bg lbg-r"></span>
|
||||
<p class="lbg-txt">验证身份信息</p>
|
||||
</li>
|
||||
<li class="col-xs-4">
|
||||
<span class="num"><em class="f-r5"></em><i>2</i></span>
|
||||
<span class="line_bg lbg-l"></span>
|
||||
<span class="line_bg lbg-r"></span>
|
||||
<p class="lbg-txt">验证短信信息</p>
|
||||
</li>
|
||||
<li class="col-xs-4">
|
||||
<span class="num"><em class="f-r5"></em><i>3</i></span>
|
||||
<span class="line_bg lbg-l"></span>
|
||||
<p class="lbg-txt">验证成功</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="reg-box" id="verifyCheck" style="margin-top:20px;">
|
||||
<div class="part1">
|
||||
<div class="item col-xs-12">
|
||||
<span class="intelligent-label f-fl"><b class="ftx04">*</b>合同号:</span>
|
||||
<div class="f-fl item-ifo">
|
||||
<input type="text" maxlength="50" class="txt03 f-r3" tabindex="1" id="contractNo" value="${contractNumberShort}" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item col-xs-12">
|
||||
<span class="intelligent-label f-fl"><b class="ftx04">*</b>客户姓名:</span>
|
||||
<div class="f-fl item-ifo">
|
||||
<input type="text" maxlength="20" class="txt03 f-r3" tabindex="1" name="accountName" id="accountName" value="${userNameShort}" readonly="readonly" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item col-xs-12">
|
||||
<span class="intelligent-label f-fl"><b class="ftx04">*</b>卡号:</span>
|
||||
<div class="f-fl item-ifo">
|
||||
<input type="text" maxlength="20" class="txt03 f-r3" tabindex="1" id="accountNo" value="${accNumberShort}" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="item col-xs-12">
|
||||
<span class="intelligent-label f-fl"><b class="ftx04">*</b>手机号:</span>
|
||||
<div class="f-fl item-ifo">
|
||||
<input type="text" name="tel" class="txt03 f-r3" tabindex="2" id="tel" value="${phoneNumberShort}" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item col-xs-12">
|
||||
<span class="intelligent-label f-fl"><b class="ftx04">*</b>证件号码:</span>
|
||||
<div class="f-fl item-ifo">
|
||||
<input type="text" name="idCard" class="txt03 f-r3 required" onkeyup="validateIdCard();" data-valid="isNonEmpty||isSame:certIdShort" data-error="身份证号不能为空||身份证号不一致" tabindex="2" id="idCard" />
|
||||
<span class="ie8 icon-close close hide"></span>
|
||||
<label class="icon-sucessfill blank hide"></label>
|
||||
<label class="focus" id="validateCard">请填写身份证后六位</label>
|
||||
<label class="focus valid"></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="certIdShort" value="${certIdShort}" id="certIdShort">
|
||||
<%-- <input type="hidden" name="certId" value="${certId}" id="certId">
|
||||
<input type="hidden" name="contractNumber" value="${contractNumber}" id="contractNumber">
|
||||
<input type="hidden" name="userName" value="${userName}" id="userName">
|
||||
<input type="hidden" name="accNumber" value="${accNumber}" id="accNumber">
|
||||
<input type="hidden" name="phoneNumber" value="${phoneNumber}" id="phoneNumber"> --%>
|
||||
<input type="hidden" name="contractId" value="${contractId}" id="contractId">
|
||||
|
||||
<div class="item col-xs-12">
|
||||
<span class="intelligent-label f-fl"> </span>
|
||||
<div class="f-fl item-ifo">
|
||||
<a href="javascript:;" class="btn btn-blue f-r3" id="btn_part1">下一步</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="part2" style="display:none">
|
||||
<div class="alert alert-info" style="width:700px">请点击发送验证码,输入短信中的验证码</div>
|
||||
<div class="item col-xs-12">
|
||||
<span class="intelligent-label f-fl"><b class="ftx04">*</b>验证码:</span>
|
||||
<div class="f-fl item-ifo">
|
||||
<input type="text" maxlength="6" id="verifyNo" name="verifyNo" class="txt03 f-r3 f-fl required" tabindex="4" style="width:167px" data-valid="isNonEmpty||isInt" data-error="验证码不能为空||请输入6位数字验证码" />
|
||||
<span class="btn btn-gray f-r3 f-ml5 f-size13" id="time_box" disabled style="width:97px;display:none;">发送验证码</span>
|
||||
<span class="btn btn-gray f-r3 f-ml5 f-size13" id="verifyYz" style="width:97px;">发送验证码</span>
|
||||
<span class="ie8 icon-close close hide" style="right:130px"></span>
|
||||
<label class="icon-sucessfill blank hide"></label>
|
||||
<label class="focus"><span>请查收手机短信,并填写短信中的验证码(此验证码10分钟内有效)</span></label>
|
||||
<label class="focus valid"></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item col-xs-12">
|
||||
<span class="intelligent-label f-fl"> </span>
|
||||
<div class="f-fl item-ifo">
|
||||
<a href="javascript:;" class="btn btn-blue f-r3" id="btn_part2">签约</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="part4 text-center" style="display:none">
|
||||
<h3>恭喜您,您已验证成功!</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="logon_footer">
|
||||
<div>安鹏租赁 版权所有</div>
|
||||
</div>
|
||||
<%--
|
||||
<div class="m-sPopBg" style="z-index:998;"></div>
|
||||
<div class="m-sPopCon regcon">
|
||||
<div class="m-sPopTitle"><strong>服务协议条款</strong><b id="sPopClose" class="m-sPopClose" onClick="closeClause()">×</b></div>
|
||||
<div class="apply_up_content">
|
||||
<pre class="f-r0">
|
||||
<strong>同意以下服务条款,提交注册信息</strong>
|
||||
</pre>
|
||||
</div>
|
||||
<center><a class="btn btn-blue btn-lg f-size12 b-b0 b-l0 b-t0 b-r0 f-pl50 f-pr50 f-r3" href="javascript:closeClause();">已阅读并同意此条款</a></center>
|
||||
|
||||
</div>--%>
|
||||
<script>
|
||||
$(function(){
|
||||
//第一页的确定按钮
|
||||
$("#btn_part1").click(function(){
|
||||
if(!verifyCheck._click()) return;
|
||||
$(".part1").hide();
|
||||
$(".part2").show();
|
||||
$(".step li").eq(1).addClass("on");
|
||||
});
|
||||
//第二页的确定按钮
|
||||
$("#btn_part2").click(function(){
|
||||
if(!verifyCheck._click()) return;
|
||||
var contractId = $.trim($("#contractId").val());
|
||||
//var contractNumber = encodeURI($.trim($("#contractNumber").val()));
|
||||
var verifyNo = $.trim($("#verifyNo").val());
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "sign",
|
||||
async : true,
|
||||
dataType: "json",
|
||||
data : {"method":"allinPaySigning","contractId":contractId,"verCode":verifyNo},
|
||||
success : function(data) {
|
||||
if("success" == data.message){
|
||||
$(".part2").hide();
|
||||
$(".part4").show();
|
||||
$(".step li").eq(2).addClass("on");
|
||||
return true;
|
||||
}else{
|
||||
alert(data.msg);
|
||||
return false;
|
||||
}
|
||||
},
|
||||
error : function(data) {
|
||||
//ZENG.msgbox.show("连接服务器失败", 5,6000);
|
||||
alert("连接服务器失败");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function validateIdCard(){
|
||||
var realIdCard = $("#certIdShort").val().trim();
|
||||
var inputIdCard = $("#idCard").val().trim();
|
||||
if(realIdCard == inputIdCard) {
|
||||
$("#validateCard").html("<font color=\"#090\">填写正确!</font>");
|
||||
}
|
||||
}
|
||||
//防止刷新导致可以重新发验证码
|
||||
$(function(){
|
||||
sendVerify();
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@ -4362,6 +4362,25 @@
|
||||
<property name="createKey" value="true" />
|
||||
</managerProperties>
|
||||
</manager>
|
||||
</class>
|
||||
|
||||
<class name="LC_CARD_TLSIGN" label="通联签约信息表" keyAttributes="ID">
|
||||
<attributes>
|
||||
<attribute name="ID" label="ID" type="STRING" length="100" />
|
||||
<attribute name="CONTRACT_NUMBER" label="合同号" type="STRING" length="100" />
|
||||
<attribute name="REQUEST_CONTENT" label="请求内容" type="STRING" length="2147483647" />
|
||||
<attribute name="RESPONSE_CONTENT" label="响应内容" type="STRING" length="2147483647" />
|
||||
<attribute name="SIGN_STATUS" label="签约状态" type="STRING" length="100" />
|
||||
<attribute name="SIGN_TIME" label="签约时间" type="STRING" length="100" />
|
||||
<attribute name="CUSTOMER_LAUNCH_TIME" label="客户发起时间" type="STRING" length="100" />
|
||||
<attribute name="AGRMNO" label="协议号" type="STRING" length="100" />
|
||||
</attributes>
|
||||
<manager>
|
||||
<managerProperties>
|
||||
<property name="table" value="LC_CARD_TLSIGN" />
|
||||
<property name="createKey" value="true" />
|
||||
</managerProperties>
|
||||
</manager>
|
||||
</class>
|
||||
</package>
|
||||
</jbo>
|
||||
|
||||
BIN
WebContent/WEB-INF/lib/allinpay-1.0.0.jar
Normal file
BIN
WebContent/WEB-INF/lib/allinpay-1.0.0.jar
Normal file
Binary file not shown.
BIN
WebContent/WEB-INF/lib/xmlpull-1.1.3.1.jar
Normal file
BIN
WebContent/WEB-INF/lib/xmlpull-1.1.3.1.jar
Normal file
Binary file not shown.
BIN
WebContent/WEB-INF/lib/xpp3_min-1.1.4c.jar
Normal file
BIN
WebContent/WEB-INF/lib/xpp3_min-1.1.4c.jar
Normal file
Binary file not shown.
@ -41,7 +41,7 @@
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>ExcludedURLs</param-name>
|
||||
<param-value>^/.*Logon.jsp,^/.*SaveGraphAjax.jsp,^/.*appDownload.jsp</param-value>
|
||||
<param-value>^/.*Logon.jsp,^/.*SaveGraphAjax.jsp,^/.*appDownload.jsp,^/.*Sign_index.jsp</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
|
||||
6
WebContent/css/bootstrap.min.css
vendored
Normal file
6
WebContent/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
154
WebContent/css/gloab.css
Normal file
154
WebContent/css/gloab.css
Normal file
@ -0,0 +1,154 @@
|
||||
|
||||
|
||||
[class^="p2p-"], [class*="p2p-"]{font-family: 'iconfont','microsoft yahei';speak: none;font-style: normal;font-variant: normal;text-transform: none;line-height: 1;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale; position:relative;}
|
||||
.index .intro [class^="icon-"],.index .intro [class*="icon-"],.icon-phone,.icon-weixin,.icon-weibo,.icon-data,.icon-fabu{font-family: 'iconfont','microsoft yahei';}
|
||||
.icon-down:before{content: "\e60c"; margin-left:5px;}
|
||||
.icon-phone:before{content: "\e613";}
|
||||
.icon-weixin:before{content: "\e614";}
|
||||
.icon-weibo:before{content: "\e612";}
|
||||
.p2p-notice:before{content: "\e605";}
|
||||
.icon-data:before{content: "\e604";}
|
||||
.icon-safe:before { content: "\e601"; }
|
||||
.icon-profit:before { content: "\e602"; }
|
||||
.icon-access:before { content: "\e603"; }
|
||||
.icon-safe:after{content: "\e600";}
|
||||
.icon-fabu:before { content: "\e617"; }
|
||||
a:focus {outline: none;blr:expression(this.onFocus=this.blur());}
|
||||
/*common set*/
|
||||
body{ font-family:"microsoft yahei"; min-width:1080px;}
|
||||
a{ color:#666;}
|
||||
a:hover{text-decoration:none;color:#0080cb;}
|
||||
a:hover,a:visited,a:active,a:link{text-decoration:none;}
|
||||
ul,li{ list-style:none; margin:0; padding:0;}
|
||||
p{ margin:0;}
|
||||
h1,h2,h3,h4,h5,h6{margin:0;}
|
||||
.ho{ height:auto; overflow:hidden;}
|
||||
em,i{font-style:normal;}
|
||||
.cursor-pointer{ cursor:pointer;}
|
||||
/*color*/
|
||||
.c-white{color:#fff;}.c-whiteq{color:#969696;}
|
||||
.c-666{color:#666;}.c-333{color:#333;}.c-999{color:#999;}.c-ccc{color:#ccc;}.c-777{ color:#777;}
|
||||
.c-orange{color:#ff7800;}
|
||||
.c-blue{color:#1997d7;}.c-blueq{color:#3aabe4;}.c-blued{color:#3c6173;}.c-blueh{color:#2c8abe;}.c-blues{ color:#6ba5c2;}
|
||||
.c-pink{color:#ff6160;}.c-green{color:#77b716;}
|
||||
.c-yellow{ color:#ffb324;}
|
||||
/*background*/
|
||||
.bgf4{background-color:#f4f4f7;}
|
||||
.bgf{background-color:#fff;}
|
||||
/*btn*/
|
||||
.btn-green{ background-color:#1ed17f;border-color:#1ed17f;color:#fff;}
|
||||
.btn-green:hover,.btn-green:active:hover,.btn-green:focus{background-color:#19c475;border-color:#19c475;color:#fff;}
|
||||
.btn-blue{ background-color:#1997d7;border-color:#1997d7;color:#fff;}
|
||||
.btn-blue:hover,.btn-blue:active:hover,.btn-blue:focus{background-color:#188dc8;border-color:#127db3;color:#fff;}
|
||||
.btn-pink{ background-color:#ff6160;border-color:#ff6160;color:#fff;}
|
||||
.btn-pink:hover,.btn-pink:active:hover,.btn-pink:focus{background-color:#f34948;border-color:#f34948;color:#fff;}
|
||||
.btn-gray{ background-color:#f3f5f7;border-color:#e3e3e3;color:#5f5f5f;}
|
||||
.btn-gray:hover,.btn-gray:active:hover,.btn-gray:focus{background-color:#e6e7e7;border-color:#e3e3e3;color:#999;}
|
||||
.btn.disabled,.btn.disable,
|
||||
.btn[disabled],
|
||||
fieldset[disabled] .btn,
|
||||
.btn.disabled:hover,.btn.disable:hover,
|
||||
.btn[disabled]:hover,
|
||||
fieldset[disabled] .btn:hover,
|
||||
.btn.disabled:focus,.btn.disable:focus,
|
||||
.btn[disabled]:focus,
|
||||
fieldset[disabled] .btn:focus,
|
||||
.btn.disabled.focus,.btn.disable.focus,
|
||||
.btn[disabled].focus,
|
||||
fieldset[disabled] .btn.focus,
|
||||
.btn.disabled:active,.btn.disable:active,
|
||||
.btn[disabled]:active,
|
||||
fieldset[disabled] .btn:active,
|
||||
.btn.disabled.active,.btn.disable.active,
|
||||
.btn[disabled].active,
|
||||
fieldset[disabled] .btn.active{background-color:#e5e5e5;border-color: #e5e5e5; color:#a9a9a9;}
|
||||
/*font-size*/
|
||||
.f-size12{ font-size:12px;}.f-size13{ font-size:13px;}.f-size14{ font-size:14px;}.f-size16{ font-size:16px;}.f-size18{ font-size:18px;}.f-size20{ font-size:20px;}.f-size24{ font-size:24px;}.f-size28{ font-size:28px;}.f-size32{ font-size:32px;}.f-size36{ font-size:36px;}.f-size40{ font-size:40px;}.f-size48{ font-size:48px;}.f-size60{ font-size:60px;}.f-size72{ font-size:72px;}.f-size30{ font-size:30px;}
|
||||
.f-wpre100{ width:100%;}.f-wpre50{width:50%;}.f-wpre40{width:40%;}
|
||||
.f-weight-bold{font-weight:700}.f-weight-normal{font-weight:400}
|
||||
/*margin and padding*/
|
||||
.f-m0{margin:0;}.f-m5{margin:5px;}.f-m10{margin:10px;}.f-m15{margin:15px;}.f-m20{margin:20px;}
|
||||
.f-mt0{margin-top:0;}.f-mt3{margin-top:3px;}.f-mt5{margin-top:5px;}.f-mt7{margin-top:7px;}.f-mt10{margin-top:10px;}.f-mt15{margin-top:15px;}.f-mt20{margin-top:20px;}.f-mt25{margin-top:25px;}.f-mt30{margin-top:30px;}.f-mt40{margin-top:40px;}.f-mt50{margin-top:50px;}
|
||||
.f-mr0{margin-right:0;}.f-mr3{margin-right:3px;}.f-mr5{margin-right:5px;}.f-mr7{margin-right:7px;}.f-mr10{margin-right:10px;}.f-mr15{margin-right:15px;}.f-mr20{margin-right:20px;}.f-mr25{margin-right:25px;}.f-mr30{margin-right:30px;}.f-mr40{margin-right:40px;}.f-mr50{margin-right:50px;}
|
||||
.f-mb0{margin-bottom:0;}.f-mb3{margin-bottom:3px;}.f-mb5{margin-bottom:5px;}.f-mb7{margin-bottom:7px;}.f-mb10{margin-bottom:10px;}.f-mb15{margin-bottom:15px;}.f-mb20{margin-bottom:20px;}.f-mb25{margin-bottom:25px;}.f-mb30{margin-bottom:30px;}.f-mb40{margin-bottom:40px;}.f-mb50{margin-bottom:50px;}
|
||||
.f-ml0{margin-left:0;}.f-ml3{margin-left:3px;}.f-ml5{margin-left:5px;}.f-ml7{margin-left:7px;}.f-ml10{margin-left:10px;}.f-ml15{margin-left:15px;}.f-ml20{margin-left:20px;}.f-ml25{margin-left:25px;}.f-ml30{margin-left:30px;}.f-ml40{margin-left:40px;}.f-ml50{margin-left:50px;}
|
||||
.f-p0{padding:0;}.f-p5{padding:5px;}.f-p10{padding:10px;}.f-p15{padding:15px;}.f-p20{padding:20px;}.f-p30{padding:30px;}
|
||||
.f-pt0{padding-top:0;}.f-pt3{padding-top:3px;}.f-pt5{padding-top:5px;}.f-pt7{padding-top:7px;}.f-pt10{padding-top:10px;}.f-pt15{padding-top:15px;}.f-pt20{padding-top:20px;}.f-pt25{padding-top:25px;}.f-pt30{padding-top:30px;}.f-pt40{padding-top:40px;}.f-pt50{padding-top:50px;}
|
||||
.f-pr0{padding-right:0;}.f-pr3{padding-right:3px;}.f-pr5{padding-right:5px;}.f-pr7{padding-right:7px;}.f-pr10{padding-right:10px;}.f-pr15{padding-right:15px;}.f-pr20{padding-right:20px;}.f-pr25{padding-right:25px;}.f-pr30{padding-right:30px;}.f-pr40{padding-right:40px;}.f-pr50{padding-right:50px;}
|
||||
.f-pb0{padding-bottom:0;}.f-pb3{padding-bottom:3px;}.f-pb5{padding-bottom:5px;}.f-pb7{padding-bottom:7px;}.f-pb10{padding-bottom:10px;}.f-pb15{padding-bottom:15px;}.f-pb20{padding-bottom:20px;}.f-pb25{padding-bottom:25px;}.f-pb30{padding-bottom:30px;}.f-pb40{padding-bottom:40px;}.f-pb50{padding-bottom:50px;}
|
||||
.f-pl0{padding-left:0;}.f-pl3{padding-left:3px;}.f-pl5{padding-left:5px;}.f-pl7{padding-left:7px;}.f-pl10{padding-left:10px;}.f-pl15{padding-left:15px;}.f-pl20{padding-left:20px;}.f-pl25{padding-left:25px;}.f-pl30{padding-left:30px;}.f-pl40{padding-left:40px;}.f-pl50{padding-left:50px;}
|
||||
/*border*/
|
||||
.b-se5{border:1px solid #e5e5e5;}.b-bse5{border-bottom:1px solid #e5e5e5;}.b-tse5{border-top:1px solid #e5e5e5;}.b-lse5{border-left:1px solid #e5e5e5;}.b-rse5{border-right:1px solid #e5e5e5;}.b-bde5{border-bottom:1px dashed #e5e5e5;}.b-tde5{border-top:1px dashed #e5e5e5;}.b-lde5{border-left:1px dashed #e5e5e5;}.b-rde5{border-right:1px dashed #e5e5e5; }
|
||||
.b-tsf{border-top:1px solid #fff;}
|
||||
.b-t0{border-top:0;}.b-l0{border-left:0;}.b-b0{border-bottom:0;}.b-r0{border-right:0;}
|
||||
/*radius*/
|
||||
.f-r0{ border-radius:0px;-moz-border-radius:0px;-webkit-border-radius:0px;}.f-r3{ border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;}.f-r5{ border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;}.f-r10{ border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;}.f-r20{ border-radius:20px;-moz-border-radius:20px;-webkit-border-radius:20px;}.f-r100{ border-radius:100%;-moz-border-radius:100%;-webkit-border-radius:100%;}
|
||||
.position-absolute{ position:absolute;}.position-relative{ position:relative;}.position-fixed{ position:fixed;}
|
||||
.display-inline{ display:inline-block;}.display-block{ display:block;}.display-none{ display:none;}
|
||||
/*height*/
|
||||
.f-h39{height:39px; line-height:39px;}.f-h48{height:48px; line-height:48px;}
|
||||
.f-italic{ font-style:italic;}.f-normal{ font-style:normal;}
|
||||
/*text*/
|
||||
.txt{ border:1px solid #e3e3e3; height:34px;text-indent:5px;}
|
||||
.txt01,.inputElem{ border:1px solid #e3e3e3; height:28px;line-height:20px; padding:3px 0;text-align:left;text-indent:5px;}
|
||||
.txt-sm{width:80px}.txt-nm{width:150px;}.txt-lg{width:200px;}
|
||||
/*step*/
|
||||
.step{ margin:0 auto; display:block; height:60px;}
|
||||
.step li{ position:relative; text-align:center;}
|
||||
.step .line_bg{ height:3px; background:#d9eaf3; display:inline-block; width:50%; top:13px; position:absolute; z-index:1;}
|
||||
.step .lbg-l{left:0;}
|
||||
.step .lbg-r{right:0;}
|
||||
.step .num{ position:relative; z-index:2; background:#fff;width:54px; height:30px;text-align:center; display:inline-block;}
|
||||
.step .num em,.num i{width:24px; height:24px; display:inline-block; left:15px; top:2px;position:absolute;}
|
||||
.step .num em{ background:#d9eaf3;transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);z-index:2;}
|
||||
.step .num i{ z-index:3; color:#fff; font-style:normal; font-weight:700; top:4px;}
|
||||
.step .lbg-txt{ position:relative; color:#b6c6ce; font-size:13px;}
|
||||
.step .on .lbg-txt{color:#1a97d7;}
|
||||
.step .on .line_bg,.step .on .num em{ background:#1a97d7}
|
||||
/*out*/
|
||||
.m-sPopBg{ position:fixed; background:rgba(0,0,0,0.2); width:100%;height:100%;display:block;z-index:998;top:0;left:0; display:none;}
|
||||
.m-sPopCon,.m-sImg{position:fixed;z-index:999;-moz-border-radius:2px;-webkit-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;display:none;}
|
||||
.m-sImg{ width:100%; height:100%;top:0;left:0; text-align:center;}
|
||||
.m-sPopCon{min-width:420px;min-height:200px;max-width:800px;background:#fff;top:50%;left:50%;}
|
||||
.m-sPopTitle{ height:60px; line-height:60px; text-align:center; color:#fff; font-size:18px; background:#1997d7;}
|
||||
.m-sPopClose{ position:absolute;top:18px; right:35px; font-size:24px; color:#fff; cursor:pointer;}
|
||||
.m-sPopClose:hover{ opacity:.5; filter:alpha(opacity=50);}
|
||||
.m-sImg .m-sPopClose{background: #000;display: inline-block;width: 60px;height: 60px;text-align: right;line-height: 60px;right: 0;top: 0;border-radius: 100%;margin-top: -15px;margin-right: -15px; font-size:36px; z-index:1000;}
|
||||
.m-sImg .m-sPopClose:after{ left:6px; top:5px;}
|
||||
.m-sPopText{ padding:30px 0;}
|
||||
.m-sPopCon .tips{ font-size:14px; text-align:center; padding:30px;}
|
||||
.m-sPopCon .m-btns{ margin-top:30px; text-align:center;}
|
||||
.m-sPopCon .m-btns .btn{ width:100px; height:35px; line-height:35px; padding:0;}
|
||||
.m-sPopCon .m-btns .btn-gray{ background:#c9c9c9;border-color:#c9c9c9; color:#fff;}
|
||||
.m-sPopCon .m-btns .btn-gray:hover{ background:#c0c0c0; border-color:#c0c0c0;}
|
||||
/**/
|
||||
.success{color:#7abd54; display:inline-block;}
|
||||
.success strong,.success p{ font-size:12px; line-height:16px;}
|
||||
.success p{ color:#666;}
|
||||
.success p a{ color:#2f82eb;}
|
||||
.success .success-info{ margin-left:25px;}
|
||||
.success .icon-sucessfill{ width:16px; height:16px; font-size:16px;}
|
||||
.success .icon-sucessfill:after{content: "\e605"; color:#7abd54}
|
||||
.success .icon-sucessfill:before{content: "\e609"; color:#fff; position:absolute;z-index:2;left:0; top:0;}
|
||||
.success.big .icon-sucessfill{ font-size:62px;}
|
||||
.success.big .success-info{ margin-left:75px;}
|
||||
.success.big strong{ font-size:18px; line-height:40px;}
|
||||
.success.big p{ font-size:14px;}
|
||||
.success.um .icon-sucessfill{ font-size:36px;}
|
||||
.success.um .success-info{ margin-left:30px;}
|
||||
.success.um strong{ font-size:16px; line-height:36px;}
|
||||
.success.error{ color:#ff0000;}
|
||||
.success.error .icon-sucessfill:after{color:#ff0000;}
|
||||
.success.error .icon-sucessfill:before{content: "\e608";}
|
||||
/*pagination*/
|
||||
.pagination{padding:40px 0;}
|
||||
.pagination a{ display:inline-block; height:33px; padding: 0px 13px; background:#fff; border:1px solid #e5e5e5; line-height:33px; text-align:center; min-width:33px; font-size:13px; margin:0 5px; color:#666;}
|
||||
.pagination a:hover,.pagination a.current{ background:#1997d7; border-color:#1997d7; color:#fff;}
|
||||
.pagination a.more,.pagination a.more:hover{ background:none; border:0; color:#666; cursor:default;}
|
||||
.pagination a.disabled{background-color:#e5e5e5;border-color: #e5e5e5; color:#a9a9a9;}
|
||||
.tabcut li{ float:left;}
|
||||
input[readonly],input[disabled]{ background:#f6f6f6;}
|
||||
|
||||
|
||||
|
||||
|
||||
46
WebContent/css/index.css
Normal file
46
WebContent/css/index.css
Normal file
@ -0,0 +1,46 @@
|
||||
|
||||
/* CSS Document */
|
||||
input:focus {outline: none}
|
||||
.min-width{min-width:1080px;}
|
||||
.main{width:1080px;min-width:1080px;margin:0 auto;}
|
||||
/*login and reg*/
|
||||
label{ margin:0; font-weight:normal;}
|
||||
.login-box-pan{ padding:50px 80px 50px 30px;}
|
||||
.login-info{ width:290px;}
|
||||
.login-info h2{ border-bottom:2px solid #eeeff3; color:#3498db; font-size:18px; font-weight:700; line-height:38px; width:100%;}
|
||||
.login-info h2 span{ border-bottom:2px solid #3498db; height:38px; display:inline-block; padding:0 10px;position:relative; bottom:-2px;}
|
||||
.login-info .item{ height:70px; width:290px;}
|
||||
.login-info .item-input{ border:1px solid #e5e5e5; height:38px; line-height:24px; padding:7px 10px;}
|
||||
.txt02{ height:24px; line-height:24px; border:0; float:left; font-size:13px;}
|
||||
.login-info .item-input .txt02{ width:220px; float:left;}
|
||||
.login-info .item-tips{ line-height:30px; font-size:12px; color:#ee1615;}
|
||||
.login-info img{ width:70px; height:30px; margin:2px 10px 0;}
|
||||
.f-h34{ height:34px; line-height:34px;}.f-h24{height:24px; line-height:24px;}
|
||||
.login-box a.c-blue:hover{ color:#ff7d27; text-decoration:underline;}
|
||||
.reg-box-pan{ padding:40px 40px 50px; width:100%;}
|
||||
.txt03{width:270px;line-height: 16px;padding:9px 10px;border: 1px solid #cccccc;float: none;font-size: 14px;font-family: arial,"宋体";color: #999;overflow: hidden;}
|
||||
.reg-box .item {height:68px;line-height:34px;position: relative;z-index:5;}
|
||||
.reg-box .intelligent-label {width:100px;text-align: right;font-size: 14px;color: #666;padding-right: 10px;}
|
||||
.reg-box .intelligent-label b{font-family: "????";margin-right: 5px;font-weight: normal; color:red;}
|
||||
.reg-box .item .item-ifo{position: relative;width: 270px;}
|
||||
.reg-box .txt02{width:270px;line-height: 16px;padding:9px 10px;border: 1px solid #cccccc;float: none;font-size: 14px;font-family: arial,"宋体";color: #999;overflow: hidden;}
|
||||
.reg-box .txt03.v_error{border-color:#FF0000;}
|
||||
.reg-box .txt03:focus{border-color:#1a97d7;}
|
||||
.reg-box .blank {width:16px;height:16px; font-size:16px;position: absolute;left:280px;top:11px;float: none; color:#7abd54}
|
||||
.reg-box .close{position: absolute;top:5px;right:25px;font-size: 24px;}
|
||||
.reg-box .focus,.reg-box .focusa,.reg-box .error{line-height:34px;height:34px;position: absolute;top: 0px;left:280px;width:270px;padding: 0 5px;z-index:3; font-weight:normal; font-size:12px; color:#999}
|
||||
.reg-box .focus span,.reg-box .error span{ line-height:16px; display:block; padding:3px 0;}
|
||||
.reg-box .focus{color: #999;}
|
||||
.reg-box .valid{color: #f00;}
|
||||
.reg-box .strength {color: #999;line-height: 22px;padding-right: 10px;clear: both;float: none;position: absolute;top:39px;right: -9px; display:none}
|
||||
.reg-box .strength b {float: left;width: 108px;height:16px;overflow: hidden;margin-top: 5px; font-weight:400;}
|
||||
.reg-box .strength b i{ font-style:normal; font-size:10px; width:34px; height:16px;line-height:16px; display:inline-block; float:left; background:#dbdbdb; text-align:center; margin-left:1px; color:#fff;}
|
||||
.reg-box .strength b i.on{ background:#ff6160}
|
||||
.reg-box .btn-blue{ font-size:18px; height:44px; line-height:44px; padding:0; width:270px;}
|
||||
.reg-box .btn-gray{ height:34px; line-height:34px; padding:0 12px;}
|
||||
.reg-box .part1,.reg-box .part2,.reg-box .part3{ padding-left:150px;}
|
||||
.regcon {width: 482px;height:360px;margin-left: -241px;margin-top: -180px;background: #fff;}
|
||||
.regcon pre {border: 1px solid #B2B2B2;height: 240px;margin: 10px;overflow-x: hidden;overflow-y: scroll;padding: 5px;resize: both;width: 450px;background: #fff;font-size: 12px;color: #333;line-height: 1.7em;}
|
||||
/*
|
||||
.showpwd{ display:inline-block; width:16px; height:16px; background:url(../images/showPwd.png) no-repeat center center; background-size:16px 16px; position:absolute; top:8px;right:10px; cursor:pointer;}
|
||||
.showpwd.hidepwd{ background-image:url(../images/hidePwd.png);}*/
|
||||
505
WebContent/js/jquery/register.js
vendored
Normal file
505
WebContent/js/jquery/register.js
vendored
Normal file
@ -0,0 +1,505 @@
|
||||
/**
|
||||
* 功能说明: 输入验证
|
||||
* @author: vivy <lizhizyan@qq.com>
|
||||
* @time: 2015-9-25 16:15:30
|
||||
* @version: V1.1.0
|
||||
* @使用方法:
|
||||
* <input class="required" type="text" data-valid="isNonEmpty||isEmail" data-error="email不能为空||邮箱格式不正确" id="" />
|
||||
* 1、需要验证的元素都加上【required】样式
|
||||
* 2、@data-valid 验证规则,验证多个规则中间用【||】隔开,更多验证规则,看rules和rule,后面遇到可继续增加
|
||||
* 3、@data-error 规则对应的提示信息,一一对应
|
||||
*
|
||||
* @js调用方法:
|
||||
* verifyCheck({
|
||||
* formId:'verifyCheck', <验证formId内class为required的元素
|
||||
* onBlur:null, <被验证元素失去焦点的回调函数>
|
||||
* onFocus:null, <被验证元素获得焦点的回调函数>
|
||||
* onChange: null, <被验证元值改变的回调函数>
|
||||
* successTip: true, <验证通过是否提示>
|
||||
* resultTips:null, <显示提示的方法,参数obj[当前元素],isRight[是否正确提示],value[提示信息]>
|
||||
* clearTips:null, <清除提示的方法,参数obj[当前元素]>
|
||||
* code:true <是否需要手机号码输入控制验证码及点击验证码倒计时,目前固定手机号码ID为phone,验证码两个标签id分别为time_box,resend,填写验证框id为code>
|
||||
* phone:true <改变手机号时是否控制验证码>
|
||||
* })
|
||||
* $("#submit-botton").click(function(){ <点击提交按钮时验证>
|
||||
* if(!common.verify.btnClick()) return false;
|
||||
* })
|
||||
*
|
||||
* 详细代码请看register.src.js
|
||||
*/
|
||||
(function($) {
|
||||
var h, timerC = 60,
|
||||
opt;
|
||||
var j = function(a) {
|
||||
a = $.extend(require.defaults, a || {});
|
||||
opt = a;
|
||||
return (new require())._init(a)
|
||||
};
|
||||
|
||||
function require(f) {
|
||||
var g = {
|
||||
phone: /^1(3\d|5[0-35-9]|8[025-9]|47)\d{8}$/,
|
||||
card: /^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}(((((19|20)((\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(\d{2}(0[13578]|1[02])31)|(\d{2}02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[48])0229)))|20000229)\d{3}(\d|X|x))|(((\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(\d{2}(0[13578]|1[02])31)|(\d{2}02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[48])0229))\d{3}))$/,
|
||||
int: /^[0-9]*$/,
|
||||
s: ''
|
||||
};
|
||||
this.rules = {
|
||||
isNonEmpty: function(a, b) {
|
||||
b = b || " ";
|
||||
if (!a.length) return b
|
||||
},
|
||||
minLength: function(a, b, c) {
|
||||
c = c || " ";
|
||||
if (a.length < b) return c
|
||||
},
|
||||
maxLength: function(a, b, c) {
|
||||
c = c || " ";
|
||||
if (a.length > b) return c
|
||||
},
|
||||
isRepeat: function(a, b, c) {
|
||||
c = c || " ";
|
||||
if (a !== $("#" + b).val()) return c
|
||||
},
|
||||
isSame : function(a,b,c){
|
||||
c = c || " ";
|
||||
if (a !== $("#" + b).val()) return c
|
||||
},
|
||||
between: function(a, b, c) {
|
||||
c = c || " ";
|
||||
var d = parseInt(b.split('-')[0]);
|
||||
var e = parseInt(b.split('-')[1]);
|
||||
if (a.length < d || a.length > e) return c
|
||||
},
|
||||
level: function(a, b, c) {
|
||||
c = c || " ";
|
||||
var r = j.pwdStrong(a);
|
||||
if (b > 4) b = 3;
|
||||
if (r < b) return c
|
||||
},
|
||||
isPhone: function(a, b) {
|
||||
b = b || " ";
|
||||
if (!g.phone.test(a)) return b
|
||||
},
|
||||
isCompany: function(a, b) {
|
||||
b = b || " ";
|
||||
if (!g.company.test(a)) return b
|
||||
},
|
||||
isInt: function(a, b) {
|
||||
b = b || " ";
|
||||
if (!g.int.test(a)) return b
|
||||
},
|
||||
isUname: function(a, b) {
|
||||
b = b || " ";
|
||||
if (!g.uname.test(a)) return b
|
||||
},
|
||||
isZh: function(a, b) {
|
||||
b = b || " ";
|
||||
if (!g.zh.test(a)) return b
|
||||
},
|
||||
isCard: function(a, b) {
|
||||
b = b || " ";
|
||||
if (!g.card.test(a)) return b
|
||||
},
|
||||
isChecked: function(c, d, e) {
|
||||
d = d || " ";
|
||||
var a = $(e).find('input:checked').length,
|
||||
b = $(e).find('.on').length;
|
||||
if (!a && !b) return d
|
||||
}
|
||||
}
|
||||
};
|
||||
require.prototype = {
|
||||
_init: function(b) {
|
||||
this.config = b;
|
||||
this.getInputs = $('#' + b.formId).find('.required:visible');
|
||||
var c = false;
|
||||
var d = this;
|
||||
if (b.code) {
|
||||
$("#verifyYz").click(function() {
|
||||
//var accNumber = $.trim($("#accNumber").val());
|
||||
// var contractNumber = encodeURI($.trim($("#contractNumber").val()));
|
||||
// var userName = encodeURI($.trim($("#userName").val()));
|
||||
// var certId = $.trim($("#certId").val());
|
||||
// var phoneNumber = $.trim($("#phoneNumber").val());
|
||||
var contractId = $.trim($("#contractId").val());
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "sign",
|
||||
async : true,
|
||||
dataType: "json",
|
||||
// data : {"method":"allinPaySendMessages","accountNo":accNumber,"contractNumber":contractNumber,"accountName":userName,"certId":certId,"tel":phoneNumber},
|
||||
data : {"method":"allinPaySendMessages","contractId":contractId},
|
||||
success : function(data) {
|
||||
if("success" == data.message){
|
||||
alert("短信验证码发送成功,请留意您的短信提示");
|
||||
return true;
|
||||
}else{
|
||||
alert("短信验证码发送失败,请稍后再试");
|
||||
return false;
|
||||
}
|
||||
},
|
||||
error : function(data) {
|
||||
alert("连接服务器失败");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
$("#time_box").text("60 s后可重发");
|
||||
|
||||
addCookie("secondsremained", 60, 60); //添加cookie记录,有效时间60s
|
||||
d._sendVerify();
|
||||
})
|
||||
}
|
||||
$('body').on({
|
||||
blur: function(a) {
|
||||
d.formValidator($(this));
|
||||
if (b.phone && $(this).attr("id") === "phone") d._change($(this));
|
||||
b.onBlur ? b.onBlur($(this)) : ''
|
||||
},
|
||||
focus: function(a) {
|
||||
b.onFocus ? b.onFocus($(this)) : $(this).parent().find("label.focus").not(".valid").removeClass("hide").siblings(".valid").addClass("hide") && $(this).parent().find(".blank").addClass("hide") && $(this).parent().find(".close").addClass("hide")
|
||||
},
|
||||
keyup: function(a) {
|
||||
if (b.phone && $(this).attr("id") === "phone") d._change($(this))
|
||||
},
|
||||
change: function(a) {
|
||||
b.onChange ? b.onChange($(this)) : ''
|
||||
}
|
||||
}, "#" + b.formId + " .required:visible");
|
||||
$('body').on("click", ".close", function() {
|
||||
var p = $(this).parent(),
|
||||
input = p.find("input");
|
||||
input.val("").focus()
|
||||
})
|
||||
},
|
||||
formValidator: function(a) {
|
||||
var b = a.attr('data-valid');
|
||||
if (b === undefined) return false;
|
||||
var c = b.split('||');
|
||||
var d = a.attr('data-error');
|
||||
if (d === undefined) d = "";
|
||||
var e = d.split("||");
|
||||
var f = [];
|
||||
for (var i = 0; i < c.length; i++) {
|
||||
f.push({
|
||||
strategy: c[i],
|
||||
errorMsg: e[i]
|
||||
})
|
||||
};
|
||||
return this._add(a, f)
|
||||
},
|
||||
_add: function(a, b) {
|
||||
var d = this;
|
||||
for (var i = 0, rule; rule = b[i++];) {
|
||||
var e = rule.strategy.split(':');
|
||||
var f = rule.errorMsg;
|
||||
var g = e.shift();
|
||||
e.unshift(a.val());
|
||||
e.push(f);
|
||||
e.push(a);
|
||||
var c = d.rules[g].apply(a, e);
|
||||
if (c) {
|
||||
opt.resultTips ? opt.resultTips(a, false, c) : j._resultTips(a, false, c);
|
||||
return false
|
||||
}
|
||||
}
|
||||
opt.successTip ? (opt.resultTips ? opt.resultTips(a, true) : j._resultTips(a, true)) : j._clearTips(a);
|
||||
return true
|
||||
},
|
||||
_sendVerify: function() {
|
||||
var a = this;
|
||||
$("#verifyYz").text("发送验证码").hide();
|
||||
$("#time_box").text("60 s后可重发").show();
|
||||
countdown = getCookieValue("secondsremained");
|
||||
/* if (timerC === 0) {
|
||||
clearTimeout(h);
|
||||
timerC = 60;
|
||||
$("#verifyYz").show();
|
||||
$("#time_box").hide();
|
||||
return;
|
||||
}*/
|
||||
countdown--;
|
||||
if (countdown <= 0) {
|
||||
clearTimeout(h);
|
||||
timerC = 60;
|
||||
$("#verifyYz").show();
|
||||
$("#time_box").hide();
|
||||
return;
|
||||
}else{
|
||||
$("#verifyYz").hide();
|
||||
$("#time_box").text(countdown + " s后可重发");
|
||||
}
|
||||
|
||||
h = setTimeout(function() {
|
||||
editCookie("secondsremained", countdown, countdown + 1);
|
||||
a._sendVerify()
|
||||
}, 1000)
|
||||
},
|
||||
_change: function(a) {
|
||||
var b = this;
|
||||
if (a.val().length != 11) {
|
||||
$("#verifyYz").hide();
|
||||
$("#time_box").show();
|
||||
if (timerC === 60) $("#time_box").text("发送验证码");
|
||||
$("#verifyNo").val("");
|
||||
this.config.clearTips ? this.config.clearTips($("#verifyNo")) : j._clearTips($("#verifyNo"));
|
||||
return
|
||||
}
|
||||
var c = /^1([^01269])\d{9}$/;
|
||||
if (!c.test(a.val())) return false;
|
||||
if (timerC === 60) {
|
||||
$("#verifyYz").show();
|
||||
$("#time_box").hide()
|
||||
} else {
|
||||
$("#verifyYz").hide();
|
||||
$("#time_box").show()
|
||||
}
|
||||
}
|
||||
};
|
||||
j._click = function(c) {
|
||||
c = c || opt.formId;
|
||||
var d = $("#" + c).find('.required:visible'),
|
||||
self = this,
|
||||
result = true,
|
||||
t = new require(),
|
||||
r = [];
|
||||
$.each(d, function(a, b) {
|
||||
result = t.formValidator($(b));
|
||||
if (result) r.push(result)
|
||||
});
|
||||
if (d.length !== r.length) result = false;
|
||||
return result
|
||||
};
|
||||
j._clearTips = function(a) {
|
||||
a.parent().find(".blank").addClass("hide");
|
||||
a.parent().find(".valid").addClass("hide");
|
||||
a.removeClass("v_error")
|
||||
};
|
||||
j._resultTips = function(a, b, c) {
|
||||
a.parent().find("label.focus").not(".valid").addClass("hide").siblings(".focus").removeClass("hide");
|
||||
a.parent().find(".close").addClass("hide");
|
||||
a.removeClass("v_error");
|
||||
c = c || "";
|
||||
if (c.length > 21) c = "<span>" + c + "</span>";
|
||||
var o = a.parent().find("label.valid");
|
||||
if (!b) {
|
||||
o.addClass("error");
|
||||
a.addClass("v_error");
|
||||
if ($.trim(a.val()).length > 0) a.parent().find(".close").removeClass("hide")
|
||||
} else {
|
||||
a.parent().find(".blank").removeClass("hide")
|
||||
}
|
||||
o.text("").append(c)
|
||||
};
|
||||
j.textChineseLength = function(a) {
|
||||
|
||||
};
|
||||
j.pwdStrong = function(a) {
|
||||
var b = 0;
|
||||
if (a.match(/[a-z]/g)) {
|
||||
b++
|
||||
}
|
||||
if (a.match(/[A-Z]/g)) {
|
||||
b++
|
||||
}
|
||||
if (a.match(/[0-9]/g)) {
|
||||
b++
|
||||
}
|
||||
if (a.match(/(.[^a-z0-9A-Z])/g)) {
|
||||
b++
|
||||
}
|
||||
if (b > 4) {
|
||||
b = 4
|
||||
}
|
||||
if (b === 0) return false;
|
||||
return b
|
||||
};
|
||||
require.defaults = {
|
||||
formId: 'verifyCheck',
|
||||
onBlur: null,
|
||||
onFocus: null,
|
||||
onChange: null,
|
||||
successTip: true,
|
||||
resultTips: null,
|
||||
clearTips: null,
|
||||
code: true,
|
||||
phone: false
|
||||
};
|
||||
window.verifyCheck = $.verifyCheck = j
|
||||
})(jQuery);
|
||||
(function($) {
|
||||
var f;
|
||||
var g = function() {
|
||||
return (new require())._init()
|
||||
};
|
||||
|
||||
function require(a) {};
|
||||
require.prototype = {
|
||||
_init: function() {
|
||||
var b = this;
|
||||
$('body').on({
|
||||
click: function(a) {
|
||||
b._click($(this))
|
||||
}
|
||||
}, ".showpwd:visible")
|
||||
},
|
||||
_click: function(a) {
|
||||
var c = a.attr('data-eye');
|
||||
if (c === undefined) return false;
|
||||
var d = $("#" + c),
|
||||
cls = !d.attr("class") ? "" : d.attr("class"),
|
||||
value = !d.val() ? "" : d.val(),
|
||||
type = d.attr("type") === "password" ? "text" : "password",
|
||||
b = d.parent().find("b.placeTextB"),
|
||||
isB = b.length === 0 ? false : true;
|
||||
var s = d.attr("name") ? " name='" + d.attr("name") + "'" : "";
|
||||
s += d.attr("data-valid") ? " data-valid='" + d.attr("data-valid") + "'" : "";
|
||||
s += d.attr("data-error") ? " data-error='" + d.attr("data-error") + "'" : "";
|
||||
s += d.attr("placeholder") ? " placeholder='" + d.attr("placeholder") + "'" : "";
|
||||
var e = '<input readonly type="' + type + '" class="' + cls + '" value="' + value + '" id="' + c + '"' + s + ' />';
|
||||
if (type === "text") {
|
||||
if (isB) b.hide();
|
||||
d.parent().find(".icon-close.close").addClass("hide");
|
||||
d.removeAttr("id").hide();
|
||||
d.after(e);
|
||||
a.addClass("hidepwd")
|
||||
} else {
|
||||
d.prev("input").attr("id", c).val(value).show();
|
||||
if (isB && $.trim(value) === "") {
|
||||
d.prev("input").hide();
|
||||
b.show()
|
||||
}
|
||||
d.remove();
|
||||
a.removeClass("hidepwd")
|
||||
};
|
||||
$('body').on("click", "#" + c, function() {
|
||||
$(this).parent().find(".hidepwd").click();
|
||||
if (isB && $.trim($(this).val()) === "") {
|
||||
d.show();
|
||||
b.hide()
|
||||
}
|
||||
d.focus()
|
||||
})
|
||||
}
|
||||
};
|
||||
require.defaults = {};
|
||||
window.togglePwd = $.togglePwd = g
|
||||
})(jQuery);
|
||||
(function($) {
|
||||
var b, timerC, opt;
|
||||
var d = function(a) {
|
||||
a = $.extend(require.defaults, a || {});
|
||||
opt = a;
|
||||
d._clear();
|
||||
return (new require())._init()
|
||||
};
|
||||
|
||||
function require(a) {};
|
||||
require.prototype = {
|
||||
_init: function() {
|
||||
timerC = opt.maxTime;
|
||||
this._sendVerify()
|
||||
},
|
||||
_sendVerify: function() {
|
||||
var a = this;
|
||||
if (timerC === 0) {
|
||||
d._clear();
|
||||
opt.after();
|
||||
timerC = opt.maxTime;
|
||||
return
|
||||
}
|
||||
timerC--;
|
||||
opt.ing(timerC);
|
||||
b = setTimeout(function() {
|
||||
a._sendVerify()
|
||||
}, 1000)
|
||||
}
|
||||
};
|
||||
d._clear = function() {
|
||||
clearTimeout(b)
|
||||
};
|
||||
require.defaults = {
|
||||
maxTime: 60,
|
||||
minTime: 0,
|
||||
ing: function(c) {},
|
||||
after: function() {}
|
||||
};
|
||||
window.countdown = $.countdown = d
|
||||
})(jQuery);
|
||||
$(function() {
|
||||
togglePwd();
|
||||
verifyCheck();
|
||||
$('body').on("keyup", "#password", function() {
|
||||
var t = $(this).val(),
|
||||
o = $(this).parent().find(".strength");
|
||||
if (t.length >= 6) {
|
||||
o.show();
|
||||
var l = verifyCheck.pwdStrong(t);
|
||||
o.find("b i").removeClass("on");
|
||||
for (var i = 0; i < l; i++) {
|
||||
o.find("b i").eq(i).addClass("on")
|
||||
}
|
||||
} else {
|
||||
o.hide()
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
//发送验证码时添加cookie
|
||||
function addCookie(name, value, expiresHours) {
|
||||
var cookieString = name + "=" + escape(value);
|
||||
//判断是否设置过期时间,0代表关闭浏览器时失效
|
||||
if(expiresHours > 0) {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime() + expiresHours * 1000);
|
||||
cookieString = cookieString + ";expires=" + date.toUTCString();
|
||||
}
|
||||
document.cookie = cookieString;
|
||||
}
|
||||
|
||||
//修改cookie的值
|
||||
function editCookie(name, value, expiresHours) {
|
||||
var cookieString = name + "=" + escape(value);
|
||||
if(expiresHours > 0) {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime() + expiresHours * 1000); //单位是毫秒
|
||||
cookieString = cookieString + ";expires=" + date.toGMTString();
|
||||
}
|
||||
document.cookie = cookieString;
|
||||
}
|
||||
//根据名字获取cookie的值
|
||||
function getCookieValue(name) {
|
||||
var strCookie = document.cookie;
|
||||
var arrCookie = strCookie.split("; ");
|
||||
for(var i = 0; i < arrCookie.length; i++) {
|
||||
var arr = arrCookie[i].split("=");
|
||||
if(arr[0] == name) {
|
||||
return unescape(arr[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//开始倒计时
|
||||
var countdown;
|
||||
|
||||
|
||||
function sendVerify() {
|
||||
countdown = getCookieValue("secondsremained");
|
||||
if(countdown !=undefined&&countdown!='NaN'&&countdown!='null'&&countdown>0) {
|
||||
$("#verifyYz").text("发送验证码").hide();
|
||||
$("#time_box").text("60 s后可重发").show();
|
||||
if (countdown <= 0) {
|
||||
$("#verifyYz").show();
|
||||
$("#time_box").hide();
|
||||
return;
|
||||
} else {
|
||||
$("#verifyYz").hide();
|
||||
$("#time_box").text(countdown + " s后可重发");
|
||||
}
|
||||
countdown--;
|
||||
h = setTimeout(function () {
|
||||
editCookie("secondsremained", countdown, countdown + 1);
|
||||
sendVerify()
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
32
config/allinPay.properties
Normal file
32
config/allinPay.properties
Normal file
@ -0,0 +1,32 @@
|
||||
#通联商户号 (测试) (正式待定)
|
||||
allinPayMerchantId=200604000011645
|
||||
|
||||
#通联用户名(测试) (正式待定)
|
||||
allinPayUsername=20060400001164504
|
||||
|
||||
#通联用户密码 (测试) (正式待定)
|
||||
allinPayUserpass=111111
|
||||
|
||||
#通联私钥密码 (测试) (正式待定)
|
||||
allinPayPfxpass=rzdp
|
||||
|
||||
#通联公钥 (测试)(正式待定)
|
||||
allinPayPathcer=20060400001164504.cer
|
||||
|
||||
#通联商户私钥路径(测试) (正式待定)
|
||||
allinPayPathpfx=allinpay.p12
|
||||
|
||||
|
||||
#通联测试接口地址(测试)
|
||||
allinPayUrl=https://test.allinpaygd.com/aipg/ProcessServlet
|
||||
#通联测试接口地址(正式)
|
||||
#allinPayUrl=https://tlt.allinpay.com/aipg/ProcessServle
|
||||
|
||||
|
||||
#短信发送url(测试)
|
||||
sendMessageUrl=http://127.0.0.1:8081/apzl_leasing/allinpay/sign?method=allinPaySign&con=
|
||||
#短信发送url(正式)
|
||||
#sendMessageUrl=https://erp.zjmileasing.com/allinpay/sign?method=allinPaySign&con=
|
||||
|
||||
|
||||
|
||||
24
src/com/tenwa/lease/app/allinpay/dao/AllinpayDao.java
Normal file
24
src/com/tenwa/lease/app/allinpay/dao/AllinpayDao.java
Normal file
@ -0,0 +1,24 @@
|
||||
package com.tenwa.lease.app.allinpay.dao;
|
||||
|
||||
import com.amarsoft.awe.util.ASResultSet;
|
||||
import com.amarsoft.awe.util.SqlObject;
|
||||
import com.amarsoft.awe.util.Transaction;
|
||||
|
||||
public interface AllinpayDao {
|
||||
|
||||
|
||||
/**
|
||||
* 查询操作,获取结果
|
||||
* @param sqlObject
|
||||
* @param sql,Sqlca事务
|
||||
* @return ASResultSet
|
||||
*/
|
||||
public ASResultSet getASResultSet(Transaction Sqlca, SqlObject sqlObject);
|
||||
|
||||
/**
|
||||
* 保存或者修改操作
|
||||
* @param sql,Sqlca事务
|
||||
* @return
|
||||
*/
|
||||
public void update(SqlObject sqlObject);
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package com.tenwa.lease.app.allinpay.dao.impl;
|
||||
|
||||
import com.amarsoft.awe.util.ASResultSet;
|
||||
import com.amarsoft.awe.util.SqlObject;
|
||||
import com.amarsoft.awe.util.Transaction;
|
||||
import com.tenwa.lease.app.allinpay.dao.AllinpayDao;
|
||||
|
||||
public class AllinpayDaoImpl implements AllinpayDao {
|
||||
|
||||
@Override
|
||||
public ASResultSet getASResultSet(Transaction Sqlca,SqlObject sqlObject) {
|
||||
ASResultSet res = null;
|
||||
try {
|
||||
res = Sqlca.getASResultSet(sqlObject);
|
||||
} catch (Exception e) {
|
||||
if (Sqlca != null)
|
||||
try {
|
||||
Sqlca.rollback();
|
||||
} catch (Exception e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
e.printStackTrace();
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(SqlObject sqlObject) {
|
||||
Transaction Sqlca = Transaction.createTransaction("als");
|
||||
try {
|
||||
Sqlca.executeSQL(sqlObject);
|
||||
} catch (Exception e) {
|
||||
if (Sqlca != null)
|
||||
try {
|
||||
Sqlca.rollback();
|
||||
} catch (Exception e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (Sqlca != null)
|
||||
try {
|
||||
Sqlca.commit();
|
||||
Sqlca.disConnect();
|
||||
Sqlca = null;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.tenwa.lease.app.allinpay.service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.amarsoft.awe.util.SqlObject;
|
||||
|
||||
public interface AllinpayService {
|
||||
|
||||
/**
|
||||
* 获取通联卡扣短信发送的xml
|
||||
* @param contractId 合同Id
|
||||
* @return map
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String,String> allinPaySendMessages(String contractId) throws Exception;
|
||||
|
||||
/**
|
||||
* 通联卡扣日志修改
|
||||
* @param sqlObject
|
||||
* @return
|
||||
* @throws
|
||||
*/
|
||||
public void update(SqlObject sqlObject);
|
||||
|
||||
/**
|
||||
* 通联卡扣协议签约的xml
|
||||
* @param contractId 合同id,verCode验证码
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String, String> allinPaySigning(String contractId) throws Exception;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,124 @@
|
||||
package com.tenwa.lease.app.allinpay.service.impl;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.amarsoft.awe.util.ASResultSet;
|
||||
import com.amarsoft.awe.util.SqlObject;
|
||||
import com.amarsoft.awe.util.Transaction;
|
||||
import com.tenwa.lease.app.allinpay.dao.AllinpayDao;
|
||||
import com.tenwa.lease.app.allinpay.dao.impl.AllinpayDaoImpl;
|
||||
import com.tenwa.lease.app.allinpay.service.AllinpayService;
|
||||
|
||||
public class AllinpayServiceImpl implements AllinpayService {
|
||||
|
||||
private AllinpayDao allinpayDao = new AllinpayDaoImpl();
|
||||
|
||||
public Logger logger = Logger.getLogger(this.getClass());
|
||||
|
||||
@Override
|
||||
public Map<String, String> allinPaySendMessages(String contractId) throws Exception {
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
String userName = "";
|
||||
String phoneNumber = "";
|
||||
String accNumber = "";
|
||||
String certId = "";
|
||||
String contractNumber = "";
|
||||
String sql = "SELECT lpi.project_no contract_number,ca.account customername,ca.mobile phonenumber,ca.acc_number accNumber,ca.certid certId FROM lb_project_info lpi LEFT JOIN customer_account ca ON ca.project_id=lpi.ID WHERE lpi.id=:Id";
|
||||
Transaction Sqlca = Transaction.createTransaction("als");
|
||||
SqlObject sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("Id", contractId);
|
||||
ASResultSet resultSet = allinpayDao.getASResultSet(Sqlca,sqlObject);
|
||||
try {
|
||||
while (resultSet.next()) {
|
||||
contractNumber = resultSet.getString("contract_number");
|
||||
userName = resultSet.getString("customername");
|
||||
phoneNumber = resultSet.getString("phonenumber");
|
||||
accNumber = resultSet.getString("accNumber");
|
||||
certId = resultSet.getString("certId");
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (resultSet != null) {
|
||||
try {
|
||||
resultSet.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (Sqlca != null)
|
||||
try {
|
||||
Sqlca.commit();
|
||||
Sqlca.disConnect();
|
||||
Sqlca = null;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if ("".equals(contractNumber) || "".equals(userName) || "".equals(phoneNumber) || "".equals(accNumber)
|
||||
|| "".equals(certId)) {
|
||||
logger.error("数据为空:contractNumber:" + contractNumber + ";userName:" + userName + ";phoneNumber:"
|
||||
+ phoneNumber + ";accNumber:" + accNumber + ";certId:" + certId);
|
||||
throw new Exception("数据为空,请联系相关业务人员");
|
||||
}
|
||||
map.put("phoneNumber", phoneNumber);
|
||||
map.put("contractNumber", contractNumber);
|
||||
map.put("userName", userName);
|
||||
map.put("accNumber", accNumber);
|
||||
map.put("phoneNumber", phoneNumber);
|
||||
map.put("certId", certId);
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(SqlObject sqlObject) {
|
||||
allinpayDao.update(sqlObject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> allinPaySigning(String contractId) throws Exception {
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
String contractNumber = "";
|
||||
String phoneNumber = "";
|
||||
String sql = "SELECT lpi.project_no contract_number,ca.mobile phonenumber FROM lb_project_info lpi LEFT JOIN customer_account ca ON ca.project_id=lpi.ID WHERE lpi.id=:Id";
|
||||
Transaction Sqlca = Transaction.createTransaction("als");
|
||||
SqlObject sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("Id", contractId);
|
||||
ASResultSet resultSet = allinpayDao.getASResultSet(Sqlca,sqlObject);
|
||||
try {
|
||||
while (resultSet.next()) {
|
||||
contractNumber = resultSet.getString("contract_number");
|
||||
phoneNumber = resultSet.getString("phonenumber");
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (resultSet != null) {
|
||||
try {
|
||||
resultSet.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (Sqlca != null)
|
||||
try {
|
||||
Sqlca.commit();
|
||||
Sqlca.disConnect();
|
||||
Sqlca = null;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if ("".equals(contractNumber) || "".equals(phoneNumber)) {
|
||||
logger.error("数据为空:contractNumber:" + contractNumber + ";phoneNumber:"+ phoneNumber);
|
||||
throw new Exception("数据为空,请联系相关业务人员");
|
||||
}
|
||||
map.put("contractNumber", contractNumber);
|
||||
map.put("phoneNumber", phoneNumber);
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
264
src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java
Normal file
264
src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java
Normal file
@ -0,0 +1,264 @@
|
||||
package com.tenwa.lease.app.allinpay.servlet;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.allinpay.xstruct.quickpay.FAGRARET;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.allinpay.xml.XmlParser;
|
||||
import com.allinpay.xstruct.common.AipgRsp;
|
||||
import com.allinpay.xstruct.common.InfoRsp;
|
||||
import com.allinpay.xstruct.quickpay.FAGRCRET;
|
||||
import com.amarsoft.app.lc.util.DateAssistant;
|
||||
import com.amarsoft.are.jbo.BizObject;
|
||||
import com.amarsoft.are.jbo.BizObjectManager;
|
||||
import com.amarsoft.are.jbo.JBOFactory;
|
||||
import com.amarsoft.are.util.DataConvert;
|
||||
import com.amarsoft.awe.util.ASResultSet;
|
||||
import com.amarsoft.awe.util.SqlObject;
|
||||
import com.amarsoft.awe.util.Transaction;
|
||||
import com.tenwa.lease.app.allinpay.util.AllinpayProperties;
|
||||
import com.tenwa.lease.app.allinpay.service.AllinpayService;
|
||||
import com.tenwa.lease.app.allinpay.service.impl.AllinpayServiceImpl;
|
||||
import com.tenwa.lease.app.allinpay.util.AllinpayUtil;
|
||||
|
||||
@WebServlet(urlPatterns = { "/allinpay/sign" })
|
||||
public class AllinpayServlet extends BaseServlet {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private AllinpayProperties factory = new AllinpayProperties();
|
||||
|
||||
private AllinpayService allinpayService = new AllinpayServiceImpl();
|
||||
|
||||
// 通联卡扣短信发送
|
||||
public String allinPaySendMessages(HttpServletRequest request, HttpServletResponse response)
|
||||
throws MalformedURLException, Exception {
|
||||
Map<String, String> msg = new HashMap<>();
|
||||
msg.put("message", "error");
|
||||
|
||||
String contractId = request.getParameter("contractId");
|
||||
Map<String, String> xmlMap = allinpayService.allinPaySendMessages(contractId);
|
||||
String phoneNumber = xmlMap.get("phoneNumber");
|
||||
String contractNumber = xmlMap.get("contractNumber");
|
||||
|
||||
Map<String, String> map = factory.allinPaySendMessages(xmlMap);
|
||||
|
||||
if (!"success".equals(map.get("message"))) {
|
||||
logger.info("系统异常或通联反馈异常:" + map.get("msg"));
|
||||
throw new Exception(map.get("msg"));
|
||||
} else {
|
||||
String requestContent = map.get("request");
|
||||
String responseContent = map.get("response");
|
||||
String time = DateAssistant.getTodayNow();
|
||||
AipgRsp rsp = XmlParser.parseRsp(responseContent);
|
||||
InfoRsp infoRsp = rsp.getINFO();
|
||||
FAGRARET ret = (FAGRARET) rsp.trxObj();
|
||||
SqlObject sqlObject = null;
|
||||
if ("0000".equals(infoRsp.getRET_CODE())) {
|
||||
String retCode = ret.getRET_CODE();
|
||||
if (retCode != null && "0000".equals(retCode)) {
|
||||
msg.put("message", "success");
|
||||
String reqSn = infoRsp.getREQ_SN();
|
||||
Cookie[] cookies = request.getCookies();
|
||||
Cookie cookie = AllinpayUtil.getCookie(phoneNumber, cookies);
|
||||
if (cookie == null) {
|
||||
cookie = new Cookie(phoneNumber, reqSn);
|
||||
} else {
|
||||
cookie.setValue(reqSn);
|
||||
}
|
||||
cookie.setMaxAge(60 * 10);
|
||||
response.addCookie(cookie);
|
||||
|
||||
String sql = "UPDATE LC_CARD_TLSIGN SET CUSTOMER_LAUNCH_TIME=:customerLaunchTime WHERE CONTRACT_NUMBER=:contractNumber";
|
||||
sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("customerLaunchTime", time);
|
||||
sqlObject.setParameter("contractNumber", contractNumber);
|
||||
} else {
|
||||
String sql = "UPDATE LC_CARD_TLSIGN SET CUSTOMER_LAUNCH_TIME=:customerLaunchTime,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent WHERE CONTRACT_NUMBER=:contractNumber";
|
||||
sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("customerLaunchTime", time);
|
||||
sqlObject.setParameter("requestContent", requestContent);
|
||||
sqlObject.setParameter("responseContent", responseContent);
|
||||
sqlObject.setParameter("contractNumber", contractNumber);
|
||||
}
|
||||
} else {
|
||||
String sql = "UPDATE LC_CARD_TLSIGN SET CUSTOMER_LAUNCH_TIME=:customerLaunchTime,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent WHERE CONTRACT_NUMBER=:contractNumber";
|
||||
sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("customerLaunchTime", time);
|
||||
sqlObject.setParameter("requestContent", requestContent);
|
||||
sqlObject.setParameter("responseContent", responseContent);
|
||||
sqlObject.setParameter("contractNumber", contractNumber);
|
||||
}
|
||||
allinpayService.update(sqlObject);
|
||||
}
|
||||
String message = JSON.toJSONString(msg);
|
||||
response.getWriter().write(message);
|
||||
return null;
|
||||
}
|
||||
|
||||
// 通联卡扣协议签约
|
||||
public String allinPaySigning(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
Map<String, String> msg = new HashMap<>();
|
||||
msg.put("message", "error");
|
||||
|
||||
String verCode = request.getParameter("verCode");
|
||||
String contractId = request.getParameter("contractId");
|
||||
Map<String, String> messageMap = allinpayService.allinPaySigning(contractId);
|
||||
String contractNumber = messageMap.get("contractNumber");
|
||||
String phoneNumber = messageMap.get("phoneNumber");
|
||||
String time = DateAssistant.getTodayNow();
|
||||
|
||||
Cookie[] cookies = request.getCookies();
|
||||
Cookie cookie = AllinpayUtil.getCookie(phoneNumber, cookies);
|
||||
if (cookie == null) {
|
||||
msg.put("msg", "验证码失效,请重新获取验证码");
|
||||
String message = JSON.toJSONString(msg);
|
||||
response.getWriter().write(message);
|
||||
return null;
|
||||
}
|
||||
String reqSn = cookie.getValue();
|
||||
Map<String, String> mapXml = new HashMap<>();
|
||||
mapXml.put("reqSn", reqSn);
|
||||
mapXml.put("verCode", verCode);
|
||||
Map<String, String> map = factory.allinPaySigning(mapXml);
|
||||
|
||||
if (!"success".equals(map.get("message"))) {
|
||||
logger.info("系统异常或通联反馈异常:" + map.get("msg"));
|
||||
throw new Exception(map.get("msg"));
|
||||
} else {
|
||||
String requestContent = map.get("request");
|
||||
String responseContent = map.get("response");
|
||||
AipgRsp rsp = XmlParser.parseRsp(responseContent);
|
||||
InfoRsp infoRsp = rsp.getINFO();
|
||||
SqlObject sqlObject = null;
|
||||
if ("0000".equals(infoRsp.getRET_CODE())) {
|
||||
FAGRCRET ret = (FAGRCRET) rsp.trxObj();
|
||||
String retCode = ret.getRET_CODE();
|
||||
if (retCode != null && "0000".equals(retCode)) {
|
||||
msg.put("message", "success");
|
||||
String agrmNo = ret.getAGRMNO();
|
||||
String sql = "UPDATE LC_CARD_TLSIGN SET SIGN_TIME=:signTime,AGRMNO=:agrmno,SIGN_STATUS=:signStatus WHERE CONTRACT_NUMBER=:contractNumber";
|
||||
sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("signTime", time);
|
||||
sqlObject.setParameter("agrmno", agrmNo);
|
||||
sqlObject.setParameter("signStatus", "sign_status2");
|
||||
sqlObject.setParameter("contractNumber", contractNumber);
|
||||
} else {
|
||||
String sql = "UPDATE LC_CARD_TLSIGN SET SIGN_TIME=:signTime,SIGN_STATUS=:signStatus,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent WHERE CONTRACT_NUMBER=:contractNumber";
|
||||
sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("signTime", time);
|
||||
sqlObject.setParameter("signStatus", "sign_status3");
|
||||
sqlObject.setParameter("requestContent", requestContent);
|
||||
sqlObject.setParameter("responseContent", responseContent);
|
||||
sqlObject.setParameter("contractNumber", contractNumber);
|
||||
msg.put("msg", ret.getERR_MSG());
|
||||
}
|
||||
} else {
|
||||
String sql = "UPDATE LC_CARD_TLSIGN SET SIGN_TIME=:signTime,SIGN_STATUS=:signStatus,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent WHERE CONTRACT_NUMBER=:contractNumber";
|
||||
sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("signTime", time);
|
||||
sqlObject.setParameter("signStatus", "sign_status3");
|
||||
sqlObject.setParameter("requestContent", requestContent);
|
||||
sqlObject.setParameter("responseContent", responseContent);
|
||||
sqlObject.setParameter("contractNumber", contractNumber);
|
||||
msg.put("msg", infoRsp.getERR_MSG());
|
||||
}
|
||||
allinpayService.update(sqlObject);
|
||||
}
|
||||
String message = JSON.toJSONString(msg);
|
||||
response.getWriter().write(message);
|
||||
return null;
|
||||
}
|
||||
|
||||
// 通联签约页面
|
||||
public void allinPaySign(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
Transaction Sqlca = null;
|
||||
ASResultSet res = null;
|
||||
try {
|
||||
String contractId = DataConvert.toString(request.getParameter("con"));
|
||||
|
||||
String userName = "";
|
||||
String phoneNumber = "";
|
||||
String accNumber = "";
|
||||
String certId = "";
|
||||
String contractNumber = "";
|
||||
//String sql = "SELECT O.contract_number,ci.customername customername,ca.mobile phonenumber,ca.acc_number accNumber,cc.certid certId FROM LB_CONTRACT_INFO O LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = O.ID AND LUL.IS_MAIN = 'Y' LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID = LUL.CUSTOMER_ID and (CI.STATUS <> 'status04' or ci.STATUS is null) LEFT JOIN CUSTOMER_ACCOUNT CA ON CA.CONTRACT_ID = O.ID LEFT JOIN CUSTOMER_TEL CT ON CT.CUSTOMERID = CI.CUSTOMERID and ct.ISNEW='yes' LEFT JOIN CUSTOMER_CERT CC ON CI.CUSTOMERID = CC.CUSTOMERID and cc.STATUS in('valid','status02') WHERE O.id=:Id";
|
||||
String sql ="SELECT lpi.project_no contract_number,ca.account customername,ca.mobile phonenumber,ca.acc_number accNumber,ca.certid certId FROM lb_project_info lpi LEFT JOIN customer_account ca ON ca.project_id=lpi.ID WHERE lpi.id=:Id";
|
||||
Sqlca = Transaction.createTransaction("als");
|
||||
SqlObject sqlObject = new SqlObject(sql);
|
||||
sqlObject.setParameter("Id", contractId);
|
||||
res = Sqlca.getASResultSet(sqlObject);
|
||||
while (res.next()) {
|
||||
contractNumber = res.getString("contract_number");
|
||||
userName = res.getString("customername");
|
||||
phoneNumber = res.getString("phonenumber");
|
||||
accNumber = res.getString("accNumber");
|
||||
certId = res.getString("certId");
|
||||
}
|
||||
if (userName==null || "".equals(userName) || phoneNumber==null || "".equals(phoneNumber) || accNumber==null || "".equals(accNumber) || certId==null || "".equals(certId)) {
|
||||
throw new RuntimeException("信息不完整,请联系业务人员!");
|
||||
}
|
||||
|
||||
//
|
||||
BizObjectManager bomLDC = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_CARD_TLSIGN", Sqlca);
|
||||
BizObject ldc = bomLDC.createQuery("O.CONTRACT_NUMBER=:CONTRACT_NUMBER").setParameter("CONTRACT_NUMBER", contractNumber).getSingleResult(true);
|
||||
if(ldc == null){
|
||||
ldc = bomLDC.newObject();
|
||||
ldc.setAttributeValue("CONTRACT_NUMBER", contractNumber);
|
||||
ldc.setAttributeValue("SIGN_STATUS", "sign_status1");
|
||||
bomLDC.saveObject(ldc);
|
||||
}
|
||||
String contractNumberShort = "*****" + contractNumber.substring(contractNumber.length() - 6);
|
||||
String userNameShort = "*" + userName.substring(1, userName.length());
|
||||
String phoneNumberShort = "*****" + phoneNumber.substring(phoneNumber.length() - 4);
|
||||
String accNumberShort = "*****" + accNumber.substring(accNumber.length() - 4);
|
||||
String certIdShort = certId.substring(certId.length() - 6);
|
||||
request.setAttribute("userName", userName);
|
||||
request.setAttribute("contractNumber", contractNumber);
|
||||
request.setAttribute("phoneNumber", phoneNumber);
|
||||
request.setAttribute("certId", certId);
|
||||
request.setAttribute("accNumber", accNumber);
|
||||
request.setAttribute("contractNumberShort", contractNumberShort);
|
||||
request.setAttribute("userNameShort", userNameShort);
|
||||
request.setAttribute("phoneNumberShort", phoneNumberShort);
|
||||
request.setAttribute("accNumberShort", accNumberShort);
|
||||
request.setAttribute("certIdShort", certIdShort);
|
||||
request.setAttribute("contractId", contractId);
|
||||
request.getRequestDispatcher("/Sign_index.jsp").forward(request, response);
|
||||
} catch (Exception e) {
|
||||
if (Sqlca != null)
|
||||
try {
|
||||
Sqlca.rollback();
|
||||
} catch (Exception e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
e.printStackTrace();
|
||||
throw new ServletException("系统异常,请联系相关业务人员");
|
||||
} finally {
|
||||
if (res != null) {
|
||||
try {
|
||||
res.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (Sqlca != null)
|
||||
try {
|
||||
Sqlca.commit();
|
||||
Sqlca.disConnect();
|
||||
Sqlca = null;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
46
src/com/tenwa/lease/app/allinpay/servlet/BaseServlet.java
Normal file
46
src/com/tenwa/lease/app/allinpay/servlet/BaseServlet.java
Normal file
@ -0,0 +1,46 @@
|
||||
package com.tenwa.lease.app.allinpay.servlet;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
||||
public class BaseServlet extends HttpServlet {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
public Logger logger = Logger.getLogger(this.getClass());
|
||||
|
||||
@Override
|
||||
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
String md = request.getParameter("method");
|
||||
try {
|
||||
response.setContentType("text/html;charset=GBK");
|
||||
request.setCharacterEncoding("GBK");
|
||||
Class clazz = this.getClass();
|
||||
Method method = clazz.getMethod(md, HttpServletRequest.class, HttpServletResponse.class);
|
||||
String path = (String) method.invoke(this, request, response);
|
||||
if (path != null) {
|
||||
request.getRequestDispatcher(path).forward(request, response);
|
||||
return;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.info("method ·½·¨Òì³£»ò²»´æÔÚ");
|
||||
e.printStackTrace();
|
||||
throw new ServletException();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
119
src/com/tenwa/lease/app/allinpay/util/AllinpayProperties.java
Normal file
119
src/com/tenwa/lease/app/allinpay/util/AllinpayProperties.java
Normal file
@ -0,0 +1,119 @@
|
||||
package com.tenwa.lease.app.allinpay.util;
|
||||
|
||||
import java.security.Provider;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.allinpay.util.AIPGSignature;
|
||||
import com.allinpay.util.DemoUtil;
|
||||
import com.allinpay.util.HttpUtil;
|
||||
import com.allinpay.xml.XmlParser;
|
||||
import com.allinpay.xstruct.common.AipgReq;
|
||||
import com.allinpay.xstruct.common.InfoReq;
|
||||
import com.allinpay.xstruct.quickpay.FAGRA;
|
||||
import com.allinpay.xstruct.quickpay.FAGRCEXT;
|
||||
import com.allinpay.xstruct.quickpay.FASTTRX;
|
||||
import com.allinpay.xstruct.stdagr.QAGRINFO;
|
||||
import com.allinpay.xstruct.trans.qry.TransQueryReq;
|
||||
|
||||
public class AllinpayProperties {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(AllinpayProperties.class);
|
||||
|
||||
/**
|
||||
* 通联卡扣签约
|
||||
*
|
||||
* @param mapXml
|
||||
* @return
|
||||
*/
|
||||
public Map<String, String> allinPaySigning(Map<String, String> mapXml) {
|
||||
logger.info("开始调用通联卡扣签约接口");
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("message", "error");
|
||||
try {
|
||||
InfoReq infoReq = DemoUtil.makeReq("310002", ConfigConstant.allinPayMerchantId, ConfigConstant.allinPayUsername, ConfigConstant.allinPayUserpass);
|
||||
|
||||
FAGRCEXT fagrcext = new FAGRCEXT();
|
||||
fagrcext.setSRCREQSN(mapXml.get("reqSn"));
|
||||
fagrcext.setVERCODE(mapXml.get("verCode"));
|
||||
|
||||
fagrcext.setMERCHANT_ID(ConfigConstant.allinPayMerchantId);
|
||||
AipgReq aipgReq = new AipgReq();
|
||||
aipgReq.setINFO(infoReq);
|
||||
aipgReq.addTrx(fagrcext);
|
||||
String xml = XmlParser.toXml(aipgReq);
|
||||
String path = Thread.currentThread().getContextClassLoader().getResource("/").getPath();
|
||||
String signedXml = DemoUtil.buildSignedXml(xml, path + ConfigConstant.allinPayPathpfx, ConfigConstant.allinPayPfxpass);
|
||||
String url = ConfigConstant.allinPayUrl + "?MERCHANT_ID=" + ConfigConstant.allinPayMerchantId + "&REQ_SN=" + infoReq.getREQ_SN();
|
||||
String requestContent = signedXml + url;
|
||||
map.put("request", requestContent);
|
||||
logger.info("通联请求>>>>>>>>>>>" + signedXml);
|
||||
logger.info("通联请求地址>>>>>>>>>>>" + url);
|
||||
String respText = HttpUtil.post(signedXml, url);
|
||||
logger.info("通联响应>>>>>>>>>>>" + respText);
|
||||
map.put("response", respText);
|
||||
map.put("message", "success");
|
||||
logger.info("调用通联卡扣签约接口成功");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
map.put("msg", e.getMessage());
|
||||
logger.error("调用通联卡扣签约接口失败,系统异常或通联反馈异常:" + e.getMessage());
|
||||
}
|
||||
logger.info("结束调用通联卡扣签约接口");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通联卡扣发送短信
|
||||
*
|
||||
* @param mapXml
|
||||
* @return
|
||||
*/
|
||||
public Map<String, String> allinPaySendMessages(Map<String, String> mapXml) {
|
||||
logger.info("开始调用通联发送短信接口");
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("message", "error");
|
||||
try {
|
||||
InfoReq infoReq = DemoUtil.makeReq("310001", ConfigConstant.allinPayMerchantId, ConfigConstant.allinPayUsername, ConfigConstant.allinPayUserpass);
|
||||
|
||||
FAGRA fagra = new FAGRA();
|
||||
fagra.setACCOUNT_NAME(mapXml.get("userName"));
|
||||
fagra.setACCOUNT_NO(mapXml.get("accNumber"));
|
||||
fagra.setACCOUNT_PROP("0");
|
||||
fagra.setTEL(mapXml.get("phoneNumber"));
|
||||
fagra.setID(mapXml.get("certId"));
|
||||
fagra.setID_TYPE("0");
|
||||
fagra.setACCOUNT_TYPE("00");
|
||||
|
||||
fagra.setMERCHANT_ID(ConfigConstant.allinPayMerchantId);
|
||||
AipgReq aipgReq = new AipgReq();
|
||||
aipgReq.setINFO(infoReq);
|
||||
aipgReq.addTrx(fagra);
|
||||
String xml = XmlParser.toXml(aipgReq);
|
||||
String path = Thread.currentThread().getContextClassLoader().getResource("/").getPath();
|
||||
String signedXml = DemoUtil.buildSignedXml(xml, path + ConfigConstant.allinPayPathpfx, ConfigConstant.allinPayPfxpass);
|
||||
String url = ConfigConstant.allinPayUrl + "?MERCHANT_ID=" + ConfigConstant.allinPayMerchantId + "&REQ_SN=" + infoReq.getREQ_SN();
|
||||
String requestContent = signedXml + url;
|
||||
map.put("request", requestContent);
|
||||
logger.info("通联请求>>>>>>>>>>>" + signedXml);
|
||||
logger.info("通联请求地址>>>>>>>>>>>" + url);
|
||||
String respText = HttpUtil.post(signedXml, url);
|
||||
logger.info("通联响应>>>>>>>>>>>" + respText);
|
||||
map.put("response", respText);
|
||||
map.put("message", "success");
|
||||
logger.info("调用通联发送短信接口成功");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
map.put("msg", e.getMessage());
|
||||
logger.error("调用通联发送短信接口失败,系统异常或通联反馈异常:" + e.getMessage());
|
||||
}
|
||||
logger.info("结束调用通联发送短信接口");
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
24
src/com/tenwa/lease/app/allinpay/util/AllinpayUtil.java
Normal file
24
src/com/tenwa/lease/app/allinpay/util/AllinpayUtil.java
Normal file
@ -0,0 +1,24 @@
|
||||
package com.tenwa.lease.app.allinpay.util;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
|
||||
public class AllinpayUtil {
|
||||
|
||||
/**
|
||||
* ťńľĂÖ¸ś¨ĂűłĆľÄCookie
|
||||
*/
|
||||
public static Cookie getCookie(String name, Cookie[] cookies) {
|
||||
if(name==null||"".equals(name)) {
|
||||
return null;
|
||||
}
|
||||
if (cookies != null) {
|
||||
for (Cookie cookie : cookies) {
|
||||
if (name.equals(cookie.getName())) {
|
||||
return cookie;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
59
src/com/tenwa/lease/app/allinpay/util/ConfigConstant.java
Normal file
59
src/com/tenwa/lease/app/allinpay/util/ConfigConstant.java
Normal file
@ -0,0 +1,59 @@
|
||||
package com.tenwa.lease.app.allinpay.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class ConfigConstant {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ConfigConstant.class);
|
||||
|
||||
// 通联商户号
|
||||
public final static String allinPayMerchantId;
|
||||
|
||||
// 通联用户名
|
||||
public final static String allinPayUsername;
|
||||
|
||||
// 通联用户密码
|
||||
public final static String allinPayUserpass;
|
||||
|
||||
// 通联私钥密码
|
||||
public final static String allinPayPfxpass;
|
||||
|
||||
// 通联公钥
|
||||
public final static String allinPayPathcer;
|
||||
|
||||
// 通联商户私钥路径
|
||||
public final static String allinPayPathpfx;
|
||||
|
||||
// 通联测试接口地址
|
||||
public final static String allinPayUrl;
|
||||
|
||||
//用户点击url
|
||||
public final static String sendMessageUrl;
|
||||
|
||||
//用户点击url
|
||||
public final static String filePath;
|
||||
|
||||
static {
|
||||
Properties prop = new Properties();
|
||||
try {
|
||||
prop.load(ConfigConstant.class.getResourceAsStream("/allinPay.properties"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
logger.info("通联配置文件加载:" + prop.toString());
|
||||
allinPayMerchantId = prop.getProperty("allinPayMerchantId");
|
||||
allinPayUsername = prop.getProperty("allinPayUsername");
|
||||
allinPayUserpass = prop.getProperty("allinPayUserpass");
|
||||
allinPayPfxpass = prop.getProperty("allinPayPfxpass");
|
||||
allinPayPathcer = prop.getProperty("allinPayPathcer");
|
||||
allinPayPathpfx = prop.getProperty("allinPayPathpfx");
|
||||
allinPayUrl = prop.getProperty("allinPayUrl");
|
||||
sendMessageUrl = prop.getProperty("sendMessageUrl");
|
||||
filePath = prop.getProperty("filePath");
|
||||
}
|
||||
|
||||
}
|
||||
48
src_jbo/jbo/app/tenwa/calc/LC_CARD_TLSIGN.java
Normal file
48
src_jbo/jbo/app/tenwa/calc/LC_CARD_TLSIGN.java
Normal file
@ -0,0 +1,48 @@
|
||||
package jbo.app.tenwa.calc;
|
||||
|
||||
import java.lang.String;
|
||||
|
||||
/**
|
||||
* 通联签约信息表 - JBO命名常量类<br><br>
|
||||
* Note: This file is generated by ADE tools, <em>dont</em> modify it.<br>
|
||||
|
||||
*/
|
||||
public interface LC_CARD_TLSIGN{
|
||||
/**
|
||||
* 通联签约信息表<br><br>
|
||||
* 代表本类映射的BizObjectClass
|
||||
*/
|
||||
public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_CARD_TLSIGN";
|
||||
/**
|
||||
* ID STRING(100)<br>
|
||||
*/
|
||||
public static final String ID = "ID";
|
||||
/**
|
||||
* 合同号 STRING(100)<br>
|
||||
*/
|
||||
public static final String CONTRACT_NUMBER = "CONTRACT_NUMBER";
|
||||
/**
|
||||
* 请求内容 STRING(2147483647)<br>
|
||||
*/
|
||||
public static final String REQUEST_CONTENT = "REQUEST_CONTENT";
|
||||
/**
|
||||
* 响应内容 STRING(2147483647)<br>
|
||||
*/
|
||||
public static final String RESPONSE_CONTENT = "RESPONSE_CONTENT";
|
||||
/**
|
||||
* 签约状态 STRING(100)<br>
|
||||
*/
|
||||
public static final String SIGN_STATUS = "SIGN_STATUS";
|
||||
/**
|
||||
* 签约时间 STRING(100)<br>
|
||||
*/
|
||||
public static final String SIGN_TIME = "SIGN_TIME";
|
||||
/**
|
||||
* 客户发起时间 STRING(100)<br>
|
||||
*/
|
||||
public static final String CUSTOMER_LAUNCH_TIME = "CUSTOMER_LAUNCH_TIME";
|
||||
/**
|
||||
* 协议号 STRING(100)<br>
|
||||
*/
|
||||
public static final String AGRMNO = "AGRMNO";
|
||||
}
|
||||
@ -95,8 +95,23 @@ insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `I
|
||||
insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('1f1719c31a70468283e3891089e942c9','c901f36d5d4e48a89b66dd3bc736afac','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL);
|
||||
insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('32af84ce27644c19b55d745ffbc5fc5d','bbe36e81f17542078489f223239e658a','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL);
|
||||
-- Ìí¼Ó±êÇ©
|
||||
insert into `BF_LABLECONFIG` (`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) values('c901f36d5d4e48a89b66dd3bc736afac','0050','lh_moneyinfo','ÁªºÏ×âÁÞºÏͬģ°å','tag_type2','value_type3','pgdj,zlwzj,gps,zf,hj,nl,nll','select EQUIP_AMT AS pgdj,EQUIP_AMT AS zlwzj,IFNULL(GPS_FEE,0)+IFNULL(INSURANCE_PREMIUM,0) as gps,IFNULL(INCIDENTAL,0) AS zf,IFNULL(GPS_FEE,0)+IFNULL(INSURANCE_PREMIUM,0)+IFNULL(INCIDENTAL,0) as hj,ROUND(YEAR_RATE,2) AS nl,round(YEAR_RATE,2) AS nll from lc_calc_condition_temp WHERE flowunid=:{FLOW_UNID}','','N','','','','','','','','word_default_class');
|
||||
|
||||
insert into `BF_LABLECONFIG` (`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) values('c901f36d5d4e48a89b66dd3bc736afac','0050','lh_moneyinfo','联合租赁合同模板','tag_type2','value_type3','pgdj,zlwzj,gps,zf,hj,nl,nll,bxf','SELECT EQUIP_AMT AS pgdj,EQUIP_AMT AS zlwzj,IFNULL(GPS_FEE,0) AS gps,IFNULL(INCIDENTAL,0) AS zf,IFNULL(GPS_FEE,0)+IFNULL(INSURANCE_PREMIUM,0)+IFNULL(INCIDENTAL,0) AS hj,ROUND(YEAR_RATE,2) AS nl,ROUND(YEAR_RATE,2) AS nll,IFNULL(INSURANCE_PREMIUM,0) AS bxf FROM lc_calc_condition_temp WHERE flowunid=:{FLOW_UNID}','','N','','','','','','','','word_default_class');
|
||||
|
||||
|
||||
-- 添加通联卡扣签约表
|
||||
CREATE TABLE LC_CARD_TLSIGN(
|
||||
ID VARCHAR(100) NOT NULL COMMENT 'id',
|
||||
CONTRACT_NUMBER VARCHAR(100) DEFAULT NULL COMMENT '合同号',
|
||||
SIGN_STATUS VARCHAR(100) DEFAULT NULL COMMENT '签约状态',
|
||||
SIGN_TIME VARCHAR(100) DEFAULT NULL COMMENT '签约时间',
|
||||
CUSTOMER_LAUNCH_TIME VARCHAR(100) DEFAULT NULL COMMENT '客户发起时间',
|
||||
AGRMNO VARCHAR(100) DEFAULT NULL COMMENT '协议号',
|
||||
REQUEST_CONTENT TEXT DEFAULT NULL COMMENT '请求内容',
|
||||
RESPONSE_CONTENT TEXT DEFAULT NULL COMMENT '响应内容'
|
||||
);
|
||||
INSERT INTO CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITEMDESCRIBE, ITEMATTRIBUTE, RELATIVECODE,ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7,ATTRIBUTE8, INPUTUSER, INPUTORG, INPUTTIME, UPDATEUSER, UPDATETIME, REMARK, HELPTEXT) VALUES ('sign_status', 'sign_status1', '已发起签约', NULL, '0010', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'SYS_Designer', NULL, '2019/01/07 19:14:10', 'SYS_Designer', '2019/01/07 19:14:10', NULL, NULL);
|
||||
INSERT INTO CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITEMDESCRIBE, ITEMATTRIBUTE, RELATIVECODE,ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7,ATTRIBUTE8, INPUTUSER, INPUTORG, INPUTTIME, UPDATEUSER, UPDATETIME, REMARK, HELPTEXT)VALUES ('sign_status', 'sign_status2', '完成签约', NULL, '0020', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'SYS_Designer', NULL, '2019/01/07 19:14:10', 'SYS_Designer', '2019/01/07 19:14:10', NULL, NULL);
|
||||
INSERT INTO CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITEMDESCRIBE, ITEMATTRIBUTE, RELATIVECODE,ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7,ATTRIBUTE8, INPUTUSER, INPUTORG, INPUTTIME, UPDATEUSER, UPDATETIME, REMARK, HELPTEXT)VALUES ('sign_status', 'sign_status3', '签约失败', NULL, '0030', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL, NULL, 'SYS_Designer', NULL, '2019/01/07 19:14:10', 'SYS_Designer', '2019/01/07 19:14:10', NULL, NULL);
|
||||
INSERT INTO CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITEMDESCRIBE, ITEMATTRIBUTE, RELATIVECODE,ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7,ATTRIBUTE8, INPUTUSER, INPUTORG, INPUTTIME, UPDATEUSER, UPDATETIME, REMARK, HELPTEXT)VALUES ('sign_status', 'sign_status4', '签约失效', NULL, '0040', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL, NULL, 'SYS_Designer', NULL, '2019/01/07 19:14:10', 'SYS_Designer', '2019/01/07 19:14:10', NULL, NULL);
|
||||
INSERT INTO CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITEMDESCRIBE, ITEMATTRIBUTE, RELATIVECODE, ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7, ATTRIBUTE8, INPUTUSER, INPUTORG, INPUTTIME, UPDATEUSER, UPDATETIME, REMARK, HELPTEXT) VALUES ('sign_status', 'sign_status5','正在签约', NULL, '0050', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'SYS_Designer', NULL, '2019/01/07 19:14:10', 'SYS_Designer', '2019/01/07 19:14:10', NULL, NULL);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user