882 lines
39 KiB
C#
882 lines
39 KiB
C#
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; }
|
||
}
|
||
}
|
||
} |