Files
zszq-trs/YLErpWeb/Controllers/marketController.cs
2024-05-09 14:06:26 +08:00

181 lines
5.8 KiB
C#

using YLErp.Modules.BasicDataModule;
namespace YLErp.Web.Controllers
{
public class MarketController : BaseController
{
protected YLContext db = new YLContext();
public static List<SelectListItem> 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<SelectListItem> 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<SelectListItem> 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<JsonResult> 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<Market> 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("已删除");
}
}
}