/// <summary> /// 更新 大客户员工异常订单记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public static int UpdateLargeCustomerStaffInvalidOrder(LargeCustomerInvalidOrderModel model) { const string sqlStr = @"UPDATE [Activity].[dbo].[LargeCustomerInvalidOrder] WITH(ROWLOCK) SET [OrderIDs] = @OrderIDs, [DetailInfo] = @DetailInfo, EmailSendCount = @EmailSendCount, Phone=@Phone, IsCouponDeleted=@IsCouponDeleted, [UpdateTime] = GETDATE() WHERE [UserId] = @UserId AND InvalidType = @InvalidType AND ActivityId = @ActivityId AND IsDelete = 0;"; using (var cmd = new SqlCommand(sqlStr)) { cmd.Parameters.AddWithValue("@OrderIDs", model.OrderIDs); cmd.Parameters.AddWithValue("@DetailInfo", model.DetailInfo); cmd.Parameters.AddWithValue("@EmailSendCount", model.EmailSendCount); cmd.Parameters.AddWithValue("@UserId", model.UserId); cmd.Parameters.AddWithValue("@InvalidType", model.InvalidType); cmd.Parameters.AddWithValue("@ActivityId", model.ActivityId); cmd.Parameters.AddWithValue("@Phone", model.Phone); cmd.Parameters.AddWithValue("@IsCouponDeleted", model.IsCouponDeleted); return(DbHelper.ExecuteNonQuery(cmd)); } }
/// <summary> /// 插入大客户员工异常订单记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public static int InsertLargeCustomerStaffInvalidOrder(LargeCustomerInvalidOrderModel model) { const string sqlStr = @"INSERT INTO [Activity].[dbo].[LargeCustomerInvalidOrder] ([UserId] ,[InvalidType] ,[ActivityId] ,[OrderIDs] ,[DetailInfo] ,[EmailSendCount] ,Phone ,IsCouponDeleted ,[CreateTime] ,[UpdateTime] ,[IsDelete]) VALUES (@UserId ,@InvalidType ,@ActivityId ,@OrderIDs ,@DetailInfo ,@EmailSendCount ,@Phone ,@IsCouponDeleted ,GETDATE() ,null ,0)"; using (var cmd = new SqlCommand(sqlStr)) { cmd.Parameters.AddWithValue("@UserId", model.UserId); cmd.Parameters.AddWithValue("@InvalidType", model.InvalidType); cmd.Parameters.AddWithValue("@ActivityId", model.ActivityId); cmd.Parameters.AddWithValue("@OrderIDs", model.OrderIDs); cmd.Parameters.AddWithValue("@DetailInfo", model.DetailInfo); cmd.Parameters.AddWithValue("@EmailSendCount", model.EmailSendCount); cmd.Parameters.AddWithValue("@Phone", model.Phone); cmd.Parameters.AddWithValue("@IsCouponDeleted", model.IsCouponDeleted); return(DbHelper.ExecuteNonQuery(cmd)); } }
private void LargeCustomerStaffInvalidOrder() { var validList = new List <ActivityCustomerInvalidOrderResponse>(); try { using (var client = new ActivityClient()) { //获取所有的异常订单信息 var clentResult = client.GetExceptionalCustomerOrderInfo(); if (clentResult.Success) { validList = clentResult.Result; } else { Logger.Warn($"LargeCustomerStaffInvalidOrder,获取所有的异常订单信息失败,ErrorMessage:{clentResult.ErrorMessage}"); } if (!(bool)validList?.Any()) { return; } } //遍历异常信息 foreach (var item in validList) { try { //从数据库获取该数据,仅仅订单信息不相同就更新数据,没有userid、活动id、异常原因相同的数据就插入, //都相同的数据不处理 var oldModel = LargeCustomerStaffInvalidOrderMonitorDal.GetLargeCustomerStaffInvalidOrder(item.UserId, item.ActivityId, item.InvalidType); if (string.IsNullOrWhiteSpace(oldModel?.ActivityId)) { //插入 var insertModel = new LargeCustomerInvalidOrderModel() { UserId = item.UserId, ActivityId = item.ActivityId, InvalidType = item.InvalidType, OrderIDs = string.Join(",", item.OrderIDs), DetailInfo = item.DetailInfo, EmailSendCount = 0, IsCouponDeleted = item.IsCouponDeleted, Phone = item.Phone }; var insertResult = LargeCustomerStaffInvalidOrderMonitorDal.InsertLargeCustomerStaffInvalidOrder(insertModel); if (insertResult != 1) { var jsonModel = JsonConvert.SerializeObject(insertResult); Logger.Warn($"LargeCustomerStaffInvalidOrder,插入数据失败,model:{jsonModel}"); } } else { //获取新的订单,有新的订单就更新 var oldOrders = oldModel.OrderIDs.Split(','); var oldOrderList = new List <int>(); foreach (var id in oldOrders) { oldOrderList.Add(Convert.ToInt32(id)); } var newOrders = oldOrderList.Except(item.OrderIDs); if ((bool)newOrders?.Any()) { //更新 var updateModel = new LargeCustomerInvalidOrderModel() { UserId = item.UserId, ActivityId = item.ActivityId, InvalidType = item.InvalidType, OrderIDs = string.Join(",", item.OrderIDs), DetailInfo = item.DetailInfo, EmailSendCount = 0, IsCouponDeleted = item.IsCouponDeleted, Phone = item.Phone }; var updateResult = LargeCustomerStaffInvalidOrderMonitorDal.UpdateLargeCustomerStaffInvalidOrder(updateModel); if (updateResult != 1) { var jsonModel = JsonConvert.SerializeObject(updateModel); Logger.Warn($"LargeCustomerStaffInvalidOrder,更新数据失败,model:{jsonModel}"); } } } } catch (Exception ex) { var jsonModel = JsonConvert.SerializeObject(item); Logger.Error($"遍历异常订单数据时异常,userID:{item.UserId},数据json:{jsonModel},ex{ex}"); } } } catch (Exception ex) { Logger.Error($"LargeCustomerStaffInvalidOrder统计大客户员工异常订单信息异常,ex:{ex}"); } }