Files
zszq-trs/YLErpWeb/Controllers/exchange_accountController.cs
T
2024-05-09 14:06:26 +08:00

223 lines
7.5 KiB
C#

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<JsonResult> 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<string>();
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<string> 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<ExchangeAccount> 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);
}
/// <summary>
/// 保存客户信息
/// </summary>
[HttpPost]
public async Task<JsonResult> 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);
}
}
}