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