asp.net mvc3开发系统点滴之三
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<SQSMvcSolution.Models.Model.TicketPlans>>" %>
<%@ Import Namespace="SQSMvcSolution.Extensions" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head , new { });%>--%>
<script language="javascript" type="text/javascript">
function isnumeric(i) {
var booknum = $('#booknum_' + i).val();
if (!(/^\d+$/.test(booknum))) {
alert("对不起,请输入有效数字!");
return false;
}
else {
if (parseInt(booknum) > 1000) {
alert("对不起,同种票类预订数不能超过1000!");
return false;
}
else
{
isckbx();
}
}
return true;
}
function delshop(i)
{
if (confirm("是否确定要退订?")) {
$("#tr_" + i).remove();
isckbx();
}
}
function clearshop()
{
if (confirm("确定清空购物车吗?")) {
var rowcount = $('#tickegrid tr').length - 1;
for (var i = 1; i <= rowcount; i++) {
$("#tr_" + i).remove();
}
$('#loading_div').show();
$.getJSON
(
"/Ticket/TicketShopCarClear",
"",
function(result) {
if (result == '1') {
$('#loading_div').hide();
}
else if (result == '0') {
$('#loading_div').show();
}
}
);
}
}
</script>
<script language="javascript" type="text/javascript">
function checkbook()
{
var rowcount = $('#tickegrid tr').length - 1;
var mnum;
if (rowcount > 0)
{
for (var i = 1; i <= rowcount; i++)
{
mnum = $.trim($('#booknum_' + i).val());
if (!(/^\d+$/.test(mnum)))
{
alert("对不起,请输入有效数字!");
return;
}
location.href="/Ticket/TicketOrder";
}
}
}
function isckbx()
{
var tickettype_no;
var tickettype_code;
var tickettype_name;
var tickettype_price;
var ticketsaleplan_discountprice;
var ticketsaleplan_validdaysum;
var scenicspots_code;
var ticketsaleplan_no;
var mnum;
var traveldate;
var preorder;
var order;
var rowcount = $('#tickegrid tr').length - 1;
if (rowcount > 0) {
for (var i = 1; i <= rowcount; i++)
{
mnum = $.trim($('#booknum_' + i).val());
preorder = $('#orderticketinfo').val();
tickettype_no = $.trim($('#tickettype_no_' + i).html());
tickettype_code = $.trim($('#tickettype_code_' + i).html());
tickettype_name = $.trim($('#tickettype_name_' + i).html());
tickettype_price = $.trim($('#tickettype_price_' + i).html());
ticketsaleplan_discountprice = $.trim($('#ticketsaleplan_discountprice_' + i).html());
ticketsaleplan_validdaysum = $.trim($('#ticketsaleplan_validdaysum_' + i).html());
scenicspots_code = $.trim($('#scenicspots_code_' + i).html());
ticketsaleplan_no = $.trim($('#ticketsaleplan_no_' + i).html());
mnum = $.trim($('#booknum_' + i).val());
traveldate = $.trim($('#traveldate_' + i).html());
order = tickettype_no + "," + tickettype_code + "," + tickettype_name + "," + tickettype_price + "," + ticketsaleplan_discountprice + "," + ticketsaleplan_validdaysum + "," + scenicspots_code + "," + ticketsaleplan_no + "," + mnum + "," + traveldate;
if (preorder == 0) {
order = order;
}
else {
order = order + "|" + preorder;
}
$('#orderticketinfo').val(order);
}
updateshopcar($('#orderticketinfo').val());
return true;
}
else
{
alert("对不起,购物车已清空!");
return false;
}
}
function updateshopcar(orderticket) {
$('#loading_div').show();
$.post("/Ticket/TicketShopCarUpdate", { orderticketinfo: escape(orderticket) },
function(json) {
if (json == '1') {
$('#loading_div').hide();
$('#orderticketinfo').val(0); //状态返回初始化
}
else if (json == '0') {
$('#loading_div').show();
$('#orderticketinfo').val(0); //状态返回初始化
}
}, "json");
}
</script>
<script type="text/javascript">
$(function() {
$('#h_loading').show();
$.ajax
(
{
url: "/Home/UC_Head",
cache: false,
success: function(html) {
$('#h_loading').hide();
$("#uchead").append(html);
}
}
);
});
</script>
</head>
<body>
<div ); %>--%>
</body>
</html>
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IList<SQSMvcSolution.Models.Model.ScenicSpots>>" %>
<%@ Import Namespace="SQSMvcSolution.Extensions" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head , new { });%>
<script type="text/javascript">
function checkbook() {
//var item = $(":radio:checked");
var item = $(":checkbox:checked");
var len = item.length;
if (len == 0) {
alert("请选择景点类型!");
return false;
}
else {
if ($("#ticketbooktime").val() == "") {
alert("请选择游览日期!");
$("#ticketbooktime").focus();
return false;
}
var book = "";
$("[name='scenicspots'][checked]").each(function() {
if (len == 1) {
book = $(this).val() + "";
}
else {
book += $(this).val() + "/";
}
});
if (book == null || book == "") {
return false;
}
else {
$('#loading_div').show();
$.getJSON("/Ticket/TicketExsit", { scenicspots: book }, callback);
function callback(data) {
if (data == 1) {
$('#loading_div').hide();
$('#checkscenic').val(book);
document.forms["bookform"].submit();
return true;
}
else if (data == 0) {
$('#loading_div').hide();
alert("对不起,该门票不存在,请重新选择!");
return false;
}
else if (data == -1) {
$('#loading_div').hide();
location.href = "../CommError.htm";
return false;
}
}
}
}
}
</script>
<script type="text/javascript">
$(function() {
$('#h_loading').show();
$.ajax
(
{
url: "/Home/UC_Head",
cache: false,
success: function(html) {
$('#h_loading').hide();
$("#uchead").append(html);
}
}
);
});
</script>
</head>
<body>
<div ); %>--%>
</body>
</html>
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<SQSMvcSolution.Models.Model.TicketPlans>>" %>
<%@ Import Namespace="SQSMvcSolution.Extensions" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head , new { });%>
<script type="text/javascript">
$(document).ready
(function() {
$.formValidator.initConfig({ formid: "orderform" });
$("input:radio[name='usevalid']").formValidator({ tipid: "usevalidTip", onfocus: "请选择验证方式!", oncorrect: "谢谢合作!" }).inputValidator({ min: 1, max: 1, onerror: "验证方式别忘记选了,请确认!" });
$("#username").formValidator({ onshow: "请输入用户名,由数字、26个英文字母或下划线组成!", onfocus: "用户名至少6位字符,最多10位字符,请确认!", oncorrect: "该用户名可以注册!" }).inputValidator({ min: 6, max: 10, onerror: "用户名至少6位字符,最多10位字符,请确认!" }).regexValidator({ regexp: "username", datatype: "enum", onerror: "用户名格式不正确,请确认!" });
$("#password").formValidator({ onshow: "请输入密码,由数字、26个英文字母或下划线组成!", onfocus: "密码至少6位字符!", oncorrect: "密码合法!" }).inputValidator({ min: 6, empty: { leftempty: false, rightempty: false, emptyerror: "密码两边不能有空符号!" }, onerror: "密码非空且至少6位字符,请确认!" }).regexValidator({ regexp: "username", datatype: "enum", onerror: "由数字、26个英文字母或下划线组成,请确认!" });
$("input:radio[name='cardtype']").formValidator({ tipid: "cardtypeTip", onshow: "请选择证件类别!", onfocus: "请选择证件类别", oncorrect: "谢谢合作!" }).inputValidator({ min: 1, max: 1, onerror: "证件类型别忘记选了,请确认!" });
$("#idcard").formValidator({ onshow: "请输入证件号码!", onfocus: "请输入正确的证件号码!", oncorrect: "谢谢合作!" }).functionValidator
({
fun: function(val, elem) {
var regex;
var item = $('input[@name=cardtype][@checked]').val();
if (item == "0") {
var idcard = val;
var area = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" }
var idcard, Y, JYM;
var S, M;
if (!/^\d{17}(\d|x)$/i.test(idcard)) return false;
var idcard_array = new Array();
idcard_array = idcard.split("");
if (area[parseInt(idcard.substr(0, 2))] == null) return false;
switch (idcard.length) {
case 15:
if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; //测试出生日期的合法性
}
else {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; //测试出生日期的合法性
}
if (ereg.test(idcard)) {
return true;
}
else {
return false;
}
break;
case 18:
if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {
ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/; //闰年出生日期的合法性正则表达式
}
else {
ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/; //平年出生日期的合法性正则表达式
}
if (ereg.test(idcard)) {
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y, 1);
if (M == idcard_array[17])
return true;
else
return false;
}
else
return false;
break;
default:
return false;
break;
}
}
else if (item == "1") {
regex = new RegExp("(P\d{7})|G\d{8}");
if (regex.test(val)) {
return true;
}
else {
return false;
}
}
}
}).inputValidator({ min: 1, max: 18, onerror: "证件号码有误,请确认!" });
$("#memo").formValidator({ empty: true, onempty: "您真的不想留备注吗?" }).inputValidator({ min: 0, max: 100, onerror: "备注字符长度最多为100,请确认!" });
$("input:radio[name='paytype']").formValidator({ tipid: "paytypeTip", onshow: "请选择支付方式!", onfocus: "请选择支付方式!", oncorrect: "谢谢合作!" }).inputValidator({ min: 1, max: 1, onerror: "支付方式别忘记选了,请确认!" });
runbookpice();
});
</script>
<script language="javascript" type="text/javascript">
function checkorder(i) {
var ex;
var traveldate;
var tickettype;
var tolbookman;
var tolbookprice;
var usevalid;
var username;
var password;
var username;
var cardtype;
var idcard;
var memo;
var ordernum;
var tuidinfo = 0;
var d;
var orderdate;
var paytype;
ex = $.formValidator.pageIsValid();
if (ex == true) {
traveldate = $('#traveldateinfo').val();
tickettype = $('#orderticketinfo').val();
tolbookman = $.trim($('#tolbookmen').html());
tolbookprice = $.trim($('#tolbookprice').html());
usevalid = $("[name='usevalid'][checked]").val();
username = $('#username').val();
password = $('#password').val();
cardtype = $("[name='cardtype'][checked]").val();
paytype = $("[name='paytype'][checked]").val();
idcard = $('#idcard').val();
memo = $('#memo').val();
orderdate = formatdate(2);
d = new Date();
if (i == 0) //立即支付
{
$.blockUI({ overlayCSS: { backgroundColor: '#333' }, css: { width: '230px', height: '23px' }, message: '<img width="20" height="20" src="http://images.cnblogs.com/loading.gif" alt="" /><font > 订单正在处理中,请稍等......</font>' });
$.getJSON("/Ticket/TicketNowPay",
{
weborder_usertype: parseInt(usevalid),
webuser_no: tuidinfo,
weborder_time: orderdate,
weborder_tickettype: tickettype,
weborder_touristsum: parseInt(tolbookman),
weborder_pricesum: parseFloat(tolbookprice),
weborder_arrivaltime: traveldate,
weborder_payment: parseInt(paytype),
weborder_paid: 0,
weborder_gettickettype: 1,
weborder_getticket: idcard,
weborder_userno: username,
weborder_userpassword: password,
weborder_memo: escape(memo)
}, callback);
function callback(data) {
var urlsate = eval('(' + data + ')');
if (urlsate.state == 1) {
location.href = urlsate.url;
return true;
}
else if (urlsate.state == 0) {
location.href = urlsate.url;
return true;
}
else if (urlsate.state == -1) {
location.href = urlsate.url;
return true;
}
}
}
else if (i == 1)//延时支付
{
if ($('input[@name=usevalid][@checked]').val() == "1") {
$.unblockUI;
alert("对不起,匿名用户不支持此项功能!若要此项功能请登录注册!");
return false;
}
else {
$.blockUI({ overlayCSS: { backgroundColor: '#333' }, css: { width: '230px', height: '23px' }, message: '<img width="20" height="20" src="http://images.cnblogs.com/loading.gif" alt="" /><font > 订单正在处理中,请稍等......</font>' });
$.getJSON("/Ticket/TicketLastPay",
{
weborder_usertype: parseInt(usevalid),
webuser_no: tuidinfo,
weborder_time: orderdate,
weborder_tickettype: tickettype,
weborder_touristsum: parseInt(tolbookman),
weborder_pricesum: parseFloat(tolbookprice),
weborder_arrivaltime: traveldate,
weborder_payment: parseInt(paytype),
weborder_paid: 0,
weborder_gettickettype: 1,
weborder_getticket: idcard,
weborder_userno: username,
weborder_userpassword: password,
weborder_memo: escape(memo)
}, callback);
function callback(data) {
var urlsate = eval('(' + data + ')');
if (urlsate.state == 1) {
location.href = urlsate.url;
return true;
}
else if (urlsate.state == 0) {
location.href = urlsate.url;
return true;
}
else if (urlsate.state == -1) {
location.href = urlsate.url;
return true;
}
}
}
}
}
else {
alert("校验没有通过,请看错误提示!");
return false;
}
}
//自动补零
function appendzero(n) {
return (("00" + n).substr(("00" + n).length - 2));
}
//把年份格式化成4位
function formatyear(theYear) {
var tmpYear = parseInt(theYear, 10);
if (tmpYear < 100) {
tmpYear += 1900;
if (tmpYear < 1940) {
tmpYear += 100;
}
}
if (tmpYear < this.MinYear) {
tmpYear = this.MinYear;
}
if (tmpYear > this.MaxYear) {
tmpYear = this.MaxYear;
}
return (tmpYear);
}
function formatdate(formattype) {
var dateString = "";
var day = new Date();
var thisyear = formatyear(day.getFullYear());
var thismonth = appendzero(day.getMonth() + 1);
var thisday = appendzero(day.getDate());
var thishour = appendzero(day.getHours());
var thismin = appendzero(day.getMinutes());
var thissec = appendzero(day.getSeconds());
switch (formattype) {
case 0:
dateString = thisyear + "年" + thismonth + "月" + thisday + "日";
break;
case 1:
dateString = thisyear + "-" + thismonth + "-" + thisday;
break;
case 2:
dateString = thisyear + "-" + thismonth + "-" + thisday + " " + appendzero(thishour) + ":" + appendzero(thismin) + ":" + appendzero(thissec);
break;
default:
dateString = thisyear + "-" + thismonth + "-" + thisday;
}
return dateString;
}
</script>
<script language="javascript" type="text/javascript">
function runbookpice() {
var tickettype_no;
var ticketsaleplan_discountprice;
var mnum;
var rowcount = $('#tickegrid tr').length - 1;
var tol;
var tolbookprice = 0;
var tolbookman = 0;
var tickettype = "";
var traveldate = "";
var type_no;
if (rowcount > 0) {
for (var i = 1; i <= rowcount; i++) {
tickettype_no = $.trim($('#tickettype_no_' + i).html());
ticketsaleplan_discountprice = $.trim($('#ticketsaleplan_discountprice_' + i).html());
mnum = $.trim($('#booknum_' + i).html());
ticketsaleplan_discountprice = parseFloat(ticketsaleplan_discountprice);
mnum = parseInt(mnum);
tolbookman = tolbookman + mnum;
tol = (ticketsaleplan_discountprice * mnum);
tolbookprice = tolbookprice + tol;
tol = tol.toFixed(2);
type_no = tickettype_no + "=" + mnum + "/";
tickettype = tickettype + type_no;
traveldate = $.trim($('#traveldate_' + i).html());
document.getElementById("bookprice_" + i).innerHTML = tol;
}
$('#orderticketinfo').val(tickettype);
$('#traveldateinfo').val(traveldate);
document.getElementById("tolbookprice").innerHTML = tolbookprice.toFixed(2);
document.getElementById("tolbookmen").innerHTML = tolbookman;
}
}
</script>
<script type="text/javascript">
$(function() {
$('#loading_div').show();
$.ajax
(
{
url: "/Home/UC_Head",
cache: false,
success: function(html) {
$('#loading_div').hide();
$("#uchead").append(html);
}
}
);
});
</script>
</head>
<body>
<div })%>
</td>
<td height="25" bgcolor="#FFFFFF">
<div ); %>
</body>
</html>
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<SQSMvcSolution.Models.Model.TicketPlans>>" %>
<%@ Import Namespace="SQSMvcSolution.Extensions" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<%--<%Html.RenderPartial("~/Views/Home/UC_Meta.ascx"); %>--%>
<%Html.RenderPartial("UC_Meta"); %>
<%Html.RegisterScript("/js/jquery.js", new { });%>
<script language="javascript" type="text/javascript">
function isnumeric(i, type)
{
switch (type) {
case 'a':
var booknum = $('#booknum_0_' + i).val();
break;
case 'b':
var booknum = $('#booknum_1_' + i).val();
break;
case 'c':
var booknum = $('#booknum_2_' + i).val();
break;
default:
break;
}
if (!(/^\d+$/.test(booknum)))
{
alert("对不起,请输入有效数字!");
return false;
}
else
{
if (parseInt(booknum) > 1000)
{
alert("对不起,同种票类预订人数不能超过1000!");
return false;
}
}
return true;
}
</script>
<script language="javascript" type="text/javascript">
function checkbook()
{
var cknum = $("input[@name=bookitem][checked]").length;
if (cknum == 0) {
alert("对不起,您还没有勾选相应的票!");
return false;
}
else
{
var tickettype_no;
var tickettype_code;
var tickettype_name;
var tickettype_price;
var ticketsaleplan_discountprice;
var ticketsaleplan_validdaysum;
var scenicspots_code;
var ticketsaleplan_no;
var mnum;
var traveldate;
var preorder;
var order;
var rowcount = $('#tickegrid tr').length - 1;
for (var i = 1; i <= rowcount; i++)
{
if ($('#bookitem_0_' + i).attr('checked'))
{
mnum = $.trim($('#booknum_0_' + i).val());
if (!(/^\d+$/.test(mnum)))
{
alert("对不起,请输入有效数字!");
return;
}
preorder = $('#orderticketinfo').val();
tickettype_no = $.trim($('#tickettype_no_0_' + i).html());
tickettype_code = $.trim($('#tickettype_code_0_' + i).html());
tickettype_name = $.trim($('#tickettype_name_0_' + i).html());
tickettype_price = $.trim($('#tickettype_price_0_' + i).html());
ticketsaleplan_discountprice = $.trim($('#ticketsaleplan_discountprice_0_' + i).html());
ticketsaleplan_validdaysum = $.trim($('#ticketsaleplan_validdaysum_0_' + i).html());
scenicspots_code = $.trim($('#scenicspots_code_0_' + i).html());
ticketsaleplan_no = $.trim($('#ticketsaleplan_no_0_' + i).html());
traveldate = $.trim($('#traveldate_0_' + i).html());
order = tickettype_no + "," + tickettype_code + "," + tickettype_name + "," + tickettype_price + "," + ticketsaleplan_discountprice + "," + ticketsaleplan_validdaysum + "," + scenicspots_code + "," + ticketsaleplan_no + "," + mnum + "," + traveldate;
if (preorder == 0) {
order = order;
}
else {
order = order + "|" + preorder;
}
$('#orderticketinfo').val(order);
document.forms["bookform"].submit();
}
else if ($('#bookitem_1_' + i).attr('checked'))
{
mnum = $.trim($('#booknum_1_' + i).val());
if (!(/^\d+$/.test(mnum)))
{
alert("对不起,请输入有效数字!");
return;
}
preorder = $('#orderticketinfo').val();
tickettype_no = $.trim($('#tickettype_no_1_' + i).html());
tickettype_code = $.trim($('#tickettype_code_1_' + i).html());
tickettype_name = $.trim($('#tickettype_name_1_' + i).html());
tickettype_price = $.trim($('#tickettype_price_1_' + i).html());
ticketsaleplan_discountprice = $.trim($('#ticketsaleplan_discountprice_1_' + i).html());
ticketsaleplan_validdaysum = $.trim($('#ticketsaleplan_validdaysum_1_' + i).html());
scenicspots_code = $.trim($('#scenicspots_code_1_' + i).html());
ticketsaleplan_no = $.trim($('#ticketsaleplan_no_1_' + i).html());
traveldate = $.trim($('#traveldate_1_' + i).html());
order = tickettype_no + "," + tickettype_code + "," + tickettype_name + "," + tickettype_price + "," + ticketsaleplan_discountprice + "," + ticketsaleplan_validdaysum + "," + scenicspots_code + "," + ticketsaleplan_no + "," + mnum + "," + traveldate;
if (preorder == 0) {
order = order;
}
else {
order = order + "|" + preorder;
}
$('#orderticketinfo').val(order);
document.forms["bookform"].submit();
}
else if ($('#bookitem_2_' + i).attr('checked'))
{
mnum = $.trim($('#booknum_2_' + i).val());
if (!(/^\d+$/.test(mnum)))
{
alert("对不起,请输入有效数字!");
return;
}
preorder = $('#orderticketinfo').val();
tickettype_no = $.trim($('#tickettype_no_2_' + i).html());
tickettype_code = $.trim($('#tickettype_code_2_' + i).html());
tickettype_name = $.trim($('#tickettype_name_2_' + i).html());
tickettype_price = $.trim($('#tickettype_price_2_' + i).html());
ticketsaleplan_discountprice = $.trim($('#ticketsaleplan_discountprice_2_' + i).html());
ticketsaleplan_validdaysum = $.trim($('#ticketsaleplan_validdaysum_2_' + i).html());
scenicspots_code = $.trim($('#scenicspots_code_2_' + i).html());
ticketsaleplan_no = $.trim($('#ticketsaleplan_no_2_' + i).html());
traveldate = $.trim($('#traveldate_2_' + i).html());
order = tickettype_no + "," + tickettype_code + "," + tickettype_name + "," + tickettype_price + "," + ticketsaleplan_discountprice + "," + ticketsaleplan_validdaysum + "," + scenicspots_code + "," + ticketsaleplan_no + "," + mnum + "," + traveldate;
if (preorder == 0) {
order = order;
}
else {
order = order + "|" + preorder;
}
$('#orderticketinfo').val(order);
document.forms["bookform"].submit();
}
}
return true;
}
return true;
}
</script>
<script type="text/javascript">
$(function() {
$('#h_loading').show();
$.ajax
(
{
url: "/Home/UC_Head",
cache: false,
success: function(html) {
$('#h_loading').hide();
$("#uchead").append(html);
}
}
);
});
</script>
</head>
<body>
<div ); %>--%>
</body>
</html>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using SQSMvcSolution.Models;
using SQSMvcSolution.Commans;
using System.Web.Routing;
using SQSMvcSolution.Filters;
using System.Data;
using Discuz.Common;
using Discuz.Forum;
using Discuz.Config;
using Discuz.Plugin.Payment;
using Discuz.Plugin.Payment.Alipay;
namespace SQSMvcSolution.Controllers
{
/// <summary>
/// 票务控制器
/// </summary>
/// <author>方向华</author>
//[ExceptionFilter]
public class TicketController : GlobalController
{
/// <summary>
/// 票务项目动作
/// </summary>
/// <author>方向华</author>
/// <codedate>2009/12/2</codedate>
/// <returns></returns>
//[OutputCache(Duration = 1200, VaryByParam = "")]
public ActionResult TicketProject()
{
Title = "三清山景点列表";
SQSMvcSolution.Models.BLL.Ticket Bl = new SQSMvcSolution.Models.BLL.Ticket();
IList<SQSMvcSolution.Models.Model.ScenicSpots> l = Bl.GetAllScenicSpots();
if (l == null)
{
return Redirect("Error.htm");
}
else
{
return View(l);
}
}
/// <summary>
/// 票务预订动作
/// </summary>
/// <author>方向华</author>
/// <codedate>2009/12/2</codedate>
/// <returns></returns>
//[FormFilter(ActionName = "TicketBook")]
public ActionResult TicketBook()
{
Title = "三清山门票列表";
string ticketbooktime = string.Empty;
string scenicspots = string.Empty;
string orderticketinfo = string.Empty;
SQSMvcSolution.Models.BLL.Ticket Bl = new SQSMvcSolution.Models.BLL.Ticket();
if (!string.IsNullOrEmpty(Request.Form["ticketbooktime"]) && !string.IsNullOrEmpty(Request.Form["checkscenic"]))
{
ticketbooktime = Request.Form["ticketbooktime"].Trim();
scenicspots = Request.Form["checkscenic"].Trim();
ViewData["ticketbooktime"] = ticketbooktime;
Session["BookCon"] = ticketbooktime + "|" + scenicspots;
IList<SQSMvcSolution.Models.Model.TicketPlans> l = Bl.GetAllTicketPlans(scenicspots);
if (l == null)//通信异常
{
return Redirect("CommError.htm");
}
else
{
return View(l);
}
}
else
{
if (Session["BookCon"] != null)
{
ArrayList arrcon = new ArrayList(Session["BookCon"].ToString().Split('|'));
ticketbooktime = arrcon[0].ToString();
scenicspots = arrcon[1].ToString();
ViewData["ticketbooktime"] = ticketbooktime;
if (Session["ShopCart"] != null)
{
IList<SQSMvcSolution.Models.Model.TicketPlans> ls = Session["ShopCart"] as IList<SQSMvcSolution.Models.Model.TicketPlans>;
ViewData["orderticketinfo"] = ls;
}
IList<SQSMvcSolution.Models.Model.TicketPlans> l = Bl.GetAllTicketPlans(scenicspots);
if (l == null)//通信异常
{
return Redirect("CommError.htm");
}
else
{
return View(l);
}
}
}
return View();
}
/// <summary>
/// 票务购物车动作
/// </summary>
/// <author>方向华</author>
/// <codedate>2009/12/2</codedate>
/// <returns></returns>
//[FormFilter(ActionName = "TicketShopCar")]
public ActionResult TicketShopCar()
{
Title = "三清山门票购物车";
string orderticketinfo = string.Empty;
if (!string.IsNullOrEmpty(Request.Form["orderticketinfo"]))
{
orderticketinfo = Request.Form["orderticketinfo"].Trim();
return View(GetTicketShopCarList(orderticketinfo));
}
return View();
}
/// <summary>
/// 预订门票记录处理 记录初始化及记录追加、合并
/// </summary>
/// <author>方向华</author>
/// <codedate>2009/12/4</codedate>
/// <param name="orderticketinfo"></param>
/// <returns></returns>
[NonAction]
private IList<SQSMvcSolution.Models.Model.TicketPlans> GetTicketShopCarList(string orderticketinfo)
{
IList<SQSMvcSolution.Models.Model.TicketPlans> l = new List<SQSMvcSolution.Models.Model.TicketPlans>();
if (Session["ShopCart"] != null)
{
IList<SQSMvcSolution.Models.Model.TicketPlans> ll = Session["ShopCart"] as List<SQSMvcSolution.Models.Model.TicketPlans>;
DataTable dt = new DataTable("ShopCarTable");
dt = IListTypeConvert.ConvertToDataTable<SQSMvcSolution.Models.Model.TicketPlans>(ll);
//------------------------------遍历删除重复项开始--------------------------------//
for (int i = 0; i < dt.Rows.Count; i++)
{
int tickettype_no = int.Parse(dt.Rows[i][0].ToString());
if (orderticketinfo.IndexOf('|') != -1)
{
ArrayList arrticket = new ArrayList(orderticketinfo.Split('|'));
for (int k = 0; k < arrticket.Count; k++)
{
ArrayList ticket = new ArrayList(arrticket[k].ToString().Split(','));
int tickettype_no_ = int.Parse(ticket[0].ToString());
if (tickettype_no == tickettype_no_)
{
dt.Rows.RemoveAt(i);
i = i - 1;
break;
}
}
}
else
{
ArrayList ticket = new ArrayList(orderticketinfo.Split(','));
int tickettype_no_ = int.Parse(ticket[0].ToString());
if (tickettype_no == tickettype_no_)
{
dt.Rows.RemoveAt(i);
i = i - 1;
break;
}
}
}
//------------------------------遍历删除重复项结束--------------------------------//
//------------------------------遍历添加新增项开始--------------------------------//
if (orderticketinfo.IndexOf('|') != -1)
{
ArrayList arrticket = new ArrayList(orderticketinfo.Split('|'));
arrticket.Sort();
for (int i = 0; i < arrticket.Count; i++)
{
DataRow dr = dt.NewRow();
ArrayList ticket = new ArrayList(arrticket[i].ToString().Split(','));
AddRowTb(dt, dr, ticket);
}
}
else
{
DataRow dr = dt.NewRow();
ArrayList ticket = new ArrayList(orderticketinfo.Split(','));
AddRowTb(dt, dr, ticket);
}
//------------------------------遍历添加新增项结束--------------------------------//
foreach (DataRow r in dt.Rows)
{
SQSMvcSolution.Models.Model.TicketPlans md = new SQSMvcSolution.Models.Model.TicketPlans();
md.TicketType_NO = Int32.Parse(r[0].ToString());
md.TicketType_Code = r[1].ToString();
md.TicketType_Name = r[2].ToString();
md.TicketType_Price = decimal.Parse(r[3].ToString());
md.TicketSalePlan_DiscountPrice = decimal.Parse(r[4].ToString());
md.TicketSalePlan_ValidDaySum = Int32.Parse(r[5].ToString());
md.ScenicSpots_Code = r[6].ToString();
md.TicketSalePlan_NO = Int64.Parse(r[7].ToString());
md.Mnum = Int32.Parse(r[8].ToString());
md.TravleDate = r[9].ToString();
l.Add(md);
}
}
else
{
if (orderticketinfo.IndexOf('|') != -1)
{
ArrayList arrticket = new ArrayList(orderticketinfo.Split('|'));
arrticket.Sort();
for (int i = 0; i < arrticket.Count; i++)
{
SQSMvcSolution.Models.Model.TicketPlans md = new SQSMvcSolution.Models.Model.TicketPlans();
ArrayList ticket = new ArrayList(arrticket[i].ToString().Split(','));
AddTicketMd(l, md, ticket);
}
}
else
{
SQSMvcSolution.Models.Model.TicketPlans md = new SQSMvcSolution.Models.Model.TicketPlans();
ArrayList ticket = new ArrayList(orderticketinfo.Split(','));
AddTicketMd(l, md, ticket);
}
}
Session["ShopCart"] = l;
return l;
}
/// <summary>
/// 新增ticket表记录行
/// </summary>
/// <param name="dt"></param>
/// <param name="dr"></param>
/// <param name="ticket"></param>
[NonAction]
private static void AddRowTb(DataTable dt, DataRow dr, ArrayList ticket)
{
dr[0] = Int32.Parse(ticket[0].ToString());
dr[1] = ticket[1].ToString();
dr[2] = ticket[2].ToString();
dr[3] = decimal.Parse(ticket[3].ToString());
dr[4] = decimal.Parse(ticket[4].ToString());
dr[5] = Int32.Parse(ticket[5].ToString());
dr[6] = ticket[6].ToString();
dr[7] = Int64.Parse(ticket[7].ToString());
dr[8] = int.Parse(ticket[8].ToString());
dr[9] = ticket[9].ToString();
dt.Rows.Add(dr);
}
/// <summary>
/// 新增TicketPlans泛型实体对象
/// </summary>
/// <param name="l"></param>
/// <param name="md"></param>
/// <param name="ticket"></param>
[NonAction]
private static void AddTicketMd(IList<SQSMvcSolution.Models.Model.TicketPlans> l, SQSMvcSolution.Models.Model.TicketPlans md, ArrayList ticket)
{
md.TicketType_NO = Int32.Parse(ticket[0].ToString());
md.TicketType_Code = ticket[1].ToString();
md.TicketType_Name = ticket[2].ToString();
md.TicketType_Price = decimal.Parse(ticket[3].ToString());
md.TicketSalePlan_DiscountPrice = decimal.Parse(ticket[4].ToString());
md.TicketSalePlan_ValidDaySum = Int32.Parse(ticket[5].ToString());
md.ScenicSpots_Code = ticket[6].ToString();
md.TicketSalePlan_NO = Int64.Parse(ticket[7].ToString());
md.Mnum = Int32.Parse(ticket[8].ToString());
md.TravleDate = ticket[9].ToString();
l.Add(md);
}
#region 控制器类型 动作结果均继承自ActionResult类
//ViewResult – 代表HTML和标签。
//EmptyResult – 代表结果为空。
//RedirectResult – 代表重新导向一个新的URL。
//JsonResult – 代表可被用于AJAX应用程序的JavaScript Object Notation结果。
//JavaScriptResult – 代表JavaScript脚本。
//ContentResult – 代表文本结果。
//FileContentResult – 代表可下载的文件(以二进制内容形式)。
//FilePathResult –代表可下载的文件(以文件路径形式)。
//FileStreamResult –代表可下载的文件(以文件流形式)。
//View – 返回ViewResult动作结果。
//Redirect – 返回RedirectResult动作结果。
//RedirectToAction – 返回RedirectToRouteResult动作结果。
//RedirectToRoute – 返回RedirectToRouteResult动作结果。
//Json – 返回JsonResult动作结果。
//JavaScriptResult – 返回JavaScriptResult。
//Content – 返回ContentResult动作结果。
//File – 返回FileContentResult, FilePathResult,或FileStreamResult,取决于传送至该方法的参数
#endregion
/// <summary>
/// 票务购物车更新异步处理动作
/// </summary>
/// <author>方向华</author>
/// <codedate>2009/12/2</codedate>
/// <returns></returns>
public JsonResult TicketShopCarUpdate(string orderticketinfo)
{
string orderticket = HttpUtility.UrlDecode(orderticketinfo);
int intavel = TicketPlansListUpdate(orderticket);
if (intavel == 1)
{
return Json("1");
}
return Json("0");
}
/// <summary>
/// 异步处理用户预订门票是否存在
/// </summary>
/// <param name="scenicspots"></param>
/// <returns></returns>
public JsonResult TicketExsit(string scenicspots)
{
SQSMvcSolution.Models.BLL.Ticket Bl = new SQSMvcSolution.Models.BLL.Ticket();
int intavel = Bl.GetBookTicketStaus(scenicspots);
if (intavel == -1)
{
return Json(-1);//通信异常
}
else
{
if (intavel > 0)//有记录
{
return Json(1);
}
return Json(0);
}
}
/// <summary>
/// 票务购物车清空异步处理动作
/// </summary>
/// <author>方向华</author>
/// <codedate>2009/12/2</codedate>
/// <returns></returns>
public JsonResult TicketShopCarClear()
{
Session.Remove("ShopCart");
if (Session["ShopCart"] == null)
{
return Json("1");
}
return Json("0");
}
//public JavaScriptResult RegistJs()
//{
// string js = "<script>alert(\"方欣!\")</script>";
// return JavaScript(js);
//}
/// <summary>
/// 票务购物车更新异步处理方法
/// </summary>
/// <author>方向华</author>
/// <codedate>2009/12/3</codedate>
/// <param name="ticketbooktime"></param>
/// <param name="orderticketinfo"></param>
/// <returns></returns>
[NonAction]
private int TicketPlansListUpdate(string orderticketinfo)
{
IList<SQSMvcSolution.Models.Model.TicketPlans> l = new List<SQSMvcSolution.Models.Model.TicketPlans>();
if (orderticketinfo.IndexOf('|') != -1)
{
ArrayList arrticket = new ArrayList(orderticketinfo.Split('|'));
arrticket.Sort();
for (int i = 0; i < arrticket.Count; i++)
{
SQSMvcSolution.Models.Model.TicketPlans md = new SQSMvcSolution.Models.Model.TicketPlans();
ArrayList ticket = new ArrayList(arrticket[i].ToString().Split(','));
AddTicketMd(l, md, ticket);
}
}
else
{
SQSMvcSolution.Models.Model.TicketPlans md = new SQSMvcSolution.Models.Model.TicketPlans();
ArrayList ticket = new ArrayList(orderticketinfo.Split(','));
AddTicketMd(l, md, ticket);
}
if (l.Count > 0)
{
Session["ShopCart"] = l;
return 1;
}
else
{
return 0;
}
}
/// <summary>
/// 票务订单显示动作
/// </summary>
/// <returns></returns>
public ActionResult TicketOrder()
{
Title = "三清山门票订单";
int userid = Discuz.Common.Utils.StrToInt(ForumUtils.GetCookie("userid"), -1);
if (userid != -1)
{
Discuz.Entity.ShortUserInfo users = Users.GetShortUserInfo(userid);
ViewData["Users"] = users;
}
if (Session["ShopCart"] != null)
{
IList<SQSMvcSolution.Models.Model.TicketPlans> l = Session["ShopCart"] as IList<SQSMvcSolution.Models.Model.TicketPlans>;
return View(l);
}
return View();
}
/// <summary>
/// 票务订单立即支付动作
/// </summary>
/// <returns></returns>
public JsonResult TicketNowPay
(
//string weborder_number,
int weborder_usertype,
long webuser_no,
DateTime weborder_time,
string weborder_tickettype,
int weborder_touristsum,
decimal weborder_pricesum,
DateTime weborder_arrivaltime,
int weborder_payment,
int weborder_paid,
int weborder_gettickettype,
string weborder_getticket,
string weborder_userno,
string weborder_userpassword,
string weborder_memo
)
{
SQSMvcSolution.Models.BLL.Ticket Bl = new SQSMvcSolution.Models.BLL.Ticket();
TradeConfigInfo tradeConfigInfo = TradeConfigs.GetConfig();//获取支付配置文档
string url = string.Empty;
string urlstate = string.Empty;
string memo = HttpUtility.UrlDecode(weborder_memo);
int userid = Discuz.Common.Utils.StrToInt(ForumUtils.GetCookie("userid"), -1)!=-1?Discuz.Common.Utils.StrToInt(ForumUtils.GetCookie("userid"), -1):0;
long intavel = Bl.CreateTicketUserOrders
(
//weborder_number,
weborder_usertype,
userid,
weborder_time,
weborder_tickettype,
weborder_touristsum,
weborder_pricesum,
weborder_arrivaltime,
weborder_payment,
weborder_paid,
weborder_gettickettype,
weborder_getticket,
weborder_userno,
Utils.MD5(weborder_userpassword),
memo
);
if (intavel == -1)//通信错误
{
url = " ../CommError.htm";
urlstate = "{\"url\":\"" + url + "\",\"state\":-1}";
return Json(urlstate);
}
else
{
if (intavel > 0)//订单处理成功
{
switch (weborder_payment)
{
case 0://网银
//url = "/BankPay/Send.aspx?onum=" + weborder_number + "&pnum=" + weborder_pricesum;
url = "/BankPay/Send.aspx?onum=" + intavel.ToString() + "&pnum=" + weborder_pricesum;
urlstate = "{\"url\":\"" + url + "\",\"state\":1}";
return Json(urlstate);
case 1://现金
//urlstate = "{\"url\":\"" + url + "\",\"state\":1}";
//return Json(urlstate);
case 2://支付宝
IPayment _payment = AliPayment.GetService();
DigitalTrade digitaltrade = new DigitalTrade(); //虚拟交易 直接到账
digitaltrade.Body = memo;//订单备注
digitaltrade.Out_Trade_No = intavel.ToString();
digitaltrade.Notify_Url = tradeConfigInfo.Alipayconfiginfo.NotifyUrl;
digitaltrade.Return_Url = tradeConfigInfo.Alipayconfiginfo.ReturnUrl;
digitaltrade.Payment_Type = 1;
digitaltrade.Price = weborder_pricesum;
digitaltrade.Quantity = weborder_touristsum;
digitaltrade.Seller_Email = tradeConfigInfo.Alipayconfiginfo.Acount;//商户支付宝交易账户
digitaltrade.Show_Url = tradeConfigInfo.Alipayconfiginfo.ShowUrl;
digitaltrade.Subject = intavel.ToString();
digitaltrade.Buyer_Email = tradeConfigInfo.Alipayconfiginfo.Acount;
url = _payment.CreateDigitalGoodsTradeUrl((ITrade)digitaltrade);
urlstate = "{\"url\":\"" + url + "\",\"state\":1}";
return Json(urlstate);
default:
break;
}
}
url = "/Ticket/TicketOrder";
urlstate = "{\"url\":\"" + url + "\",\"state\":0}";//转向当前页,重新提交
return Json(urlstate);
}
}
/// <summary>
/// 票务订单延时支付动作
/// </summary>
/// <returns></returns>
public JsonResult TicketLastPay(
//string weborder_number,
int weborder_usertype,
long webuser_no,
DateTime weborder_time,
string weborder_tickettype,
int weborder_touristsum,
decimal weborder_pricesum,
DateTime weborder_arrivaltime,
int weborder_payment,
int weborder_paid,
int weborder_gettickettype,
string weborder_getticket,
string weborder_userno,
string weborder_userpassword,
string weborder_memo
)
{
SQSMvcSolution.Models.BLL.Ticket Bl = new SQSMvcSolution.Models.BLL.Ticket();
string memo = HttpUtility.UrlDecode(weborder_memo);
string url = string.Empty;
string urlstate = string.Empty;
int userid = Discuz.Common.Utils.StrToInt(ForumUtils.GetCookie("userid"), -1) != -1 ? Discuz.Common.Utils.StrToInt(ForumUtils.GetCookie("userid"), -1) : 0;
long intavel = Bl.CreateTicketUserOrders
(
//weborder_number,
weborder_usertype,
userid,
weborder_time,
weborder_tickettype,
weborder_touristsum,
weborder_pricesum,
weborder_arrivaltime,
weborder_payment,
weborder_paid,
weborder_gettickettype,
weborder_getticket,
weborder_userno,
Utils.MD5(weborder_userpassword),
memo
);
if (intavel == -1)//通信错误
{
url = " ../CommError.htm";
urlstate = "{\"url\":\"" + url + "\",\"state\":-1}";
return Json(urlstate);
}
else
{
if (intavel > 0)//订单处理成功 转向用户中心
{
url = "/bbs/myticket.aspx";
urlstate = "{\"url\":\"" + url + "\",\"state\":1}";
return Json(urlstate);
}
url = "/Ticket/TicketOrder";
urlstate = "{\"url\":\"" + url + "\",\"state\":0}";//转向当前页,重新提交
return Json(urlstate);
}
}
//
// GET: /Ticket/Details/5
public ActionResult Details(int id)
{
return View();
}
//
// GET: /Ticket/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Ticket/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /Ticket/Edit/5
public ActionResult Edit(int id)
{
return View();
}
//
// POST: /Ticket/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}