using YLErp.Modules.BasicDataModule; namespace YLErp.Web.Controllers { public class exchange_accountController : BaseController { readonly YLContext db = new YLContext(); public ActionResult exchange_accountList() { return View(); } [HttpPost] public JsonResult exchange_accountQuery(ExchangeAccountReq req) { var bll = new ExchangeAccountService(CurUser); var sList = bll.SearchList(req); foreach (var account in sList.rows) { var varietyIdList = DataConvert.ConvertCommaValuesToInt32Array(account.VarietyIds); var varietyNames = varietyIdList.Select(vId => { return VarietyBLL.GetAllvarietyModel().FirstOrDefault(v => v.id == vId)?.VarietyName; }); account.VarietyNames = string.Join(",", varietyNames); } return Json(sList); } public ActionResult exchange_accountView(string enid) { var intid = DataProtectHelper.DecryptInt(enid); var account = db.exchange_account.Find(intid); var varietyIdList = DataConvert.ConvertCommaValuesToInt32Array(account.VarietyIds); var varietyNames = varietyIdList.Select(vId => VarietyBLL.GetAllvarietyModel().FirstOrDefault(v => v.id == vId)?.VarietyName); account.VarietyNames = string.Join(",", varietyNames); var book = db.assetunit.FirstOrDefault(x => x.id == account.DefaultBookId); var r = new ExchangeAccountResult() { ExchangeAccount = account, TradingBook = book }; return View(r); } public ActionResult exchange_accountEdit(string enid) { var isAdd = string.IsNullOrEmpty(enid) || enid == "0"; if (isAdd) { return View(new ExchangeAccount { Total = 0, Available = 0 }); } var intid = DataProtectHelper.DecryptInt(enid); var account = db.exchange_account.Find(intid); return View(account); } [HttpPost] public async Task exchange_accountEditJson(ExchangeAccountReq req) { //var sameCodeAccount = db.exchange_account.FirstOrDefault(e => e.AccountCode == req.AccountCode); //if (sameCodeAccount != null && sameCodeAccount.id != req.id) //{ // return JsonError("已存在相同的对冲账号"); //} var traderIds = req.TraderIds; if (!string.IsNullOrEmpty(traderIds)) { var textList = new List(); var ids = traderIds.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); var selectListItems = GlobalData.GetAllUser(); foreach (var s in ids) { var text = selectListItems.Where(d => d.Value == s).Select(d => d.Text).FirstOrDefault(); if (!string.IsNullOrEmpty(text)) { textList.Add(text); } } req.TraderNames = string.Join(",", textList); } else { req.TraderNames = ""; } var id = 0; if (!string.IsNullOrEmpty(req.EncryptId)) { id = DataProtectHelper.DecryptInt(req.EncryptId); } var exchangeAccounts = db.exchange_account.Where(x => x.id != id).ToList(); foreach (var exchangeAccount in exchangeAccounts) { var traders = req.TraderNames.Split(",").ToList(); var oldTraders= exchangeAccount.TraderNames.Split(',').ToList(); List intersection = traders.Intersect(oldTraders).ToList(); intersection = intersection.Where(x => !string.IsNullOrEmpty(x)).ToList(); if (intersection.Count>0) { var traderNames = string.Join(",", intersection); throw new Exception($"交易员{traderNames}已经有指定的对冲账户,不可重复!"); } } var r = await SaveExchangeAccount(id, req); return JsonSuccess("更新成功", r); } private async Task SaveExchangeAccount(int? id, ExchangeAccountReq req = null) { ExchangeAccount r; var isAddNew = id == null || id == 0; if (isAddNew) { r = new ExchangeAccount(); db.exchange_account.Add(r); } else { r = db.exchange_account.Find(id); } await TryUpdateModelAsync(r); if (req != null) { r.TraderNames = req.TraderNames; } db.SaveChanges(); return r; } [HttpPost] public JsonResult Deleteexchange_account(string id) { var intid = DataProtectHelper.DecryptInt(id); var r = db.exchange_account.Find(intid); if (r == null) { return JsonError("找不到数据"); } db.exchange_account.Remove(r); db.SaveChanges(); return JsonSuccess("删除成功"); } public ActionResult stockCommissionSetUp(string AccountCode) { var r = db.stock_commission_config.FirstOrDefault(t => t.ExchangeAccountCode == AccountCode); if (r == null) { r = new StockCommissionConfig { ExchangeAccountCode = AccountCode }; } return View(r); } /// /// 保存客户信息 /// [HttpPost] public async Task stockCommissionSetUpEditJson(stock_commission_configReq req) { var id = 0; if (!string.IsNullOrEmpty(req.EncryptId)) { id = DataProtectHelper.DecryptInt(req.EncryptId); } StockCommissionConfig r; var isAddNew = id == 0; if (isAddNew) { r = new StockCommissionConfig { OptId = CurUser.UserId, OptName = CurUser.UserName }; db.stock_commission_config.Add(r); } else { r = db.stock_commission_config.Find(id); } r.OptDate = DateTime.Now; await TryUpdateModelAsync(r); if (r.StampDutyType == "0") { r.StampDutyType = null; r.StampDuty = null; r.MinStampDuty = null; } if (r.CommissionType == "0") { r.CommissionType = null; r.Commission = null; r.MinCommission = null; } if (r.TransferFeeType == "0") { r.TransferFeeType = null; r.TransferFee = null; r.MinTransferFee = null; } if (r.OtherExpensesType == "0") { r.OtherExpensesType = null; r.OtherExpenses = null; r.MinOtherExpenses = null; r.MaxOtherExpenses = null; } db.SaveChanges(); return JsonSuccess("更新成功", r); } } }