private void HandleTreeNode(SpflUpdateTreeModel node, List <Tb_Spfl> spflList, List <Tb_Spfl> newList, BaseResult res) { if (node != null) { Tb_Spfl spflModel = spflList.FirstOrDefault(s => s.id == node.id); spflModel = spflModel ?? new Tb_Spfl(); spflModel.id = node.id; spflModel.id_father = node.id_fahter; spflModel.sort_id = node.sortNum; spflModel.path = node.fartherPath + "/" + node.id; newList.Add(spflModel); if (node.children != null && node.children.Any()) { for (int i = 0; i < node.children.Count; i++) { var sn = node.children[i]; sn.fartherPath = spflModel.path; sn.sortNum = i + 10; sn.id_fahter = spflModel.id; HandleTreeNode(sn, spflList, newList, res); } CheckName(node.children, spflList, res); } } }
public ActionResult Add(Tb_Spfl model) { var oldParam = new Hashtable(); Hashtable param = base.GetParameters(); param.Add("id_masteruser", id_user_master); Hashtable param_model = null; BaseResult br = new BaseResult(); Tb_Spfl model_spfl = new Tb_Spfl(); //新增对象 try { ParamVessel pv = new ParamVessel(); pv.Add("mc", string.Empty, HandleType.ReturnMsg); //名称 pv.Add("bm", string.Empty, HandleType.DefaultValue); //编码 pv.Add("id_masteruser", id_user_master, HandleType.ReturnMsg); //用户Id pv.Add("parent_id", string.Empty, HandleType.ReturnMsg); //父节点Id param_model = param.Trim(pv); oldParam = (Hashtable)param_model.Clone(); if (TryUpdateModel(model_spfl)) { model_spfl.id_father = param_model["parent_id"].ToString(); model_spfl.id_masteruser = id_user_master; model_spfl.id_create = model_spfl.id_edit = id_user; br = BusinessFactory.Tb_Spfl.Add(model_spfl); } else { br.Message.Add("参数有误!"); } } catch (Exception ex) { br.Message.Add(ex.Message); } WriteDBLog("添加商品分类", oldParam, br); if (br.Success) { return(JsonString(new { status = "success", message = "执行成功,正在载入页面...", spfl = br.Data })); } else { return(JsonString(new { status = "error", message = string.Join(";", br.Message), })); } }
public void GetSpflImportTree(List <Tb_Spfl_Import> list, List <Tb_Spfl> spflList, List <Tb_Spfl_Import> fiallist, string id_user, string id_masteruser) { if (list.Any()) { var firstList = list.Where(l => string.IsNullOrWhiteSpace(l.father)).ToList(); firstList.ForEach(fl => { var res = CheckImportInfo(fl); if (!res.Success) { fl.bz = res.Message[0] ?? "数据不合要求!"; fiallist.Add(fl); } else { if (firstList.Where(d => d.mc == fl.mc).Count() > 1) { fl.bz = "操作失败 导入数据存在同名分类!"; fiallist.Add(fl); } else { Tb_Spfl st = new Tb_Spfl(); st.bm = fl.bm; st.mc = fl.mc; st.id = Guid.NewGuid().ToString(); st.path = "/0/" + st.id; st.id_father = "0"; st.flag_delete = (byte)Enums.FlagDelete.NoDelete; st.rq_edit = st.rq_create = DateTime.Now; st.id_edit = st.id_create = id_user; st.id_masteruser = id_masteruser; CreatSubTree(st, list, spflList, fiallist, id_user, id_masteruser); var model = spflList.FirstOrDefault(sl => sl.mc == st.mc); if (model != null && model.id_father == st.id_father) { fl.bz = "同一级中已有同名分类"; fiallist.Add(fl); } else { spflList.Add(st); } } } }); foreach (var item in list.Where(d => !(from s in spflList select s.mc).Contains(d.mc) && string.IsNullOrEmpty(d.bz))) { item.bz = "导入文件中无此 上级名称 的根目录数据 或上级名称 根目录不符合要求"; fiallist.Add(item); } } }
public void CreatSubTree(Tb_Spfl st, List <Tb_Spfl_Import> list, List <Tb_Spfl> spflList, List <Tb_Spfl_Import> fiallist, string id_user, string id_masteruser) { if (st != null) { var sublist = FindSubSpflByMC(st.mc, list); if (sublist.Any()) { sublist.ForEach(fl => { var res = CheckImportInfo(fl); if (!res.Success) { fl.bz = res.Message[0] ?? "数据不合要求!"; fiallist.Add(fl); } else { Tb_Spfl sub = new Tb_Spfl(); sub.bm = fl.bm; sub.mc = fl.mc; sub.id = Guid.NewGuid().ToString(); sub.path = st.path + "/" + sub.id; sub.id_father = st.id; sub.flag_delete = (byte)Enums.FlagDelete.NoDelete; sub.rq_edit = st.rq_create = DateTime.Now; sub.id_edit = st.id_create = id_user; sub.id_masteruser = id_masteruser; CreatSubTree(sub, list, spflList, fiallist, id_user, id_masteruser); var model = spflList.FirstOrDefault(sl => sl.mc == sub.mc); if (model != null && model.id_father == sub.id_father) { fl.bz = "同一级中已有同名分类"; fiallist.Add(fl); } else { spflList.Add(sub); } } }); } } }
public ActionResult Edit(Tb_Spfl model) { var oldParam = new Hashtable(); BaseResult br = new BaseResult(); Hashtable param = base.GetParameters(); param.Add("id_masteruser", id_user_master); Hashtable param_model = null; ParamVessel pv = new ParamVessel(); pv.Add("mc", string.Empty, HandleType.ReturnMsg); pv.Add("bm", string.Empty, HandleType.DefaultValue); pv.Add("id_masteruser", string.Empty, HandleType.ReturnMsg); pv.Add("category_id", string.Empty, HandleType.ReturnMsg); try { param_model = param.Trim(pv); oldParam = (Hashtable)param_model.Clone(); br = BusinessFactory.Tb_Spfl.Update(new Tb_Spfl() { id_masteruser = param_model["id_masteruser"].ToString(), id = param_model["category_id"].ToString(), bm = param_model["bm"].ToString(), mc = param_model["mc"].ToString(), id_edit = id_user }); } catch (Exception ex) { br.Message.Add(ex.Message); } WriteDBLog("修改商品分类", oldParam, br); return(JsonString(br, 1)); }
/// <summary> /// 修改节点Path方法 /// </summary> /// <param name="oldSubList">原子节点列表</param> /// <param name="nodeModel">节点</param> /// <param name="oldNodeModelPath">节点原Path</param> private void ChangeNodePath(IList <Tb_Spfl> oldSubList, Tb_Spfl nodeModel, string oldNodeModelPath) { var nd = DateTime.Now; if (oldSubList.Any()) { oldSubList.ToList().ForEach(n => { if (n.id != nodeModel.id) { #region n.path = n.path.Replace(oldNodeModelPath, nodeModel.path); Hashtable subHt = new Hashtable(); subHt.Add("id", n.id); subHt.Add("id_masteruser", n.id_masteruser); subHt.Add("new_path", n.path); subHt.Add("new_id_edit", n.id_edit); subHt.Add("new_rq_edit", nd); DAL.UpdatePart(typeof(Tb_Spfl), subHt); #endregion } }); } }
public override BaseResult Delete(Hashtable param) { BaseResult br = new BaseResult(); long id = Convert.ToInt64(param["id"]); long backupId = Convert.ToInt64(param["backupId"]); long id_gys = Convert.ToInt64(param["id_gys"]); long id_user = Convert.ToInt64(param["id_user"]); param.Clear(); param.Add("fatherId", id); if (DAL.QueryList <Tb_Spfl>(goodsType, param).Count > 0) { br.Success = false; br.Message.Add("该商品类别下有子类不可删除,请先删除子类"); br.Level = ErrorLevel.Warning; return(br); } param.Clear(); param.Add("id_spfl", id); if (DAL.GetCount(typeof(Tb_Gys_Sp), param) > 0) { if (backupId == -1) { br.Success = false; br.Message.Add("该类别下已有商品,请重新删除,选择商品转移的类别!"); br.Level = ErrorLevel.Warning; return(br); } param.Clear(); param.Add("id", backupId); var node = DAL.GetItem <Tb_Spfl>(typeof(Tb_Spfl), param); if (node == null) { br.Success = false; br.Message.Add("转移商品的类别不存在"); br.Level = ErrorLevel.Warning; return(br); } param.Clear(); param.Add("fatherId", backupId); if (DAL.QueryList <Tb_Spfl>(goodsType, param).Count > 0) { br.Success = false; br.Message.Add("转移商品的类别下还有子类,商品不能转移到该类别下,请重新选择"); br.Level = ErrorLevel.Warning; return(br); } param.Clear(); param.Add("id_spfl", id); param.Add("id_gys", id_gys); param.Add("new_id_spfl", backupId); param.Add("new_id_edit", id_user); param.Add("new_rq_edit", DateTime.Now); DAL.UpdatePart(typeof(Tb_Gys_Sp), param); } param.Clear(); param.Add("id", id); Tb_Spfl model = DAL.GetItem <Tb_Spfl>(goodsType, param); DAL.Delete(goodsType, param); br.Message.Add("删除商品类别成功."); if (model != null) { br.Message.Clear(); //br.Message.Add(String.Format("删除商品类别成功。编号{0},名称:{1}", model.bm, model.name)); } br.Success = true; return(br); }