ComplianceServer/oldcode/WEB/Controllers/QH/ProductController.cs

232 lines
9.9 KiB
C#

using Ninject;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using WX.CRM.BLL.Base;
using WX.CRM.Common;
using WX.CRM.IBLL.QH;
using WX.CRM.IBLL.Util;
using WX.CRM.Model.Entity;
using WX.CRM.Model.Enum;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.QH
{
public class ProductController : BaseController
{
//
// GET: /Product/
private readonly ICACHE_Q _cacheQ;
private List<BAS_SUBCOMTYPE> comtypeList;
private List<BAS_SUBCOMTYPE> yinkuiList;
ValidationErrors errors = new ValidationErrors();
[Inject]
public IQH_PRODUCT _iqh_Product { get; set; }
public ProductController(ICACHE_Q cacheQ)
{
this._cacheQ = cacheQ;
comtypeList = _cacheQ.GetList_SubComType(ComType.GJS_PD_CALTYPE_YJ);
yinkuiList = _cacheQ.GetList_SubComType(ComType.GJS_PD_CHICANG_YINGKUI);
}
#region
[AuthorizeRedirect(Roles = InitRights.CONST_期货合约列表)]
public ActionResult Index()
{
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights., userRightId);
tool.AllowButton(toolbtn);
tool.AddOtherButton("Other1", "导出", "icon-export", "export_Click", true);
ViewBag.ToolBar = tool;
Pager pager = new Pager() { page = 1, rows = 10 };
string tableId = "tablist";
Table tab = new Table(tableId);
tab.AddHiddenHeadCol("PRODUCTID", "PRODUCTID");
tab.AddHeadCol("PRODUCTCODE", "6%", "品种代码");
tab.AddHeadCol("PRODUCTNAME", "6%", "品种名");
tab.AddHeadCol("PRODUCTAMT", "6%", "手续费");
tab.AddHeadCol("BEGINDATE", "6%", "开始日期");
tab.AddHeadCol("ENDDATE", "6%", "结束日期");
tab.AddHeadCol("NUMQTY", "6%", "每手数量");
tab.AddHeadCol("DEPOSITPER", "6%", "保证金比例(%)");
tab.AddHeadCol("MINCHANGEUNIT", "6%", "最小变动单位");
tab.AddHeadCol("CALTYPE_YJ", "6%", "佣金计算方式");
tab.AddHeadCol("CHICANG_YINGKUI", "8%", "持仓赢亏计算方式");
tab.AddHeadCol("POINTDIF", "4%", "点差");
tab.AddHeadCol("CREATEUSER", "", "创建人");
tab.AddHeadCol("CTIME", "", "创建时间");
tab.AddHeadCol("UPDATEUSER", "", "修改人");
tab.AddHeadCol("UTIME", "", "修改时间");
tab.AddHeadRow();
ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "5,8,10,15");
return View();
}
public JsonResult GetHtml(Pager pager, string productCode, string productName, string columns)
{
try
{
List<QH_PRODUCT> list = _iqh_Product.GetList(ref pager, productCode, productName);
Table table = new Table(columns, true);
table.gridPager = pager;
foreach (QH_PRODUCT model in list)
{
var caltype_yj = comtypeList.FirstOrDefault(p => p.map_SUBTYPECODE == model.CALTYPE_YJ);
var yinkui = yinkuiList.FirstOrDefault(p => p.map_SUBTYPECODE == model.CHICANG_YINGKUI);
table.AddHiddenCol(model.PRODUCTID);
table.AddCol(model.PRODUCTCODE);
table.AddCol(model.PRODUCTNAME);
table.AddCol(model.PRODUCTAMT);
table.AddCol(model.BEGINDATE.ToString("yyyy-MM-dd"));
table.AddCol(model.ENDDATE.ToString("yyyy-MM-dd"));
table.AddCol(model.NUMQTY);
table.AddCol(model.DEPOSITPER);
table.AddCol(model.MINCHANGEUNIT);
table.AddCol(caltype_yj == null ? "无" : caltype_yj.SUBTYPENAME);
table.AddCol(yinkui == null ? "无" : yinkui.SUBTYPENAME);
table.AddCol(model.POINTDIF);
table.AddCol(InnerUserHelper.Instance.EidAndName(model.CREATEUSER));
table.AddCol(model.CTIME);
table.AddCol(InnerUserHelper.Instance.EidAndName(model.UPDATEUSER));
table.AddCol(model.UTIME);
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
LogHelper.Error("CustomerQHController_ProductGetHtml:" + ex.Message + ex.StackTrace);
var json = new
{
errorMessag = "系统错误:" + ex.Message
};
return Json(json, JsonRequestBehavior.AllowGet);
}
}
#endregion
#region
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_期货合约列表, InitToolBar.CONST_Edit)]
public ActionResult Edit(decimal? id)
{
QH_PRODUCT model = null;
var CALTYPE_YJ = comtypeList.Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPECODE }).ToList();
ViewBag.CALTYPE_YJ = CALTYPE_YJ;
var YINGKUI = yinkuiList.Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPECODE }).ToList();
ViewBag.YINGKUI = YINGKUI;
if (id.HasValue)
{
model = _iqh_Product.Get(p => p.PRODUCTID == id);
}
return View(model);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_期货合约列表, InitToolBar.CONST_Edit)]
public JsonResult Edit(QH_PRODUCT model)
{
bool result = true;
int sign = 1;
if (!ModelState.IsValid)
{
string messages = string.Join("; ", ModelState.Values
.SelectMany(x => x.Errors)
.Select(x => x.ErrorMessage));
return JsonHandler.ManageMessage(messages, false);
}
try
{
if (model.PRODUCTID == 0)
{
if (_iqh_Product.Get(p => p.PRODUCTCODE == model.PRODUCTCODE) != null)
{
errors.Add("合约代码已存在,请修改");
result = false;
return JsonHandler.ManageMessage(errors, result);
}
model.PRODUCTID = new SEQUENCES_BL().Seq_base_get();
model.CREATEUSER = UserId;
model.CTIME = DateTime.Now;
model.DEPOSITPER = model.DEPOSITPER;
sign = _iqh_Product.Add(model);
if (sign > 0)
{
errors.Add("新增成功");
}
else
{
errors.Add("新增失败");
result = false;
}
return JsonHandler.InsertMessage(errors, result);
}
else
{
model.DEPOSITPER = model.DEPOSITPER;
model.UPDATEUSER = UserId;
model.UTIME = DateTime.Now;
result = _iqh_Product.Update(model);
if (result == false)
{
errors.Add("更新失败");
}
else
{
errors.Add("更新成功");
}
return JsonHandler.UpdateMessage(errors, result);
}
}
catch (Exception ex)
{
LogHelper.Error("QH_ProductController_Edit:" + ex.Message);
return JsonHandler.ManageMessage(ex.Message, false);
}
}
#endregion
#region
public FileResult Export(string productCode, string productName)
{
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
checkedFilds = checkedFilds.Replace("[]", "");
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
List<QH_PRODUCT> list = _iqh_Product.GetList(ref pager, productCode, productName);
return File(ExcelHelper.ExportListModelToExcel<QH_PRODUCT>(list, "期货合约列表", 10000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("期货合约列表.xls"));
}
//用作委托传递
public string DataFormart(string key, object value)
{
string formartValue = string.Empty;
switch (key)
{
case "CALTYPE_YJ":
var caltype_yj = comtypeList.FirstOrDefault(p => p.map_SUBTYPECODE == value.ToString());
formartValue = caltype_yj == null ? "无" : caltype_yj.SUBTYPENAME;
break;
case "CHICANG_YINGKUI":
var yinkui = yinkuiList.FirstOrDefault(p => p.map_SUBTYPECODE == value.ToString());
formartValue = yinkui == null ? "无" : yinkui.SUBTYPENAME; break;
case "CREATEUSER":
case "UPDATEUSER":
formartValue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value)); break;
default: formartValue = string.Format("{0}", value); break;
}
return formartValue;
}
#endregion
}
}