/// <summary> /// 构建商品类型属性记录 /// </summary> /// <param name="model"></param> /// <returns></returns> private dynamic BuildAddProductTypeAttrRecord(SKU_ProductTypeAttributeModel model) { dynamic record = new SimpleRecord(); record.SKU_ProductTypeAttributeId = model.SKU_ProductTypeAttributeId; record.AttributeId = model.AttributeId; record.SkuTypeId = model.SkuTypeId; record.AttributeType = model.AttributeType; record.AttributeGroup = model.AttributeGroup; record.DisplaySequence = model.DisplaySequence; record.UpdateBy = model.UpdateBy; record.UpdateDT = model.UpdateDT; return(record); }
/// <summary> /// 构建商品类型属性 /// </summary> /// <param name="queryResult">查询结果</param> /// <param name="attrbuteType">属性类型</param> /// <returns></returns> private List <SKU_ProductTypeAttributeModel> GenerateProductTypeAttributes(List <dynamic> queryResult, int attrbuteType) { var productTypeAttributeModels = new List <SKU_ProductTypeAttributeModel>(); var pTypeIds = new List <long>(); //0:SKU属性,1:扩展属性,2:参数表 if (queryResult != null && queryResult != null) { SKU_ProductTypeAttributeModel tempModel = null; foreach (var record in queryResult) { if (record.b_AttributeType == attrbuteType) { //不存在该记录 if (!pTypeIds.Contains(record.b_SKU_ProductTypeAttributeId)) { tempModel = new SKU_ProductTypeAttributeModel { SKU_ProductTypeAttributeId = record.b_SKU_ProductTypeAttributeId, AttributeId = record.b_AttributeId, SkuTypeId = record.b_SkuTypeId, AttributeType = record.b_AttributeType, AttributeGroup = record.b_AttributeGroup, DisplaySequence = record.b_DisplaySequence, CreateBy = record.b_CreateBy, CreateDT = record.b_CreateDT, UpdateBy = record.b_UpdateBy, UpdateDT = record.b_UpdateDT }; //属性名 SKU_AttributesModel attributeModel = this.GenerateAttributesReocrd(record); tempModel.SKU_AttributesModel = attributeModel; if (record.d_ValueId != null) { //添加属性值 attributeModel.SKU_AttributeValuesModels.Add(this.GenerateAttributesValueReocrd(record)); } pTypeIds.Add(record.b_SKU_ProductTypeAttributeId); productTypeAttributeModels.Add(tempModel); } else { tempModel = productTypeAttributeModels.FirstOrDefault( x => x.SKU_ProductTypeAttributeId == record.b_SKU_ProductTypeAttributeId); if (record.d_ValueId != null) { tempModel.SKU_AttributesModel.SKU_AttributeValuesModels.Add( this.GenerateAttributesValueReocrd(record)); } } } } } productTypeAttributeModels.ForEach(x => { x.SKU_AttributesModel.SKU_AttributeValuesModels = x.SKU_AttributesModel.SKU_AttributeValuesModels.OrderBy(y => y.DisplaySequence).ToList(); x.SKU_AttributesModel.ValuesString = string.Join(",", x.SKU_AttributesModel.SKU_AttributeValuesModels.Select(y => y.ValueStr)); }); productTypeAttributeModels = productTypeAttributeModels.OrderBy(x => x.DisplaySequence).ToList(); return(productTypeAttributeModels); }