示例#1
0
        /// <summary>
        /// 保存角色
        /// </summary>
        public string SaveRoleData()
        {
            var       roleService  = new RoleService(CurrentUserInfo);
            RoleModel obj          = new RoleModel();
            string    content      = string.Empty;
            string    error        = "";
            var       responseData = new ResponseData();

            string key     = string.Empty;
            string role_id = string.Empty;

            if (Request("role") != null && Request("role") != string.Empty)
            {
                key = Request("role").ToString().Trim();
            }
            if (Request("role_id") != null && Request("role_id") != string.Empty)
            {
                role_id = Request("role_id").ToString().Trim();
            }

            obj = key.DeserializeJSONTo <RoleModel>();

            //obj.Def_App_Id = "";
            //if (Request["app_sys_id"] != null && Request["app_sys_id"] != string.Empty)
            //{
            //    obj.Def_App_Id = Request["app_sys_id"].ToString().Trim();
            //}

            if (role_id.Trim().Length == 0 || role_id == "null" || role_id == "undefined")
            {
                obj.Role_Id = Utils.NewGuid();
            }
            else
            {
                obj.Role_Id = role_id;
            }


            if (obj.type_id == null || obj.type_id.Trim().Length == 0)
            {
                //responseData.success = false;
                //responseData.msg = "所属组织层级不能为空";
                //return responseData.ToJSON();
                obj.type_id   = "";
                obj.org_level = 99;
            }
            else
            {
                T_TypeBLL    typeBll = new T_TypeBLL(CurrentUserInfo);
                T_TypeEntity en      = typeBll.GetByID(obj.type_id);
                if (en != null)
                {
                    obj.org_level = (int)en.type_Level;
                }
            }

            if (obj.Def_App_Id == null || obj.Def_App_Id.Trim().Length == 0)
            {
                responseData.success = false;
                responseData.msg     = "应用系统不能为空";
                return(responseData.ToJSON());
            }

            if (obj.Role_Name == null || obj.Role_Name.Trim().Length == 0)
            {
                responseData.success = false;
                responseData.msg     = "角色名称不能为空";
                return(responseData.ToJSON());
            }

            //根据role_id 获取角色信息,系统保留角色的编码不允许修改,主要是admin、administrator等默认角色
            RoleModel roleOld = new AppSysService(CurrentUserInfo).GetRoleById(CurrentUserInfo, role_id);

            if (roleOld != null && roleOld.Is_Sys == 1)
            {
                //throw (new System.Exception("不能删除系统保留的角色"));
                obj.Role_Code = roleOld.Role_Code;//还用原来的,不用role_name
                obj.Is_Sys    = 1;
            }
            //if (obj.Is_Sys == null)
            //{
            //    responseData.success = false;
            //    responseData.msg = "是否系统保留不能为空";
            //    return responseData.ToJSON();
            //}
            if (obj.Role_Code == null || obj.Role_Code.Trim().Length == 0)
            {
                //responseData.success = false;
                //responseData.msg = "角色编码不能为空";
                //return responseData.ToJSON();
                obj.Role_Code = obj.Role_Name;
            }


            if (obj.RoleMenuInfoList != null)
            {
                foreach (var tmpRoleMenuObj in obj.RoleMenuInfoList)
                {
                    tmpRoleMenuObj.Role_Id = obj.Role_Id;
                }
            }

            obj.Create_Time    = Utils.GetNow();
            obj.Create_User_Id = CurrentUserInfo.CurrentUser.User_Id;
            obj.Modify_Time    = Utils.GetNow();
            obj.Modify_User_id = CurrentUserInfo.CurrentUser.User_Id;
            string strError = "";

            //
            roleService.SetRoleInfo(obj, out strError);
            //
            var menuList = new JIT.CPOS.BS.DataAccess.AppSysService(CurrentUserInfo).GetRoleMenus(CurrentUserInfo.ClientID, obj.Role_Id);

            if (menuList != null && menuList.Count > 0)
            {
                new RedisRoleBLL().SetRole(CurrentUserInfo.ClientID, obj.Role_Id, menuList);
            }
            //roleService.SetRoleInfo(obj, out strError);

            if (strError != "" && strError != "成功")
            {
                responseData.success = false;
                responseData.msg     = strError;
                return(responseData.ToJSON());
            }

            responseData.success = true;
            responseData.msg     = error;

            content = responseData.ToJSON();
            return(content);
        }
