Esempio n. 1
0
        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);
        }