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

}

}

}

}