using System; using System.Text; using System.Data; using System.Data.Common; using System.Linq; using System.Data.SqlClient; using System.Collections.Generic; using NetLibrary; using NetLibrary.Data; using NetLibrary.ReportPrint; using TradeModel; using NetLibrary.OnlineTrade; using NetLibrary.Log; using MarketplaceWebServiceOrders.Model; using System.Reflection; namespace TradeData { public class API_OrderInfoService { #region 保存 public static int Save(int? CompanyId,API_OrderInfo Model) { if (Model.MoneyCode == "") Model.MoneyCode = null; string tsql = @" if @OrderId>0 begin Update [API_OrderInfo] set [ShopId]=@ShopId,[ShopName]=@ShopName,[OrderCode]=@OrderCode,[PlatOrderCode]=@PlatOrderCode,[HBOrderCode]=@HBOrderCode,[TotalPrice]=@TotalPrice,[MoneyCode]=@MoneyCode,[OrderDate]=@OrderDate,[CustomID]=@CustomID,[RevName]=@RevName,[RevCountry]=@RevCountry,[RevAddr]=@RevAddr,[RevPhone]=@RevPhone,RevMobile=@RevMobile,[RevMail]=@RevMail,[RevFax]=@RevFax,RevZip=@RevZip,[BuyRemark]=@BuyRemark,[LeaveWord]=@LeaveWord,[PayDate]=@PayDate,[OutOrderDate]=@OutOrderDate,[PlatType]=@PlatType,IsFba=@IsFba,PostInfo=@PostInfo,RevProvince=@RevProvince,RevCity=@RevCity,RevArea=@RevArea,escrowFee=@escrowFee,logisticsAmount=@logisticsAmount,OrderState=@OrderState where OrderId=@OrderId end else begin --delete from API_OrderInfo where CompanyId=@CompanyId and OrderCode=@OrderCode INSERT INTO [API_OrderInfo](CompanyId,[ShopId],[ShopName],[OrderCode],PlatOrderCode,HBOrderCode,[TotalPrice],[MoneyCode],[OrderDate],[CustomID],[RevName],[RevCountry],[RevAddr],[RevPhone],RevMobile,[RevMail],[RevFax],RevZip,[BuyRemark],[LeaveWord],[PayDate],[OutOrderDate],[PlatType],IsFba,PostInfo,State,RevProvince,RevCity,RevArea,OrderState,logisticsAmount,escrowFee,LogisticsId,ExpressId,OrderLevel,GoodsNum)values(@CompanyId,@ShopId,@ShopName,@OrderCode,@PlatOrderCode,@HBOrderCode,@TotalPrice,@MoneyCode,@OrderDate,@CustomID,@RevName,@RevCountry,@RevAddr,@RevPhone,@RevMobile,@RevMail,@RevFax,@RevZip,@BuyRemark,@LeaveWord,@PayDate,@OutOrderDate,@PlatType,@IsFba,@PostInfo,0,@RevProvince,@RevCity,@RevArea,@OrderState,@logisticsAmount,@escrowFee,@LogisticsId,@ExpressId,@OrderLevel,@GoodsNum) set @OrderId=SCOPE_IDENTITY() end select @OrderId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@OrderId", DbType.Int32, Model.OrderId); db.AddInParameter(cmd, "@CompanyId", DbType.Int32, CompanyId); db.AddInParameter(cmd, "@ShopId", DbType.Int32, Model.ShopId); db.AddInParameter(cmd, "@ShopName", DbType.String, Model.ShopName); db.AddInParameter(cmd, "@OrderCode", DbType.String, Model.OrderCode); db.AddInParameter(cmd, "@PlatOrderCode", DbType.String, Model.PlatOrderCode); db.AddInParameter(cmd, "@HBOrderCode", DbType.String, Model.HBOrderCode); db.AddInParameter(cmd, "@TotalPrice", DbType.Decimal, Model.TotalPrice); db.AddInParameter(cmd, "@MoneyCode", DbType.String, Model.MoneyCode); db.AddInParameter(cmd, "@OrderDate", DbType.DateTime2, Model.OrderDate); db.AddInParameter(cmd, "@CustomID", DbType.String, Model.CustomID); db.AddInParameter(cmd, "@RevName", DbType.String, Model.RevName); db.AddInParameter(cmd, "@RevCountry", DbType.String, Model.RevCountry); db.AddInParameter(cmd, "@RevAddr", DbType.String, Model.RevAddr); db.AddInParameter(cmd, "@RevPhone", DbType.String, Model.RevPhone); db.AddInParameter(cmd, "@RevMobile", DbType.String, Model.RevMobile); db.AddInParameter(cmd, "@RevMail", DbType.String, Model.RevMail); db.AddInParameter(cmd, "@RevFax", DbType.String, Model.RevFax); db.AddInParameter(cmd, "@RevZip", DbType.String, Model.RevZip); db.AddInParameter(cmd, "@RevProvince", DbType.String, Model.RevProvince); db.AddInParameter(cmd, "@RevCity", DbType.String, Model.RevCity); db.AddInParameter(cmd, "@RevArea", DbType.String, Model.RevArea); db.AddInParameter(cmd, "@logisticsAmount", DbType.Decimal, Model.logisticsAmount); db.AddInParameter(cmd, "@escrowFee", DbType.Decimal, Model.escrowFee); // if (Model.BuyRemark != null && Model.BuyRemark != "" && Model.BuyRemark.Length > 900) // Model.BuyRemark = Model.BuyRemark.Substring(0, 900); db.AddInParameter(cmd, "@BuyRemark", DbType.String, Model.BuyRemark); db.AddInParameter(cmd, "@LeaveWord", DbType.String, Model.LeaveWord); db.AddInParameter(cmd, "@PayDate", DbType.DateTime2, Model.PayDate); db.AddInParameter(cmd, "@OutOrderDate", DbType.DateTime2, Model.OutOrderDate); db.AddInParameter(cmd, "@PlatType", DbType.Int32, Model.PlatType); db.AddInParameter(cmd, "@IsFba", DbType.Int32, Model.IsFba); db.AddInParameter(cmd, "@PostInfo", DbType.String, Model.PostInfo); db.AddInParameter(cmd, "@OrderState", DbType.Int32, Model.OrderState); db.AddInParameter(cmd, "@LogisticsId", DbType.Int32, Model.LogisticsId); db.AddInParameter(cmd, "@ExpressId", DbType.String, Model.ExpressId); db.AddInParameter(cmd, "@OrderLevel", DbType.Int32, Model.OrderLevel); db.AddInParameter(cmd, "@GoodsNum", DbType.Int32, Model.GoodsNum); int a = Convert.ToInt32(db.ExecuteScalar(cmd)); tsql = @" if @Id>0 begin Update [API_OrderGoods] set [GoodsNum]=@GoodsNum,[GoodsPrice]=@GoodsPrice,[GoodsSKU]=@GoodsSKU,[GoodsName]=@GoodsName,PostInfo=@PostInfo,MoneyCode=@MoneyCode,productImgUrl=@productImgUrl,GoodsCode=@GoodsCode,OldNum=@OldNum,GoodsDesc=@GoodsDesc where Id=@Id end else begin INSERT INTO [API_OrderGoods]([OrderId],[GoodsNum],[GoodsPrice],[GoodsSKU],[GoodsName],PostInfo,MoneyCode,productImgUrl,GoodsCode,OldNum,GoodsDesc,OrderItemId)values(@OrderId,@GoodsNum,@GoodsPrice,@GoodsSKU,@GoodsName,@PostInfo,@MoneyCode,@productImgUrl,@GoodsCode,@OldNum,@GoodsDesc,@OrderItemId) end "; cmd = db.GetSqlStringCommand(tsql); string ids = ""; foreach (var item in Model.ListModel) { // ids += ", " + item.OrderId; cmd.Parameters.Clear(); db.AddInParameter(cmd, "@OrderId", DbType.Int32, a); db.AddInParameter(cmd, "@Id", DbType.Int32, item.Id); db.AddInParameter(cmd, "@GoodsNum", DbType.Int32, item.GoodsNum); db.AddInParameter(cmd, "@GoodsDesc", DbType.String, item.GoodsDesc); db.AddInParameter(cmd, "@GoodsPrice", DbType.Decimal, item.GoodsPrice); db.AddInParameter(cmd, "@GoodsSKU", DbType.String, item.GoodsSKU); db.AddInParameter(cmd, "@GoodsName", DbType.String, item.GoodsName); db.AddInParameter(cmd, "@MoneyCode", DbType.String, Model.MoneyCode); db.AddInParameter(cmd, "@PostInfo", DbType.String, item.PostInfo); db.AddInParameter(cmd, "@productImgUrl", DbType.String, item.productImgUrl); db.AddInParameter(cmd, "@GoodsCode", DbType.String, item.GoodsCode); db.AddInParameter(cmd, "@OldNum", DbType.Int32, item.OldNum); db.AddInParameter(cmd, "@OrderItemId", DbType.String, item.OrderItemId); db.ExecuteNonQuery(cmd); } //if (Model.OrderId > 0) //{ // tsql = "delete from API_OrderGoods where OrderId=@OrderId and Id not in (" + ids + ")"; // cmd = db.GetSqlStringCommand(tsql); // db.AddInParameter(cmd, "@OrderId", DbType.Int32, Model.OrderId); // db.ExecuteNonQuery(cmd); //} return a; } #endregion #region 删除 public static void Delete(int OrderId) { string tsql = @" delete from API_OrderInfo where OrderId=@OrderId delete from API_OrderGoods where OrderId=@OrderId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@OrderId", DbType.Int32, OrderId); db.ExecuteNonQuery(cmd); } #endregion #region 返回Model public static API_OrderInfo GetModel(int OrderId) { API_OrderInfo model = null; string tsql = "select * from API_OrderInfo where OrderId=@OrderId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@OrderId", DbType.Int32, OrderId); DataTable tb = db.ExecuteDataTable(cmd); if (tb.Rows.Count > 0) model = tb.Rows[0].ToModel(); return model; } #endregion #region 分页查询 public static List GetListAPI_OrderInfo(RefParameterCollection where, int PageIndex, int PageSize, string Sort, out int RowCount) { if (where == null) where = new RefParameterCollection(); QueryService ser = new QueryService(); ser.Fields = @"OrderId=cast(a.OrderId as int),a.ShopId,a.ShopName,a.JoinOrderCode,a.TotalPrice,a.MoneyCode,a.OrderDate,a.CustomID,a.RevName,a.RevCountry,a.RevAddr,a.RevPhone,a.RevMobile,a.RevMail,a.RevFax,a.BuyRemark,a.LeaveWord,a.PayDate,a.OutOrderDate,a.PlatType"; ser.Tables = @"API_OrderInfo a"; ser.Filter = where.GetWhere(System.Data.CommandType.Text); ser.PageIndex = PageIndex; ser.PageSize = PageSize; ser.Sort = Sort; ser.KeyName = "OrderId"; string tsql = ser.GetText(); where.AddOutParameter("RowCount", System.Data.DbType.Int32); ; List ListModel = null; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, where); DataTable tb = db.ExecuteDataTable(cmd); RowCount = Convert.ToInt32(cmd.Parameters["@RowCount"].Value); ListModel = tb.ToList(); return ListModel; } #endregion #region 判断订单号是否重复 public static bool CheckJoinOrderCode1(int PlatType, string OrderCode, int OrderState,DateTime? OutOrderDate) { string tsql = @" declare @OldOrderState int,@OrderId int select top 1 @OldOrderState=isnull(OrderState,1),@OrderId=OrderId from API_OrderInfo where PlatType=@PlatType and OrderCode=@OrderCode if @OldOrderState is not null begin if @OldOrderState<>@OrderState begin update API_OrderInfo set state=0,OrderState=@OrderState,OutOrderDate=@OutOrderDate where OrderId=@OrderId end select 1 end else begin select 0 end "; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@PlatType", DbType.Int32, PlatType); db.AddInParameter(cmd, "@OrderCode", DbType.String, OrderCode); db.AddInParameter(cmd, "@OrderState", DbType.Int32, OrderState); db.AddInParameter(cmd, "@OutOrderDate", DbType.DateTime, OutOrderDate); int a = Convert.ToInt32(db.ExecuteScalar(cmd)); if (a == 0) return true; return false; } #endregion #region 判断订单号是否重复 public static bool CheckJoinOrderCode(int PlatType, string OrderCode, int OrderState) { string tsql = @" declare @OldOrderState int,@OrderId int set @OrderId=0 select top 1 @OldOrderState=isnull(OrderState,1),@OrderId=OrderId from API_OrderInfo where PlatType=@PlatType and OrderCode=@OrderCode if @OrderId>0 begin if @OldOrderState<>@OrderState begin update API_OrderInfo set state=0,OrderState=@OrderState where OrderId=@OrderId end select 1 end else begin select 0 end "; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@PlatType", DbType.Int32, PlatType); db.AddInParameter(cmd, "@OrderCode", DbType.String, OrderCode); db.AddInParameter(cmd, "@OrderState", DbType.Int32, OrderState); int a = Convert.ToInt32(db.ExecuteScalar(cmd)); if (a == 0) return true; return false; } #endregion #region ebay判断订单号是否重复 public static bool CheckJoinOrderCode3(int PlatType, string OrderCode, int OrderState) { string tsql = @" declare @OldOrderState int,@OrderId int set @OrderId=0 select top 1 @OldOrderState=isnull(OrderState,1),@OrderId=OrderId from API_OrderInfo where PlatType=@PlatType and (OrderCode=@OrderCode or PlatOrderCode=@OrderCode) if @OrderId>0 begin if @OldOrderState<>@OrderState begin update API_OrderInfo set state=0,OrderState=@OrderState where OrderId=@OrderId end select 1 end else begin select 0 end "; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@PlatType", DbType.Int32, PlatType); db.AddInParameter(cmd, "@OrderCode", DbType.String, OrderCode); db.AddInParameter(cmd, "@OrderState", DbType.Int32, OrderState); int a = Convert.ToInt32(db.ExecuteScalar(cmd)); if (a == 0) return true; return false; } #endregion #region 读取所有未处理的订单 public static List GetList(int CompanyID) { string tsql = "select OrderId from API_OrderInfo where CompanyID=@CompanyID and State=0"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@CompanyID", DbType.Int32, CompanyID); DataTable tb=db.ExecuteDataTable(cmd); List ListModel = new List(); foreach (DataRow row in tb.Rows) { int OrderId = Convert.ToInt32(row["OrderId"]); ListModel.Add(OrderId); } return ListModel; } #endregion #region 读取所有未处理的订单 public static List GetListForShop(int CompanyID,string ShopIds) { string tsql = "select OrderId from API_OrderInfo where CompanyID=@CompanyID and State=0 and ShopId in (" + ShopIds + ")"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@CompanyID", DbType.Int32, CompanyID); DataTable tb = db.ExecuteDataTable(cmd); List ListModel = new List(); foreach (DataRow row in tb.Rows) { int OrderId = Convert.ToInt32(row["OrderId"]); ListModel.Add(OrderId); } return ListModel; } #endregion #region 读取所有未处理的订单 public static List GetListForShop3(int ShopId) { string tsql = "select top 1000 * from API_OrderInfo where State<5 and ShopId=@ShopId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); DataTable tb = db.ExecuteDataTable(cmd); return tb.ToList(); } #endregion #region 读取所有未处理的订单 public static List GetListOrderGoods(int ShopId) { string tsql = "select top 1500 b.* from API_OrderInfo a inner join API_OrderGoods b on a.orderid=b.orderid where a.State<5 and a.ShopId=@ShopId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); DataTable tb = db.ExecuteDataTable(cmd); return tb.ToList(); } #endregion #region 读取所有未处理的订单 public static void UpdateOrderState(int ShopId) { string tsql = "update API_OrderInfo set state=5 where state<=1 and ShopId=@ShopId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); db.ExecuteNonQuery(cmd); } #endregion #region 读取所有未处理的订单 public static List GetListForShop2(int ShopId) { string tsql = "select OrderId from API_OrderInfo where State=0 and ShopId=@ShopId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); DataTable tb = db.ExecuteDataTable(cmd); List ListModel = new List(); foreach (DataRow row in tb.Rows) { int OrderId = Convert.ToInt32(row["OrderId"]); ListModel.Add(OrderId); } return ListModel; } #endregion #region 读取所有未处理的订单 public static List GetExpressSelect(int PlatId) { List list = null; string tsql = @"select a.*,b.EnglishName from WL_ExpressSelect a left join JC_Country b on a.Country=b.Code where a.PlatId=@PlatId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@PlatId", DbType.Int32, PlatId); DataTable tb = db.ExecuteDataTable(cmd); list = tb.ToList(); return list; } #endregion #region 查询上下架产品 public static List GetProductOnOffList() { List list = null; string tsql = @"declare @nowmin int select @nowmin=DATEPART(hour,GETDATE())*60+DATEPART(MINUTE,GETDATE()) select b.ShopId,b.Appkey,b.DeveKey,b.RefreshToken,b.AccessToken,b.RefreshTokenSaveTime,b.AccessTokenUpdateTime,IsOn=1,a.productIds from HW_OnOffList a inner join JC_Shop b on a.ShopID=b.ShopId inner join HW_OnOffDetail c on a.OnOffID=c.OnOffID where a.onoffflag=1 and cast(SUBSTRING(OnTime,1,2) as int)*60+cast(SUBSTRING(OnTime,4,2) as int)=@nowmin union select b.ShopId,b.Appkey,b.DeveKey,b.RefreshToken,b.AccessToken,b.RefreshTokenSaveTime,b.AccessTokenUpdateTime,IsOn=0,a.productIds from HW_OnOffList a inner join JC_Shop b on a.ShopID=b.ShopId inner join HW_OnOffDetail c on a.OnOffID=c.OnOffID where a.onoffflag=1 and cast(SUBSTRING(OffTime,1,2) as int)*60+cast(SUBSTRING(OffTime,4,2) as int)=@nowmin "; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); DataTable tb = db.ExecuteDataTable(cmd); list = tb.ToList(); return list; } #endregion #region 查询要导单店铺 public static JC_Shop GetImpotShop() { JC_Shop model = null; string tsql = @"select top 1 b.*,a.DDSDate,a.DDEDate from JC_SyncState a inner join Jc_shop b on a.CompanyId=b.ShopId where SyncType=1 and IsDD=1"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); DataTable tb = db.ExecuteDataTable(cmd); if (tb.Rows.Count > 0) model = tb.Rows[0].ToModel(); return model; } #endregion #region 查询要导单店铺 public static List GetImpotShopList() { string tsql = @" declare @InUserId int,@PlatType int set @InUserId=-1 select top 1 @PlatType=b.PlatType from JC_SyncState a inner join Jc_shop b on a.CompanyId=b.ShopId where SyncType=1 and a.IsDD=1 and a.State=1 order by StartDate select top 3 b.*,a.DDSDate,a.DDEDate from JC_SyncState a inner join Jc_shop b on a.CompanyId=b.ShopId where SyncType=1 and IsDD=1 and a.State=1 and b.PlatType=@PlatType"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); DataTable tb = db.ExecuteDataTable(cmd); return tb.ToList(); } #endregion #region 修改采购时间 public static void UpdateBuyDate() { string tsql = @" update b set b.BuyDate=GETDATE() from DT_OrderGoods a inner join DT_OrderInfo b on a.OrderId=b.OrderId inner join HW_GoodsDetail c on a.DetailId=c.DetailId where b.BuyDate is null and b.FPDate is not null and b.State=1 and c.GoodsNum+c.GoodsInNum-c.GoodsPlanNum>=0 update b set b.BuyDate=a.BuyDate from DT_OrderInfo a inner join DT_OrderInfoNew b on a.OrderId=b.OrderId where b.BuyDate is null and a.BuyDate is not null --update DT_OrderInfo set BuyDate=null where OrderId in ( --select top 1 a.OrderId from DT_OrderGoods a --inner join DT_OrderInfoNew b on a.OrderId=b.OrderId --inner join HW_GoodsDetail c on a.DetailId=c.DetailId --inner join (select a.DetailId,GoodsNum=SUM(a.GoodsNum) from DT_OrderGoods a --inner join DT_OrderInfo b on a.OrderId=b.OrderId --where b.State=1 and b.BuyDate is null group by a.DetailId)d on a.DetailId=d.DetailId --where b.BuyDate is not null and b.FPDate is not null and b.State=1 and c.GoodsNum+c.GoodsInNum-c.GoodsPlanNum+d.GoodsNum<0 order by b.OrderLevel,b.InDate desc)"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.ExecuteNonQuery(cmd); } #endregion #region 修改采购时间 public static List GetDetailList() { string tsql = @" select distinct a.DetailId,LeftNum=b.GoodsPlanNum-b.GoodsNum-b.GoodsInNum from DT_OrderGoods a inner join HW_GoodsDetail b on a.DetailId=b.DetailId inner join DT_OrderInfo c on a.OrderId=c.OrderId where b.GoodsNum+b.GoodsInNum-b.GoodsPlanNum<0 and c.State=1 order by a.DetailId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); DataTable tb = db.ExecuteDataTable(cmd); return tb.ToList(); } #endregion #region 修改采购时间 public static List GetDetailOrderList(int DetailId) { string tsql = @" select top 10 a.OrderId,c.BuyDate,c.InDate,c.OrderLevel from DT_OrderGoods a inner join HW_GoodsDetail b on a.DetailId=b.DetailId inner join DT_OrderInfo c on a.OrderId=c.OrderId where a.DetailId=@DetailId and c.State=1 order by c.OrderLevel,c.InDate desc"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@DetailId", DbType.String, DetailId); DataTable tb = db.ExecuteDataTable(cmd); return tb.ToList(); } #endregion #region 查询要导单店铺 public static void SaveImpotShop(int ShopId,string info) { string tsql = @"update JC_SyncState set state=0,EndDate=getdate(),DDResult=@info where CompanyId=@ShopId and SyncType=1 "; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); db.AddInParameter(cmd, "@info", DbType.String, info); db.ExecuteNonQuery(cmd); } #endregion #region 插入提示消息 public static void SaveImpotShopMess(int ShopId, string info) { string tsql = @"INSERT INTO [JC_OpenMess]([Content],[IsRead],[OpenDate],[Target],[Type],[UserType],[UserId]) select b.ShopName+':'+@info,0,getdate(),0,1,'P',a.UserId from JC_ShopUser a inner join JC_Shop b on a.ShopId=b.ShopId where a.shopid=@ShopId and a.SType='S'"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); db.AddInParameter(cmd, "@info", DbType.String, info); db.ExecuteNonQuery(cmd); } #endregion #region 插入提示消息 public static void SaveImpotShopMess2(int ShopId, string info) { string tsql = @"INSERT INTO [JC_OpenMess]([Content],[IsRead],[OpenDate],[Target],[Type],[UserType],[UserId]) select ShopName+':'+@info,0,getdate(),0,1,'P',1 from JC_Shop where shopid=@ShopId"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); db.AddInParameter(cmd, "@info", DbType.String, info); db.ExecuteNonQuery(cmd); } #endregion #region 查询要导单店铺 public static void SaveImpotShopInfo(int ShopId, string info) { string tsql = @"update JC_SyncState set InName='系统自动采集',DDResult=@info where CompanyId=@ShopId and SyncType=1"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); db.AddInParameter(cmd, "@info", DbType.String, info); db.ExecuteNonQuery(cmd); } #endregion #region 查询要导单店铺 public static void SaveImpotState(int ShopId) { string tsql = @"update JC_SyncState set IsDD=0 where CompanyId=@ShopId and SyncType=1"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); db.ExecuteNonQuery(cmd); } #endregion #region 查询要导单店铺 public static void SaveImpotState2(string ShopIds) { string tsql = @"update JC_SyncState set IsDD=0 where CompanyId in (" + ShopIds + ") and SyncType=1"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.ExecuteNonQuery(cmd); } #endregion #region 保存各平台数据 public static void SaveOrderModel(int? CompanyId,int ShopId, string ShopName, int PlatType, int IsFba, List ListModel) { if (ListModel == null) return; var wllist = GetExpressSelect(PlatType); foreach (var item in ListModel) { if (item.PlatOrderCode == "112-6514054-6349010" || item.OrderCode == "108906731002378") { string asfsffs = ""; } try { int OrderState = 1; item.OrderState = 1; //if (item.OrderState != null) // OrderState = item.OrderState.Value; if (PlatType == 1 && item.OutOrderDate != null) { if (API_OrderInfoService.CheckJoinOrderCode1(PlatType, item.OrderCode, OrderState, item.OutOrderDate.Value) == false) continue; } else if (PlatType == 3) { string oid = item.OrderCode; if (item.PlatOrderCode != null && item.PlatOrderCode != "" && item.PlatOrderCode.Length >5) oid = item.PlatOrderCode; item.OrderCode = oid; item.PlatOrderCode = oid; if (API_OrderInfoService.CheckJoinOrderCode3(PlatType, oid, OrderState) == false) continue; } else if (API_OrderInfoService.CheckJoinOrderCode(PlatType, item.OrderCode, OrderState) == false) continue; if (item.MoneyCode == "") item.MoneyCode = null; API_OrderInfo model = new API_OrderInfo(); model.ShopId = ShopId; model.ShopName = ShopName; model.OrderCode = item.OrderCode; model.PlatOrderCode = item.PlatOrderCode; model.HBOrderCode = item.HBOrderCode; model.TotalPrice = item.TotalPrice; model.MoneyCode = item.MoneyCode; model.OrderDate = item.OrderDate; model.CustomID = item.BuyerID; model.RevName = item.BuyerName; model.RevCountry = item.BuyerCountry; model.RevAddr = item.BuyerAddr; model.RevPhone = item.BuyerPhone; model.RevMobile = item.BuyerMobile; model.RevMail = item.BuyerMail; model.RevFax = item.BuyerFax; model.RevZip = item.BuyerZip; model.RevProvince = item.BuyerProvince; model.RevCity = item.BuyerCity; model.RevArea = item.BuyerArea; model.BuyRemark = item.OrderRemark; model.LeaveWord = item.LeaveWord; model.PayDate = item.PayDate; model.OutOrderDate = item.OutOrderDate; model.PlatType = PlatType; model.IsFba = IsFba; model.escrowFee = item.escrowFee; // model.loanAmount = item.loanAmount; model.logisticsAmount = item.logisticsAmount; model.PostInfo = item.PostInfo; if (wllist != null) { if (PlatType == 1) { //if(model.OrderCode=="72568607625211") //{ // string ddfsf = ""; //} var md = wllist.Find(n => n.ShopId == model.ShopId && n.PostInfo == model.PostInfo && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && n.PostInfo == model.PostInfo && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && n.PostInfo == model.PostInfo && n.Country == "0"); if (md == null) md = wllist.Find(n => n.ShopId == 0 && n.PostInfo == "0" && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md != null) { model.LogisticsId = md.LogisticsId; model.ExpressId = md.ExpressId; } } else if (PlatType == 2) { var md = wllist.Find(n => n.PostInfo == model.PostInfo); if (md == null) md = wllist.Find(n => n.PostInfo == "0" && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.PostInfo == model.PostInfo && n.Country == "0"); if (md != null) { model.LogisticsId = md.LogisticsId; model.ExpressId = md.ExpressId; } } else if (PlatType >= 3 && PlatType <= 5) { var md = wllist.Find(n => n.ShopId == model.ShopId && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && n.Country == "0"); if (md != null) { model.LogisticsId = md.LogisticsId; model.ExpressId = md.ExpressId; } } else if (PlatType == 6) { var md = wllist.Find(n => n.PostInfo == model.PostInfo); //var md = wllist.Find(n => n.ShopId == model.ShopId && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); //if (md == null) //md = wllist.Find(n => n.ShopId == 0 && n.Country == "0"); if (md != null) { model.LogisticsId = md.LogisticsId; model.ExpressId = md.ExpressId; } } if (model.ExpressId == 7 || model.ExpressId == 65 || model.ExpressId == 67) //修改分配级别 { model.OrderLevel = 6; } } if (item.OrderState == null) model.OrderState = 1; else model.OrderState = item.OrderState; model.ListModel = new List(); int HJNum = 0; foreach (var item2 in item.ListModel) { API_OrderGoods check2 = null; if (item2.MoneyCode == "") item2.MoneyCode = null; API_OrderGoods model2 = new API_OrderGoods(); model2.productImgUrl = item2.productImgUrl; model2.GoodsNum = item2.GoodsNum; model2.GoodsPrice = item2.GoodsPrice; model2.MoneyCode = item2.MoneyCode; model2.GoodsName = item2.GoodsName; model2.GoodsDesc = item2.TypeDesc; model2.OrderItemId = item2.OrderItemId; if (item2.GoodsSKU == null) item2.GoodsSKU = ""; model2.GoodsSKU = item2.GoodsSKU; if (item2.GoodsSKU.Contains('{')) { // model2.GoodsSKU = item2.GoodsSKU.Substring(0, item2.GoodsSKU.IndexOf('{')).Trim(); string Num = item2.GoodsSKU.Substring(item2.GoodsSKU.IndexOf('{') + 1, item2.GoodsSKU.Length - item2.GoodsSKU.IndexOf('{') - 2); model2.OldNum = item2.GoodsNum; int GNum = 0; if (int.TryParse(Num.Trim(), out GNum) == true) model2.GoodsNum = GNum * model2.OldNum; } if (model.PlatType == 1) { string GoodsCode = item2.GoodsName.Trim().Replace(',', ' '); if (model2.GoodsSKU.Contains('-')) { string[] skulist = model2.GoodsSKU.Split('-'); // model2.GoodsDesc += " " + model2.GoodsSKU; // model2.GoodsSKU = skulist[1].Trim(); GoodsCode = skulist[0].Trim(); } else { if (GoodsCode.Contains(' ')) { GoodsCode = GoodsCode.Substring(GoodsCode.LastIndexOf(' ') + 1); model2.GoodsCode = GoodsCode; } } if (item2.TypeDesc != null && item2.TypeDesc != "") model2.GoodsName += "[" + item2.TypeDesc + "]"; model2.GoodsCode = GoodsCode; } model2.PostInfo = item2.PostInfo; if (model.PlatType == 1) { if (model2.GoodsCode != null && model2.GoodsCode != "") check2 = model.ListModel.Find(o => o.GoodsSKU == model2.GoodsSKU && o.GoodsCode == model2.GoodsCode); } else { check2 = model.ListModel.Find(o => o.GoodsSKU == item2.GoodsSKU); } HJNum += item2.GoodsNum.Value; if (check2 == null) { model.ListModel.Add(model2); } else { check2.GoodsNum = check2.GoodsNum + item2.GoodsNum; } } try { model.GoodsNum = HJNum; API_OrderInfoService.Save(CompanyId, model); } catch (Exception ex) { ErrorFollow.TraceWrite("保存各平台数据", "SaveOrderModel.Save", ex.Message + ";OrderCode:" + model.OrderCode); return; } } catch (Exception ex) { ErrorFollow.TraceWrite("保存各平台数据", "SaveOrderModel.Save", ex.Message); } } } #endregion #region 保存各平台数据 public static void SaveOrderModel2(int? CompanyId, int ShopId, string ShopName, int PlatType, int IsFba, List ListModel) { if (ListModel == null) return; var wllist = GetExpressSelect(PlatType); foreach (var item in ListModel) { //if (item.PlatOrderCode == "72860947447064" || item.OrderCode == "72860947447064") //{ // string asfsffs = ""; //} try { int OrderState = 2; //if (item.OrderState != null) item.OrderState = 2; if (PlatType == 1 && item.OutOrderDate != null) { if (API_OrderInfoService.CheckJoinOrderCode1(PlatType, item.OrderCode, OrderState, item.OutOrderDate.Value) == false) continue; } else if (API_OrderInfoService.CheckJoinOrderCode(PlatType, item.OrderCode, OrderState) == false) continue; if (item.MoneyCode == "") item.MoneyCode = null; API_OrderInfo model = new API_OrderInfo(); model.ShopId = ShopId; model.ShopName = ShopName; model.OrderCode = item.OrderCode; model.PlatOrderCode = item.PlatOrderCode; model.HBOrderCode = item.HBOrderCode; model.TotalPrice = item.TotalPrice; model.MoneyCode = item.MoneyCode; model.OrderDate = item.OrderDate; model.CustomID = item.BuyerID; model.RevName = item.BuyerName; model.RevCountry = item.BuyerCountry; model.RevAddr = item.BuyerAddr; model.RevPhone = item.BuyerPhone; model.RevMobile = item.BuyerMobile; model.RevMail = item.BuyerMail; model.RevFax = item.BuyerFax; model.RevZip = item.BuyerZip; model.RevProvince = item.BuyerProvince; model.RevCity = item.BuyerCity; model.RevArea = item.BuyerArea; model.BuyRemark = item.OrderRemark; model.LeaveWord = item.LeaveWord; model.PayDate = item.PayDate; model.OutOrderDate = item.OutOrderDate; model.PlatType = PlatType; model.IsFba = IsFba; model.escrowFee = item.escrowFee; model.logisticsAmount = item.logisticsAmount; model.PostInfo = item.PostInfo; if (wllist != null) { if (PlatType == 1) { //if(model.OrderCode=="72568607625211") //{ // string ddfsf = ""; //} var md = wllist.Find(n => n.ShopId == model.ShopId && n.PostInfo == model.PostInfo && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && n.PostInfo == model.PostInfo && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && n.PostInfo == model.PostInfo && n.Country == "0"); if (md == null) md = wllist.Find(n => n.ShopId == 0 && n.PostInfo == "0" && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md != null) { model.LogisticsId = md.LogisticsId; model.ExpressId = md.ExpressId; } } else if (PlatType == 2) { var md = wllist.Find(n => n.PostInfo == model.PostInfo); if (md == null) md = wllist.Find(n => n.PostInfo == "0" && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.PostInfo == model.PostInfo && n.Country == "0"); if (md != null) { model.LogisticsId = md.LogisticsId; model.ExpressId = md.ExpressId; } } else if (PlatType >= 3 && PlatType <= 5) { var md = wllist.Find(n => n.ShopId == model.ShopId && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && n.Country == "0"); if (md != null) { model.LogisticsId = md.LogisticsId; model.ExpressId = md.ExpressId; } } else if (PlatType == 6) { var md = wllist.Find(n => n.PostInfo == model.PostInfo); //var md = wllist.Find(n => n.ShopId == model.ShopId && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); if (md == null) md = wllist.Find(n => n.ShopId == 0 && (n.Country == model.RevCountry || n.EnglishName == model.RevCountry)); //if (md == null) //md = wllist.Find(n => n.ShopId == 0 && n.Country == "0"); if (md != null) { model.LogisticsId = md.LogisticsId; model.ExpressId = md.ExpressId; } } if (model.ExpressId == 7 || model.ExpressId == 65 || model.ExpressId == 67) //修改分配级别 { model.OrderLevel = 6; } } if (item.OrderState == null) model.OrderState = 1; else model.OrderState = item.OrderState; model.ListModel = new List(); int HJNum = 0; foreach (var item2 in item.ListModel) { API_OrderGoods check2 = null; if (item2.MoneyCode == "") item2.MoneyCode = null; API_OrderGoods model2 = new API_OrderGoods(); model2.productImgUrl = item2.productImgUrl; model2.GoodsNum = item2.GoodsNum; model2.GoodsPrice = item2.GoodsPrice; model2.MoneyCode = item2.MoneyCode; model2.GoodsName = item2.GoodsName; model2.GoodsDesc = item2.TypeDesc; model2.OrderItemId = item2.OrderItemId; if (item2.GoodsSKU == null) item2.GoodsSKU = ""; model2.GoodsSKU = item2.GoodsSKU; if (item2.GoodsSKU.Contains('{')) { //model2.GoodsSKU = item2.GoodsSKU.Substring(0, item2.GoodsSKU.IndexOf('{')).Trim(); string Num = item2.GoodsSKU.Substring(item2.GoodsSKU.IndexOf('{') + 1, item2.GoodsSKU.Length - item2.GoodsSKU.IndexOf('{') - 2); model2.OldNum = item2.GoodsNum; int GNum = 0; if (int.TryParse(Num.Trim(), out GNum) == true) model2.GoodsNum = GNum * model2.OldNum; } if (model.PlatType == 1) { string GoodsCode = item2.GoodsName.Trim().Replace(',', ' '); if (model2.GoodsSKU.Contains('-')) { string[] skulist = model2.GoodsSKU.Split('-'); // model2.GoodsDesc += " " + model2.GoodsSKU; //model2.GoodsSKU = skulist[1].Trim(); GoodsCode = skulist[0].Trim(); } else { if (GoodsCode.Contains(' ')) { GoodsCode = GoodsCode.Substring(GoodsCode.LastIndexOf(' ') + 1); model2.GoodsCode = GoodsCode; } } if (item2.TypeDesc != null && item2.TypeDesc != "") model2.GoodsName += "[" + item2.TypeDesc + "]"; model2.GoodsCode = GoodsCode; } model2.PostInfo = item2.PostInfo; if (model.PlatType == 1) { if (model2.GoodsCode != null && model2.GoodsCode != "") check2 = model.ListModel.Find(o => o.GoodsSKU == model2.GoodsSKU && o.GoodsCode == model2.GoodsCode); } else { check2 = model.ListModel.Find(o => o.GoodsSKU == item2.GoodsSKU); } HJNum += item2.GoodsNum.Value; if (check2 == null) { model.ListModel.Add(model2); } else { check2.GoodsNum = check2.GoodsNum + item2.GoodsNum; } } try { model.GoodsNum = HJNum; API_OrderInfoService.Save(CompanyId, model); } catch (Exception ex) { ErrorFollow.TraceWrite("保存各平台数据", "SaveOrderModel.Save", ex.Message + ";OrderCode:" + model.OrderCode); return; } } catch (Exception ex) { ErrorFollow.TraceWrite("保存各平台数据", "SaveOrderModel.Save", ex.Message); } } } #endregion //#region 速卖通数据导入 //public static string ImportAlibab(DateTime? StartDate, DateTime? StopDate, List ListModel) //{ // AlibabaApi obj = new AlibabaApi(); // string error = ""; // string mess = ""; // foreach (int ShopId in ListModel) // { // JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); // obj.ShopId = ShopId; // obj.Appkey = ShopModel.Appkey; // obj.DeveKey = ShopModel.DeveKey; // obj.RefreshToken = ShopModel.RefreshToken; // obj.AccessToken = ShopModel.AccessToken; // obj.GroupName = ShopModel.ShopName; // obj.RefreshTokenSaveTime = ShopModel.RefreshTokenSaveTime; // obj.AccessTokenUpdateTime = ShopModel.AccessTokenUpdateTime; // var olist = GetOrderCodeList(2000, ShopId); // List ListOrderModel = obj.GetWaitGoods(StartDate, StopDate, true,olist, out error); // //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); // if (ListOrderModel == null) ListOrderModel = new List(); // if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; // mess += "导入待发货订单:" + ListOrderModel.Count.ToString() + "条;"; // SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 1, 0, ListOrderModel); // List ListOrderModel1 = obj.GetPayMoneyGoods(true, out error); // //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); // if (ListOrderModel1 == null) ListOrderModel1 = new List(); // if (string.IsNullOrEmpty(error) == false) return mess + "导入已支付未到账订单订单失败:" + error; // mess += "导入已支付未到账订单:" + ListOrderModel1.Count.ToString() + "条"; // SaveOrderModel2(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 1, 0, ListOrderModel1); // } // return mess; //} //#endregion public static string ImportAlibab(DateTime? StartDate, DateTime? StopDate, List ListModel) { string errorMessage = ""; string str2 = ""; foreach (int num in ListModel) { List orderCodeList; List list2; JC_Shop model = JC_ShopService.GetModel(num); if ((model.Code != null) && (model.Code != "")) { AlibabaApiQM iqm = new AlibabaApiQM { ShopId = new int?(num) }; if ((model.Code != null) && (model.Code != "")) { iqm.sessionKey = model.Code; orderCodeList = GetOrderCodeList(0x1f40, num); list2 = iqm.GetWaitGoods("WAIT_SELLER_SEND_GOODS", 1, StartDate, StopDate, true, orderCodeList, out errorMessage); if (!string.IsNullOrEmpty(errorMessage)) { return ("导入订单失败:" + errorMessage); } if (list2 == null) { str2 = str2 + "导入待发货订单:0条;"; } else { str2 = str2 + "导入待发货订单:" + list2.Count.ToString() + "条;"; SaveOrderModel(model.CompanyId, num, model.ShopName, 1, 0, list2); } } } else { AlibabaApi api = new AlibabaApi { ShopId = num, Appkey = model.Appkey, DeveKey = model.DeveKey, RefreshToken = model.RefreshToken, AccessToken = model.AccessToken, GroupName = model.ShopName, RefreshTokenSaveTime = model.RefreshTokenSaveTime, AccessTokenUpdateTime = model.AccessTokenUpdateTime }; orderCodeList = GetOrderCodeList(0x7d0, num); list2 = api.GetWaitGoods(StartDate, StopDate, true, orderCodeList, out errorMessage); if (list2 == null) { list2 = new List(); } if (!string.IsNullOrEmpty(errorMessage)) { return ("导入订单失败:" + errorMessage); } str2 = str2 + "导入待发货订单:" + list2.Count.ToString() + "条;"; SaveOrderModel(model.CompanyId, num, model.ShopName, 1, 0, list2); } } return str2; } #region 亚马逊数据导入 public static string ImportAmazon(DateTime? StartDate, DateTime? StopDate, List ListModel) { AmazonApi obj = new AmazonApi(); ApiNew.Amazonapinew obj2 = new ApiNew.Amazonapinew(); string error = ""; string mess = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); if (ShopModel.Code != null && ShopModel.Code != "") { obj2.accessKeyId = ShopModel.RefreshToken; obj2.secretAccessKey = ShopModel.AccessToken; obj2.merchantId = ShopModel.Appkey; obj2.marketplaceId = ShopModel.DeveKey; obj2.country = ShopModel.Country; obj2.MWSAuthToken = ShopModel.Code; List ListOrderModel = obj2.GetOrders(StartDate, StopDate, ShopModel.ShopName,null,out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 0, ListOrderModel); mess = "导入普通订单:" + ListOrderModel.Count.ToString() + "条;"; if (ShopModel.IsFba == true) { System.Threading.Thread.Sleep(60000);//暂停60秒 List ListOrderModel2 = obj2.GetFBAOrders(StartDate, StopDate, ShopModel.ShopName, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) return mess + "导入海外仓订单订单失败:" + error; mess += "导入海外仓订单:" + ListOrderModel2.Count.ToString() + "条;"; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 1, ListOrderModel2); } } else { obj.accessKeyId = ShopModel.RefreshToken; obj.secretAccessKey = ShopModel.AccessToken; obj.merchantId = ShopModel.Appkey; obj.marketplaceId = ShopModel.DeveKey; obj.country = ShopModel.Country; List ListOrderModel = obj.GetOrders(StartDate, StopDate, ShopModel.ShopName, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 0, ListOrderModel); mess = "导入普通订单:" + ListOrderModel.Count.ToString() + "条;"; if (ShopModel.IsFba == true) { System.Threading.Thread.Sleep(60000);//暂停60秒 List ListOrderModel2 = obj.GetFBAOrders(StartDate, StopDate, ShopModel.ShopName, DateTime.Today, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) return mess + "导入海外仓订单订单失败:" + error; mess += "导入海外仓订单:" + ListOrderModel2.Count.ToString() + "条;"; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 1, ListOrderModel2); } } } return mess; } #endregion #region Ebay数据导入 public static string ImportEbay(DateTime? StartDate, DateTime? StopDate, List ListModel) { EbayApi obj = new EbayApi(); string error = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); obj.Appkey = ShopModel.Appkey; obj.DeveKey = ShopModel.DeveKey; obj.CertKey = ShopModel.RefreshToken; List ListOrderModel = obj.GetOrders(StartDate, StopDate, ShopModel.AccessToken, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; error = "导入订单:" + ListOrderModel.Count.ToString() + "条"; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 3, 0, ListOrderModel); } return error; } #endregion #region Ebay数据导入 public static string ImportEbayForTM(DateTime? StartDate, DateTime? StopDate, List ListModel) { EbayApi obj = new EbayApi(); string error = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); obj.Appkey = ShopModel.Appkey; obj.DeveKey = ShopModel.DeveKey; obj.CertKey = ShopModel.RefreshToken; obj.ShopNo = ShopModel.ShopNo; List ListOrderModel = obj.GetOrdersForTM(StartDate, StopDate, ShopModel.AccessToken, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; error += "导入订单:" + ListOrderModel.Count.ToString() + "条"; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 3, 0, ListOrderModel); } return error; } #endregion #region Wish数据导入 public static string ImportWish(List ListModel) { WishApi obj = new WishApi(); string error = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); List ListOrderModel = obj.GetOrders(ShopModel.AccessToken, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:"+error; error += "导入订单:" + ListOrderModel.Count.ToString() + "条"; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 4, 0, ListOrderModel); } return error; } public static string ImportWish2(List ListModel) { WishApi obj = new WishApi(); string error = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); obj.ShopId = ShopModel.ShopId.Value; obj.client_id = ShopModel.Appkey; obj.client_secret = ShopModel.DeveKey; obj.AccessToken = ShopModel.AccessToken; obj.RefreshToken = ShopModel.RefreshToken; obj.AccessTokenUpdateTime = ShopModel.AccessTokenUpdateTime; obj.RefreshTokenSaveTime = ShopModel.RefreshTokenSaveTime; obj.code = ShopModel.Code; List ListOrderModel = obj.GetOrdersNew(out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; error += "导入订单:" + ListOrderModel.Count.ToString() + "条"; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 4, 0, ListOrderModel); } return error; } #endregion #region Lazada数据导入 public static string ImportLazada(List ListModel) { LazadaApi obj = new LazadaApi(); string error = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); List ListOrderModel = obj.GetOrders(ShopModel.Country, ShopModel.Appkey, ShopModel.AccessToken, DateTime.Now.AddDays(-10), out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; error += "导入订单:" + ListOrderModel.Count.ToString() + "条"; SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 5, 0, ListOrderModel); } return error; } #endregion #region CD数据导入 public void ImportCD(List ListModel, string ShopName, int ShopId) { SaveOrderModel(1, ShopId, ShopName, 6, 0, ListModel); } #endregion #region 保存留言 public int SaveLeaveword(DT_Leaveword Model) { string tsql = @" select @Id=Id from DT_Leaveword where wId=@wId if @Id>0 begin if @isRead=1 begin Update [DT_Leaveword] set [isRead]=@isRead where Id=@Id end end else begin INSERT INTO [DT_Leaveword]([wordContent],[orderId],[isRead],[senderName],[senderLoginId],[receiverLoginId],[fileUrl],[wordCreate],[wordCreateCN],[wId],[typeId],[indate])values(@wordContent,@orderId,@isRead,@senderName,@senderLoginId,@receiverLoginId,@fileUrl,@wordCreate,@wordCreateCN,@wId,@typeId,@indate) set @Id=SCOPE_IDENTITY() end select @Id"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@Id", DbType.Int32, Model.Id); db.AddInParameter(cmd, "@wordContent", DbType.String, Model.wordContent); db.AddInParameter(cmd, "@orderId", DbType.String, Model.orderId); db.AddInParameter(cmd, "@isRead", DbType.Boolean, Model.isRead); db.AddInParameter(cmd, "@senderName", DbType.String, Model.senderName); db.AddInParameter(cmd, "@senderLoginId", DbType.String, Model.senderLoginId); db.AddInParameter(cmd, "@receiverLoginId", DbType.String, Model.receiverLoginId); db.AddInParameter(cmd, "@fileUrl", DbType.String, Model.fileUrl); db.AddInParameter(cmd, "@wordCreate", DbType.DateTime, Model.wordCreate); db.AddInParameter(cmd, "@wordCreateCN", DbType.DateTime, Model.wordCreateCN); db.AddInParameter(cmd, "@wId", DbType.Int64, Model.wId); db.AddInParameter(cmd, "@typeId", DbType.String, Model.typeId); db.AddInParameter(cmd, "@indate", DbType.DateTime, Model.indate); int a = Convert.ToInt32(db.ExecuteScalar(cmd)); return a; } #endregion #region 保存站内信 public int SaveInnerMail(DT_InnerMail Model) { string tsql = @" select @Id=Id from DT_InnerMail where wId=@wId if @Id>0 begin if @isRead=1 begin Update [DT_InnerMail] set [isRead]=@isRead where Id=@Id end end else begin INSERT INTO [DT_InnerMail]([wordContent],[orderId],[isRead],[senderName],[senderLoginId],[receiverLoginId],[fileUrl],[wordCreate],[wId],[typeId])values(@wordContent,@orderId,@isRead,@senderName,@senderLoginId,@receiverLoginId,@fileUrl,@wordCreate,@wId,@typeId) set @Id=SCOPE_IDENTITY() end select @Id"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@Id", DbType.Int32, Model.Id); db.AddInParameter(cmd, "@wordContent", DbType.String, Model.wordContent); db.AddInParameter(cmd, "@orderId", DbType.String, Model.orderId); db.AddInParameter(cmd, "@isRead", DbType.Boolean, Model.isRead); db.AddInParameter(cmd, "@senderName", DbType.String, Model.senderName); db.AddInParameter(cmd, "@senderLoginId", DbType.String, Model.senderLoginId); db.AddInParameter(cmd, "@receiverLoginId", DbType.String, Model.receiverLoginId); db.AddInParameter(cmd, "@fileUrl", DbType.String, Model.fileUrl); db.AddInParameter(cmd, "@wordCreate", DbType.DateTime, Model.wordCreate); db.AddInParameter(cmd, "@wId", DbType.Int32, Model.wId); db.AddInParameter(cmd, "@typeId", DbType.String, Model.typeId); int a = Convert.ToInt32(db.ExecuteScalar(cmd)); return a; } #endregion #region 保存订单放款 public int SaveOrderLoan(DT_OrderLoan Model) { string tsql = @" --select top 1 @Id=Id from DT_OrderLoan where orderId=@orderId if @Id>0 begin Update [DT_OrderLoan] set [amountTotal]=@amountTotal,affiliateCommission=@affiliateCommission,[currencyCode]=@currencyCode,[loanStatus]=@loanStatus,[realLoanAmount]=@realLoanAmount,[escrowFee]=@escrowFee where Id=@Id end else begin INSERT INTO [DT_OrderLoan]([amountTotal],[orderId],[currencyCode],[loanStatus],[realLoanAmount],[escrowFee],[waitLoanReson],[affiliateCommission],[realLoanMoneyCode],[escrowFeeMoneyCode],[affiliateMoneyCode],[CompanyId],[ShopId])values(@amountTotal,@orderId,@currencyCode,@loanStatus,@realLoanAmount,@escrowFee,@waitLoanReson,@affiliateCommission,@realLoanMoneyCode,@escrowFeeMoneyCode,@affiliateMoneyCode,@CompanyId,@ShopId) set @Id=SCOPE_IDENTITY() end select @Id"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@Id", DbType.Int32, Model.Id); db.AddInParameter(cmd, "@amountTotal", DbType.Decimal, Model.amountTotal); db.AddInParameter(cmd, "@orderId", DbType.String, Model.orderId); db.AddInParameter(cmd, "@currencyCode", DbType.String, Model.currencyCode); db.AddInParameter(cmd, "@loanStatus", DbType.String, Model.loanStatus); db.AddInParameter(cmd, "@realLoanAmount", DbType.Decimal, Model.realLoanAmount); db.AddInParameter(cmd, "@escrowFee", DbType.Decimal, Model.escrowFee); db.AddInParameter(cmd, "@waitLoanReson", DbType.String, Model.waitLoanReson); db.AddInParameter(cmd, "@affiliateCommission", DbType.Decimal, Model.affiliateCommission); db.AddInParameter(cmd, "@realLoanMoneyCode", DbType.String, Model.realLoanMoneyCode); db.AddInParameter(cmd, "@escrowFeeMoneyCode", DbType.String, Model.escrowFeeMoneyCode); db.AddInParameter(cmd, "@affiliateMoneyCode", DbType.String, Model.affiliateMoneyCode); db.AddInParameter(cmd, "@CompanyId", DbType.Int32, Model.CompanyId); db.AddInParameter(cmd, "@ShopId", DbType.Int32, Model.ShopId); int a = Convert.ToInt32(db.ExecuteScalar(cmd)); return a; } #endregion #region 保存订单放款明细 public int SaveOrderLoanDetail(DT_OrderLoanDetail Model) { string tsql = @" if @Id>0 begin Update [DT_OrderLoanDetail] set [LoanId]=@LoanId,[loanStatus]=@loanStatus,[realLoanAmount]=@realLoanAmount,[escrowFee]=@escrowFee,[waitLoanReson]=@waitLoanReson,[affiliateCommission]=@affiliateCommission,[childOrderId]=@childOrderId where Id=@Id end else begin INSERT INTO [DT_OrderLoanDetail]([LoanId],[loanStatus],[realLoanAmount],[escrowFee],[waitLoanReson],[affiliateCommission],[childOrderId])values(@LoanId,@loanStatus,@realLoanAmount,@escrowFee,@waitLoanReson,@affiliateCommission,@childOrderId) set @Id=SCOPE_IDENTITY() end select @Id"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@Id", DbType.Int32, Model.Id); db.AddInParameter(cmd, "@LoanId", DbType.Int32, Model.LoanId); db.AddInParameter(cmd, "@loanStatus", DbType.String, Model.loanStatus); db.AddInParameter(cmd, "@realLoanAmount", DbType.Decimal, Model.realLoanAmount); db.AddInParameter(cmd, "@escrowFee", DbType.Decimal, Model.escrowFee); db.AddInParameter(cmd, "@waitLoanReson", DbType.String, Model.waitLoanReson); db.AddInParameter(cmd, "@affiliateCommission", DbType.Decimal, Model.affiliateCommission); db.AddInParameter(cmd, "@childOrderId", DbType.String, Model.childOrderId); int a = Convert.ToInt32(db.ExecuteScalar(cmd)); return a; } #endregion #region 保存 public void SaveOneWord(ShippingMethods Model) { string tsql = @" INSERT INTO [OneWord](Code,[Name],[IsTracking],[MaxWeightInKg],[Region])values(@Code,@Name,@IsTracking,@MaxWeightInKg,@Region) "; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@Code", DbType.String, Model.Code); db.AddInParameter(cmd, "@Name", DbType.String, Model.Name); db.AddInParameter(cmd, "@IsTracking", DbType.Boolean, Model.IsTracking); db.AddInParameter(cmd, "@MaxWeightInKg", DbType.Decimal, Model.MaxWeightInKg); db.AddInParameter(cmd, "@Region", DbType.String, Model.Region); db.ExecuteNonQuery(cmd); } #endregion #region 保存纠纷 public void SaveIssue(IssueList Model) { string tsql = @"DECLARE @IssueID INT select @IssueID=IssueID from API_OrderIssue where id=@id if @IssueID>0 begin Update [API_OrderIssue] set [gmtModified]=@gmtModified,[issueStatus]=@issueStatus where id=@id end else begin INSERT INTO [API_OrderIssue]([id],[gmtCreate],[gmtModified],[orderId],[issueStatus],[reasonChinese],[reasonEnglish])values(@id,@gmtCreate,@gmtModified,@orderId,@issueStatus,@reasonChinese,@reasonEnglish) end select @IssueID"; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@id", DbType.String, Model.id.ToString()); db.AddInParameter(cmd, "@gmtCreate", DbType.DateTime, Model.gmtCreate); db.AddInParameter(cmd, "@gmtModified", DbType.DateTime, Model.gmtModified); db.AddInParameter(cmd, "@orderId", DbType.String, Model.orderId.ToString()); db.AddInParameter(cmd, "@issueStatus", DbType.String, Model.issueStatus); db.AddInParameter(cmd, "@reasonChinese", DbType.String, Model.reasonChinese); db.AddInParameter(cmd, "@reasonEnglish", DbType.String, Model.reasonEnglish); db.ExecuteScalar(cmd); //string a = Convert.ToInt32(db.ExecuteScalar(cmd)).ToString(); //return a; } #endregion #region 查询已导入订单 public static List GetOrderCodeList(int TopNum,int ShopId) { List list = null; string tsql = @" select top " + TopNum + @" OrderCode from API_OrderInfo where ShopId=@ShopId order by OrderDate desc "; Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetSqlStringCommand(tsql); db.AddInParameter(cmd, "@ShopId", DbType.Int32, ShopId); DataSet ds = db.ExecuteDataSet(cmd); list = ds.Tables[0].ToList(); return list; } #endregion public static List GetFedexOrderList(DateTime? SDate) { string query = " select top 30 b.* from DT_OrderInfo a with(nolock) inner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId where b.CountryCode='US' and a.InDate>=@SDate and a.FeeLog is null order by a.InDate"; Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(query); database.AddInParameter(sqlStringCommand, "@SDate", DbType.DateTime, SDate); return database.ExecuteDataTable(sqlStringCommand).ToList(); } public static List GetFedexOrderListBak(DateTime? SDate) { string query = " select b.* from DT_OrderInfo a with(nolock) inner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId where b.CountryCode='US' and a.InDate>=@SDate and b.RevProvinceCode in ('MI','OH','PA','NY','KY','VA') and a.FeeLog is null order by a.InDate"; Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(query); database.AddInParameter(sqlStringCommand, "@SDate", DbType.DateTime, SDate); return database.ExecuteDataTable(sqlStringCommand).ToList(); } public static List GetFedexOrderList2(string OrderIds) { string query = " select b.* from DT_OrderInfo a with(nolock) inner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId where a.OrderId in (" + OrderIds + ")"; Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(query); return database.ExecuteDataTable(sqlStringCommand).ToList(); } public static List GetFedexOrderGoodsList(string OrderIds) { string query = " select a.Id,a.OrderId,a.GoodsNum,Weight=case when c.Weight2 is not null and c.Weight2>0 then c.Weight2 when c.Weight is not null and c.Weight>0 then c.Weight*0.035274 else null end,c.Width2,Length2=c.Long2,c.Height2,InPrice=isnull(c.InPrice,0) from DT_OrderGoods a with(nolock) inner join HW_GoodsDetail b with(nolock) on a.DetailId=b.DetailId inner join HW_GoodsInfo c on b.GoodsId=c.GoodsId where OrderId in (" + OrderIds + ")"; Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(query); return database.ExecuteDataSet(sqlStringCommand).Tables[0].ToList(); } public static List GetFedexOrderGoodsListbak(string OrderIds) { string query = " select a.Id,a.OrderId,a.GoodsNum,Weight=case when c.Weight2 is not null and c.Weight2>0 then c.Weight2 when c.Weight is not null and c.Weight>0 then c.Weight*0.035274 else null end,c.Width2,Length2=c.Long2,c.Height2,InPrice=isnull(c.InPrice,0) from newerp.dbo.DT_OrderGoods a with(nolock) inner join newerp.dbo.HW_GoodsDetail b with(nolock) on a.DetailId=b.DetailId inner join newerp.dbo.HW_GoodsInfo c on b.GoodsId=c.GoodsId where OrderId in (" + OrderIds + ")"; Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(query); return database.ExecuteDataSet(sqlStringCommand).Tables[0].ToList(); } public static void UpdateFee(int OrderId, string FeeHtml) { try { string query = " Update [DT_OrderInfo] set FeeLog=@FeeHtml where OrderId=@OrderId "; Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(query); database.AddInParameter(sqlStringCommand, "@OrderId", DbType.Int32, OrderId); database.AddInParameter(sqlStringCommand, "@FeeHtml", DbType.String, FeeHtml); database.ExecuteNonQuery(sqlStringCommand); } catch (Exception exception) { ErrorFollow.TraceWrite("UpdateFee", "", exception.Message); } } public static List GetApiOrderSyncGoodList(string orderids) { string query = " select a.OrderId,b.productImgUrl ASIN,b.GoodsSKU GoodSKU, a.ShopId,c.Appkey,c.DeveKey,c.RefreshToken ,c.Country from API_OrderInfo a inner join API_OrderGoods b on a.OrderId=b.OrderId inner join JC_Shop c on a.ShopId = c.ShopId where c.PlatType = 2 and a.State = 0 and a.OrderId in (" + orderids + ") "; Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(query); return database.ExecuteDataSet(sqlStringCommand).Tables[0].ToList(); } public static int GetGoodsIdByApiOrderGoodSKU(string sku) { string query = " select top 1 GoodsId from HW_GoodsDetail where SKU1=@sku or SKU2=@sku or SKU3=@sku or SKU4=@sku or SKU5=@sku or SKU6=@sku or SKU7=@sku or SKU8=@sku or SKU9=@sku or SKU10=@sku or SKU11=@sku or SKU12=@sku or SKU13=@sku or SKU14=@sku or SKU15=@sku "; Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(query); database.AddInParameter(sqlStringCommand, "@sku", DbType.String, sku); var obj = database.ExecuteScalar(sqlStringCommand); if(obj!=null) return Convert.ToInt32(obj); else return 0; } } }