private static void Logic() { DataTable table = LotteryIssuesData.GetNotGroupByState(); Console.WriteLine("start--Logic"); if (table == null || table.Rows.Count < 0) { return; } Console.WriteLine("rowCount=" + table.Rows.Count); int[] userArray = new int[testUseridLst.Count]; testUseridLst.CopyTo(userArray); var rdm = new Random(); foreach (DataRow row in table.Rows) { int bettid = Convert.ToInt32(row["Id"]); decimal totalMonery = Convert.ToDecimal(row["TotalAmt"]); double Bili = Convert.ToDouble(row["Bili"]); decimal SurplusMonery = Convert.ToDecimal(row["SurplusMonery"]); //剩余认购金额 //bet.Id,bet.IssueCode,bet.BetCode,bet.LotteryCode,TotalAmt,Bili,SurplusMonery decimal bySubscription = SurplusMonery; while (SurplusMonery > 0) { var itemTotal = totalMonery * 0.5m; if (SurplusMonery > itemTotal) { bySubscription = SurplusMonery * 0.5m; } else { bySubscription = SurplusMonery; } SurplusMonery -= bySubscription; int userIndex = rdm.Next(0, userArray.Length - 1); Console.WriteLine("random index=" + userIndex); int userid = userArray[userIndex]; var item = new BuyTogether(); item.BetDetailId = bettid; item.BuyTogetherCode = "h" + Utils.BuilderNum(); item.UserId = userid; item.Subscription = bySubscription; new Thread(new ParameterizedThreadStart(AddTogetherAction)).Start(item); } } }
public static int AddTogether(string SerialNo, int TradeType, BuyTogether together) { string spName = "sp_addoUpdateBuyTogether"; SqlParameter[] pramers = new SqlParameter[] { new System.Data.SqlClient.SqlParameter("@BetDetailId", SqlDbType.VarChar), new System.Data.SqlClient.SqlParameter("@UserId", SqlDbType.Int), new System.Data.SqlClient.SqlParameter("@Subscription", SqlDbType.Decimal), new System.Data.SqlClient.SqlParameter("@BuyTogetherCode", SqlDbType.VarChar), new System.Data.SqlClient.SqlParameter("@SerialNo", SqlDbType.VarChar), new System.Data.SqlClient.SqlParameter("@TradeType", SqlDbType.Int), new System.Data.SqlClient.SqlParameter("@state", SqlDbType.Int), }; pramers[0].Value = together.BetDetailId; pramers[1].Value = together.UserId; pramers[2].Value = together.Subscription; pramers[3].Value = together.BuyTogetherCode; pramers[4].Value = SerialNo; pramers[5].Value = TradeType; pramers[6].Direction = ParameterDirection.Output; SqlHelper.ExecteNonQuery(CommandType.StoredProcedure, spName, pramers); object parenter = pramers[6].Value; int state = 0; if (parenter != null) { state = Convert.ToInt32(parenter); } else { state = -1; } return(state); }