using YLErp.Modules.BasicDataModule; namespace YLErp.Web.Controllers { public class MarketController : BaseController { protected YLContext db = new YLContext(); public static List GetAllmarket(bool isIdValue = false) { using (var db = new YLContext()) { if (isIdValue) { var query = from m in db.market select new SelectListItem { Text = m.MarketName, Value = m.id + "" }; return query.ToList(); } else { var query = from m in db.market select new SelectListItem { Text = m.MarketName, Value = m.ExchangeNo }; return query.ToList(); } } } public static List GetAllmarketName() { using (var db = new YLContext()) { var query = from m in db.market select new SelectListItem { Text = m.MarketName, Value = m.MarketName }; return query.ToList(); } } public static List GetAllCalendarNames() { using (var db = new YLContext()) { var calendarNames = db.calendar.Select(x => x.Country).Distinct().Select(x => new SelectListItem { Text = x, Value = x }); return calendarNames.ToList(); } } [MyAuthorize("基础参数管理-交易市场")] public ActionResult MarketList() { return View(); } [HttpPost] public JsonResult MarketQuery(MarketSearchReq req) { var sList = new MarketDataService(CurUser).SearchList(req); return Json(sList); } public ActionResult MarketView(string enid) { var intid = DecryptInt(enid); var r = db.market.Find(intid); new Modules.DicForTranslationModule.DicForTranslationService(CurUser).GetTransWord(r); return View(r); } public ActionResult MarketEdit(string enid) { var isAdd = string.IsNullOrEmpty(enid) || enid == "0"; if (isAdd) { return View(new Market()); } var intid = DecryptInt(enid); var r = db.market.Find(intid); new Modules.DicForTranslationModule.DicForTranslationService(CurUser).GetTransWord(r); return View(r); } [HttpPost] public async Task MarketEditJson(Market req) { var id = 0; if (!string.IsNullOrEmpty(req.EncryptId)) { id = DecryptInt(req.EncryptId); } if (string.IsNullOrWhiteSpace(req.ExchangeNo)) { throw new ServiceException("交易所代码不能为空"); } if (string.IsNullOrWhiteSpace(req.MarketName)) { throw new ServiceException("交易所名称不能为空"); } var r = await SaveMarket(id); return JsonSuccess("更新成功", r); } private async Task SaveMarket(int? id) { Market r; var isAddNew = id == null || id == 0; if (isAddNew) { r = new Market { OptId = CurUser.UserId, OptName = CurUser.UserName, OptDate = DateTime.Now }; db.market.Add(r); } else { r = db.market.Find(id); } await TryUpdateModelAsync(r); if (isAddNew) { if (db.market.Any(o => o.MarketName == r.MarketName || o.ExchangeNo == r.ExchangeNo)) { throw new ServiceException("交易所:" + r.MarketName + "/" + r.ExchangeNo + "已添加,不能添加重复项!"); } } else { if (db.market.Any(o => (o.MarketName == r.MarketName || o.ExchangeNo == r.ExchangeNo) && o.id != r.id)) { throw new ServiceException("交易所:" + r.MarketName + "/" + r.ExchangeNo + "已添加,不能添加重复项!"); } } db.SaveChanges(); new Modules.DicForTranslationModule.DicForTranslationService(CurUser).SetWordDictionary(r); return r; } [HttpPost] public JsonResult Deletemarket(string id) { var intid = DecryptInt(id); var r = db.market.Find(intid); if (r == null) { return JsonError("找不到市场信息"); } //检查是否有标的在使用 var usingVars = db.variety.Where(u => u.TradingMarketId == r.id).Select(n => n.VarietyName).ToArray(); if (usingVars != null && usingVars.Any()) { //不能删除 var varstr = string.Join(",", usingVars); return JsonError("删除失败!" + varstr + "在使用市场数据"); } else { db.market.Remove(r); db.SaveChanges(); } return JsonSuccess("已删除"); } } }