/*********************************************************************** * Project: baifenBinfa.Net * * Web: https://baifenBinfa.com * * ProjectName: 百分兵法管理系统 * * Author: * * Email: * * CreateTime: 2020-03-03 5:04:42 * Description: 暂无 ***********************************************************************/ using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text.RegularExpressions; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.ViewModels.UI; namespace CoreCms.Net.Utility.Helper { /// /// 商品分类帮助 /// public static class GoodsHelper { #region 获取商品分类下来Dtree============================================================ /// /// 获取导航下拉上级树 /// /// [Description("获取导航下拉上级树")] public static DTree GetTree(List categories, bool isHaveTop = true) { var model = new DTree(); model.status = new dtreeStatus() { code = 200, message = "操作成功" }; var list = GetMenus(categories, 0); if (isHaveTop) { list.Insert(0, new dtreeChild() { id = "0", last = true, parentId = "0", title = "无父级", children = new List() }); } model.data = list; return model; } /// /// 迭代方法 /// /// /// /// private static List GetMenus(List oldNavs, int parentId) { List childTree = new List(); var model = oldNavs.Where(p => p.parentId == parentId).ToList(); foreach (var item in model) { var parentTree = new dtreeChild(); parentTree.id = item.id.ToString(); parentTree.title = item.name; parentTree.parentId = item.parentId.ToString(); parentTree.last = !oldNavs.Exists(p => p.parentId == item.id); parentTree.isParent = !parentTree.last; parentTree.otherData = item; parentTree.key=item.key; childTree.Add(parentTree); parentTree.children = GetMenus(oldNavs, item.id); } return childTree; } #endregion #region 递归获取下级所有序列 /// /// 递归获取下级所有序列 /// /// [Description("递归获取下级所有序列")] public static List GetChildIds(List categories, int parentId) { var ids = new List { parentId }; ids = GetChildrenIds(categories, parentId, ids); return ids; } /// /// 迭代方法 /// /// /// /// /// private static List GetChildrenIds(List oldNavs, int parentId, List ids) { var model = oldNavs.Where(p => p.parentId == parentId).ToList(); foreach (var item in model) { ids.Add(item.id); GetChildrenIds(oldNavs, item.id, ids); } return ids; } #endregion #region 获取可用库存 /// /// 获取可用库存。 /// 库存机制:商品下单 总库存不变,冻结库存加1, /// 商品发货:冻结库存减1,总库存减1, /// 商品退款&取消订单:总库存不变,冻结库存减1, /// 商品退货:总库存加1,冻结库存不变, /// 可销售库存:总库存-冻结库存 /// /// 库存 /// 静态库存 /// public static int GetStock(int stock, int freezeStock) { return stock - freezeStock; } #endregion #region arr图片提取单张,或设置一张默认 /// /// arr图片提取单张,或设置一张默认 /// /// /// public static string GetOneImage(string url) { if (string.IsNullOrEmpty(url)) { return "/static/images/common/empty.png"; } else if (url.Contains(",")) { return url.Split(",")[0]; } else { return url; } } #endregion #region 后端判断提交的商品属性值是否符合规则(判断内容,只允许中文,字母,数字,和-,/) /// /// 判断内容,只允许中文,字母,数字,和-,/ /// /// 输入字符串 /// 判断内容,只允许中文,字母,数字,和-,/ /// public static bool FilterChar(string inputValue) { return Regex.IsMatch(inputValue, "[`~!@#$^&*()=|\"{}':;',\\[\\]<>?~!@#¥……&*&;|{}。*-+]+"); } #endregion } }