/// <summary> /// 编辑团购信息 /// </summary> /// <param name="data"></param> /// <returns></returns> public Tuple <bool, string> UpsertGroupBuyingConfig(GroupBuyingProductGroupConfigEntity data) { var result = false; var msg = "操作失败"; GroupBuyingProductGroupConfigEntity oldData = null; try { dbScopeManager.CreateTransaction(conn => { if (string.IsNullOrWhiteSpace(data.ProductGroupId)) { data.ProductGroupId = $"PT{DateTime.Now.GetHashCode()}".Substring(0, 10); if (DalGroupBuyingProductGroupConfig.IsExistProductGroupId(conn, data.ProductGroupId) > 0) { data.ProductGroupId = $"PT{DateTime.Now.GetHashCode()}".Substring(0, 10); } DalGroupBuyingProductGroupConfig.InsertGroupBuyingGroupConfig(conn, data); foreach (var item in data.GroupProductDetails) { item.ProductGroupId = data.ProductGroupId; item.Creator = data.Creator; DalGroupBuyingProductGroupConfig.InsertGroupBuyingProductConfig(conn, item); } } else { oldData = DalGroupBuyingProductGroupConfig.GetGroupBuyingV2ConfigByGroupId(conn, data.ProductGroupId); if (oldData != null) { oldData.GroupProductDetails = DalGroupBuyingProductGroupConfig.GetGroupBuyingV2ProductConfigByGroupId(conn, new List <string> { data.ProductGroupId }); } DalGroupBuyingProductGroupConfig.UpdateGroupBuyingGroupConfig(conn, data); DalGroupBuyingProductGroupConfig.DeleteGroupBuyingProductConfig(conn, data.ProductGroupId); foreach (var item in data.GroupProductDetails) { item.ProductGroupId = data.ProductGroupId; item.Creator = data.Creator; DalGroupBuyingProductGroupConfig.InsertGroupBuyingProductConfig(conn, item); } } result = true; }); } catch (Exception ex) { msg = "系统异常"; logger.Error(ex); } if (result) { ThreadPool.QueueUserWorkItem(o => { foreach (var item in data.GroupProductDetails) { TuhuNotification.SendNotification("#.PinTuanProductStatusSyncQueue.#", new Dictionary <string, object> { ["PId"] = item.PID, ["ProductGroupId"] = data.ProductGroupId }, 3000); } InsertLog(data.ProductGroupId, "GroupBuyingProductConfig", "UpsertGroupBuyingConfig", result ? "操作成功" : msg, JsonConvert.SerializeObject(oldData), JsonConvert.SerializeObject(data), data.Creator); ActivityService.RefrestPTCache(data.ProductGroupId); }); } return(Tuple.Create(result, msg)); }