Example #1
0
        void allotBonus(long?uid, int lv, decimal amount)
        {
            if (lv > 10 || uid == null || uid == 0)
            {
                return;
            }
            var u = DB.x_user.FirstOrDefault(o => o.user_id == uid);

            if (u == null)
            {
                return;
            }
            var v = amount * cfg.lv_cent[lv - 1] / 10;
            var l = new x_exp_log()
            {
                ctime  = DateTime.Now,
                remark = "您的第" + lv + "级用户【" + u.nickname + "】成交分到:" + v + "积分",
                val    = v
            };

            u.x_exp_log.Add(l);
            allotBonus(u.invter, lv + 1, amount);
        }
Example #2
0
        void RunLot(x_lottery lot, int m)
        {
            var lg = new x_lottery_run();

            lg.ctime = DateTime.Now;
            lg.open  = m + "";
            lg.sum   = lot.sum < 1 ? cfg.pool_lott * lot.sum : lot.sum;
            lg.title = lot.topic + DateTime.Now.ToString("yyyy-MM-dd") + "期开奖";
            lot.x_lottery_run.Add(lg);
            SubmitDBChanges();

            var us = new List <long?>();

            foreach (var i in lot.x_lottery_item)//奖项
            {
                if (i.count == 0)
                {
                    continue;
                }
                for (var c = 0; c < i.count; c++)//份数
                {
                    var sc = DB.x_secode
                             .Where(o => !us.Contains(o.user_id) && o.user_id > 0)
                             .Select(o => o.user_id)
                             .OrderBy(o => Guid.NewGuid().ToString())
                             .FirstOrDefault();

                    if (sc == null || sc == 0)
                    {
                        continue;
                    }

                    var u = DB.x_user.FirstOrDefault(o => o.user_id == sc);
                    if (u == null)
                    {
                        continue;
                    }

                    var p = new x_user_prize()
                    {
                        isget          = false,
                        lottery_run_id = lg.lottery_run_id,
                        prize          = i.name,
                        val            = i.price < 1 ? lg.sum * i.price : i.price,
                        remark         = "",
                        title          = lg.title
                    };
                    u.x_user_prize.Add(p);

                    //积分记录
                    if (i.type == 1)
                    {
                        var v  = p.val / cfg.credit;
                        var ep = new x_exp_log()
                        {
                            ctime  = DateTime.Now,
                            remark = lg.title + "-" + i.name + "-" + v,
                            val    = v
                        };
                        u.x_exp_log.Add(ep);
                        u.exp += ep.val;
                    }

                    SubmitDBChanges();
                }
            }
        }