223 lines
7.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|