示例#2
0
        /// <summary>
        /// 查询角色列表
        /// </summary>
        public string QueryRoleListData()
        {
            var responseData = new ResponseData();
            LoggingSessionInfo loggingSessionInfo = null;

            if (CurrentUserInfo != null)
            {
                loggingSessionInfo = CurrentUserInfo;
            }
            else
            {
                if (string.IsNullOrEmpty(Request("CustomerID")))
                {
                    responseData.success = false;
                    responseData.msg     = "缺少商户标识";
                    return(responseData.ToString());
                }
                else if (string.IsNullOrEmpty(Request("CustomerUserID")))
                {
                    responseData.success = false;
                    responseData.msg     = "缺少登陆员工的标识";
                    return(responseData.ToString());
                }
                else if (string.IsNullOrEmpty(Request("CustomerUserID")))
                {
                    responseData.success = false;
                    responseData.msg     = "缺少登陆员工的标识";
                    return(responseData.ToString());
                }
                else
                {
                    loggingSessionInfo = Default.GetBSLoggingSession(Request("CustomerID"), Request("CustomerUserID"));
                }
            }

            var form = Request("form").DeserializeJSONTo <RoleQueryEntity>();

            var       appSysService = new AppSysService(loggingSessionInfo);//使用兼容模式
            RoleModel list          = new RoleModel();

            string content = string.Empty;
            string key     = string.Empty;

            if (form.app_sys_id != null && form.app_sys_id != string.Empty)
            {
                key = form.app_sys_id.Trim();
            }
            int maxRowCount = PageSize;                          //每页数量
            int limit       = Utils.GetIntVal(Request("limit")); //传过来的参数

            if (limit != 0)
            {
                maxRowCount = PageSize = limit;
            }


            int page = Utils.GetIntVal(Request("page"));//第几页面

            if (page == 0)
            {
                page = 1;
            }
            int startRowIndex = (page - 1) * PageSize + 1;//因为row_number()从1开始


            list = appSysService.GetRolesByAppSysId(key, maxRowCount, startRowIndex
                                                    , form.type_id ?? "", form.role_name ?? "", loggingSessionInfo.UserID);
            //在为用户配置门店角色关系时
            //多加一个参数,在这里选择门店,必须重新加载角色列表,因为创建用户角色门店关系时,角色必须和门店同一个type_level上
            if (!string.IsNullOrEmpty(form.unit_id))
            {
                t_unitBLL    t_unitBll = new t_unitBLL(CurrentUserInfo);
                t_unitEntity t_unitEn  = t_unitBll.GetByID(form.unit_id);

                if (t_unitEn != null)
                {
                    T_TypeBLL    T_TypeBLL = new T_TypeBLL(CurrentUserInfo);
                    T_TypeEntity t_typeEn  = T_TypeBLL.GetByID(t_unitEn.type_id);
                    list.RoleInfoList = list.RoleInfoList.Where(p => p.org_level == t_typeEn.type_Level).ToList();
                }
            }

            var jsonData = new JsonData();

            jsonData.totalCount = list.RoleInfoList.Count.ToString();
            jsonData.data       = list.RoleInfoList;

            content = string.Format("{{\"totalCount\":{1},\"TotalPage\":{2},\"topics\":{0}}}",
                                    list.RoleInfoList.ToJSON(),
                                    list.ICount,
                                    list.TotalPage);
            return(content);
        }
        public string SaveUnitStruct(string pRequest)
        {
            var rp = pRequest.DeserializeJSONTo <APIRequest <SaveUnitStructRP> >();
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;

            if (string.IsNullOrEmpty(rp.Parameters.Unit_Name))
            {
                throw new APIException("缺少参数【Unit_Name】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }
            if (string.IsNullOrEmpty(rp.Parameters.Type_ID))
            {
                throw new APIException("缺少参数【Type_ID】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }
            //if (string.IsNullOrEmpty(rp.Parameters.parentUnit_ID))
            //{
            //    throw new APIException("缺少参数【parentUnit_ID】或参数值为空") { ErrorCode = 135 };
            //}
            //t_unitBLL t_unitBLL = new t_unitBLL(loggingSessionInfo);
            //t_unitEntity en = new t_unitEntity();
            //en.type_id = rp.Parameters.Type_ID;
            //en.unit_name = rp.Parameters.Unit_Name;
            //en.unit_code = rp.Parameters.Unit_Name;
            //en.unit_name_en = rp.Parameters.Unit_Name;
            //en.unit_name_short = rp.Parameters.Unit_Name;
            //en.Status = "1";//状态为有效
            //en.status_desc = "1";
            //en.customer_id =loggingSessionInfo.ClientName ;

            //en.modify_time = DateTime.Now.ToString();
            //en.modify_user_id = loggingSessionInfo.CurrentUser.User_Name;
            //en.unit_flag = "U";
            //en.CUSTOMER_LEVEL = 1;
            var unitService = new UnitService(loggingSessionInfo);

            UnitInfo en = new UnitInfo();

            if (string.IsNullOrEmpty(rp.Parameters.parentUnit_ID))
            {
                en.Parent_Unit_Id = "-99";
            }
            else
            {
                en.Parent_Unit_Id = rp.Parameters.parentUnit_ID;
            }
            en.TypeId    = rp.Parameters.Type_ID;
            en.Code      = rp.Parameters.Unit_Name;
            en.Name      = rp.Parameters.Unit_Name;
            en.ShortName = rp.Parameters.Unit_Name;
            //  en.unit_ = rp.Parameters.Unit_Name;
            en.Status      = "1";//状态为有效
            en.Status_Desc = "1";
            en.customer_id = loggingSessionInfo.ClientName;

            en.Modify_Time    = DateTime.Now.ToString();
            en.Modify_User_Id = loggingSessionInfo.CurrentUser.User_Name;
            en.Flag           = "U";
            en.CustomerLevel  = 1;
            if (string.IsNullOrEmpty(rp.Parameters.Unit_ID))//创建
            {
                en.Create_Time    = DateTime.Now.ToString();
                en.Create_User_Id = loggingSessionInfo.CurrentUser.User_Name;
                en.Id             = Utils.NewGuid();
                // t_unitBLL.Create(en);
            }
            else
            {
                en.Id = rp.Parameters.Unit_ID;//不是用unit_id,而是用Id
            }

            string errorMsg = unitService.SetUnitInfo(loggingSessionInfo, en);

            if (!string.IsNullOrEmpty(errorMsg) && errorMsg != "成功")
            {
                if (errorMsg.IndexOf("该门店编码已经存在") != -1)
                {
                    errorMsg = "组织结构名称已存在,请不要填写相同的组织结构名称";
                }
                throw new APIException(errorMsg)
                      {
                          ErrorCode = 135
                      };
            }
            ////创建门店上下级关系
            //if (string.IsNullOrEmpty(rp.Parameters.Unit_ID))//新建时才需要创建上下级关系
            //{
            //}
            T_TypeBLL t_TypeBLL       = new T_TypeBLL(loggingSessionInfo);
            var       UnitStructTable = t_TypeBLL.GetUnitStructByID(loggingSessionInfo.ClientID, en.Id); //用en.id兼容创建和修改
            var       rd = new GetUnitStructByIDRD();                                                    //返回值

            if (UnitStructTable != null && UnitStructTable.Tables.Count != 0 && UnitStructTable.Tables[0].Rows.Count != 0)
            {
                rd.unitStructInfo = DataTableToObject.ConvertToObject <UnitStructInfo>(UnitStructTable.Tables[0].Rows[0]);//直接根据所需要的字段反序列化
            }



            var rsp = new SuccessResponse <IAPIResponseData>(rd);

            return(rsp.ToJSON());
        }