using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using PagedList; using Newtonsoft.Json; using System.Collections; using static TreeView; using System.Data.Entity; /// /// orderdetail 的摘要说明 /// public class orderdetailController:ApiController { private Model.ezEntities _db = new Model.ezEntities(); [HttpPost] [Route("api/orderdetail/GetList")] public IHttpActionResult GetList([FromBody] Model.ViewModel.pro_order q, int page, int pageSize = 10, string sortBy = "", bool sortDesc = false) { int activity_num = Convert.ToInt32(q.activity_num); //現在的牌位預覽只會出現功德主,修改為所有人都會出現 //var aIDt = _db.actItems.AsEnumerable().Where(f => f.subject.Contains(q.actItemTxt.Trim())).Select(f => f.num);//品項 //var OrderList = _db.pro_order.Where(u => u.activity_num == activity_num).Select(j => j.order_no).ToList(); //var gdzOrderList = _db.pro_order_detail.Where(o => OrderList.Contains(o.order_no) && o.print_id.Contains("主")).Select(o => o.order_no).Distinct().ToList(); //var qry = _db.pro_order.Where(u => gdzOrderList.Contains(u.order_no)).AsEnumerable(); var qry = _db.pro_order.Where( u => u.activity_num == activity_num).AsEnumerable(); qry = qry.OrderByDescending(o => o.reg_time); var count = qry.Count(); //pageSize = count;//一次取回?? var ret = new { list = qry.ToPagedList(page, pageSize).Select(x => new { order_no = x.order_no, f_num = x.f_num, u_name = x.f_num.HasValue ? x.follower.u_name : "", activity_num = x.activity_num, subject = x.activity_num.HasValue ? x.activity.subject : "", keyin1 = x.keyin1, up_time = x.up_time, keyin1_txt = Model.pro_order.keyin1_value_to_text(x.keyin1), //detail = x.pro_order_detail.Where(u => u.printed_files != null) detail = new { count = x.pro_order_detail .Where(u => (u.parent_num != null) || u.actItem.subject.Contains("牌") || !string.IsNullOrEmpty(u.f_num_tablet)) .Count(), actItem = x.pro_order_detail.Where(u => u.printed_files != null).FirstOrDefault()?.print_id } }), count = count }; if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound); return Ok(ret); } }