控制层,页面是通过控制层去访问底层数据的
public class OrderController : Controller
{
private string _name = string.Empty; //用来接收查询中有关name 的值
private string _order_Id = string.Empty;//_order_Id订单号
static readonly OrderMainFineRepository mainfinerepository = new OrderMainFineRepository();
MarketRepository make = new MarketRepository();
public ActionResult Index()
{
return View();
}
/// <summary>
/// 细订单的查询
/// </summary>
/// <returns></returns>
public ActionResult GetOrdefineSelectJson()
{
int pageIndex = int.Parse(Request["page"]);
int pageSize = int.Parse(Request["rows"]);
if (!string.IsNullOrEmpty(Request["order_Id"]))
{
_order_Id = Request["order_Id"];
}
else { _order_Id = "AAAAAAAAA"; }//避免订单号是空的时候
var queryParams = new OrderParam//初始化查询实例
{ PageIndex = pageIndex, PageSize = pageSize, order_Id = _order_Id };
int totalNum = 0;
var orderfine = mainfinerepository.LoadOrderFinePageData(queryParams, out totalNum);
var result = from p in orderfine
select new { p.Id, p.shopp_Id, p.order_Id, p.shopp_name, p.shopp_num, p.shopp_price, p.tatol_money };
var jsonResult = new { total = totalNum, rows = result };
return Json(jsonResult, JsonRequestBehavior.AllowGet);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public ActionResult GetOrderMainSelectJson()
{
int totalNum = 0;
int pageIndex = int.Parse(Request["page"]); //page和rows是datagrid传递的默认参数
int pageSize = int.Parse(Request["rows"]);
if (!string.IsNullOrEmpty(Request["order_Id"])) //如果查询中包括Category
{ _order_Id = Request["order_Id"]; }
var queryParams = new OrderParam//初始化查询实例
{ PageIndex = pageIndex, PageSize = pageSize, order_Id = _order_Id };
var queryParams3 = new MarketParam
{ PageIndex = pageIndex, PageSize = pageSize, Name = "", Address = "", };
//根据查询实例查找对应的数据
var ordermain = mainfinerepository.LoadOrderMainPageData(queryParams, out totalNum);
var markets = make.LoadMarketsPageData(queryParams3, out totalNum);
var result = (from u in ordermain
join e in markets on u.marketId equals e.Market_Id
select new
{
Id = u.Id,
order_Id = u.order_Id,
orderDate = u.orderDate,
orderMoney = u.orderMoney,
Market_name = e.Name,
address = e.Address
}).ToList();
var jsonResult = new { total = result.Count, rows = result };
return Json(jsonResult, JsonRequestBehavior.AllowGet);
}
/// <summary>
/// 通过订单号获取信息
/// </summary>
/// <param name="order_Id"></param>
/// <returns></returns>
public ActionResult GetByOrderMainId(string order_Id)
{
OrderParam pa = new OrderParam();
OrderMainVm mavm = new OrderMainVm();
pa.order_Id = order_Id;
//在这里获取主订单号,然后通过主订单号查询细订单号的信息,然后
List<OrderMain> marketlist = mainfinerepository.GetByOrderMainId(pa);
mavm.MId = marketlist[0].Id;
mavm.order_Id = marketlist[0].order_Id;
mavm.orderDate = marketlist[0].orderDate;
mavm.orderMoney = marketlist[0].orderMoney;
mavm.marketId = marketlist[0].marketId;
return Json(new { msg = true, mavm });
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public ActionResult AddOrder()
{
return PartialView("_AddOrder", new OrderMainVm());
}
/// <summary>
/// 转到添加页面
/// </summary>
/// <returns></returns>
public ActionResult GetByOrderMain()
{
return PartialView("_QueryOrder", new OrderMainVm());
}
/// <summary>
/// 真正进行添加操作,是主细表同时插入
/// </summary>
/// <param name="stt"></param>
/// <returns></returns>
public ActionResult AddOrderMain_Fine(string stt)
{
OrderFine ov;
OrderMain om = new OrderMain();
IList<JToken> delList = new List<JToken>();
List<OrderFine> insertlist = new List<OrderFine>();
List<OrderFine> deletelist = new List<OrderFine>();
List<OrderFine> updatelist = new List<OrderFine>();
string orderedjson = Request["effectRow[ordered]"];
if (orderedjson != null)
{
foreach (var ss in JArray.Parse(orderedjson))
{
om.order_Id = ((JObject)ss)["orderno"] + "";
om.orderDate = ((JObject)ss)["orderdate"] + "";
om.orderMoney = ((JObject)ss)["orderprice"] + "";
om.marketId = ((JObject)ss)["market_Id"] + "";
}
}
string insertedjson = Request["effectRow[inserted]"];
if (insertedjson != null)
{
foreach (var ss in JArray.Parse(insertedjson))
{
ov = new OrderFine();
ov.shopp_Id = ((JObject)ss)["shopp_Id"] + "";
ov.shopp_num = ((JObject)ss)["shopp_num"] + "";
ov.shopp_name = ((JObject)ss)["shopp_name"] + "";
ov.shopp_price = ((JObject)ss)["shopp_price"] + "";
ov.tatol_money = ((JObject)ss)["tatol_money"] + "";
ov.order_Id = om.order_Id;//通过主表传过来
insertlist.Add(ov);//把这个集合传过去到增加方法里面遍历就可以了
}
}
OrderParam pa = new OrderParam();
pa.order_Id = om.order_Id;
List<OrderMain> marketlist = mainfinerepository.GetByOrderMainId(pa);
if (marketlist.Count == 0)//主表需要入库
{
mainfinerepository.MainFineAdd(om, insertlist);//主细表同时入库
}else {
foreach (var nn in JArray.Parse(orderedjson))
{
om.Id = int.Parse(((JObject)nn)["Id"] + "");
}
mainfinerepository.mainUpdateToFineAdd(om, insertlist);
}
///只对细表的删除,对主表要更新
string deletedjson = Request["effectRow[deleted]"];
if (deletedjson != null)
{
foreach (var nn in JArray.Parse(orderedjson))
{
om.Id = int.Parse(((JObject)nn)["Id"] + "");
}
foreach (var ss in JArray.Parse(deletedjson))
{
ov = new OrderFine();
ov.Id = int.Parse(((JObject)ss)["Id"] + "");
deletelist.Add(ov);
}
mainfinerepository.mainUpdateToFineDelete(om, deletelist);
}
///对主细表更新
string updatedjson = Request["effectRow[updated]"];
if (updatedjson != null)
{
foreach (var nn in JArray.Parse(orderedjson))
{
om.Id = int.Parse(((JObject)nn)["Id"] + "");
}
foreach (var ss in JArray.Parse(updatedjson))
{
ov = new OrderFine();
ov.Id = int.Parse(((JObject)ss)["Id"] + "");
ov.shopp_name = ((JObject)ss)["shopp_name"] + "";
ov.shopp_num = ((JObject)ss)["shopp_num"] + "";
ov.shopp_price = ((JObject)ss)["shopp_price"] + "";
ov.tatol_money = ((JObject)ss)["tatol_money"] + "";
ov.shopp_Id = ((JObject)ss)["shopp_Id"] + "";
ov.order_Id = om.order_Id;//通过主表传过来
updatelist.Add(ov);
}
mainfinerepository.MainFineUpdate(om,updatelist);//主细表同时更新
}
return Json(new { msg = true });
}
/// <summary>
/// 如何从主表进来的,然后展示出了修改页面
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult EditOrderMainId(int id)
{
var dbtype = mainfinerepository.GetById(id);
OrderMainVm makeVm = new OrderMainVm();
return PartialView("_EditMarket", makeVm);
}
/// <summary>
/// 删除主表信息,同时也会删除主表下的细表信息
/// 获取前台传来的order_Id字符串
/// 去除最后一位分隔符
/// 把字符串转换成数组
/// </summary>
/// <returns></returns>
public ActionResult DeleteOrderMian()
{
var strIds = Request["ids"];
strIds = strIds.Substring(0, strIds.Length - 1);
string[] ids = strIds.Split('_');
mainfinerepository.MainFineDeleteBatch(ids);
return Json(new { msg = true });
}
}