Example #1
0
        public HttpResponseMessage Login(string Phonenumber, string Password)
        {
            User loginUser = db.Users.Where(s => s.Phonenumber == Phonenumber).FirstOrDefault();

            IDatabase redisDatabase = RedisHelper.Value.Database;

            if (loginUser == null)
            {
                return(ApiResponse.Invalid("Phonenumber", "帐号不存在"));
            }
            if (SecurityHelper.MD5Hash(Password) != loginUser.Password)
            {
                return(ApiResponse.Invalid("Password", "密码错误"));
            }
            else
            {
                StockAccount stockAccount   = db.StockAccounts.FirstOrDefault(s => s.UserId == loginUser.Id);
                string       TalkNumber_Key = "UserId=" + loginUser.Id.ToString() + "&TalkNumber";
                return(ApiResponse.Ok(new
                {
                    loginUser.Id,
                    loginUser.Username,
                    loginUser.Phonenumber,
                    loginUser.CreateTime,
                    loginUser.ImageUrl,
                    Gender = loginUser.Gender.ToString(),
                    StockAge = loginUser.StockAge,
                    loginUser.FansNumber,
                    loginUser.FollowNumber,
                    TalkNumber = redisDatabase.StringGet(TalkNumber_Key),
                    loginUser.Remark,
                    loginUser.CoinNumber,
                    SumMoney = stockAccount == null? "0":ParamHelper.ConvertNumber(stockAccount.SumMoney)
                }));
            }
        }
        public HttpResponseMessage GetStockMainPage(long UserId)
        {
            User         user         = db.Users.FirstOrDefault(s => s.Id == UserId);
            StockAccount stockAccount = db.StockAccounts.FirstOrDefault(s => s.UserId == UserId);
            JArray       stockList    = null;

            if (stockAccount == null)
            {
                return(ApiResponse.BadRequest("建议您先开个户"));
            }
            else
            {
                List <SimulationStock> simulationStocks = db.SimulationStocks.Where(s => s.StockAccountId == stockAccount.Id && s.Valid == true).ToList();
                if (simulationStocks.Count > 0)
                {
                    string[]      stockCodes     = simulationStocks.Select(s => s.StockCode).ToArray();
                    StringBuilder request_string = new StringBuilder();
                    for (int i = 0; i < stockCodes.Length; i++)
                    {
                        if (i == stockCodes.Length - 1)
                        {
                            request_string.Append(stockCodes[i]);
                        }
                        else
                        {
                            request_string.Append(stockCodes[i] + ",");
                        }
                    }
                    string res = new ShowApiRequest("http://route.showapi.com/131-46", "138438", "dd520f20268747d4bbda22ac31c9cbdf")
                                 .addTextPara("stocks", request_string.ToString())
                                 .addTextPara("needIndex", "0")
                                 .post();
                    JObject jObject = JsonConvert.DeserializeObject <JObject>(res);
                    stockList = JArray.Parse(jObject["showapi_res_body"]["list"].ToString());
                    Double SumStockValue = 0;
                    for (int i = 0; i < simulationStocks.Count; i++)
                    {
                        for (int j = 0; j < stockList.Count; j++)
                        {
                            if (simulationStocks[i].StockCode == stockList[j]["code"].ToString())
                            {
                                simulationStocks[i].NowPrice = Double.Parse(stockList[j]["nowPrice"].ToString());
                                SumStockValue += Double.Parse(stockList[j]["nowPrice"].ToString()) * simulationStocks[i].StockNumber;
                                db.Entry(simulationStocks[i]).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                        }
                        Thread.Sleep(1);
                    }
                    stockAccount.SumStockValue   = SumStockValue;
                    stockAccount.SumMoney        = SumStockValue + stockAccount.ValidMoney;
                    db.Entry(stockAccount).State = EntityState.Modified;
                    db.SaveChanges();
                    Thread.Sleep(1);
                    try
                    {
                        stockAccount.Rank            = RankCalculation(UserId: UserId);
                        db.Entry(stockAccount).State = EntityState.Modified;
                        db.SaveChanges();
                        Thread.Sleep(1);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        db.Entry(stockAccount).State = EntityState.Unchanged;
                        return(ApiResponse.BadRequest("糟糕,网络好像出问题了"));
                    }
                }
                else
                {
                    try
                    {
                        stockAccount.Rank            = RankCalculation(UserId: UserId);
                        db.Entry(stockAccount).State = EntityState.Modified;
                        db.SaveChanges();
                        Thread.Sleep(1);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        db.Entry(stockAccount).State = EntityState.Unchanged;
                        return(ApiResponse.BadRequest("糟糕,网络好像出问题了"));
                    }
                }
                Thread.Sleep(1);
            }
            return(ApiResponse.Ok(new
            {
                stockAccount.UserId,
                stockAccount.SumMoney,
                SumStockValue = ParamHelper.ConvertNumber(stockAccount.SumStockValue),
                stockAccount.ValidMoney,
                Profit_or_Loss = Math.Round(stockAccount.Profit_or_Loss, 2),
                stockAccount.Rank
            }));
        }
Example #3
0
        public IActionResult GetHomePage(long UserId, long MyId)
        {
            User         user           = db.Users.FirstOrDefault(s => s.Id == UserId);
            IDatabase    redisDatabase  = RedisHelper.Value.Database;
            string       TalkNumber_Key = "UserId=" + UserId.ToString() + "&TalkNumber";
            ParamHelper  paramHelper    = new ParamHelper();
            StockAccount stockAccount   = db.StockAccounts.FirstOrDefault(s => s.UserId == user.Id);

            if (MyId == UserId)
            {
                return(Json(new
                {
                    user.Id,
                    user.Username,
                    user.Remark,
                    Gender = user.Gender.ToString(),
                    StockAge = user.StockAge,
                    user.ImageUrl,
                    user.FansNumber,
                    user.FollowNumber,
                    user.CoinNumber,
                    TalkNumber = redisDatabase.StringGet(TalkNumber_Key),
                    SumMoney = stockAccount == null ? "0" : ParamHelper.ConvertNumber(stockAccount.SumMoney)
                }));
            }
            else
            {
                FollowRecord followRecord = db.FollowRecords.FirstOrDefault(s => s.FollowingId == MyId && s.FollowedId == UserId);
                if (followRecord == null)
                {
                    return(Json(new
                    {
                        user.Id,
                        user.Username,
                        user.Remark,
                        Gender = user.Gender.ToString(),
                        StockAge = user.StockAge,
                        user.ImageUrl,
                        user.FansNumber,
                        user.FollowNumber,
                        user.CoinNumber,
                        TalkNumber = redisDatabase.StringGet(TalkNumber_Key),
                        SumMoney = stockAccount == null ? "0" : ParamHelper.ConvertNumber(stockAccount.SumMoney),
                        If_Follow = "false"
                    }));
                }
                else
                {
                    return(Json(new
                    {
                        user.Id,
                        user.Username,
                        user.Remark,
                        Gender = user.Gender.ToString(),
                        StockAge = user.StockAge,
                        user.ImageUrl,
                        user.FansNumber,
                        user.FollowNumber,
                        user.CoinNumber,
                        TalkNumber = redisDatabase.StringGet(TalkNumber_Key),
                        SumMoney = stockAccount == null ? "0" : ParamHelper.ConvertNumber(stockAccount.SumMoney),
                        If_Follow = "true"
                    }));
                }
            }
        }