public void CreateOrderItemRecordTest() { using (var client = new TuboAllianceClient()) { var model = new CreateOrderItemRecordRequest(); model.OrderId = "123497220"; var orderItemList = new List <OrderItemRecord>(); var orderItem = new OrderItemRecord(); orderItem.CpsId = new Guid("72CF04E7-E99D-4441-80EC-BADCF8DDF953"); orderItem.DarenID = new Guid("00004371-77D8-4D26-A57E-E46426587BEA"); orderItem.Pid = "TR-CT-C2-MC5|8"; orderItem.Number = 1; orderItemList.Add(orderItem); var orderItem2 = new OrderItemRecord(); orderItem2.CpsId = new Guid("052E3B8D-5B39-4C5B-8F57-78B7BDFFD35A"); orderItem2.DarenID = new Guid("00004371-77D8-4D26-A57E-E46426587BEA"); orderItem2.Pid = "GF-MOBIL-GIFT|18"; orderItem2.Number = 1; orderItemList.Add(orderItem2); //var orderItem3 = new OrderItemRecord(); //orderItem3.CpsId = new Guid("dbcd2b00-e7e9-4d16-8fca-d92736ed48f7"); //orderItem3.DarenID = new Guid("00010D2E-F4CD-430A-BEB0-AE6674F6EA46"); //orderItem3.Pid = "LF-GiGi-G-1069|6"; ; //orderItem3.Number = 1; //orderItemList.Add(orderItem3); model.OrderItem = orderItemList; var result = client.CreateOrderItemRecordAsync(model); Assert.IsNotNull(result.Result); } }
/// <summary> /// 佣金订单商品记录创建接口 /// </summary> /// <param name="request"></param> /// <returns></returns> public static async Task <int> CreateOrderItemRecordsManager(CreateOrderItemRecordRequest request) { int resultRow = 0; using (var dbHelper = DbHelper.CreateDbHelper()) { try { if (request.OrderItem?.Count > 0) { dbHelper.BeginTransaction(); var orderItemTmp = request.OrderItem.Select(item => { return(new { request.OrderId, item.DarenID, item.CpsId, item.Pid, item.Number, CreateTime = DateTime.Now, IsDelete = 0 }); }); DataTable dtOrderItem = ConvertDataTable.ToDataTable(orderItemTmp); string sqlCreateOrderItemTable = @"CREATE TABLE #orderItemTmp( [OrderId] [nvarchar](50) NOT NULL, [DarenID] [uniqueidentifier] NULL, [CpsId] [uniqueidentifier] NULL, [Pid] [nvarchar](50) NULL, [Number] [int] NULL, [CreateTime] [datetime] NULL, [IsDelete] [bit] NOT NULL);" ; await dbHelper.ExecuteNonQueryAsync(sqlCreateOrderItemTable); using (SqlBulkCopy bulkcopy = new SqlBulkCopy((SqlConnection)dbHelper.Connection, SqlBulkCopyOptions.KeepIdentity, (SqlTransaction)dbHelper.Transaction)) { bulkcopy.BulkCopyTimeout = 660; bulkcopy.DestinationTableName = "#orderItemTmp"; bulkcopy.WriteToServer(dtOrderItem); bulkcopy.Close(); } var sqlCreateOrderItemRecord = @"INSERT INTO [Activity].[dbo].[Cps_OrderItemRecord] ([OrderId] ,[DarenID] ,[CpsId] ,[PID] ,[Number] ,[CreateTime] ,[IsDelete]) SELECT [OrderId] ,[DarenID] ,[CpsId] ,[PID] ,[Number] ,[CreateTime] ,[IsDelete] FROM #orderItemTmp" ; using (var cmd = new SqlCommand(sqlCreateOrderItemRecord)) { cmd.CommandType = CommandType.Text; resultRow = Convert.ToInt32(await dbHelper.ExecuteNonQueryAsync(cmd)); } dbHelper.Commit(); } } catch (Exception ex) { dbHelper.Rollback(); Logger.Error($"CreateOrderItemRecordManager佣金订单下单记录接口异常:{ex.Message};堆栈信息:{ex.StackTrace}"); } } return(resultRow); }
/// <summary> /// 佣金订单商品记录创建接口 /// </summary> /// <param name="request"></param> /// <returns></returns> public static async Task <CreateOrderItemRecordResponse> CreateOrderItemRecordManager(CreateOrderItemRecordRequest request) { var resultModule = new CreateOrderItemRecordResponse(); resultModule.Success = false; try { //查询所有PID在佣金产品表中的记录 var pidList = request?.OrderItem?.Select(a => a.Pid).ToList(); var cpsIDList = request?.OrderItem?.Select(a => "" + a.CpsId).ToList(); var commissionProductList = await DalTuboAlliance.GetCommissionProductByIdsDal(pidList, cpsIDList); //过滤当前请求的PID未在佣金产品表中存在的 var orderItemRecords = new List <OrderItemRecord>(); request.OrderItem.ForEach(orderItem => { var commissionProductCount = commissionProductList.Where(a => a.PID == orderItem.Pid && a.CpsId == orderItem.CpsId).Count(); if (commissionProductCount > 0) { orderItemRecords.Add(orderItem); } }); request.OrderItem = orderItemRecords; var resultRow = await DalTuboAlliance.CreateOrderItemRecordsManager(request); if (resultRow > 0) { resultModule.Success = true; } } catch (Exception ex) { Logger.Error($"CreateOrderItemRecordManager佣金订单商品记录创建接口异常:{ex.Message};堆栈信息:{ex.StackTrace}"); resultModule.ErrorMessage = ex.Message; } return(resultModule); }
/// <summary> /// 佣金订单商品记录创建接口 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <OperationResult <CreateOrderItemRecordResponse> > CreateOrderItemRecordAsync(CreateOrderItemRecordRequest request) { if (request == null || string.IsNullOrEmpty(request.OrderId) || request.OrderItem == null || request.OrderItem?.Count <= 0) { return(OperationResult.FromError <CreateOrderItemRecordResponse> (nameof(Resource.ParameterError), Resource.ParameterError)); } else { return(OperationResult.FromResult(await TuboAllianceManager.CreateOrderItemRecordManager(request))); } }