예제 #1
0
        public ActionResult Save()
        {
            try
            {
                string name = Request["name"].ToString();
                string note = Request["note"].ToString();
                string upid = Request["upid"].ToString();
                string menu = "";
                if (Request["menu"] != null)
                {
                    menu = Request["menu"].ToString();
                }
                string role_id = upid;
                if (role_id == "")//如果是新增加
                {
                    //最后一个role_id
                    var lastCode   = oc.BllSession.ISYS_ROLEService.Entities.OrderByDescending(m => m.ROLE_ID).Select(m => new { m.ROLE_ID }).FirstOrDefault();
                    int lastCodeId = 1;
                    if (lastCode != null)
                    {
                        lastCodeId = int.Parse(lastCode.ROLE_ID) + 1;
                    }
                    string codeNum = lastCodeId < 10 ? "00" + lastCodeId.ToString() : lastCodeId.ToString();
                    codeNum = codeNum.Length == 2 ? "0" + codeNum : codeNum;
                    role_id = codeNum;
                }
                List <SYS_ROLE_MENU_MAP> listRoleMenu = new List <SYS_ROLE_MENU_MAP>();          //菜单
                List <string>            listMenuId   = new List <string>();                     //菜单ID
                //List<string> listChildMenuId = new List<string>();//子菜单ID
                List <SYS_ROLE_MENUOPT_MAP> listRoleMenuOpt = new List <SYS_ROLE_MENUOPT_MAP>(); //操作
                //List<string> listMenuOptId = new List<string>();//操作ID

                if (menu != "")
                {
                    string[] menuid = menu.Split(',');
                    for (int i = 0; i < menuid.Length; i++)
                    {
                        listMenuId.Add(menuid[i]);
                        listRoleMenuOpt.Add(new SYS_ROLE_MENUOPT_MAP()
                        {
                            ROLE_MENUOPT_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + menuid[i] + i.ToString(),
                            ROLE_ID         = role_id,
                            MENUOPT_ID      = menuid[i]
                        });
                        if (menuid[i].IndexOf('-') > -1)                //菜单ID不为父菜单时,
                        {
                            string pMenuId = menuid[i].Substring(0, 2); //父菜单ID
                            if (listMenuId.IndexOf(pMenuId) == -1)      //如果没有父菜单ID
                            {
                                listMenuId.Add(pMenuId);                //加入父菜单ID
                                listRoleMenu.Add(new SYS_ROLE_MENU_MAP()
                                {
                                    ROLE_MENU_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + pMenuId + i.ToString(),
                                    ROLE_ID      = role_id,
                                    MENU_ID      = pMenuId
                                });
                            }
                            pMenuId = menuid[i].Substring(0, 4);   //父菜单ID
                            if (listMenuId.IndexOf(pMenuId) == -1) //如果没有父菜单ID
                            {
                                listMenuId.Add(pMenuId);           //加入父菜单ID
                                listRoleMenu.Add(new SYS_ROLE_MENU_MAP()
                                {
                                    ROLE_MENU_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + pMenuId + i.ToString(),
                                    ROLE_ID      = role_id,
                                    MENU_ID      = pMenuId
                                });
                            }
                            if (menuid[i].Length > 8)
                            {
                                pMenuId = menuid[i].Substring(0, 6);   //父菜单ID
                                if (listMenuId.IndexOf(pMenuId) == -1) //如果没有父菜单ID
                                {
                                    listMenuId.Add(pMenuId);           //加入父菜单ID
                                    listRoleMenu.Add(new SYS_ROLE_MENU_MAP()
                                    {
                                        ROLE_MENU_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + pMenuId + i.ToString(),
                                        ROLE_ID      = role_id,
                                        MENU_ID      = pMenuId
                                    });
                                }
                                pMenuId = menuid[i].Substring(0, 8);   //父菜单ID
                                if (listMenuId.IndexOf(pMenuId) == -1) //如果没有父菜单ID
                                {
                                    listMenuId.Add(pMenuId);           //加入父菜单ID
                                    listRoleMenu.Add(new SYS_ROLE_MENU_MAP()
                                    {
                                        ROLE_MENU_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + pMenuId + i.ToString(),
                                        ROLE_ID      = role_id,
                                        MENU_ID      = pMenuId
                                    });
                                }
                            }
                        }
                    }
                }

                /*
                 * if (menu != "")
                 * {
                 *  string[] menuid = menu.Split(',');
                 *  for (int i = 0; i < menuid.Length; i++)
                 *  {
                 *      listMenuId.Add(menuid[i]);
                 *      if (Constant.GISOneMenu.Split(',').Contains(menuid[i]))
                 *      {
                 *          continue;
                 *      }
                 *      if (menuid[i].Length > 4)//菜单ID不为父菜单时,
                 *      {
                 *          string pMenuId = menuid[i].Substring(0, 2);//父菜单ID
                 *          if (listMenuId.IndexOf(pMenuId) == -1)//如果没有父菜单ID
                 *          {
                 *              listMenuId.Add(pMenuId);//加入父菜单ID
                 *          }
                 *          pMenuId = menuid[i].Substring(0, 4);//父菜单ID
                 *          if (listMenuId.IndexOf(pMenuId) == -1)//如果没有父菜单ID
                 *          {
                 *              listMenuId.Add(pMenuId);//加入父菜单ID
                 *          }
                 *      }
                 *      //string look = Request["look" + menuid[i]].ToString();
                 *      //listMenuOptId.Add(look);//操作菜单
                 *  }
                 *  //List<string> listTwoMenuId = menuid.ToList();
                 *  //    //if (listTwoMenuId.IndexOf("2") > -1)
                 *  //    //{
                 *  //    //    listTwoMenuId.Remove("2");
                 *  //    //}
                 *  //listChildMenuId = oc.BllSession.ISYS_MENUService.Entities.Where(m => listTwoMenuId.Contains(m.PARENT_ID)).Select(m => m.MENU_ID).ToList();
                 *  //listMenuId.AddRange(listChildMenuId);//加入子菜单ID
                 * }
                 *
                 * int x = 1;
                 * foreach (string item in listMenuId)
                 * {
                 *  listRoleMenu.Add(
                 *      new SYS_ROLE_MENU_MAP()
                 *      {
                 *          ROLE_MENU_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + item + x.ToString(),
                 *          MENU_ID = item,
                 *          ROLE_ID = role_id
                 *      }
                 *      );
                 *  x++;
                 * }
                 * foreach (string item in listMenuOptId)
                 * {
                 *  string menuid = item.Replace("look", "").Replace("opt", "");
                 *  //if (menuid != "2")
                 *  //{
                 *  List<string> listThereMenuId = listChildMenuId.Where(m => m.StartsWith(menuid)).ToList();
                 *  foreach (string thereMenuId in listThereMenuId)
                 *  {
                 *      listRoleMenuOpt.Add(
                 *          new SYS_ROLE_MENUOPT_MAP()
                 *          {
                 *              ROLE_MENUOPT_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + thereMenuId + "1",
                 *              MENUOPT_ID = thereMenuId + "-002",
                 *              ROLE_ID = role_id
                 *          }
                 *          );
                 *      int m = 5;
                 *      //扩展导入导出时再修改
                 *      /*
                 *      if (thereMenuId == "10201")//如果是问题库,加导出
                 *      {
                 *          listRoleMenuOpt.Add(
                 *              new SYS_ROLE_MENUOPT_MAP()
                 *              {
                 *                  ROLE_MENUOPT_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + thereMenuId + "6",
                 *                  MENUOPT_ID = thereMenuId + "-006",
                 *                  ROLE_ID = role_id
                 *              }
                 *              );
                 *          m = 6;//加导入
                 *      }
                 *
                 *      if (item.IndexOf("opt") > -1)//如果是操作权限
                 *      {
                 *          for (int i = 2; i < m; i++)
                 *          {
                 *              listRoleMenuOpt.Add(
                 *                  new SYS_ROLE_MENUOPT_MAP()
                 *                  {
                 *                      ROLE_MENUOPT_ID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + thereMenuId + i.ToString(),
                 *                      MENUOPT_ID = thereMenuId + "-00" + (i==2?1:i),
                 *                      ROLE_ID = role_id
                 *                  }
                 *                  );
                 *          }
                 *      }
                 *  }
                 *  //}
                 * }*/
                SYS_ROLE u = new SYS_ROLE()
                {
                    ROLE_ID              = role_id,
                    NAME                 = name,
                    NOTE                 = note,
                    SYS_ROLE_MENU_MAP    = listRoleMenu,
                    SYS_ROLE_MENUOPT_MAP = listRoleMenuOpt
                };
                if (upid == "")
                {
                    return(PackagingAjaxmsg(Model_SYS_ROLE.Add(u)));
                }
                else
                {
                    u.ROLE_ID = upid;
                    return(PackagingAjaxmsg(Model_SYS_ROLE.Edit(u)));
                }
            }
            catch (Exception)
            {
                return(PackagingAjaxmsg(new Message().NewAmm));
            }
        }
예제 #2
0
 public AjaxMsgModel Del(VIEW_SYS_ROLE data)
 {
     return(Model_SYS_ROLE.Del(data.ROLE_ID));
 }