using Core.Web.App_Start; using Core.Web.WebHelper; using CRM.Core.BLL.Application.SoftProduct; using CRM.Core.BLL.Base; using CRM.Core.BLL.Util; using CRM.Core.BLL.Wx; using CRM.Core.Common.Layui; using CRM.Core.DTO; using CRM.Core.Model.Entity; using CRM.Core.Model.Map; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web.Mvc; using WX.CRM.Common; namespace Core.Web.Controllers { public class ProductController : BaseController { CACHE_BL cache_BL = new CACHE_BL(); WX_PRODUCT_BL product_bl = new WX_PRODUCT_BL(); private readonly SoftProductService _softProductService = new SoftProductService(); #region 主产品设置 // GET: Product [AuthorizeRedirect(RightsConfig.CONST_产品设置, ToolBarConfig.CONST_NotButton, true)] public ActionResult Index() { ViewBag.rightCode = RightsConfig.CONST_产品设置; var list = product_bl.GetProductList().Where(p => p.parentid == 0); List productList = new List(); foreach (var item in list) { productList.Add(new SelectListItem { Text = item.PRODUCTNAME, Value = item.PRODUCTID.ToString() }); } ViewBag.productList = productList; return View(); } [HttpPost] [AuthorizeRedirect(RightsConfig.CONST_产品设置, ToolBarConfig.CONST_NotButton, false)] public JsonResult Index(Laypage pager, int? productId, int? productId1, int? productId2, decimal? isValid, string subProductName, string productCode, decimal? price, int? opendays) { try { var products = product_bl.GetProductList(); var subProducts = product_bl.GetSubProductListByProductId(0, 0, null); if (productId.HasValue && !productId1.HasValue && !productId2.HasValue) { subProducts = subProducts.Where(p => p.PRODUCTID == productId.Value).ToList(); } if (productId1.HasValue && !productId2.HasValue) { var arr1 = products.Where(p => p.parentid == productId1.Value).Select(p => p.PRODUCTID).ToList(); subProducts = subProducts.Where(p => arr1.Contains(p.MidProductId.Value)).ToList(); } if (productId2.HasValue) { subProducts = subProducts.Where(p => p.MidProductId == productId2.Value).ToList(); } if (isValid.HasValue) { subProducts = subProducts.Where(p => p.ISVALID == isValid).ToList(); } if (!string.IsNullOrEmpty(subProductName)) { subProducts = subProducts.Where(p => p.SUBPRODUCTNAME.Contains(subProductName)).ToList(); } if (!string.IsNullOrEmpty(productCode)) { subProducts = subProducts.Where(p => p.PRODUCTCODE == productCode).ToList(); } if (price.HasValue) { subProducts = subProducts.Where(p => p.PRICE == price.Value).ToList(); } if (opendays.HasValue) { subProducts = subProducts.Where(p => p.RIGHTPERIOD == opendays.Value).ToList(); } subProducts = subProducts.Where(p => p.IsDelete == 0).ToList(); var queryData = subProducts.AsQueryable(); PagerUtil.SetPager(ref queryData, ref pager); subProducts = queryData.ToList(); var list = new List(); foreach (var item in subProducts) { var samllCategoryName = string.Empty; var bigCategoryName = string.Empty; var seriesNameInfo = products.FirstOrDefault(p => p.parentid == 0 && p.PRODUCTID == item.PRODUCTID); var samllCategoryModel = products.FirstOrDefault(p => p.PRODUCTID == item.MidProductId); if (samllCategoryModel != null) { samllCategoryName = samllCategoryModel.PRODUCTNAME; var bigCategory = products.FirstOrDefault(p => p.PRODUCTID == samllCategoryModel.parentid); if (bigCategory != null) { bigCategoryName = bigCategory.PRODUCTNAME; } } string mids = item.Mid.ToString(); string name = item.SUBPRODUCTNAME; var product = _softProductService.GetSoftProductPackage(item.PRODUCTCODE); if (product != null) { var midlist = _softProductService.GetSoftProductList(product.SubProducts).Select(p => p.ModuleId); mids = string.Join(",", midlist); if (string.IsNullOrEmpty(mids)) { mids = item.Mid.ToString(); } name = product.Name; } var info = new ProductView(item.SUBPRODUCTID, name, samllCategoryName, bigCategoryName, seriesNameInfo == null ? string.Empty : seriesNameInfo.PRODUCTNAME, mids, item.PRICE.Value, item.RIGHTPERIOD.Value, item.ISVALID.Value, item.IsCompliance, item.PRODUCTCODE); list.Add(info); } var data = new LayuiData() { msg = "数据加载成功!", count = pager.count, code = 0, data = list }; return Json(data, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error(ex.ToString()); return Json(new { }, JsonRequestBehavior.AllowGet); } } #endregion #region 事业部产品明细列表 // GET: Product [AuthorizeRedirect(RightsConfig.CONST_事业部产品列表, ToolBarConfig.CONST_NotButton, true)] public ActionResult ProductIndex() { ViewBag.rightCode = RightsConfig.CONST_事业部产品列表; var list = product_bl.GetProductList().Where(p => p.parentid == 0); List productList = new List(); foreach (var item in list) { productList.Add(new SelectListItem { Text = item.PRODUCTNAME, Value = item.PRODUCTID.ToString() }); } ViewBag.productList = productList; ViewBag.companyList = cache_BL.GetCompanyVirtual(); return View(); } [HttpPost] [AuthorizeRedirect(RightsConfig.CONST_事业部产品列表, ToolBarConfig.CONST_NotButton, false)] public JsonResult ProductIndex(Laypage pager, ProductQueryDto dto) { try { var products = product_bl.GetProductList(); var queryData = product_bl.GetSubProductList(ref pager, dto); var list = new List(); List virualList = GetCompanyVirual(); foreach (var item in queryData) { var samllCategoryName = string.Empty; var bigCategoryName = string.Empty; var seriesNameInfo = products.FirstOrDefault(p => p.parentid == 0 && p.PRODUCTID == item.PRODUCTID); var samllCategoryModel = products.FirstOrDefault(p => p.PRODUCTID == item.MidProductId); if (samllCategoryModel != null) { samllCategoryName = samllCategoryModel.PRODUCTNAME; var bigCategory = products.FirstOrDefault(p => p.PRODUCTID == samllCategoryModel.parentid); if (bigCategory != null) { bigCategoryName = bigCategory.PRODUCTNAME; } } string mids = item.Mid.ToString(); var product = _softProductService.GetSoftProductPackage(item.productcode); if (product != null) { var midlist = _softProductService.GetSoftProductList(product.SubProducts).Select(p => p.ModuleId); mids = string.Join(",", midlist); if (string.IsNullOrEmpty(mids)) { mids = item.Mid.ToString(); } } var info = new ProductView(item.SubProductId, item.subproductname, samllCategoryName, bigCategoryName, seriesNameInfo == null ? string.Empty : seriesNameInfo.PRODUCTNAME, mids, item.Price.Value, item.RightPeriod.Value, item.isValid.Value, item.IsCompliance, item.productcode); var df = virualList.FirstOrDefault(m => m.channels.Where(a => a.maxChannel >= item.channel && a.minChannel <= item.channel).Count() > 0); if (df != null) { info.CompanyName = df.companyname; } else { info.CompanyName = "未知"; } list.Add(info); } var data = new LayuiData() { msg = "数据加载成功!", count = pager.count, code = 0, data = list }; return Json(data, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error(ex.ToString()); return Json(new { }, JsonRequestBehavior.AllowGet); } } public List GetCompanyVirual() { List list = new List(); Bas_CompanyVirtual_BL bl = new Bas_CompanyVirtual_BL(); List virList = bl.GetList().ToList(); foreach (var item in virList) { var model = new CompanyVirlual() { channel = item.Channel, companycode = item.CompanyCode, companyname = item.CompanyName }; model.channels = new List(); foreach (var chennl in item.Channel.Split('|')) { var qujian = chennl.Split(','); model.channels.Add(new MyChannel() { minChannel = Convert.ToInt32(qujian[0].Trim()), maxChannel = Convert.ToInt32(qujian[1].Trim()) }); }; list.Add(model); } return list; } #endregion [AuthorizeRedirect(RightsConfig.CONST_产品设置, ToolBarConfig.CONST_Add, true)] public ActionResult Add() { var list = product_bl.GetProductList().Where(p => p.parentid == 0 && p.level == 1); List productList = new List(); foreach (var item in list) { productList.Add(new SelectListItem { Text = item.PRODUCTNAME, Value = item.PRODUCTID.ToString() }); } ViewBag.productList = productList; ViewBag.companyList = cache_BL.GetCompanyVirtual(); //var lableName = _softProductService.GetLableName(); //ViewBag.LableName = lableName; return View(); } [HttpPost] [AuthorizeRedirect(RightsConfig.CONST_产品设置, ToolBarConfig.CONST_Add, false)] public JsonResult Add(ProductDto dto) { //LogHelper.Info(dto.ToJson()); //var productExt = dto.productext.ToObject>(); //var companyList = cache_BL.GetCompanyCode(); //foreach (var item in productExt) //{ // var company = companyList.FirstOrDefault(p => p.Min <= item.Channel && p.Max >= item.Channel); // if (company == null) // { // return Json(new { result = false, code = "channel" }, JsonRequestBehavior.AllowGet); // } // item.CompanyCode = company.CompanyCode; //} //foreach (var item in productExt) //{ // var subProduct = new WX_SZZYSUBPRODUCT // { // SUBPRODUCTID = 0, // PRODUCTID = dto.productId1, // MidProductId = dto.productId3 // }; // var company = companyList.FirstOrDefault(p => p.Min <= item.Channel && p.Max >= item.Channel); // if (dto.productType == 0) // { // var product = _softProductService.GetSoftProduct(dto.softProductId); // if (product != null) // { // var module = _softProductService.GetSoftModule(product.ModuleId); // subProduct.SUBPRODUCTNAME = string.IsNullOrEmpty(item.SubProductName) ? product.Name : item.SubProductName; // subProduct.SUBPRODUCTDESC = string.Empty; // subProduct.PRICE = product.Price; // subProduct.RIGHTPERIOD = product.Day; // subProduct.RIGHTUNIT = null; // subProduct.ISVALID = item.IsValid; // subProduct.ORDEROPENTYPE = 0; // subProduct.OPENDATE = null; // subProduct.ENDDATE = null; // subProduct.SORT = 0; // subProduct.PRODUCTALIAS = product.Name; // subProduct.PRODUCTCODE = product.Id; // subProduct.PRODUCTTYPE = 0; // subProduct.PRODUCTLEVEL = module.RiskLevel.Value; // subProduct.PRODUCTINVESTTIME = module.InvestTime; // subProduct.PRODUCTINVESTTYPE = module.InvestType; // subProduct.Mid = int.Parse(product.ModuleId); // subProduct.IsCompliance = product.Compliance; // subProduct.Mids = string.Empty; // subProduct.CanUpgrade = dto.canupgrade; // subProduct.Category = dto.category; // subProduct.CloseUpgradeRole = dto.closeupgraderole; // subProduct.ThirdOrderCate = dto.thirdordercate; // subProduct.IsGift = item.IsGift; // subProduct.IsOnlineBuy = dto.isonlinebuy.HasValue ? item.Channel : (int?)null; // subProduct.BuyLink = dto.buylink; // subProduct.CallBackLink = dto.callbacklink; // subProduct.Att = dto.att; // subProduct.Remark = dto.remark; // subProduct.LableNameId = dto.lablenameid; // subProduct.ProductExt = dto.productext; // subProduct.SettleType = dto.settletype; // //subProduct.Channel = dto.channel; // //subProduct.CompanyCode = CompanyCode; // } // } // else if (dto.productType == 1) // { // var product = _softProductService.GetSoftProductPackage(dto.softProductId); // if (product != null) // { // var idArr = new List(product.SubProducts.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries)); // var basProduct = _softProductService.GetSoftProduct(idArr[0]); // var module = _softProductService.GetSoftModule(basProduct.ModuleId); // subProduct.SUBPRODUCTNAME = string.IsNullOrEmpty(item.SubProductName) ? product.Name : item.SubProductName; // subProduct.SUBPRODUCTDESC = string.Empty; // subProduct.PRICE = product.Price; // subProduct.RIGHTPERIOD = basProduct.Day; // subProduct.RIGHTUNIT = null; // subProduct.ISVALID = item.IsValid; // subProduct.ORDEROPENTYPE = 0; // subProduct.OPENDATE = null; // subProduct.ENDDATE = null; // subProduct.SORT = 0; // subProduct.PRODUCTALIAS = product.Name; // subProduct.PRODUCTCODE = product.Id; // subProduct.PRODUCTTYPE = 1; // subProduct.PRODUCTLEVEL = module.RiskLevel.Value; // subProduct.PRODUCTINVESTTIME = module.InvestTime; // subProduct.PRODUCTINVESTTYPE = module.InvestType; // subProduct.Mid = int.Parse(basProduct.ModuleId); // subProduct.IsCompliance = basProduct.Compliance; // subProduct.Mids = string.Empty; // subProduct.CanUpgrade = dto.canupgrade; // subProduct.Category = dto.category; // subProduct.CloseUpgradeRole = dto.closeupgraderole; // subProduct.ThirdOrderCate = dto.thirdordercate; // subProduct.IsGift = item.IsGift; // subProduct.IsOnlineBuy = dto.isonlinebuy.HasValue ? item.Channel : (int?)null; // subProduct.BuyLink = dto.buylink; // subProduct.CallBackLink = dto.callbacklink; // subProduct.Att = dto.att; // subProduct.Remark = dto.remark; // subProduct.LableNameId = dto.lablenameid; // subProduct.ProductExt = dto.productext; // subProduct.SettleType = dto.settletype; // //subProduct.Channel = dto.channel; // //subProduct.CompanyCode = CompanyCode; // } // } // var result = product_bl.InsertOrUpdate(subProduct, item.CompanyCode); //} try { var result = product_bl.InsertOrUpdate(dto); try { CacheHelper.Remove("cache_wx_szzysubproduct"); Utility.PostData("http://localhost:8096/OrderService.svc/Cache/Clear", System.Text.Encoding.UTF8); } catch { }//忽略异常 return Json(new { result }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("清除接口缓存失败:" + ex.ToString()); } return Json(new { result = false }, JsonRequestBehavior.AllowGet); } [AuthorizeRedirect(RightsConfig.CONST_产品设置, ToolBarConfig.CONST_Edit, true)] public ActionResult Edit(int productId, string CompanyName) { var subproductList = product_bl.GetSubProductListByProductId(0, 0, null); var subproduct = subproductList.FirstOrDefault(p => p.SUBPRODUCTID == productId); //LogHelper.Info(subproduct.ToJson()); var list = product_bl.GetProductList().Where(p => p.parentid == 0); var productList = new List(); foreach (var item in list) { productList.Add(new SelectListItem { Text = item.PRODUCTNAME, Value = item.PRODUCTID.ToString() }); } ViewBag.productList = productList; var list2 = product_bl.GetProductList().Where(p => p.parentid == subproduct.PRODUCTID); var productList2 = new List(); foreach (var item in list2) { productList2.Add(new SelectListItem { Text = item.PRODUCTNAME, Value = item.PRODUCTID.ToString() }); } ViewBag.productList2 = productList2; var parentId3 = product_bl.GetProductList().FirstOrDefault(p => p.PRODUCTID == subproduct.MidProductId); var productList3 = new List(); if (parentId3 != null) { var list3 = product_bl.GetProductList().Where(p => p.parentid == parentId3.parentid); foreach (var item in list3) { productList3.Add(new SelectListItem { Text = item.PRODUCTNAME, Value = item.PRODUCTID.ToString() }); } ViewBag.parentId3 = parentId3.parentid; } ViewBag.productList3 = productList3; var subproductListCH = product_bl.GetSzzySubProductCH(); var subproductCH = subproductListCH.Where(p => p.subproductid == productId).ToList(); ViewBag.subproductCH = subproductCH; //var lableName = _softProductService.GetLableName(); //ViewBag.LableName = lableName; ViewBag.companyList = cache_BL.GetCompanyVirtual(); ViewBag.virualList = GetCompanyVirual(); ViewBag.companyName = CompanyName; return View(subproduct); } [HttpPost] [AuthorizeRedirect(RightsConfig.CONST_产品设置, ToolBarConfig.CONST_Edit, false)] public JsonResult Edit(ProductDto dto) { //LogHelper.Info(dto.ToJson()); //var productExt = dto.productext.ToObject>(); //var companyList = cache_BL.GetCompanyCode(); //foreach (var item in productExt) //{ // var company = companyList.FirstOrDefault(p => p.Min <= item.Channel && p.Max >= item.Channel); // if (company == null) // { // return Json(new { result = false, code = "channel" }, JsonRequestBehavior.AllowGet); // } // item.CompanyCode = company.CompanyCode; //} //foreach (var item in productExt) //{ // var subProduct = new WX_SZZYSUBPRODUCT // { // SUBPRODUCTID = dto.subProductId, // PRODUCTID = dto.productId1, // MidProductId = dto.productId3 // }; // var company = companyList.FirstOrDefault(p => p.Min <= item.Channel && p.Max >= item.Channel); // if (dto.productType == 0) // { // var product = _softProductService.GetSoftProduct(dto.softProductId); // if (product != null) // { // var module = _softProductService.GetSoftModule(product.ModuleId); // subProduct.SUBPRODUCTNAME = string.IsNullOrEmpty(item.SubProductName) ? product.Name : item.SubProductName; // subProduct.SUBPRODUCTDESC = string.Empty; // subProduct.PRICE = product.Price; // subProduct.RIGHTPERIOD = product.Day; // subProduct.RIGHTUNIT = null; // subProduct.ISVALID = item.IsValid; // subProduct.ORDEROPENTYPE = 0; // subProduct.OPENDATE = null; // subProduct.ENDDATE = null; // subProduct.SORT = 0; // subProduct.PRODUCTALIAS = product.Name; // subProduct.PRODUCTCODE = product.Id; // subProduct.PRODUCTTYPE = 0; // subProduct.PRODUCTLEVEL = module.RiskLevel.Value; // subProduct.PRODUCTINVESTTIME = module.InvestTime; // subProduct.PRODUCTINVESTTYPE = module.InvestType; // subProduct.Mid = int.Parse(product.ModuleId); // subProduct.IsCompliance = product.Compliance; // subProduct.Mids = string.Empty; // subProduct.CanUpgrade = dto.canupgrade; // subProduct.Category = dto.category; // subProduct.CloseUpgradeRole = dto.closeupgraderole; // subProduct.ThirdOrderCate = dto.thirdordercate; // subProduct.IsGift = item.IsGift; // subProduct.IsOnlineBuy = dto.isonlinebuy.HasValue ? item.Channel : (int?)null; // subProduct.BuyLink = dto.buylink; // subProduct.CallBackLink = dto.callbacklink; // subProduct.Att = dto.att; // subProduct.Remark = dto.remark; // subProduct.LableNameId = dto.lablenameid; // subProduct.ProductExt = dto.productext; // subProduct.SettleType = dto.settletype; // //subProduct.Channel = dto.channel; // //subProduct.CompanyCode = CompanyCode; // } // } // else if (dto.productType == 1) // { // var product = _softProductService.GetSoftProductPackage(dto.softProductId); // if (product != null) // { // var idArr = new List(product.SubProducts.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries)); // var basProduct = _softProductService.GetSoftProduct(idArr[0]); // var module = _softProductService.GetSoftModule(basProduct.ModuleId); // subProduct.SUBPRODUCTNAME = string.IsNullOrEmpty(item.SubProductName) ? product.Name : item.SubProductName; // subProduct.SUBPRODUCTDESC = string.Empty; // subProduct.PRICE = product.Price; // subProduct.RIGHTPERIOD = basProduct.Day; // subProduct.RIGHTUNIT = null; // subProduct.ISVALID = item.IsValid; // subProduct.ORDEROPENTYPE = 0; // subProduct.OPENDATE = null; // subProduct.ENDDATE = null; // subProduct.SORT = 0; // subProduct.PRODUCTALIAS = product.Name; // subProduct.PRODUCTCODE = product.Id; // subProduct.PRODUCTTYPE = 1; // subProduct.PRODUCTLEVEL = module.RiskLevel.Value; // subProduct.PRODUCTINVESTTIME = module.InvestTime; // subProduct.PRODUCTINVESTTYPE = module.InvestType; // subProduct.Mid = int.Parse(basProduct.ModuleId); // subProduct.IsCompliance = basProduct.Compliance; // subProduct.Mids = string.Empty; // subProduct.CanUpgrade = dto.canupgrade; // subProduct.Category = dto.category; // subProduct.CloseUpgradeRole = dto.closeupgraderole; // subProduct.ThirdOrderCate = dto.thirdordercate; // subProduct.IsGift = item.IsGift; // subProduct.IsOnlineBuy = dto.isonlinebuy.HasValue ? item.Channel : (int?)null; // subProduct.BuyLink = dto.buylink; // subProduct.CallBackLink = dto.callbacklink; // subProduct.Att = dto.att; // subProduct.Remark = dto.remark; // subProduct.LableNameId = dto.lablenameid; // subProduct.ProductExt = dto.productext; // subProduct.SettleType = dto.settletype; // //subProduct.Channel = dto.channel; // //subProduct.CompanyCode = CompanyCode; // } // } // var result = product_bl.InsertOrUpdate(subProduct, item.CompanyCode); //} try { var result = product_bl.InsertOrUpdate(dto); try { CacheHelper.Remove("cache_wx_szzysubproduct"); Utility.PostData("http://localhost:8096/OrderService.svc/Cache/Clear", System.Text.Encoding.UTF8); } catch { }//忽略异常 return Json(new { result }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("清除接口缓存失败:" + ex.ToString()); } return Json(new { result = false }, JsonRequestBehavior.AllowGet); } public JsonResult GetSoftProduct(int productType, string id, int? subProductId) { if (subProductId > 0) { var ishav = product_bl.GetSubProductList().Any(m => m.SUBPRODUCTID != subProductId && m.PRODUCTCODE == id); if (ishav) return Json(new { result = false, msg = "产品id重复!" }, JsonRequestBehavior.AllowGet); } else { var prodect = product_bl.GetSubProduct(id); if (prodect != null) return Json(new { result = false, msg = "产品id重复!" }, JsonRequestBehavior.AllowGet); } if (productType == 0) { var product = _softProductService.GetSoftProduct(id); if (product != null) { var data = new ProductView(0, product.Name, null, null, null, product.ModuleId, product.Price, product.Day, 0, product.Compliance, product.Id); return Json(new { result = true, data }, JsonRequestBehavior.AllowGet); } } else if (productType == 1) { var productPack = _softProductService.GetSoftProductPackage(id); if (productPack != null) { var list = _softProductService.GetSoftProductList(productPack.SubProducts).Select(p => p.ModuleId); var product = _softProductService.GetSoftProduct(productPack.SubProducts.Trim().Split('|').First()); if (product != null) { var data = new ProductView(0, productPack.Name, null, null, null, string.Join(",", list), productPack.Price, product.Day, 0, product.Compliance, productPack.Id); return Json(new { result = true, data }, JsonRequestBehavior.AllowGet); } } } return null; } [HttpPost] public JsonResult UploadAtt() { var file = Request.Files[0]; var vPath = System.Configuration.ConfigurationManager.AppSettings["UploadTemFileDic"] + "/att"; var rootPath = Server.MapPath(vPath); if (!System.IO.Directory.Exists(rootPath)) { System.IO.Directory.CreateDirectory(rootPath); } var saveFileName = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName); var urlPath = vPath + "/" + saveFileName; var fileName = Path.Combine(rootPath, saveFileName); file.SaveAs(fileName); return Json(new retMsg { result = true, retcode = 1, retmsg = urlPath }, JsonRequestBehavior.AllowGet); } /// /// 大类管理 /// /// [AuthorizeRedirect(RightsConfig.CONST_产品分类, ToolBarConfig.CONST_NotButton, true)] public ActionResult Product2List() { ViewBag.rightCode = RightsConfig.CONST_产品分类; return View(); } public JsonResult ProductLevelList(Laypage pager, string level, string productname, string productcode) { var parentList = product_bl.GetProductList(false); IEnumerable list = product_bl.GetProductList(false); if (!string.IsNullOrEmpty(level)) { if (int.TryParse(level, out int i)) { list = list.Where(p => p.level == i); } } if (!string.IsNullOrEmpty(productname)) { list = list.Where(p => p.PRODUCTNAME.IndexOf(productname) > -1); } if (!string.IsNullOrEmpty(productcode)) { list = list.Where(p => p.PRODUCTCODE == productcode); } var queryList = list.AsQueryable(); PagerUtil.SetPager(ref queryList, ref pager); List dataList = new List(); foreach (var item in queryList.ToList()) { Product2Row r = new Product2Row(); r.ProductId = item.PRODUCTID; r.ProductCode = item.PRODUCTCODE; r.ProductName = item.PRODUCTNAME; r.ProductDesc = item.PRODUCTDESC; r.ProductBrieDesc = item.PRODUCTBRIEFDESC; r.IsValid = item.ISVALID; var parent = parentList.FirstOrDefault(m => m.PRODUCTID == item.parentid); r.ParentName = parent?.PRODUCTNAME; r.Level = item.level; dataList.Add(r); } var data = new LayuiData() { msg = "数据加载成功!", count = pager.count, code = 0, data = dataList.OrderBy(m => m.Level).ToList() }; return Json(data, JsonRequestBehavior.AllowGet); } [AuthorizeRedirect(RightsConfig.CONST_产品分类, ToolBarConfig.CONST_Edit, true)] public ActionResult ProductLevelEdit(Product2Row dto) { var productList = product_bl.GetProductList(false); if (dto.ProductId > 0) { var product = productList.FirstOrDefault(m => m.PRODUCTID == dto.ProductId); if (product != null) { dto.ProductCode = product.PRODUCTCODE; dto.ProductName = product.PRODUCTNAME; dto.ProductDesc = product.PRODUCTDESC; dto.ProductBrieDesc = product.PRODUCTBRIEFDESC; dto.IsValid = product.ISVALID; dto.ParentId = product.parentid; dto.Level = product.level; dto.Sort = product.sort; } } ViewBag.dataList = productList; return View(dto); } /// /// 保存 /// /// /// public JsonResult ProductSubmit(Product2Row dto) { try { if (string.IsNullOrEmpty(dto.ProductName)) { return Json(new { result = false, msg = "名字不能为空!" }, JsonRequestBehavior.AllowGet); } if (dto.Level != 1 && dto.ParentId == 0) { return Json(new { result = false, msg = "大小类必须选择父级产品!" }, JsonRequestBehavior.AllowGet); } var productList = product_bl.GetProductList(false); WX_SZZYPRODUCT model = null; if (dto.ProductId > 0) { model = productList.FirstOrDefault(m => m.PRODUCTID != dto.ProductId && m.PRODUCTNAME == dto.ProductName); } else { model = productList.FirstOrDefault(m => m.PRODUCTNAME == dto.ProductName); } //名字重复 if (model != null) { return Json(new { result = false, msg = "已经存在相同产品名字!" }, JsonRequestBehavior.AllowGet); } bool result = product_bl.InsertOrUpdate(dto); return Json(new { result }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { return Json(new { result = false, msg = ex.Message }, JsonRequestBehavior.AllowGet); } } public class ProductView { public ProductView(int subProductId, string subProductName, string samllCategoryName, string bigCategoryName, string seriesName, string mid, decimal price, decimal rightPeriod, decimal isValid, decimal isCompliance, string productCode) { SubProductId = subProductId; SubProductName = subProductName; SamllCategoryName = samllCategoryName; BigCategoryName = bigCategoryName; SeriesName = seriesName; Mid = mid; Price = price; RightPeriod = rightPeriod; IsValid = isValid; IsCompliance = isCompliance; ProductCode = productCode; } public int SubProductId { get; set; } public string SubProductName { get; set; } public string SamllCategoryName { get; set; } public string BigCategoryName { get; set; } public string SeriesName { get; set; } public string Mid { get; set; } public decimal Price { get; set; } public decimal RightPeriod { get; set; } public decimal IsValid { get; set; } public decimal IsCompliance { get; set; } public string ProductCode { get; set; } /// /// 公司名称 /// public string CompanyName { get; set; } } //public class ProductDto //{ // public int subProductId { get; set; } // public int productId1 { get; set; } // public int productId2 { get; set; } // public int productId3 { get; set; } // public int productType { get; set; } // public string softProductId { get; set; } // public string att { get; set; } // public string remark { get; set; } // public int canupgrade { get; set; } // public int category { get; set; } // public int closeupgraderole { get; set; } // public int thirdordercate { get; set; } // //public int isgift { get; set; } // public int? isonlinebuy { get; set; } // public string buylink { get; set; } // public string callbacklink { get; set; } // public int? lablenameid { get; set; } // //public int channel { get; set; } // //public int isvalid { get; set; } // public string productext { get; set; } // public int settletype { get; set; } //} public class ProductExtDto { public int Channel { get; set; } public string CompanyCode { get; set; } public int IsValid { get; set; } public string SubProductName { get; set; } public int IsGift { get; set; } } } }