/**************************************
*
* author:李朴
* company:上海沐雪网络科技有限公司
* website:http://uweixin.cn
* createDate:2013-11-1
* update:2014-12-30
* remark:本代码为微商城模板的核心处理逻辑;
* html模板页面上的所有的方法,属性都在这个类里处理。
*
***********************************/
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using MxWeiXinPF.Common;
using VTemplate.Engine;
using MxWeiXinPF.Model;
namespace MxWeiXinPF.Templates
{
/**************************************
*
* author:李朴
* company:上海沐雪网络科技有限公司
* qq:23002807
* website:http://uweixin.cn
* taobao:http://uweixin.cn/portalpage/weixin_news_detail.aspx?id=2102
* createDate:2013-11-1
* update:2014-12-30
*
***********************************/
public class ShopTemplateMgr
{
MxWeiXinPF.DAL.templatesDal tDal =
new DAL.templatesDal();
#region 属性
protected internal string ccRight =
"(c)2014 沐雪 技术提供";
/// <summary>
/// 当前页面的模板文档对象
/// </summary>
protected TemplateDocument Document
{
get;
private set;
}
/// <summary>
/// 当前页面的模板文档的配置参数
/// </summary>
protected virtual TemplateDocumentConfig DocumentConfig
{
get
{
return TemplateDocumentConfig.Default;
}
}
/// <summary>
/// 微帐号
/// </summary>
public int wid {
get;
set; }
/// <summary>
/// 微信用户openid
/// </summary>
public string openid {
get;
set; }
/// <summary>
/// 模版类型
/// </summary>
public TemplateType tType {
get;
set; }
/// <summary>
/// 模版文件名称
/// </summary>
public string templateFileName {
get;
set; }
/// <summary>
/// 模版文件的文件夹名称
/// </summary>
public string templateDictoryName {
get;
set; }
/// <summary>
/// 模版的物理路径(全完)
/// </summary>
public string serverPath {
get;
set; }
/// <summary>
/// 模版的虚拟路径,比如/shop/templates/default
/// </summary>
public string tPath {
get;
set; }
#endregion
#region 构造函数
/// <summary>
/// 模版初始化
/// </summary>
/// <param name="tPath">模版文件的虚拟路径</param>
/// <param name="serverPath">模版文件的完全路径</param>
/// <param name="wid"></param>
public ShopTemplateMgr(
string tPath,
string serverPath,
int wid)
{
this.serverPath =
serverPath;
this.tPath =
tPath;
this.Document =
new TemplateDocument(serverPath, Encoding.UTF8,
this.DocumentConfig);
this.wid =
wid;
}
/// <summary>
/// 模版初始化
/// </summary>
/// <param name="templateDictoryName">模版文件的文件夹名称</param>
/// <param name="tPath">模版文件的虚拟路径</param>
/// <param name="serverPath">模版文件的完全路径</param>
/// <param name="wid"></param>
public ShopTemplateMgr(
string templateDictoryName,
string tPath,
string serverPath,
int wid)
{
this.templateDictoryName =
templateDictoryName;
this.serverPath =
serverPath;
this.tPath =
tPath;
this.Document =
new TemplateDocument(serverPath, Encoding.UTF8,
this.DocumentConfig);
this.wid =
wid;
}
/// <summary>
/// 模版初始化
/// </summary>
/// <param name="templateFileName">模版文件的名称</param>
/// <param name="templateDictoryName">模版文件的文件夹名称</param>
/// <param name="tPath">模版文件的虚拟路径</param>
/// <param name="serverPath">模版文件的完全路径</param>
/// <param name="wid"></param>
public ShopTemplateMgr(
string templateFileName,
string templateDictoryName,
string tPath,
string serverPath,
int wid)
{
this.templateFileName =
templateFileName;
this.templateDictoryName =
templateDictoryName;
this.serverPath =
serverPath;
this.tPath =
tPath;
this.Document =
new TemplateDocument(serverPath, Encoding.UTF8,
this.DocumentConfig);
this.wid =
wid;
}
#endregion
/// <summary>
/// 输出最终的html
/// </summary>
/// <param name="templateFileName"></param>
/// <param name="tPath"></param>
/// <param name="wid"></param>
public void OutPutHtml(
int wid)
{
//注册一个自定义函数
this.Document.RegisterGlobalFunction(
this.ComputeMoney);
//对VT模板里的config变量赋值
Model.wxcodeconfig wxconfig =
tDal.GetModelByWid(wid, tPath);
if (wxconfig.wxstatus ==
0)
{
HttpContext.Current.Response.Write("帐号已过期!请及时充值!");
}
this.Document.Variables.SetValue(
"config", wxconfig);
BLL.wx_shop_setting setBll =
new BLL.wx_shop_setting();
if (!
setBll.ExistsWid(wid))
{
HttpContext.Current.Response.Write("请先选择模版!");
HttpContext.Current.Response.End();
}
Model.wx_shop_setting setting = setBll.GetModelList(
"wid=" + wid)[
0];
this.Document.Variables.SetValue(
"shopconfig", setting);
this.Document.SetValue(
"wid", wid);
this.Document.SetValue(
"ccright", ccRight);
this.Document.SetValue(
"yuming", MyCommFun.getWebSite());
this.Document.SetValue(
"thisurl", MyCommFun.getTotalUrl());
this.Document.SetValue(
"indexurl", indexUrl());
this.Document.SetValue(
"categoryurl", MyCommFun.urlAddOpenid(
"/shop/category.aspx?wid=" +
wid, openid));
this.Document.SetValue(
"carturl", MyCommFun.urlAddOpenid(
"/shop/cart.aspx?wid=" + wid, openid));
//upd
this.Document.SetValue(
"userurl",
"/shop/userinfo.aspx?wid=" +
wid);
this.Document.SetValue(
"openid", openid);
this.Document.Variables.SetValue(
"this",
this);
if (tType ==
TemplateType.Class)
{
ProductClassPage();
}
else if (tType ==
TemplateType.News)
{
ShopDetailPage();
}
else if (tType ==
TemplateType.Cart)
{
CartDetailPage();
}
else if (tType ==
TemplateType.confirmOrder)
{
confirmOrder();
}
else if (tType ==
TemplateType.editaddr)
{
editAddrPage();
}
else if (tType ==
TemplateType.orderSuccess)
{
OrderSuccessPage();
}
else if (tType ==
TemplateType.userinfo)
{
userinfoPage();
}
else if (tType ==
TemplateType.orderDetail)
{ //订单详情页面
orderDetail();
}
//输出最终呈现的数据
this.Document.Render(HttpContext.Current.Response.Output);
}
#region 方法集合:注册到模版或者供模版调用
public void ProductClassPage()
{
int category_id = MyCommFun.RequestInt(
"cid");
//--=====begin: 将这个列表(文章类别)的基本信息展示出来 ====--
DAL.wx_shop_category cateBll =
new DAL.wx_shop_category();
Model.wx_shop_category category =
cateBll.GetCategoryByWid(wid, category_id);
this.Document.SetValue(
"category", category);
this.Document.SetValue(
"wid", wid);
this.Document.SetValue(
"cid", category_id);
//--=====end: 将这个列表(文章类别)的基本信息展示出来 ====--
Tag orderByTag =
this.Document.GetChildTagById(
"norderby");
string orderby = orderByTag.Attributes[
"value"].Value.ToString();
Tag pagesizeTag =
this.Document.GetChildTagById(
"npagesize");
string pagesizeStr = pagesizeTag.Attributes[
"value"].Value.ToString();
int currPage =
1;
//当前页面
int recordCount =
0;
//总记录数
int totPage =
1;
//总页数
int pageSize = MyCommFun.Str2Int(pagesizeStr);
//每页的记录数
if (pageSize <=
0)
{
pageSize =
10;
}
if (MyCommFun.RequestInt(
"page") >
0)
{
currPage = MyCommFun.RequestInt(
"page");
}
DataSet productlist =
new DataSet();
//category_id = 3;
//wid = 5;
if (category_id !=
0)
//根据类别查询
{
DAL.wx_shop_product artDal =
new DAL.wx_shop_product();
productlist = artDal.GetList(wid, category_id, pageSize, currPage,
"upselling=1",
orderby,
out recordCount);
if (productlist !=
null && productlist.Tables.Count >
0 && productlist.Tables[
0].Rows.Count >
0)
{
DataRow dr;
for (
int i =
0; i < productlist.Tables[
0].Rows.Count; i++
)
{
dr = productlist.Tables[
0].Rows[i];
if (dr[
"link_url"] !=
null && dr[
"link_url"].ToString().Trim().Length >
0)
{
dr["link_url"] = MyCommFun.urlAddOpenid(dr[
"link_url"].ToString().Trim(), openid);
}
else
{
dr["link_url"] = MyCommFun.urlAddOpenid(
"detail.aspx?wid=" + wid +
"&pid=" + dr[
"id"].ToString(), openid);
}
productlist.AcceptChanges();
}
totPage = recordCount /
pageSize;
int yushu = recordCount %
pageSize;
if (yushu >
0)
{
totPage +=
1;
}
if (totPage <
1)
{
totPage =
1;
}
}
if (currPage >
totPage)
{
currPage =
totPage;
}
}
else if (MyCommFun.QueryString(
"type") ==
"new")
//得到最新产品
{
DAL.wx_shop_product artDal =
new DAL.wx_shop_product();
productlist = artDal.GetList(wid, pageSize,
"upselling=1 order by addDate desc," +
orderby);
if (productlist !=
null && productlist.Tables.Count >
0 && productlist.Tables[
0].Rows.Count >
0)
{
DataRow dr;
for (
int i =
0; i < productlist.Tables[
0].Rows.Count; i++
)
{
dr = productlist.Tables[
0].Rows[i];
if (dr[
"link_url"] !=
null && dr[
"link_url"].ToString().Trim().Length >
0)
{
dr["link_url"] = MyCommFun.urlAddOpenid(dr[
"link_url"].ToString().Trim(), openid);
}
else
{
dr["link_url"] = MyCommFun.urlAddOpenid(
"detail.aspx?wid=" + wid +
"&pid=" + dr[
"id"].ToString(), openid);
}
productlist.AcceptChanges();
}
totPage = recordCount /
pageSize;
int yushu = recordCount %
pageSize;
if (yushu >
0)
{
totPage +=
1;
}
if (totPage <
1)
{
totPage =
1;
}
}
if (currPage >
totPage)
{
currPage =
totPage;
}
}
else
{
currPage =
1;
recordCount =
0;
totPage =
1;
}
this.Document.SetValue(
"totPage", totPage);
//总页数
this.Document.SetValue(
"currPage", currPage);
//当前页
this.Document.SetValue(
"productlist", productlist);
//文章列表
string beforePageStr =
"";
//上一页
string nextPageStr =
"";
//下一页
string bgrey =
"c-p-grey";
string ngrey =
"c-p-grey";
if (currPage <=
1)
{
beforePageStr =
"";
bgrey =
"c-p-grey";
}
else
{
beforePageStr = MyCommFun.ChangePageNum(MyCommFun.getTotalUrl(), (currPage -
1));
beforePageStr =
"href=\"" + beforePageStr +
"\"";
bgrey =
"";
}
if (currPage >=
totPage)
{
nextPageStr =
"";
ngrey =
" c-p-grey";
}
else
{
nextPageStr = MyCommFun.ChangePageNum(MyCommFun.getTotalUrl(), (currPage +
1));
nextPageStr =
"href=\"" + nextPageStr +
"\"";
ngrey =
"";
}
this.Document.SetValue(
"bpage", beforePageStr);
//上一页
this.Document.SetValue(
"npage", nextPageStr);
//下一页
this.Document.SetValue(
"bgrey", bgrey);
//上一页灰色的样式
this.Document.SetValue(
"ngrey", ngrey);
//下一页灰色的样式
}
public void ShopDetailPage()
{
BLL.wx_shop_product artDal =
new BLL.wx_shop_product();
int pid = MyCommFun.RequestInt(
"pid");
Model.wx_shop_product product =
artDal.GetModel(pid, wid);
if (product !=
null)
{
string skuStr =
"[";
string availSkuStr =
"{";
if (product.skulist !=
null && product.skulist.Count >
0)
{
// string skuStr = "[{ \"pList\": [\"H\", \"H/VVS/32分/14号\"], \"pName\": \"戒指手寸\" }]";
// string availSku = "{ \"戒指手寸:F-G/VVS/33分/12号\": { \"pid\": 12700, \"stockCount\": \"\", \"stockPrice\": \"1000\", \"maketPrice\": \"0\" }, }";
skuStr +=
"{ \"pList\": [";
//暂时只支持一种配件
for (
int i =
0; i < product.skulist.Count; i++
)
{
product.skulist[i].price +=
product.salePrice;
product.skulist[i].price *=
100;
if (i != (product.skulist.Count -
1))
{
skuStr +=
"\"" + product.skulist[i].attributeValue +
"\",";
availSkuStr +=
"\"" + product.skulist[
0].attrName +
":" + product.skulist[i].attributeValue +
"\": { \"pid\": " + product.skulist[i].id +
", \"stockCount\": \"\", \"stockPrice\": \"" + product.skulist[i].price +
"\", \"maketPrice\": \"" + product.marketPrice +
"\" }, ";
}
else
{
skuStr +=
"\"" + product.skulist[i].attributeValue +
"\"";
availSkuStr +=
"\"" + product.skulist[
0].attrName +
":" + product.skulist[i].attributeValue +
"\": { \"pid\": " + product.skulist[i].id +
", \"stockCount\": \"\", \"stockPrice\": \"" + product.skulist[i].price +
"\", \"maketPrice\": \"" + product.marketPrice +
"\" }";
}
}
skuStr +=
"], \"pName\": \"" + product.skulist[
0].attrName +
"\" }";
//MxWeiXinPF.DAL.ShopSKUDal skuDal = new DAL.ShopSKUDal();
//IList<Model.ShopSKU> skulist = skuDal.SKUConvert(product.skulist);
//this.Document.SetValue("skulist", skulist[0]);
}
skuStr +=
"]";
availSkuStr +=
"}";
if (availSkuStr ==
"{}")
{
availSkuStr =
"{ \"\": { \"pid\": 0, \"stockCount\": \"\", \"stockPrice\": \"" + product.salePrice +
"\", \"maketPrice\": \"" + product.marketPrice +
"\" } }";
}
this.Document.SetValue(
"skuStr", skuStr);
this.Document.SetValue(
"availSkuStr", availSkuStr);
this.Document.SetValue(
"model", product);
}
}
/// <summary>
/// 获得幻灯片列表二:优点:(1)使用function标签与foreach结合,可以从模版页面控制记录数量;(2)不需要实现注册到模版里
/// </summary>
/// <returns></returns>
public IList<Model.wx_shop_indexbanner>
getHdp()
{
Tag tag =
this.Document.CurrentRenderingTag;
var attribute = tag.Attributes[
"rows"];
IList<Model.wx_shop_indexbanner> artlist =
new List<Model.wx_shop_indexbanner>
();
int rows = -
1;
//若为-1,则不做限制条件
if (attribute !=
null &&
MyCommFun.isNumber(attribute.Value.GetValue()))
{
rows =
MyCommFun.Obj2Int(attribute.Value.GetValue());
}
MxWeiXinPF.DAL.wx_shop_indexbanner sibDal =
new DAL.wx_shop_indexbanner();
artlist =
sibDal.GetHDPByWid(wid, rows);
if (artlist !=
null && artlist.Count >
0)
{
Model.wx_shop_indexbanner cat =
new Model.wx_shop_indexbanner();
for (
int i =
0; i < artlist.Count; i++
)
{
cat =
artlist[i];
if (cat.bannerLinkUrl ==
null || cat.bannerLinkUrl.Trim() ==
"")
{ //如果link_url为空,则直接调用本系统的信息
cat.bannerLinkUrl =
"javascript:;";
}
else
{
cat.bannerLinkUrl =
MyCommFun.urlAddOpenid(cat.bannerLinkUrl, openid);
}
}
}
return artlist;
}
/// <summary>
/// 获得最新
/// </summary>
/// <returns></returns>
public DataTable getLatest()
{
Tag tag =
this.Document.CurrentRenderingTag;
var attribute = tag.Attributes[
"rows"];
int rows = -
1;
//若为-1,则不做限制条件
if (attribute !=
null &&
MyCommFun.isNumber(attribute.Value.GetValue()))
{
rows =
MyCommFun.Obj2Int(attribute.Value.GetValue());
}
DAL.wx_shop_product artDal =
new DAL.wx_shop_product();
productlist = artDal.GetList(wid, rows,
"latest=" +
1);
DataTable dt = productlist.Tables[
0];
if (productlist !=
null && productlist.Tables.Count >
0 && productlist.Tables[
0].Rows.Count >
0)
{
DataRow dr;
for (
int i =
0; i < productlist.Tables[
0].Rows.Count; i++
)
{
dr = productlist.Tables[
0].Rows[i];
if (dr[
"link_url"] !=
null && dr[
"link_url"].ToString().Trim().Length >
0)
{
dr["link_url"] = MyCommFun.urlAddOpenid(dr[
"link_url"].ToString().Trim(), openid);
}
else
{
dr["link_url"] = MyCommFun.urlAddOpenid(
"detail.aspx?wid=" + wid +
"&pid=" + dr[
"id"].ToString(), openid);
}
productlist.AcceptChanges();
}
}
return dt;
}
/// <summary>
/// 获得热卖
/// </summary>
/// <returns></returns>
public DataTable getHotsalet()
{
Tag tag =
this.Document.CurrentRenderingTag;
var attribute = tag.Attributes[
"rows"];
int cid = MyCommFun.RequestInt(
"cid");
int rows = -
1;
//若为-1,则不做限制条件
if (attribute !=
null &&
MyCommFun.isNumber(attribute.Value.GetValue()))
{
rows =
MyCommFun.Obj2Int(attribute.Value.GetValue());
}
DAL.wx_shop_product artDal =
new DAL.wx_shop_product();
if (cid !=
0)
{
productlist = artDal.GetList(wid, rows,
" categoryId=" + cid +
" order by hotsale desc");
}
else
{
productlist = artDal.GetList(wid, rows,
" 1=1 order by hotsale desc");
}
DataTable dt = productlist.Tables[
0];
if (productlist !=
null && productlist.Tables.Count >
0 && productlist.Tables[
0].Rows.Count >
0)
{
DataRow dr;
for (
int i =
0; i < productlist.Tables[
0].Rows.Count; i++
)
{
dr = productlist.Tables[
0].Rows[i];
if (dr[
"link_url"] !=
null && dr[
"link_url"].ToString().Trim().Length >
0)
{
dr["link_url"] = MyCommFun.urlAddOpenid(dr[
"link_url"].ToString().Trim(), openid);
}
else
{
dr["link_url"] = MyCommFun.urlAddOpenid(
"detail.aspx?wid=" + wid +
"&pid=" + dr[
"id"].ToString(), openid);
}
productlist.AcceptChanges();
}
}
return dt;
}
/// <summary>
/// 获得推荐
/// </summary>
/// <returns></returns>
public DataTable getRecommended()
{
Tag tag =
this.Document.CurrentRenderingTag;
var attribute = tag.Attributes[
"rows"];
int rows = -
1;
//若为-1,则不做限制条件
if (attribute !=
null &&
MyCommFun.isNumber(attribute.Value.GetValue()))
{
rows =
MyCommFun.Obj2Int(attribute.Value.GetValue());
}
DAL.wx_shop_product artDal =
new DAL.wx_shop_product();
productlist = artDal.GetList(wid, rows,
"recommended=" +
1);
DataTable dt = productlist.Tables[
0];
if (productlist !=
null && productlist.Tables.Count >
0 && productlist.Tables[
0].Rows.Count >
0)
{
DataRow dr;
for (
int i =
0; i < productlist.Tables[
0].Rows.Count; i++
)
{
dr = productlist.Tables[
0].Rows[i];
if (dr[
"link_url"] !=
null && dr[
"link_url"].ToString().Trim().Length >
0)
{
dr["link_url"] = MyCommFun.urlAddOpenid(dr[
"link_url"].ToString().Trim(), openid);
}
else
{
dr["link_url"] = MyCommFun.urlAddOpenid(
"detail.aspx?wid=" + wid +
"&pid=" + dr[
"id"].ToString(), openid);
}
productlist.AcceptChanges();
}
}
return dt;
}
/// <summary>
/// 获得特价
/// </summary>
/// <returns></returns>
public DataTable getSpecialOffer()
{
Tag tag =
this.Document.CurrentRenderingTag;
var attribute = tag.Attributes[
"rows"];
int rows = -
1;
//若为-1,则不做限制条件
if (attribute !=
null &&
MyCommFun.isNumber(attribute.Value.GetValue()))
{
rows =
MyCommFun.Obj2Int(attribute.Value.GetValue());
}
DAL.wx_shop_product artDal =
new DAL.wx_shop_product();
productlist = artDal.GetList(wid, rows,
"specialOffer=" +
1);
DataTable dt = productlist.Tables[
0];
if (productlist !=
null && productlist.Tables.Count >
0 && productlist.Tables[
0].Rows.Count >
0)
{
DataRow dr;
for (
int i =
0; i < productlist.Tables[
0].Rows.Count; i++
)
{
dr = productlist.Tables[
0].Rows[i];
if (dr[
"link_url"] !=
null && dr[
"link_url"].ToString().Trim().Length >
0)
{
dr["link_url"] = MyCommFun.urlAddOpenid(dr[
"link_url"].ToString().Trim(), openid);
}
else
{
dr["link_url"] = MyCommFun.urlAddOpenid(
"detail.aspx?wid=" + wid +
"&pid=" + dr[
"id"].ToString(), openid);
}
productlist.AcceptChanges();
}
}
return dt;
}
/// <summary>
/// 获得wid的用户分类信息
/// </summary>
/// <returns></returns>
public IList<Model.wx_shop_category>
getCategory()
{
Tag tag =
this.Document.CurrentRenderingTag;
///classlayer表示取类别深度,如果为-1,则取所有分类的深度,如果为1,则取第一层目录,如果为2,则去第2层目录
var classlayer = tag.Attributes[
"classlayer"];
var parentidObj = tag.Attributes[
"parentid"];
var attribute = tag.Attributes[
"rows"];
int rows = -
1;
//若为-1,则不做限制条件
IList<Model.wx_shop_category> categorylist =
null;
int parentid = -
1;
if (parentidObj !=
null &&
MyCommFun.isNumber(parentidObj.Value.GetValue()))
{
parentid =
MyCommFun.Obj2Int(parentidObj.Value.GetValue());
}
int class_layer = -
1;
if (classlayer !=
null &&
MyCommFun.isNumber(classlayer.Value.GetValue()))
{
class_layer =
MyCommFun.Obj2Int(classlayer.Value.GetValue());
}
DAL.wx_shop_category cateBll =
new DAL.wx_shop_category();
if (attribute !=
null &&
MyCommFun.isNumber(attribute.Value.GetValue()))
{
rows =
MyCommFun.Obj2Int(attribute.Value.GetValue());
categorylist =
cateBll.GetCategoryListByWid(wid, rows, parentid, class_layer);
}
else
{
categorylist = cateBll.GetCategoryListByWid(wid, -
1, parentid, class_layer);
}
if (categorylist !=
null && categorylist.Count >
0)
{
Model.wx_shop_category cat =
new Model.wx_shop_category();
for (
int i =
0; i < categorylist.Count; i++
)
{
cat =
categorylist[i];
if (cat.link_url ==
null || cat.link_url.Trim() ==
"")
{ //如果link_url为空,则直接调用本系统的信息
cat.link_url = MyCommFun.urlAddOpenid(
"/shop/list.aspx?wid=" + wid +
"&cid=" + cat.id +
"", openid);
}
else
{
cat.link_url =
MyCommFun.urlAddOpenid(cat.link_url, openid);
}
}
}
return categorylist;
}
/// <summary>
/// 购物车页面
/// </summary>
public void CartDetailPage()
{
BLL.wx_shop_cart cartBll =
new BLL.wx_shop_cart();
IList<Model.cartProduct> cartList =
cartBll.GetCartList(openid, wid);
int jiage =
0;
string cartStr =
"{";
if (cartList.Count >
0)
{
for (
int i = cartList.Count -
1; i >=
0; i--
)
{
if (i !=
0)
{
cartStr +=
"\"" + i +
"\": { \"ic\": \"" + cartList[i].id +
"\", \"attr\": \"\", \"bc\": \"" + cartList[i].productNum +
"\", \"mid\": " + cartList[i].skuId +
" },";
}
else
{
cartStr +=
"\"" + i +
"\": { \"ic\": \"" + cartList[i].id +
"\", \"attr\": \"\", \"bc\": \"" + cartList[i].productNum +
"\", \"mid\": " + cartList[i].skuId +
" }";
}
}
}
cartStr +=
"}";
decimal alltotPrice = cartList.Sum(item =>
item.totPrice);
this.Document.SetValue(
"cartlist", cartList);
this.Document.SetValue(
"alltot", alltotPrice);
this.Document.SetValue(
"cartStr", cartStr);
this.Document.SetValue(
"zongjia", jiage);
}
/// <summary>
/// 修改地址的页面
/// </summary>
public void editAddrPage()
{
string frompage = MyCommFun.QueryString(
"frompage");
this.Document.SetValue(
"frompage", frompage);
BLL.wx_shop_user_addr uAddrBll =
new BLL.wx_shop_user_addr();
IList<Model.wx_shop_user_addr> uaddrList =
uAddrBll.GetOpenidAddr(openid, wid);
if (uaddrList ==
null || uaddrList.Count <=
0 || uaddrList[
0].id <=
0)
{
}
else
{
this.Document.SetValue(
"addrinfo", uaddrList[
0]);
}
}
/// <summary>
/// 确认订单页面
/// </summary>
public void confirmOrder()
{
//1用户的地址
BLL.wx_shop_user_addr uAddrBll =
new BLL.wx_shop_user_addr();
IList<Model.wx_shop_user_addr> uaddrList =
uAddrBll.GetOpenidAddrName(openid, wid);
if (uaddrList ==
null || uaddrList.Count <=
0 || uaddrList[
0].id <=
0)
{ }
else
{
this.Document.SetValue(
"addrinfo", uaddrList[
0]);
}
//快递信息列表
BLL.express expressBll =
new BLL.express();
DataSet dsExpress =
expressBll.GetExpressList100(wid);
this.Document.SetValue(
"express", dsExpress);
//支付信息列表
BLL.payment pbll =
new BLL.payment();
DataSet dsPay = pbll.GetList(
0,
" is_lock=0 and wid=" + wid,
" sort_id asc");
this.Document.SetValue(
"payment", dsPay);
//购物车里的商品
BLL.wx_shop_cart cartBll =
new BLL.wx_shop_cart();
IList<Model.cartProduct> cartList =
cartBll.GetCartList(openid, wid);
this.Document.SetValue(
"cartlist", cartList);
string cartStr =
"[";
if (cartList.Count >
0)
{
for (
int i = cartList.Count -
1; i >=
0; i--
)
{
if (i !=
0)
{
cartStr +=
"{ \"ic\": \"" + cartList[i].id +
"\", \"attr\": \"\", \"bc\": \"" + cartList[i].productNum +
"\", \"mid\": " + cartList[i].skuId +
" },";
}
else
{
cartStr +=
"{ \"ic\": \"" + cartList[i].id +
"\", \"attr\": \"\", \"bc\": \"" + cartList[i].productNum +
"\", \"mid\": " + cartList[i].skuId +
" }";
}
}
}
cartStr +=
"]";
decimal alltotPrice = cartList.Sum(item =>
item.totPrice);
this.Document.SetValue(
"alltot", alltotPrice *
100);
this.Document.SetValue(
"alltot_y", alltotPrice);
this.Document.SetValue(
"cartStr", cartStr);
}
/// <summary>
/// 下单成功页面
/// </summary>
public void OrderSuccessPage()
{
BLL.orders oBll =
new BLL.orders();
int orderid = MyCommFun.RequestInt(
"orderid");
Model.orders order =
oBll.GetModel(orderid);
if (order !=
null)
{
this.Document.SetValue(
"order", order);
}
}
/// <summary>
/// 用户中心
/// </summary>
public void userinfoPage()
{
BLL.orders oBll =
new BLL.orders();
//待付款的
int wid = MyCommFun.RequestInt(
"wid");
IList<Model.orders> orderlist_dfu = oBll.GetModelList(
" wid=" + wid +
" and openid='" + openid +
"' and payment_id in (2,3) and payment_status=1 and status=1 order by id desc");
if (orderlist_dfu !=
null)
{
for (
int i =
0; i < orderlist_dfu.Count; i++
)
{
orderlist_dfu[i].status =
GetOrderStatus_int(orderlist_dfu[i].status, orderlist_dfu[i].payment_status, orderlist_dfu[i].express_status);
}
this.Document.SetValue(
"o_dfu", orderlist_dfu);
this.Document.SetValue(
"dfk_num", orderlist_dfu.Count);
}
//待收货的
IList<Model.orders> orderlist_dsh = oBll.GetModelList(
" wid=" + wid +
" and openid='" + openid +
"' and (payment_status=2 or payment_id=1) and status not in(3,4,5) order by id desc");
if (orderlist_dsh !=
null)
{
for (
int i =
0; i < orderlist_dsh.Count; i++
)
{
orderlist_dsh[i].status =
GetOrderStatus_int(orderlist_dsh[i].status, orderlist_dsh[i].payment_status, orderlist_dsh[i].express_status);
}
this.Document.SetValue(
"o_dsh", orderlist_dsh);
this.Document.SetValue(
"dsh_num", orderlist_dsh.Count);
}
//已结束的
IList<Model.orders> orderlist_yjs = oBll.GetModelList(
" wid=" + wid +
" and openid='" + openid +
"' and payment_status=2 and status in (3,4,5) order by id desc");
if (orderlist_yjs !=
null)
{
for (
int i =
0; i < orderlist_yjs.Count; i++
)
{
orderlist_yjs[i].status =
GetOrderStatus_int(orderlist_yjs[i].status, orderlist_yjs[i].payment_status, orderlist_yjs[i].express_status);
}
this.Document.SetValue(
"o_yjs", orderlist_yjs);
this.Document.SetValue(
"yjs_num", orderlist_yjs.Count);
}
}
/// <summary>
/// 订单详情页面
/// </summary>
public void orderDetail()
{
int wid = MyCommFun.RequestInt(
"wid");
int orderId = MyCommFun.RequestInt(
"orderid");
BLL.orders oBll =
new BLL.orders();
//Model.orders order = oBll.GetModel(orderId);
IList<Model.orders> orderlist_detail = oBll.GetModelList(
" id=" +
orderId);
if (orderlist_detail !=
null)
{
Model.orders order = orderlist_detail[
0];
this.Document.SetValue(
"order", order);
string statusName =
GetOrderStatus(order.status, order.payment_status, order.express_status);
this.Document.SetValue(
"statusName", statusName);
string paymentName =
new MxWeiXinPF.BLL.payment().GetTitle(wid, order.payment_id);
this.Document.SetValue(
"paymentName", paymentName);
string expressName =
new MxWeiXinPF.BLL.express().GetTitle(order.express_id);
this.Document.SetValue(
"expressName", expressName);
}
}
#region 返回订单状态=============================
protected string GetOrderStatus(
int status,
int payment_status,
int express_status)
{
string _title =
string.Empty;
// Model.orders model = new BLL.orders().GetModel(_id);
switch (status)
{
case 1:
//如果是线下支付,支付状态为0,如果是线上支付,支付成功后会自动改变订单状态为已确认
if (payment_status >
0)
{
_title =
"待付款";
}
else
{
_title =
"待确认";
}
break;
case 2:
//如果订单为已确认状态,则进入发货状态
if (express_status >
1)
{
_title =
"已发货";
}
else
{
_title =
"待发货";
}
break;
case 3:
_title =
"交易完成";
break;
case 4:
_title =
"已取消";
break;
case 5:
_title =
"已作废";
break;
}
return _title;
}
/// <summary>
/// 订单状态,转化成与zepto.min.js里一致的
/// </summary>
/// <param name="status"></param>
/// <param name="payment_status"></param>
/// <param name="express_status"></param>
/// <returns></returns>
protected int GetOrderStatus_int(
int status,
int payment_status,
int express_status)
{
int ret =
0;
switch (status)
{
case 1:
//如果是线下支付,支付状态为0,如果是线上支付,支付成功后会自动改变订单状态为已确认
if (payment_status >
0)
{
ret =
1;
}
else
{
ret =
14;
}
break;
case 2:
//如果订单为已确认状态,则进入发货状态
if (express_status >
1)
{
ret =
25;
}
else
{
ret =
2;
}
break;
case 3:
ret =
6;
break;
case 4:
ret =
4;
break;
case 5:
ret =
26;
break;
}
return ret;
}
#endregion
/// <summary>
/// 单位 元*100
/// </summary>
/// <param name="news"></param>
/// <returns></returns>
private object ComputeMoney(
object[] news)
{
if (news.Length >
0 && news[
0] !=
null)
{
decimal yuan = MyCommFun.Str2Decimal(news[
0].ToString());
yuan *=
100;
return yuan;
}
else
{
return string.Empty;
}
}
/// <summary>
/// 商城首页的url
/// </summary>
/// <returns></returns>
private string indexUrl()
{
string url =
"";
// url = MyCommFun.getWebSite() + "/shop/index.aspx?wid=" + wid;
url = MyCommFun.urlAddOpenid(
"/shop/index.aspx?wid=" +
wid, openid);
return url;
}
#endregion
public DataSet productlist {
get;
set; }
}
}
转载于:https://www.cnblogs.com/Jeely/p/11349787.html