public ActionResult SaveGoodsProperty([FromBody] MdmGoodsPropertyMstrDto dto) { try { _mdmGoodsPropertyMstrService.SaveGoodsProperty(dto); return(Success("保存成功")); } catch (Exception ex) { return(Fail("保存失败:" + ex.Message)); } }
/// <summary> /// 保存属性 /// </summary> /// <param name="dto"></param> /// <param name="id"></param> /// <returns></returns> private bool SaveProperty(MdmGoodsPropertyMstrDto dto, ref string id) { _initHelper.InitAdd <MdmGoodsPropertyMstrDto>(dto, Convert.ToDecimal(AbpSession.USR_ID), AbpSession.ORG_NO, AbpSession.BG_NO); dto.PROPERTY_STATUS = 1; dto.PROPERTY_DOMAIN = 1; if (string.IsNullOrEmpty(dto.Id)) { dto.Id = Guid.NewGuid().ToString("N"); id = dto.Id; return(_mdmGoodsPropertyMstrRepository.Insert(dto.ToEntity()) != null ? true : false); } else { dto.DEL_FLAG = 1; dto.UPDATE_DATE = DateTime.Now; dto.UPDATE_PSN = Convert.ToDecimal(AbpSession.USR_ID); return(_mdmGoodsPropertyMstrRepository.Insert(dto.ToEntity()) != null ? true : false); } }
/// <summary> /// 保存商品分类属性 /// </summary> /// <param name="dto"></param> public void SaveGoodsProperty(MdmGoodsPropertyMstrDto dto) { string propertyId = dto.Id; //保存主属性 MdmGoodsPropertyMstrDto mstrProperty = new MdmGoodsPropertyMstrDto() { PROPERTY_NAME = dto.PROPERTY_NAME, PROPERTY_TYPE = 2, PROPERTY_PARENTID = dto.PROPERTY_EN_NAME, PROPERTY_LEVEL = 0, PROPERTY_EN_NAME = dto.PROPERTY_EN_NAME, Id = propertyId }; if (!SaveProperty(mstrProperty, ref propertyId)) { throw new Exception("绑定分类失败"); } //保存属性明细 string propertyItemId = ""; string where = ""; string _values = "|" + dto.PROPERTY_DEFAULT_VALUE + "|"; string[] arr = dto.PROPERTY_DEFAULT_VALUE.Split('|'); foreach (var item in arr) { MdmGoodsPropertyMstrDto itemProperty = new MdmGoodsPropertyMstrDto() { PROPERTY_NAME = dto.PROPERTY_NAME, PROPERTY_TYPE = 3, PROPERTY_PARENTID = propertyId, PROPERTY_LEVEL = 0, PROPERTY_EN_NAME = dto.PROPERTY_EN_NAME, PROPERTY_DEFAULT_VALUE = item }; if (!_mdmGoodsPropertyMstrRepository.ValidateProperty(propertyId, item) && !string.IsNullOrEmpty(item)) { if (!SaveProperty(itemProperty, ref propertyItemId)) { throw new Exception("绑定属性明细失败"); } } //修改sku时,删除项验证 if (!string.IsNullOrEmpty(propertyId)) { var list = _mdmGoodsPropertyMstrRepository.GetAllList(m => m.PROPERTY_PARENTID == propertyId); //遍历数据库所有已存sku值 foreach (MdmGoodsPropertyMstr model in list) { //若该值已被删除(不包含在新数据内) if (!_values.Contains("|" + model.PROPERTY_DEFAULT_VALUE + "|")) { //验证该值是否被商品使用 var mstrList = _mdmGoodsMstrRepository.GetAllList(m => m.SKU_PROPERTY_ID1 == model.Id || m.SKU_PROPERTY_ID2 == model.Id || m.SKU_PROPERTY_ID3 == model.Id || m.SKU_PROPERTY_ID4 == model.Id || m.SKU_PROPERTY_ID5 == model.Id); if (mstrList != null && mstrList.Count > 0) { throw new Exception("sku已被使用:" + model.PROPERTY_DEFAULT_VALUE); } } } } where += " and PROPERTY_DEFAULT_VALUE!='" + item + "'"; } _mdmGoodsPropertyMstrRepository.DelProValue(propertyId, where); }