示例#1
0
        public Result <long> OrderAutoAdd(OrderAutoAdd model)
        {
            if (model.count_min > model.count_max || model.price_min > model.price_max || model.time_min > model.time_max)
            {
                return(Result(ApiResultEnum.Parameter_Error, 0L));
            }

            HQItem hq    = HQService.Get(model.code);
            Order  order = new Order()
            {
                user_id  = user_id,
                unit_id  = model.unit_id,
                code     = model.code,
                price    = hq.Last,
                count    = model.count_total,
                type     = model.type,
                platform = platform
            };

            ApiResultEnum result = LimitBiz.CheckStatus(order);

            if (result != ApiResultEnum.Success)
            {
                return(Result(result, 0L));
            }
            result = LimitBiz.CheckUnit(order);
            if (result != ApiResultEnum.Success)
            {
                return(Result(result, 0L));
            }

            model.name     = StockInfoBiz.GetStock(model.code).name;
            model.id       = FuncHelper.GetUniqueID();
            model.user_id  = user_id;
            model.platform = platform;
            if (model.account_id > 0)
            {
                model.account_name = AccountRA.GetName(model.account_id);
            }
            else
            {
                model.account_name = "";
            }
            string key = "S_" + model.id + "_U_" + model.unit_id + "_D_0";

            OrderAutoRA.Add(model, key);
            return(Result(ApiResultEnum.Success, model.id));
        }
示例#2
0
        public Result <int> Count(Order model)
        {
            model.user_id = user_id;
            ApiResultEnum result = LimitBiz.CheckStatus(model);

            if (result != ApiResultEnum.Success && result != ApiResultEnum.Order_Count_Error && (result != ApiResultEnum.Order_Price_Error || model.type_enum == OrderTypeEnum.Buy))
            {
                return(Result(ApiResultEnum.Success, 0));
            }

            int unit_count = LimitBiz.GetUnitCount(model);

            if (unit_count == 0)
            {
                return(Result(ApiResultEnum.Success, 0));
            }

            List <int> order_items;
            int        account_count = 0;

            if (model.account_id == 0)
            {
                order_items = AccountGroupRA.List4Unit(model.unit_id).Select(g => g.account_id).ToList();
            }
            else
            {
                order_items = new List <int> {
                    model.account_id
                }
            };
            foreach (int account_id in order_items)
            {
                model.account_id = account_id;
                account_count   += LimitBiz.GetAccountCount(model);
            }
            return(Result(ApiResultEnum.Success, Math.Min(unit_count, account_count)));
        }