using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; namespace Application.Web.Admin.Controllers; public class SendMailController : Controller { private readonly IMessageService _messageService; private readonly IGameGoodsService _goodsService; private readonly IUnitUserService _userService; public SendMailController(IMessageService messageService,IGameGoodsService goodsService,IUnitUserService userService) { _messageService = messageService; _goodsService = goodsService; _userService = userService; } // GET public IActionResult Index() { return View(); } [HttpPost] public async Task Send(string id, string name, string sign, string awData, int goods, int count, string remark, int type) { string url = "/SendMail/Index"; List award = new List(); if (string.IsNullOrEmpty(awData)) { if (goods != 0) { var goodsInfo = await _goodsService.GetGoodsInfo(goods); if (goodsInfo == null) { TempData["msg"] = "物品不存在!"; return Redirect(url); } TowerGet add = new TowerGet(); add.code = GameEnum.PropCode.Goods.ToString(); add.name = goodsInfo.goodsName; add.parameter = goods.ToString(); add.count = count; award.Add(add); } } else { award = JsonConvert.DeserializeObject>(awData); } int index = 0; List users = new List(); if (type == 0) { string[] ids = id.Split(','); foreach (string item in ids) { var userInfo = await _userService.GetUserInfoByUserNo(item.Trim()); if (userInfo == null) { continue; } index++; users.Add(userInfo.userId); } } else if (type == 1) { DateTime time = TimeAssist.GetDateTimeYMD(0); var data = await _userService.GetOnlineUserByTime(TimeExtend.GetTimeStampBySeconds(time)); foreach (var item in data) { users.Add(item.userId); index++; } } else { var data = await _userService.GetOnlineUserByTime(0); foreach (var item in data) { users.Add(item.userId); index++; } } if (await _messageService.SendMaill(users, name, sign, award)) { TempData["msg"] = string.Format("发放成功,共完成{0}个!", index); return Redirect(url); } else { TempData["msg"] = "发放失败!"; return Redirect(url); } } }