public static Tuple <List <p_Product2QuotaAttribute>, List <p_ProductAttributeValue> > AttributeInsertList(ExeclRow entity, cl_Product productModel) { //枚举信息 List <p_Product2QuotaAttribute> product2QuotaAttributeList = new List <p_Product2QuotaAttribute>(); List <p_ProductAttributeValue> productAttributeValueList = new List <p_ProductAttributeValue>(); foreach (Attribute item in entity.Attributes) { if (item.ControlType == "枚举") { p_Product2QuotaAttribute product2QuotaAttributeModel = new p_Product2QuotaAttribute(); product2QuotaAttributeModel.Product2QuotaAttributeGUID = Guid.NewGuid(); product2QuotaAttributeModel.ProductGUID = productModel.ProductGUID; product2QuotaAttributeModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; product2QuotaAttributeModel.ProductTypeQuotaAttributeGUID = item.ProductTypeQuotaAttributeGUID; product2QuotaAttributeList.Add(product2QuotaAttributeModel); } else if (item.ControlType == "文本") { p_ProductAttributeValue productAttributeValueModel = new p_ProductAttributeValue(); productAttributeValueModel.ProductTypeQuotaAttributeExtGUID = Guid.NewGuid(); productAttributeValueModel.ProductGUID = productModel.ProductGUID; productAttributeValueModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; productAttributeValueModel.ControlType = "2"; productAttributeValueModel.QuotaAttributeValue = item.Value; productAttributeValueList.Add(productAttributeValueModel); //文本的关系表绑定 p_Product2QuotaAttribute product2QuotaAttributeModel = new p_Product2QuotaAttribute(); product2QuotaAttributeModel.Product2QuotaAttributeGUID = Guid.NewGuid(); product2QuotaAttributeModel.ProductGUID = productModel.ProductGUID; product2QuotaAttributeModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; product2QuotaAttributeModel.ProductTypeQuotaAttributeGUID = productAttributeValueModel.ProductTypeQuotaAttributeExtGUID;//将文本分类的值关联到中间表 product2QuotaAttributeList.Add(product2QuotaAttributeModel); } } return(Tuple.Create <List <p_Product2QuotaAttribute>, List <p_ProductAttributeValue> >(product2QuotaAttributeList, productAttributeValueList)); }
/// <summary> /// 如果产品存在就更新产品属性信息,为了修正之前修改分类指标属性导致的数据清空问题 /// </summary> /// <param name="entity"></param> /// <param name="conn"></param> /// <param name="msg"></param> /// <returns></returns> public static bool UpdateDB(ExeclRow entity, Guid productGuid, SqlConnection conn, ref string msg) { int result = 0, addNew = 0; //枚举信息 List <p_Product2QuotaAttribute> product2QuotaAttributeList = new List <p_Product2QuotaAttribute>(); List <p_ProductAttributeValue> productAttributeValueList = new List <p_ProductAttributeValue>(); foreach (Attribute item in entity.Attributes) { if (item.ControlType.Equals("枚举")) { string value = DataBaseCommand.HasProductQuotaAttribute(productGuid, item.ProductTypeQuotaGUID, conn); if (!value?.Equals(item.Value) ?? false)//之前指标属性导入后,更改属性值导致关系失效的错误数据修复 { result += DataBaseCommand.UpdateQuotaAttribute2Product(productGuid, item.Value, conn); } else if (string.IsNullOrEmpty(value))//如果不存在关系,就说明该属性之前未导入 { p_Product2QuotaAttribute product2QuotaAttributeModel = new p_Product2QuotaAttribute(); product2QuotaAttributeModel.Product2QuotaAttributeGUID = Guid.NewGuid(); product2QuotaAttributeModel.ProductGUID = productGuid; product2QuotaAttributeModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; product2QuotaAttributeModel.ProductTypeQuotaAttributeGUID = item.ProductTypeQuotaAttributeGUID; product2QuotaAttributeList.Add(product2QuotaAttributeModel); } } else if (item.ControlType.Equals("文本")) { string value = DataBaseCommand.ProductHasAttributeWenBen(productGuid, item.ProductTypeQuotaGUID, conn); if (string.IsNullOrEmpty(value))//文本类型的指标属性不存在 { p_ProductAttributeValue productAttributeValueModel = new p_ProductAttributeValue(); productAttributeValueModel.ProductTypeQuotaAttributeExtGUID = Guid.NewGuid(); productAttributeValueModel.ProductGUID = productGuid; productAttributeValueModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; productAttributeValueModel.ControlType = "2"; productAttributeValueModel.QuotaAttributeValue = item.Value; productAttributeValueList.Add(productAttributeValueModel); //文本的关系表绑定 p_Product2QuotaAttribute product2QuotaAttributeModel = new p_Product2QuotaAttribute(); product2QuotaAttributeModel.Product2QuotaAttributeGUID = Guid.NewGuid(); product2QuotaAttributeModel.ProductGUID = productGuid; product2QuotaAttributeModel.ProductTypeQuotaGUID = item.ProductTypeQuotaGUID; product2QuotaAttributeModel.ProductTypeQuotaAttributeGUID = productAttributeValueModel.ProductTypeQuotaAttributeExtGUID;//将文本分类的值关联到中间表 product2QuotaAttributeList.Add(product2QuotaAttributeModel); } else if (!value.Equals(item.Value)) { result += DataBaseCommand.UpdateProductAttributeWenBen(productGuid, item.ProductTypeQuotaGUID, item.Value, conn); } } } using (SqlTransaction transaction = conn.BeginTransaction()) { try { addNew += DataBaseCommand.SaveProduct2QuotaAttribute(product2QuotaAttributeList, conn, transaction); //保存枚举值产品关系 addNew += DataBaseCommand.SavaProductAttributeValue(productAttributeValueList, conn, transaction); //保存文本信息 transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); msg = ex.Message; Logger.GetLogger(ex.Message).Error(ex); return(false); throw ex; } } msg = "该产品已经已存在"; if (result > 0) { msg += $",更新属性关系{result}次"; return(true); } if (addNew > 0) { msg += $",新增属性关系关系{addNew}次"; return(true); } msg += $",并且指标属性值正常"; return(false); }