通联卡扣签约验证

This commit is contained in:
tangfutang 2020-08-27 17:21:17 +08:00
parent 5dbb6a27de
commit d8dff56edd
22 changed files with 1785 additions and 3 deletions

211
WebContent/Sign_index.jsp Normal file
View 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">&nbsp;</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">&nbsp;</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>

View File

@ -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>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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

File diff suppressed because one or more lines are too long

154
WebContent/css/gloab.css Normal file
View 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
View 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
View 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_boxresend,填写验证框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)
}
}

View 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=

View 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);
}

View File

@ -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();
}
}
}
}

View File

@ -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 合同idverCode验证码
* @return
* @throws Exception
*/
public Map<String, String> allinPaySigning(String contractId) throws Exception;
}

View File

@ -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;
}
}

View 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();
}
}
}
}

View 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();
}
}
}

View 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;
}
}

View 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;
}
}

View 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");
}
}

View 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";
}

View File

@ -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);