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 })); }
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" })); } } }