181 lines
5.8 KiB
C#
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("已删除");
|
|
}
|
|
}
|
|
}
|