| | |
| | | public string HTranslationText_English { get; set; } |
| | | public string HTranslationText_Spain { get; set; } |
| | | public List<MenuLoad> childMenus { get; set; } |
| | | public DateTime HMakeDate { get; set; } |
| | | public string HMaker { get; set; } |
| | | } |
| | | |
| | | [Route("Web/MenuList")] |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 构建路由嵌套对象 |
| | | [Route("Web/MenuList_1")] |
| | | [HttpGet] |
| | | public object MenuList_1(string HMakeName, string HType) |
| | | { |
| | | try |
| | | { |
| | | string filePath = HttpContext.Current.Server.MapPath($"~/RouterDisplay/DisplayConfig.json"); |
| | | string directory = Path.GetDirectoryName(filePath); |
| | | if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory)) |
| | | { |
| | | Directory.CreateDirectory(directory); |
| | | } |
| | | DateTime lastWriteTime = File.GetLastWriteTime(filePath); |
| | | lastWriteTime = new DateTime(lastWriteTime.Year, lastWriteTime.Month, lastWriteTime.Day, lastWriteTime.Hour, 0, 0); |
| | | DataSet ds = oCN.RunProcReturn($"select top 1 HMakeDate from Gy_Menu_1_build ORDER BY HMakeDate desc ", "Gy_Menu_1_build"); |
| | | |
| | | DateTime dbTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["HMakeDate"]); |
| | | dbTime = new DateTime(dbTime.Year, dbTime.Month, dbTime.Day, dbTime.Hour, 0, 0); |
| | | |
| | | if (dbTime> lastWriteTime) |
| | | { |
| | | List<MenuLoad> mu = new List<MenuLoad>(); //以父子级结构存放菜单清单信息 |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //数据库操作工具 |
| | | string sql = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain from Gy_MenuDefineSet where HMakeName = '" + HMakeName + "' and HType = '" + HType + "' order by HPosition"; |
| | | ds = oCn.RunProcReturn(sql, "Gy_MenuDefineSet"); //查询当前用户的自定义菜单数据 |
| | | if (ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0) //判断当前用户是否有设置过自定义信息,若记录数为0,则没有设置过,加载所有的菜单信息 |
| | | { |
| | | string sql1 = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain from Gy_MenuDefineSet where HMakeName=" + |
| | | "(select top 1 c.GroupName from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserId " + |
| | | "left join System_UserGroup c on b.GroupId = c.GroupID where a.Czymc ='" + HMakeName + "' order by len(c.GroupName ))"; |
| | | ds = oCn.RunProcReturn(sql1, "Gy_MenuDefineSet"); //查询用户绑定的角色 是否设置菜单信息 取角色名称最短的一个 |
| | | if ((ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0)) |
| | | { |
| | | sql1 = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain from Gy_MenuDefineSet where HMakeName = 'admin' and HType = '" + HType + "' order by HPosition"; |
| | | ds = oCn.RunProcReturn(sql1, "Gy_MenuDefineSet"); //查询admin 是否设置菜单信息 |
| | | if ((ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0)) |
| | | { |
| | | sql = "Select HitemID,HNumber,HName,HPartentID,HLevel,Hurl,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain,HPicNum from Gy_Menu_1_build where HType = '" + HType + "' Order by HPosition,len(HitemID),HitemID "; |
| | | ds = oCn.RunProcReturn(sql, "Gy_Menu_1_build"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | for (int i = 0; i < ds.Tables[0].Rows.Count; i++) //将菜单的根节点保存到列表menu中 |
| | | { |
| | | if (ds.Tables[0].Rows[i]["HPartentID"].ToString() == "0" || ds.Tables[0].Rows[i]["HitemID"].ToString() == ds.Tables[0].Rows[i]["HPartentID"].ToString()) //判断是否最外层根节点 |
| | | { |
| | | MenuLoad tbj = new MenuLoad(); |
| | | tbj.HitemID = ds.Tables[0].Rows[i]["HitemID"].ToString(); |
| | | tbj.HNumber = ds.Tables[0].Rows[i]["HNumber"].ToString(); |
| | | tbj.HName = ds.Tables[0].Rows[i]["HName"].ToString(); |
| | | tbj.HPartentID = ds.Tables[0].Rows[i]["HPartentID"].ToString(); |
| | | tbj.HLevel = int.Parse(ds.Tables[0].Rows[i]["HLevel"].ToString()); |
| | | tbj.Hurl = ds.Tables[0].Rows[i]["Hurl"].ToString(); |
| | | tbj.HShowMode = ds.Tables[0].Rows[i]["HShowMode"].ToString(); |
| | | tbj.HTranslationText_English = ds.Tables[0].Rows[i]["HTranslationText_English"].ToString(); |
| | | tbj.HTranslationText_Spain = ds.Tables[0].Rows[i]["HTranslationText_Spain"].ToString(); |
| | | if (ds.Tables[0].Rows[i]["HPicNum"] != null) |
| | | { |
| | | tbj.HPicNum = ds.Tables[0].Rows[i]["HPicNum"].ToString(); |
| | | } |
| | | mu.Add(tbj); |
| | | } |
| | | } |
| | | diguiLoad(ds.Tables[0], mu); //使用递归,将需要加载的数据以父子级的结构存放在mu中 |
| | | |
| | | |
| | | objJsonResult.code = "1";//信号参数 |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "查询成功!"; |
| | | objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(mu); |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | string josncontext = File.ReadAllText(filePath); |
| | | objJsonResult.code = "2"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "查询成功!"; |
| | | objJsonResult.data = josncontext; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "查询失败!"; |
| | | objJsonResult.data = e.ToString(); |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | |
| | | public class RequestDto |
| | | { |
| | | public string content { get; set; } |
| | | } |
| | | [Route("Web/buildRouteObj")] |
| | | [HttpPost] |
| | | public object buildRouteObj([FromBody] RequestDto request) |
| | | { |
| | | string filePath = HttpContext.Current.Server.MapPath($"~/RouterDisplay/DisplayConfig.json"); |
| | | try |
| | | { |
| | | string jsonContent = request.content; |
| | | if (string.IsNullOrEmpty(jsonContent)) |
| | | { |
| | | |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "JSON 内容不能为空!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (string.IsNullOrWhiteSpace(filePath)) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "文件路径不能为空。!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | string directory = Path.GetDirectoryName(filePath); |
| | | if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory)) |
| | | { |
| | | Directory.CreateDirectory(directory); |
| | | } |
| | | string contentToWrite = jsonContent; |
| | | |
| | | File.WriteAllText(filePath, contentToWrite); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "文件保存成功,路径为"+filePath; |
| | | objJsonResult.data = null; |
| | | LogService.Write($"路径为{filePath}"); |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | |
| | | LogService.Write("Exception!" + e.ToString()); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exception!" + e.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | #region [菜单目录自定义] |
| | | |