ComplianceServer/oldcode/WEB/Controllers/Soft/ProductLinkController.cs

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=&param={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; }
}
}