public Result Close(string token) { if (token != ConfigurationManager.AppSettings["CloseToken"]) { return(Result(ApiResultEnum.InvalidRequest)); } int status_trade = MonitorRA.GetStatusTrade(); UserRA.FlushDatabase(new List <int>() { 7, 8, (int)DateTime.Now.AddDays(1).DayOfWeek }); if (status_trade != 0) { if (LogTradeDA.Close("系统")) { MonitorRA.SetStatusTrade((int)StatusTradeEnum.Closed); OpenCloseBiz.Close(); NLog.Info("系统自动收盘"); return(Result(ApiResultEnum.Success)); } } return(Result(ApiResultEnum.Order_Closed)); }
public Result UpdateUnits(UserUnits model) { ApiResultEnum result = UnitDA.UpdateUserID(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { string[] keys = TradeRA.KeySearch("U_*"); foreach (string key in keys) { string _user_id = TradeRA.Get(key, "user_id"); if (model.unit_ids.Contains(int.Parse(key.Substring(2)))) { if (model.id != _user_id) { UnitRA.UpdateUserID(model.id, key); } } else { if (model.id == _user_id) { UnitRA.UpdateUserID("0", key); } } } } return(Result(result)); }
public Result UpdateStatus(Status model) { ApiResultEnum result = UnitDA.UpdateStatus(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { UnitRA.UpdateStatus(model.status, "U_" + model.id); } return(Result(result)); }
public Result Update(Model.DB.Unit model) { ApiResultEnum result = UnitDA.Update(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { OpenCloseBiz.LoadUnit(model, false); } return(Result(result)); }
public Result UpdateStatusOrder(StatusOrder model) { ApiResultEnum result = AccountDA.UpdateStatusOrder(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { AccountRA.UpdateStatusOrder(model.status, "A_" + model.id); } return(Result(result)); }
public Result UpdateRatioFreezing(Model.DB.Unit model) { ApiResultEnum result = UnitDA.UpdateRatioFreezing(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { UnitRA.UpdateRatioFreezing(model.ratio_freezing, "U_" + model.id); } return(Result(result)); }
public Result Update(Model.DB.Account model) { model.created_by = user_id; ApiResultEnum result = AccountDA.Update(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { OpenCloseBiz.LoadAccount(model, false); } return(Result(result)); }
public Result CapitalInOut(LogCapital model) { model.@operator = user_id; decimal delta; ApiResultEnum result = LogCapitalDA.Add(model, out delta); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { UnitRA.UpdateCapitalInOut(delta, "U_" + model.unit_id); } return(Result(result)); }
protected void Application_Start(object sender, EventArgs e) { Config.Init(); StockInfoBiz.Init(); int status_trade = MonitorRA.GetStatusTrade(); if (status_trade > 0) { OpenCloseBiz.Open(); } }
public Result <int> Add(Model.DB.Account model) { int id = 0; model.created_by = user_id; ApiResultEnum result = AccountDA.Add(model, ref id); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { model.id = id; OpenCloseBiz.LoadAccount(model); } return(Result(result, id)); }
public Result <List <LogTrade> > ListLogTrade() { List <LogTrade> lst = LogTradeDA.List(); int status_trade = MonitorRA.GetStatusTrade(); if (status_trade == 1) { lst.Last().state = "交易中"; } else if (status_trade == 2) { lst.Last().state = "已暂停"; } return(Result(lst)); }
public Result <int> Add(Model.DB.Unit model) { int id = 0; model.created_by = user_id; model.status_order_enum = StatusOrderEnum.Allowed; ApiResultEnum result = UnitDA.Add(model, ref id); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { model.id = id; OpenCloseBiz.LoadUnit(model); } return(Result(result, id)); }
public Result UpdateStatusTrade(StatusTradeEnum status) { int status_trade = MonitorRA.GetStatusTrade(); if (status_trade == 0) { if (status != StatusTradeEnum.Opening) { return(Result(ApiResultEnum.Failed)); } //开盘 if (!LogTradeDA.Open(UserRA.Get(user_id.ToString(), "name"))) { return(Result(ApiResultEnum.Failed)); } MonitorRA.SetStatusTrade((int)status); OpenCloseBiz.Open(); } else { if (status == StatusTradeEnum.Opening) { OpenCloseBiz.Open(); return(Result(ApiResultEnum.Success)); } else if (status == StatusTradeEnum.Recovery) { MonitorRA.SetStatusTrade((int)StatusTradeEnum.Opening); } else if (status == StatusTradeEnum.Pause) { MonitorRA.SetStatusTrade((int)status); } else { //收盘 if (!LogTradeDA.Close(UserRA.Get(user_id.ToString(), "name"))) { return(Result(ApiResultEnum.Failed)); } MonitorRA.SetStatusTrade((int)status); OpenCloseBiz.Close(); } } return(Result(ApiResultEnum.Success)); }
public Result Delete(Model.DB.AccountGroup model) { var units = UnitDA.List4AccountGroup(model.id); if (units.Count > 0) { return(Result(ApiResultEnum.Cited, string.Join(",", units.Select(u => u.code)))); } model.created_by = user_id; ApiResultEnum result = AccountGroupDA.Delete(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { AccountGroupRA.Delete4AccountGroup(model.id); } return(Result(result, string.Empty)); }
public Result Delete(Model.DB.Account model) { var account_groups = AccountGroupDA.List4Account(model.id); if (account_groups.Count > 0) { return(Result(ApiResultEnum.Cited, string.Join(",", account_groups.Select(u => u.code)))); } model.created_by = user_id; ApiResultEnum result = AccountDA.Delete(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { TradeBiz.RemoveAccount(model.id); AccountRA.Delete("A_" + model.id); } return(Result(result)); }
//检查系统和用户是否满足下单条件 public static ApiResultEnum CheckStatus(Order model) { StatusOrderEnum status_order = (StatusOrderEnum)int.Parse(UserRA.Get(model.user_id.ToString(), "status_order")); if (status_order == StatusOrderEnum.Forbidden) { return(ApiResultEnum.Order_User_Forbidden_Order); } if (model.type_enum == OrderTypeEnum.Buy && status_order == StatusOrderEnum.NoBuying) { return(ApiResultEnum.Order_User_NoBuying_Order); } StatusTradeEnum status_trade = (StatusTradeEnum)MonitorRA.GetStatusTrade(); if (status_trade == StatusTradeEnum.Closed) { return(ApiResultEnum.Order_Closed); } else if (status_trade == StatusTradeEnum.Pause) { return(ApiResultEnum.Order_Paused); } BlockInfo block = StockInfoBiz.GetBlock(model.code); if (block == null) { return(ApiResultEnum.Order_Code_Error); } if (model.price == 0) { return(ApiResultEnum.Order_Price_Error); } if (model.count == 0) { return(ApiResultEnum.Order_Count_Error); } return(ApiResultEnum.Success); }
public Result UpdateItems(Model.DB.AccountGroup model) { model.items = model.items.OrderBy(i => i.sort_buy).AsEnumerable().DistinctBy(i => i.account_id).ToList(); ApiResultEnum result = AccountGroupDA.UpdateItems(model); if (result == ApiResultEnum.Success && MonitorRA.GetStatusTrade() != 0) { var units = UnitDA.List4AccountGroup(model.id); foreach (var kvp in units) { UnitRA.UpdatePriorityStrategy(model.priority_strategy, "U_" + kvp.id); } AccountGroupRA.Delete4AccountGroup(model.id); List <Model.DB.AccountGroupItem> items = AccountGroupDA.ListItems4AccountGroup(model.id); foreach (Model.DB.AccountGroupItem item in items) { OpenCloseBiz.LoadAccountGroupItem(item); } TradeBiz.RunCalculateValue(); } return(Result(result)); }