114 lines
4.0 KiB
C#
114 lines
4.0 KiB
C#
using Ninject;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.SqlClient;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.BLL;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Soft;
|
|
using WX.CRM.IBLL.Util;
|
|
using WX.CRM.IBLL.Wx;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.WebHelper;
|
|
|
|
namespace WX.CRM.WEB.Controllers.Soft
|
|
{
|
|
public class ProductLinkController : BaseController
|
|
{
|
|
[Inject]
|
|
public ISOFT_REGANDORDERLINK soft_RegAndOrderLink_BL { get; set; }
|
|
|
|
[Inject]
|
|
public IWX_SZZYSUBPRODUCT wx_SzzySubProduct_BL { get; set; }
|
|
|
|
[Inject]
|
|
public ICACHE_Q cache_BL { get; set; }
|
|
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_注册和生成购买链接)]
|
|
public ActionResult Index()
|
|
{
|
|
var ch = cache_BL.GetValue_Parameter("QRCodeCH");
|
|
if (string.IsNullOrEmpty(ch))
|
|
{
|
|
return Redirect(Url.Action("ErrorView", "Error", new { message = "错误提示:参数错误!没有配置渠道!" }));
|
|
}
|
|
var where = PredicateExtensionses.True<WX_SZZYSUBPRODUCT>();
|
|
where = where.And(m => m.ISVALID == 1);
|
|
//where = where.And(m => m.ISONLINEBUY >= ChannelMin && m.ISONLINEBUY <= ChannelMax);
|
|
where = where.And(m => m.ISONLINEBUY != null);
|
|
|
|
var pager = new Pager() { page = 1, rows = int.MaxValue };
|
|
var list = wx_SzzySubProduct_BL.GetList(where, m => m.SUBPRODUCTID, pager, SortOrder.Ascending);
|
|
|
|
var data = new List<ProductLinkView>();
|
|
foreach (var item in list)
|
|
{
|
|
var link = getBuyLink(ch, Convert.ToInt32(item.SUBPRODUCTID));
|
|
var buyLink = HttpUtility.UrlEncode(link);
|
|
data.Add(new ProductLinkView(item, buyLink, link));
|
|
}
|
|
ViewBag.productList = data;
|
|
|
|
return View();
|
|
}
|
|
|
|
public ActionResult GetQRCode(string url)
|
|
{
|
|
//LogHelper.Info("url:" + url);
|
|
//QRCodeOperate qrCode = new QRCodeOperate();
|
|
QRCodeHelper.qrCodeScale = 8;
|
|
QRCodeHelper.encode = System.Text.Encoding.UTF8;
|
|
byte[] bytes = QRCodeHelper.Create(url);
|
|
return File(bytes, @"image/jpeg");
|
|
}
|
|
|
|
public JsonResult ShowUrl(string url)
|
|
{
|
|
try
|
|
{
|
|
return Json(new { ret = url }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return Json(new { ret = string.Empty }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
}
|
|
|
|
private string getBuyLink(string ch, int subProductId)
|
|
{
|
|
var subProduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == subProductId);
|
|
var buyLink = string.Empty;
|
|
if (subProduct != null)
|
|
{
|
|
//var obj = new { ch = ch, callback = subProduct.CALLBACKLINK, ext = new { eid = 26201} };
|
|
var param = "{\"ch\":\"" + ch + "\",\"callback\":\"" + subProduct.CALLBACKLINK + "\", \"ext\":{ \"eid\":" + Eid + "}}";
|
|
//var param = "{\"ch\":\"" + ch + "\",\"callback\":\"" + subProduct.CALLBACKLINK + "\"}";
|
|
//var param = obj.ToJson();
|
|
//LogHelper.Info(param);
|
|
param = soft_RegAndOrderLink_BL.EncyptData(param, "upchina3");
|
|
var apiDomain = cache_BL.GetValue_Parameter(Model.Enum.Parameter.Soft_PayApiDomain);
|
|
buyLink = string.Format("{0}/{1}?ch={2}&uname=¶m={3}&isWeb=true", apiDomain, subProduct.BUYLINK, ch, param);
|
|
}
|
|
return buyLink;
|
|
}
|
|
|
|
}
|
|
|
|
public class ProductLinkView
|
|
{
|
|
public ProductLinkView(WX_SZZYSUBPRODUCT product, string buylink, string link)
|
|
{
|
|
this.product = product;
|
|
this.buylink = buylink;
|
|
this.link = link;
|
|
}
|
|
|
|
public WX_SZZYSUBPRODUCT product { get; set; }
|
|
public string buylink { get; set; }
|
|
public string link { get; set; }
|
|
}
|
|
}
|