Пример #1
0
        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));
        }
Пример #2
0
        //检查系统和用户是否满足下单条件
        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);
        }