232 lines
9.9 KiB
C#
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
|
|
|
|
}
|
|
}
|