示例#1
0
        public Result <List <Base> > List4Filter()
        {
            UserRoleEnum role = (UserRoleEnum)int.Parse(UserRA.Get(user_id.ToString(), "role"));
            List <Base>  lst  = UserDA.List <Base>(role == UserRoleEnum.Administrator ? 0 : user_id);

            return(Result(lst));
        }
示例#2
0
 public Result Delete(Model.DB.User model)
 {
     UserRA.Delete(model.id.ToString());
     MessageBiz.Send(model.id.ToString(), MessageTypeEnum.User_Forbidden);
     model.created_by = user_id;
     return(Result(UserDA.Delete(model)));
 }
示例#3
0
        public Result <List <Model.DB.User> > List()
        {
            UserRoleEnum         role = (UserRoleEnum)int.Parse(UserRA.Get(user_id.ToString(), "role"));
            List <Model.DB.User> lst  = UserDA.List <Model.DB.User>(role == UserRoleEnum.Administrator ? 0 : user_id);

            return(Result(lst));
        }
示例#4
0
        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));
        }
示例#5
0
        public ResultLogin Login(Model.DB.User model)
        {
            ApiResultEnum result = UserDA.Login(ref model, platform);

            if (result == ApiResultEnum.Success)
            {
                string user_token = UserRA.Get(model.id.ToString(), "platform_" + platform);
                if (string.IsNullOrWhiteSpace(user_token))
                {
                    user_token = FuncHelper.GetUniqueString();
                    Dictionary <string, string> dic = new Dictionary <string, string>();
                    dic.Add("platform_" + platform, user_token);
                    dic.Add("name", model.name);
                    dic.Add("status_order", model.status_order.ToString());
                    dic.Add("role", model.role.ToString());
                    dic.Add("login_time_" + platform, DateTime.Now.Format());
                    UserRA.Set(model.id.ToString(), dic);
                    UserRA.SetExpire(model.id.ToString());
                }
                return(new ResultLogin(result, model, model.id + "-" + user_token));
            }
            else
            {
                return(new ResultLogin(result, null, null));
            }
        }
示例#6
0
        public Result <List <Base> > List4Undirected()
        {
            UserRoleEnum             role = (UserRoleEnum)int.Parse(UserRA.Get(user_id.ToString(), "role"));
            List <Model.Common.Base> lst  = UnitDA.List4Undirected(role == UserRoleEnum.Administrator ? 0 : user_id);

            return(Result(lst));
        }
示例#7
0
        public Result UpdateStatusOrder(StatusOrder model)
        {
            string status_order = ((int)model.status).ToString();

            if (UserRA.Exists(model.id.ToString()))
            {
                UserRA.Set(model.id.ToString(), "status_order", status_order);
            }
            MessageBiz.Send(model.id.ToString(), MessageTypeEnum.User_Order_Status, status_order);
            return(Result(UserDA.UpdateStatusOrder(model)));
        }
示例#8
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));
        }
示例#9
0
 public Result UpdateStatus(StatusUser model)
 {
     if (model.status != StatusUserEnum.Allowed)
     {
         UserRA.Delete(model.id.ToString());
     }
     if (model.status != StatusUserEnum.Forbidden)
     {
         MessageBiz.Send(model.id.ToString(), MessageTypeEnum.User_Forbidden);
     }
     else if (model.status == StatusUserEnum.ForcedOffline)
     {
         MessageBiz.Send(model.id.ToString(), MessageTypeEnum.User_ForcedOffline);
     }
     return(Result(UserDA.UpdateStatus(model)));
 }
示例#10
0
        public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
        {
            string platform = WebOperationContext.Current.IncomingRequest.Headers["platform"];
            string token    = WebOperationContext.Current.IncomingRequest.Headers["token"];

            if (string.IsNullOrWhiteSpace(token) || string.IsNullOrWhiteSpace(platform))
            {
                throw new ApiException(ApiResultEnum.InvalidRequest, "Invalid Request");
            }
            else
            {
                string[] uit        = token.Split('-');
                string   user_token = UserRA.Get(uit[0], "platform_" + platform);
                if (string.IsNullOrWhiteSpace(user_token) || uit[1] != user_token)
                {
                    throw new ApiException(ApiResultEnum.NotLoggedIn, "Not Logged In");
                }
            }
            return(null);
        }
示例#11
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);
        }
示例#12
0
 public Result Logout()
 {
     UserRA.Delete(user_id.ToString(), platform.ToString());
     return(Result(ApiResultEnum.Success));
 }