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 comtypeList; private List 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 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 list = _iqh_Product.GetList(ref pager, productCode, productName); return File(ExcelHelper.ExportListModelToExcel(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 } }