ComplianceServer/oldcode/Core.Web/Controllers/ProductController.cs

882 lines
39 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<SelectListItem> productList = new List<SelectListItem>();
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<ProductView>();
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<ProductView>()
{
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<SelectListItem> productList = new List<SelectListItem>();
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<ProductView>();
List<CompanyVirlual> 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<ProductView>()
{
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<CompanyVirlual> GetCompanyVirual()
{
List<CompanyVirlual> list = new List<CompanyVirlual>();
Bas_CompanyVirtual_BL bl = new Bas_CompanyVirtual_BL();
List<Bas_CompanyVirtual> 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<MyChannel>();
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<SelectListItem> productList = new List<SelectListItem>();
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<List<ProductExtDto>>();
//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<string>(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<SelectListItem>();
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<SelectListItem>();
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<SelectListItem>();
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<List<ProductExtDto>>();
//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<string>(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);
}
/// <summary>
/// 大类管理
/// </summary>
/// <returns></returns>
[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<WX_SZZYPRODUCT> 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<Product2Row> dataList = new List<Product2Row>();
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<Product2Row>()
{
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);
}
/// <summary>
/// 保存
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
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; }
/// <summary>
/// 公司名称
/// </summary>
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; }
}
}
}