ComplianceServer/oldcode/WEB/Controllers/WeiXin/SubProductController.cs

253 lines
9.6 KiB
C#

using Newtonsoft.Json;
using Ninject;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using WX.CRM.Common;
using WX.CRM.IBLL.Wx;
using WX.CRM.Model.Entity;
using WX.CRM.Model.MAP;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.WeiXin
{
public class SubProductController : BaseController
{
private ValidationErrors errors = new ValidationErrors();
[Inject]
public IWX_SZZYSUBPRODUCT wx_szzySubProduct_BL { get; set; }
[AuthorizeRedirect(Roles = InitRights.CONST_产品管理)]
public ActionResult Index()
{
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights., userRightId);
tool.AllowButton(toolbtn);
ViewBag.ToolBar = tool;
var pager = new Pager() { page = 1, rows = 10 };
var tableId = "tablist";
Table tab = new Table(tableId);
tab.AddHeadCol("SUBPRODUCTID", "", "产品ID");
tab.AddHeadCol("SUBPRODUCTNAME", "", "渠道产品名称");
tab.AddHeadCol("PRODUCTCODE", "", "产品编码");
tab.AddHeadCol("PRICE", "", "价格");
tab.AddHeadCol("RIGHTPERIOD", "", "天数");
tab.AddHeadCol("PRODUCTALIAS", "", "产品名称");
tab.AddHeadCol("REMARKS", "30%", "产品说明");
tab.AddHeadCol("ISVALID", "", "状态");
tab.AddHeadCol("ISSHOW", "", "显示");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20,30"); ;
return View();
}
[HttpPost]
[AuthorizeRedirect(Roles = InitRights.CONST_产品管理)]
public JsonResult GetHtmlList(Pager pager, Wx_SzzySubProduct_QueryDto query, string columns)
{
var list = wx_szzySubProduct_BL.GetList_SubProduct(ref pager, query);
Table table = new Table(columns, true);
foreach (var model in list)
{
table.AddCol(model.SUBPRODUCTID);
table.AddCol(model.SUBPRODUCTNAME);
table.AddCol(model.PRODUCTCODE);
table.AddCol(model.PRICE);
table.AddCol(model.RIGHTPERIOD);
table.AddCol(model.PRODUCTALIAS);
table.AddCol(model.REMARK);
table.AddCol(model.ISVALID == 1 ? "<span class='GreenColor'>可用</span>" : "不可用");
table.AddCol(model.ISSHOW == 1 ? "<span class='GreenColor'>显示</span>" : "不显示");
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
public JsonResult GetWelComeJsonList()
{
Pager pager = new Pager() { page = 1, rows = 100 };
Wx_SzzySubProduct_QueryDto query = new Wx_SzzySubProduct_QueryDto { isShow = 1, isVaild = 1 };
var list = wx_szzySubProduct_BL.GetList_SubProduct(ref pager, query);
var data = new
{
code = 0,
data = list
};
return Json(data, JsonRequestBehavior.AllowGet);
}
[Inject]
public IWX_SZZYSUBPRODUCT_GIFT _gift { get; set; }
[Inject]
public IWX_ORDERACTIVE wx_orderactive { get; set; }
[AuthorizeRedirect(Roles = InitRights.CONST_产品管理)]
public ActionResult Edit(string subProductId)
{
WX_SZZYSUBPRODUCT model;
if (string.IsNullOrWhiteSpace(subProductId))
{
model = new WX_SZZYSUBPRODUCT();
}
else
{
decimal id = Convert.ToDecimal(subProductId);
model = wx_szzySubProduct_BL.Get(m => m.SUBPRODUCTID == id);
if (string.IsNullOrEmpty(model.DISCOUNT))
{
if (!string.IsNullOrEmpty(model.PRODUCTEXT))
{
var channel = Utility.GetSettingOrNullByKey("Channel");
if (!string.IsNullOrEmpty(channel))
{
var ch = int.Parse(channel);
var extObj = JsonConvert.DeserializeObject<List<JZOrderController.ProductExt>>(model.PRODUCTEXT);
var curExt = extObj.Find(p => p.channel == ch);
if (curExt != null)
{
model.DISCOUNT = curExt.discount;
}
}
}
}
ViewBag.OrderActiveList = wx_orderactive.GetList(M => M.PRODUCTCODE == model.PRODUCTCODE);
decimal[] ids = { 1, 2 };
var gifts = _gift.GetList(p => p.SUBPRODUCTID == id && ids.Contains(p.TYPE));
//var discount = string.Empty;
//if (!string.IsNullOrEmpty(model.DISCOUNT))
//{
// discount = model.DISCOUNT;
//}
ViewBag.giftData = gifts;
//if (model.ISGIFT == 1 && gifts.Any())
//{
// var giftData = gifts.Where(p => p.TYPE == 1).OrderBy(p => p.SORT).ToList();
// var giftData2 = gifts.Where(p => p.TYPE == 2).OrderBy(p => p.SORT).ToList();
// ViewBag.giftData = giftData;
// ViewBag.giftData2 = giftData2;
//}
//else
//{
// ViewBag.giftData = null;
// ViewBag.giftData2 = null;
//}
}
return View(model);
}
[HttpPost]
[AuthorizeToolBar(Roles = InitRights.CONST_产品管理, TooBarId = InitToolBar.CONST_Edit)]
public JsonResult Edit(WX_SZZYSUBPRODUCT model, decimal[] gif1, string[] HidDisCount, string[] HIDCUSTOMPRICE)
{
if (model == null)
{
errors.Add("参数不能为空!");
return JsonHandler.InsertMessage(errors, false);
}
var modifyModel = wx_szzySubProduct_BL.Get(m => m.SUBPRODUCTID == model.SUBPRODUCTID);
#region
if (gif1 != null && gif1.Count() > 0)
{
foreach (var item in gif1)
{
var entry = _gift.Get(m => m.ID == item);
entry.ISSHOW = 1;
_gift.Update(entry);
}
}
else
{
gif1 = new decimal[] { };
}
var notlist = _gift.GetList(m => m.SUBPRODUCTID == model.SUBPRODUCTID && !gif1.Contains(m.ID));
foreach (var item in notlist)
{
item.ISSHOW = 0;
_gift.Update(item);
}
#endregion
#region
if (string.IsNullOrEmpty(modifyModel.DISCOUNT))
{
if (!string.IsNullOrEmpty(modifyModel.PRODUCTEXT))
{
var channel = Utility.GetSettingOrNullByKey("Channel");
if (!string.IsNullOrEmpty(channel))
{
var ch = int.Parse(channel);
var extObj = JsonConvert.DeserializeObject<List<JZOrderController.ProductExt>>(modifyModel.PRODUCTEXT);
var curExt = extObj.Find(p => p.channel == ch);
if (curExt != null)
{
modifyModel.DISCOUNT = curExt.discount;
}
}
}
}
//更新隐藏折扣
string NeedHid = "";
if (HidDisCount == null)
HidDisCount = new string[] { };
if (!string.IsNullOrEmpty(modifyModel.DISCOUNT))
{
var oldDis = modifyModel.DISCOUNT.Split(',');
var all = oldDis.Where(m => !HidDisCount.Contains(m));
if (all != null && all.Count() > 0)
{
NeedHid = string.Join(",", all);
}
}
modifyModel.HID_DISCOUNT = NeedHid;
//更新隐藏折后价
string NeedHidC = "";
if (HIDCUSTOMPRICE == null)
HIDCUSTOMPRICE = new string[] { };
if (!string.IsNullOrEmpty(modifyModel.CUSTOMPRICE))
{
var oldDis = modifyModel.CUSTOMPRICE.Split(',');
var all = oldDis.Where(m => !HIDCUSTOMPRICE.Contains(m));
if (all != null && all.Count() > 0)
{
NeedHidC = string.Join(",", all);
}
}
modifyModel.HID_CUSTOMPRICE = NeedHidC;
#endregion
if (modifyModel == null)
{
errors.Add("该产品不存在!");
return JsonHandler.InsertMessage(errors, false);
}
if (string.IsNullOrWhiteSpace(model.PRODUCTALIAS))
{
errors.Add("产品别名不能为空!");
return JsonHandler.InsertMessage(errors, false);
}
modifyModel.PRODUCTALIAS = model.PRODUCTALIAS;
modifyModel.ISSHOW = model.ISSHOW;
var flag = wx_szzySubProduct_BL.Update(modifyModel);
return JsonHandler.InsertMessage(errors, flag);
}
}
}