using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Threading.Tasks; using CoreEntity.Entity; using CoreEntity.ESEntity; using JCSoft.WX.Framework.Api; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Memory; using Newtonsoft.Json; using PublicLibrary.Model; using SupplierWeb.Commonss; namespace SupplierWeb.Controllers { [Route("web/Mem_PurchaseHistory")] public class mem_PurchaseHistoryController : BaseController { public mem_PurchaseHistoryController(IMemoryCache cache, IApiClient client) : base(cache, client) { } public IActionResult Index() { return View(); } /// /// 订单列表 /// /// /// /// [HttpPost] [Route("OrderList")] public ActionResult OrderList([FromBody]dynamic data, QueryFilter[] filters) { int start = 0; string filter = ""; Object query = null; string MemberPhone = ""; if (data != null) { filters = data.filters.ToObject(); filter = QueryFilter.getFilterString(filters); MemberPhone = filters[0].value; if (data.pageIndex == 1) { start = 0; } else { start = ((data.pageIndex - 1) * data.pageSize) + 1; } query = new { query = "select * from mem_order where 1=1 "+ filter+ " order by CreationDate " + "limit " + data.pageSize }; } //将参数转换成JSON数据 var json = JsonConvert.SerializeObject(query); //通过传来的SQL语句,转换成DSL语句 string sql = Util.ElasticQuery("_sql/translate?format=json", "POST", json); string from = "\"from\":" + start + ","; sql = sql.Insert(1, from); //通过转换的DSL语句,获取数据 var str = Util.ElasticQuery("mem_order/_search?format=json", "POST", sql); //JSON转Root对象 Root stobj = EsCommon.FromJSON>(str); //总数 List _source = new List(); long totalcount = 0; if (stobj.hits.hits.Count > 0) { //给filed额外的属性赋值 stobj.hits.hits.ForEach(x => { x._source._id = x._id; //x._source.OriginType = x.fields.OriginType[0].ToString(); //x._source.Sum = x.fields.Sum[0].ToString(); //x.fields.Manufacturer = x._source.Manufacturer; x.fields.Sum[0] = x.fields.Sum[0] > 0 ? x.fields.Sum[0] / 100 : 0; }); //将Root对象中的子对象取出来 _source = stobj.hits.hits.Select(x => x.entity()).ToList(); var countdata = new { query = "select count(1) from mem_order where 1=1 "+ filter }; var jsons = JsonConvert.SerializeObject(countdata); //ES获取SQL执行结果 string obj = Util.ElasticQuery("_sql?format=json", "POST", jsons); Num num = EsCommon.FromJSON(obj); totalcount = num.rows[0][0]; } var jsonData = JsonConvert.SerializeObject(_source); return Json( new { items = JsonConvert.DeserializeObject(jsonData), totalCount = totalcount }); } ///// ///// JSON转对象 ///// ///// ///// ///// //public static T FromJSON(string input) //{ // try // { // return JsonConvert.DeserializeObject(input); // } // catch (Exception ex) // { // string a = ex.Message; // return default(T); // } //} //#region //public class _shards //{ // /// // /// // /// // public int total { get; set; } // /// // /// // /// // public int successful { get; set; } // /// // /// // /// // public int skipped { get; set; } // /// // /// // /// // public int failed { get; set; } //} //public class Total //{ // /// // /// // /// // public int value { get; set; } // /// // /// // /// // public string relation { get; set; } //} //public class _source //{ // /// // /// // /// // public string Sum { get; set; } // /// // /// // /// // public string OriginType { get; set; } // /// // /// // /// // public string _id { get; set; } // /// // /// // /// // public string OrderTime { get; set; } // /// // /// // /// // public string InventoryAuditDate { get; set; } // /// // /// // /// // public string CreationDate { get; set; } // /// // /// // /// // public string AccountId { get; set; } // /// // /// // /// // public string Invoice { get; set; } // /// // /// // /// // public string VerificationCode { get; set; } // /// // /// // /// // public string RegionCode { get; set; } // /// // /// // /// // public string OrderNotes { get; set; } // /// // /// // /// // public string Sex { get; set; } // /// // /// // /// // public string CustomerDataId { get; set; } // /// // /// // /// // public string IsToERP { get; set; } // /// // /// // /// // public string SubProductLine { get; set; } // /// // /// 吉林省吉林市磐石市河南街牛心综合楼一单元601室 // /// // public string ADeliveryAddress { get; set; } // /// // /// // /// // public string LastModified { get; set; } // /// // /// // /// // public string MemPhone { get; set; } // /// // /// 赵海霞 // /// // public string Consignee { get; set; } // /// // /// // /// // public string ReceiverPhone { get; set; } // /// // /// // /// // public string LeverNumber { get; set; } // /// // /// // /// // public string AConsigneePhone1 { get; set; } // /// // /// // /// // public string DeliveryZipCode { get; set; } // /// // /// // /// // public string Height { get; set; } // /// // /// // /// // public string AConsigneePhone2 { get; set; } // /// // /// // /// // public string CustomerName { get; set; } // /// // /// // /// // public string ProductLine { get; set; } // /// // /// // /// // public string BusinessId { get; set; } // /// // /// // /// // public string InvoiceContent { get; set; } // /// // /// // /// // public string ConfirmId { get; set; } // /// // /// // /// // public string CashCouponCode { get; set; } // /// // /// // /// // public string ShippingNo { get; set; } // /// // /// // /// // public string DiseaseClassCode { get; set; } // /// // /// // /// // public string AuditorId { get; set; } // /// // /// // /// // public string ReceivingTime { get; set; } // /// // /// // /// // public string CustomerCode { get; set; } // /// // /// // /// // public string SyncStatus { get; set; } // /// // /// // /// // public string InvoiceNo { get; set; } // /// // /// // /// // public string DeptId { get; set; } // /// // /// // /// // public string Weight { get; set; } // /// // /// // /// // public string ShippingTime { get; set; } // /// // /// // /// // public string AllocationTime { get; set; } // /// // /// // /// // public string OtherNote { get; set; } // /// // /// // /// // public string OrderProcessDate { get; set; } // /// // /// // /// // public string MerchantNote { get; set; } // /// // /// // /// // public string OperateID { get; set; } // /// // /// // /// // public string DeptCode { get; set; } // /// // /// // /// // public string OrdersCode { get; set; } // /// // /// // /// // public string BuyUserId { get; set; } // /// // /// // /// // public string AccountName { get; set; } //} //public class Fields //{ // /// // /// // /// // public List IsPayByCard { get; set; } // /// // /// // /// // public List IntegralValue { get; set; } // /// // /// // /// // public List IsDrug { get; set; } // /// // /// // /// // public List HealthPrice { get; set; } // /// // /// // /// // public List WarehouseCode { get; set; } // /// // /// // /// // public List IsNeedReceipt { get; set; } // /// // /// // /// // public List AllocationFlag { get; set; } // /// // /// // /// // public List TransportCosts { get; set; } // /// // /// // /// // public List BonusDate { get; set; } // /// // /// // /// // public List DeliveryType { get; set; } // /// // /// // /// // public List InitSum { get; set; } // /// // /// // /// // public List OriginType { get; set; } // /// // /// // /// // public List CouponValue { get; set; } // /// // /// // /// // public List Discountprice { get; set; } // /// // /// // /// // public List IsEmailmark { get; set; } // /// // /// // /// // public List Sum { get; set; } // /// // /// // /// // public List OrdersType { get; set; } // /// // /// // /// // public List DeviceType { get; set; } // /// // /// // /// // public List AdvanceSum { get; set; } // /// // /// // /// // public List InvoiceSum { get; set; } // /// // /// // /// // public List IsRxDrug { get; set; } // /// // /// // /// // public List Ispayment { get; set; } // /// // /// // /// // public List ProductCost { get; set; } // /// // /// // /// // public List IsNewOrder { get; set; } // /// // /// // /// // public List IsDealWith { get; set; } // /// // /// // /// // public List ErrorCount { get; set; } // /// // /// // /// // public List MemKey { get; set; } // /// // /// // /// // public List IsReturn { get; set; } // /// // /// // /// // public List IsReward { get; set; } // /// // /// // /// // public List HuaWuOriginType { get; set; } // /// // /// // /// // public List OrderStatus { get; set; } // /// // /// // /// // public List AgainOrderCount { get; set; } // /// // /// // /// // public List IsO2O { get; set; } // /// // /// // /// // public List IsAutomaticSigned { get; set; } // /// // /// // /// // public List PaymentType { get; set; } // /// // /// // /// // public List PreferentialRate { get; set; } // /// // /// // /// // public List Age { get; set; } // /// // /// // /// // public List InvoiceContentType { get; set; } // /// // /// // /// // public List OrdersIntegral { get; set; } // /// // /// // /// // public List ConfimLevel { get; set; } // /// // /// // /// // public List ConsigneeType { get; set; } // /// // /// // /// // public List AdvancePayType { get; set; } // /// // /// // /// // public List CouponCode { get; set; } // /// // /// // /// // public List CashCouponValue { get; set; } // /// // /// // /// // public List Reducing { get; set; } // /// // /// // /// // public List IsVisible { get; set; } // /// // /// // /// // public List SourcePlatforms { get; set; } //} //public class HitsItem //{ // /// // /// // /// // public string _index { get; set; } // /// // /// // /// // public string _type { get; set; } // /// // /// // /// // public string _id { get; set; } // /// // /// // /// // public string _score { get; set; } // /// // /// // /// // public string _routing { get; set; } // /// // /// // /// // public _source _source { get; set; } // /// // /// // /// // public Fields fields { get; set; } // /// // /// // /// // public List sort { get; set; } //} //public class Hits //{ // /// // /// // /// // public Total total { get; set; } // /// // /// // /// // public string max_score { get; set; } // /// // /// // /// // public List hits { get; set; } //} //public class Root //{ // /// // /// // /// // public int took { get; set; } // /// // /// // /// // public string timed_out { get; set; } // /// // /// // /// // public _shards _shards { get; set; } // /// // /// // /// // public Hits hits { get; set; } //} //#endregion //#region 总数实体类 //public class ColumnsItem //{ // /// // /// // /// // public string name { get; set; } // /// // /// // /// // public string type { get; set; } //} //public class Num //{ // /// // /// // /// // public List columns { get; set; } // /// // /// // /// // public List> rows { get; set; } //} //#endregion } }