285 lines
11 KiB
C#
285 lines
11 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("MODULES", "", "权限");
|
|
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.MODULES);
|
|
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, int[] discountarea)
|
|
{
|
|
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;
|
|
|
|
#region 价格区间
|
|
if (!string.IsNullOrEmpty(modifyModel.DISCOUNTAREA))
|
|
{
|
|
var area = JsonConvert.DeserializeObject<List<DiscountArea>>(modifyModel.DISCOUNTAREA);
|
|
if (discountarea == null)
|
|
discountarea = new int[] { };
|
|
foreach (var item in area)
|
|
{
|
|
item.IsShow = 0;
|
|
}
|
|
var areashowList = area.Where(p => discountarea.Contains(p.Id));
|
|
foreach (var item in areashowList)
|
|
{
|
|
item.IsShow = 1;
|
|
}
|
|
modifyModel.DISCOUNTAREA = JsonConvert.SerializeObject(area);
|
|
}
|
|
#endregion
|
|
|
|
#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);
|
|
}
|
|
}
|
|
|
|
public class DiscountArea
|
|
{
|
|
public int Id { get; set; }
|
|
public decimal? Min { get; set; }
|
|
public decimal? Max { get; set; }
|
|
public decimal? MinRate { get; set; }
|
|
public decimal? MaxRate { get; set; }
|
|
public int IsShow { get; set; }
|
|
}
|
|
} |