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
}
}