Esempio n. 1
0
        public ActionResult UserRole(long? userId, UserViewModel model)
        {
            model = model ?? new UserViewModel();
            model.ShopRoleSearch = model.ShopRoleSearch ?? new UserRoleShopInUserCriteria();

            //string shop = Request["ShopRoleSearch.ShopCode"];
            var userSearch = new SearchUserCriteria()
            {
                UserId = userId.HasValue ? userId.Value : -1
            };

            string shopCode = string.Empty;
            //如果当前用户是公司用户,ShopCode=当前店,否则=选择的店
            if(App.Framework.Security.User.Current.UserType == CSC.Business.UserTypes.NS.ToString()){
                shopCode = App.Framework.Security.User.Current.ShopCode;
            }
            else{
                //第一次进入此页面时,model.ShopRoleSearch.ShopCode == null。默认选择第DDL里面的第一个shop
                /*if (model.ShopRoleSearch.ShopCode == null)
                {
                    BusinessList<Shop> shopList = BusinessPortal.Search<Shop>(new SearchShopByUserIDInUserCriteria() { UserId = userId.HasValue ? userId.Value : -1 });
                    if (shopList != null && shopList.Count > 0)
                    {
                        shopCode = shopList[0].Code;
                    }
                }
                else {*/
                    shopCode = model.ShopRoleSearch.ShopCode;
                //}
            }
            var search = new UserRoleShopInUserCriteria()
            {
                UserId = userId.Value,
                ShopCode = shopCode
            };
            var userRoleShoplist = string.IsNullOrEmpty(search.ShopCode)
                                       ? new BusinessList<UserRole>()
                                       : BusinessPortal.Search<UserRole>(search);

            UserViewModel viewModel = new UserViewModel()
            {
                UserModel = BusinessPortal.Load<UserModel>(userSearch),
                //只加载登录用户权限范围店铺
                ShopForDropDownList = BusinessPortal.Search<Shop>(new SearchShopByUserIDInUserCriteria() { UserId = userId.HasValue ? userId.Value : -1 }),
                UserRoleShopList = userRoleShoplist
            };
            return View(viewModel);
        }
Esempio n. 2
0
        public ActionResult UserRole(UserViewModel vm)
        {
            int userId = Request["hUserId"].ParseInt();

            IDbTransaction tran = BusinessPortal.BeginTransaction();
            try
            {
                var roleList = Request["chkUserRoleActive"].ToListByRequest(v => Convert.ToInt32(v));

                var shopCode = string.Empty;
                //如果当前用户为公司用户,
                BusinessResult result;
                if (App.Framework.Security.User.Current.UserType == UserTypes.NS.ToString())
                {
                    shopCode = App.Framework.Security.User.Current.ShopCode;
                    //先清空当前店对应的sy_user_role_shop
                    result = BusinessPortal.Execute(new DeleteUserRoleShopByShopCriteria() { UserID = userId, ShopCode = shopCode }, tran);
                }
                else {
                    //获取DDL选择的数据
                    if (string.IsNullOrEmpty(Request["hShopCode"]))
                    {
                        BusinessList<Shop> shopList = BusinessPortal.Search<Shop>(new SearchShopByUserIDInUserCriteria() { UserId = userId });
                        if (shopList != null && shopList.Count > 0)
                        {
                            shopCode = shopList[0].Code;
                        }

                    }
                    else {
                        shopCode = Request["hShopCode"].ToString();
                    }
                    //先清空当前店对应的sy_user_role_shop
                    result = BusinessPortal.Execute(new DeleteUserRoleShopByShopCriteria() { UserID = userId, ShopCode = shopCode }, tran);
                }

                BusinessList<UserRole> userRoleList = BusinessPortal.Search<UserRole>(new SearchUserRoleByUserCriteria() { UserID = userId });
                bool existFlag;
                if (roleList != null)
                {
                    foreach (var roleId in roleList)
                    {
                        existFlag = false;
                        if (userRoleList != null)
                        {
                            foreach (UserRole role in userRoleList)
                            {
                                if (roleId == role.RoleID)
                                {
                                    existFlag = true;
                                    break;
                                }
                            }
                        }
                        //页面新增的ROLE不在数据库中,则新增
                        if (!existFlag)
                        {
                            //新增user_role
                            result = BusinessPortal.Execute(new AddUserRoleCriteria() { RoleID = roleId, UserID = userId }, tran);
                        }
                    }
                }

                if (roleList != null)
                {
                    foreach (var roleId in roleList)
                    {
                        //新增user_role_shop
                        result = BusinessPortal.Execute(new AddUserRoleShopCriteria() { ShopCode = shopCode, RoleID = roleId, UserID = userId }, tran);
                    }
                }

                //清除多余的ROLE
                result = BusinessPortal.Execute(new DeleteUserRoleNotInUserCriteria() { UserID = userId }, tran);

                //清空选择用户的权限
                App.Framework.Web.Permissions.UserIdentityCollection.Instance.ClearUserIdentity(userId.ToString());

                tran.Commit();

                if (result.ResultType == 0)
                    this.ShowMessage(Resources.BusinessResultMessage.INF_SAVE_SUCCEED, isSucessed: true);
                else
                    this.ShowMessage(Resources.BusinessResultMessage.INF_SAVE_FAILED, isSucessed: false);
                return UserRole(userId, vm);
            }
            catch (Exception ex)
            {
                tran.Rollback();
                this.ShowMessage(ex.Message, isSucessed: false);
                return UserRole(userId, vm);
            }
        }
Esempio n. 3
0
 public ActionResult Add(UserViewModel vm)
 {
     //return DoEdit(vm, () => View("~/Views/User/Edit.aspx"));
     SessionCache.Instance.Remove("userSearch");
     return DoEdit(vm);
 }
Esempio n. 4
0
        public ActionResult List(UserViewModel model)
        {
            model = model ?? new UserViewModel();
            model.UserSearch = model.UserSearch ?? new SearchUserCriteria();
            var search = new SearchUserCriteria()
            {
                UserId = model.UserSearch.UserId,
                USER_CODE = model.UserSearch.USER_CODE,
                RoleID = model.UserSearch.RoleID,
                UserName = model.UserSearch.UserName,
                //SuspendFlag = model.UserSearch.Suspend ? "Y" : "N"
                Suspend = model.UserSearch.Suspend
            };

            List<Comparison<UserModel>> compList = new List<Comparison<UserModel>>();
            compList.Add((x, y) => x.UserCode.CompareTo(y.UserCode));
            //commented by jason in 20121219 for TSYF02010#06.doc
            //compList.Add((x, y) => x.UserName.CompareTo(y.UserName));
            //end commented by jason in 20121219 for TSYF02010#06.doc
            compList.Add((x, y) => x.UserType.CompareTo(y.UserType));
            compList.Add((x, y) => x.CreationDate.CompareTo(y.CreationDate));
            compList.Add((x, y) => x.ShopCount.CompareTo(y.ShopCount));
            compList.Add((x, y) => x.SystemScope.CompareTo(y.SystemScope));
            //commented by jason in 20121219 for TSYF02010#06.doc
            //compList.Add((x, y) => x.SuspendFlag.CompareTo(y.SuspendFlag));
            //compList.Add((x, y) => (x.SuspendDate.HasValue ? x.SuspendDate.Value.Format() : "").CompareTo(y.SuspendDate.HasValue ? y.SuspendDate.Value.Format() : ""));
            //compList.Add((x, y) => x.FrozenFlag.CompareTo(y.FrozenFlag));
            //compList.Add((x, y) => (x.FrozenDate.HasValue ? x.FrozenDate.Value.Format() : "").CompareTo(y.FrozenDate.HasValue ? y.FrozenDate.Value.Format() : ""));
            //end commented by jason in 20121219 for TSYF02010#06.doc

            //model.UserList = BusinessPortal.Search<UserModel>(search);

            model.UserList = SessionCache.Instance.GetOrSetCache<BusinessList<UserModel>>("userSearch", () => BusinessPortal.Search<UserModel>(search), !this.IsSortingOrPageing());

            PagerHelper.SetSortParamsToViewData(ViewData, new PageParams() { SortField = 0, sortDirection = SortDirectionEnum.Asc });

            return ViewList(model, (pageparams) =>
            {
                model.RoleForDropDownList = BusinessPortal.Search<Role>(new SearchRoleForDDLCriteria());
                model.UserForDropDownList = BusinessPortal.Search<UserModel>(new SearchUserForDDLCriteria());
                int recordCount;
                model.UserList = model.UserList.Page(pageparams, out recordCount, compList);
                return recordCount;
            });
        }
Esempio n. 5
0
 public ActionResult Edit(UserViewModel vm)
 {
     return DoEdit(vm);
 }
Esempio n. 6
0
        public ActionResult DoEdit(UserViewModel vm)
        {
            bool isEdit = (vm.UserModel.UserId > 0);
            if (vm.UserModel == null) {
                if (isEdit)
                {
                    return Edit(vm.UserModel.UserId);
                }
                else
                {
                    return Add(vm.UserModel.UserId);
                }
            }
            IDbTransaction tran = BusinessPortal.BeginTransaction();

            try
            {
                //保存用户基本信息
                BusinessResult result = BusinessPortal.Save(vm.UserModel, tran);

                //新增或者编辑,保存之后的USERID
                long userId = vm.UserModel.UserId;

                var shopList = Request["chkUserShopActive"].ToListByRequest(v => v.ToString());
                var shopListAnti = Request["chkUserShopActive-Anti"].ToListByRequest(v => v.ToString());

                //保存成功之后,再保存SHOP,ROLE
                if (result.ResultType == 0)//新增
                {
                    if (!isEdit)
                    {
                        if (shopList != null)
                        {
                            foreach (var shopCode in shopList)
                            {
                                //新增user_shop
                                result = BusinessPortal.Execute(new AddUserShopCriteria() { ShopCode = shopCode, UserID = userId }, tran);
                            }
                        }
                    }
                    else //编辑
                    {
                        //查找已经存在的店
                        BusinessList<Shop> exsitShopList = BusinessPortal.Search<Shop>(new SearchShopByUserID() { UserID = userId });

                        bool existFlag;
                        //选择的店列表
                        if (shopList != null)
                        {
                            foreach (var shopCode in shopList)
                            {
                                existFlag = false;
                                foreach (Shop exsitShop in exsitShopList)
                                {
                                    if (shopCode == exsitShop.Code)
                                    {
                                        existFlag = true;
                                        break;
                                    }
                                }
                                //如果数据库不存在此店,则新增
                                if (!existFlag)
                                {
                                    //新增user_shop
                                    result = BusinessPortal.Execute(new AddUserShopCriteria() { ShopCode = shopCode, UserID = userId }, tran);
                                }
                            }
                        }
                        //未被选择的店列表
                        if (shopListAnti != null)
                        {
                            foreach (var shopCode in shopListAnti)
                            {
                                existFlag = false;
                                foreach (Shop exsitShop in exsitShopList)
                                {
                                    if (shopCode == exsitShop.Code)
                                    {
                                        existFlag = true;
                                        break;
                                    }
                                }
                                //如果数据库不存在此店,则新增
                                if (existFlag)
                                {
                                    //清空当前店对应的sy_user_role_shop
                                    result = BusinessPortal.Execute(new DeleteUserRoleShopByShopCriteria() { UserID = userId, ShopCode = shopCode }, tran);
                                    result = BusinessPortal.Execute(new DeleteUserShopByShopCriteria() { UserID = userId, ShopCode = shopCode }, tran);
                                    result = BusinessPortal.Execute(new DeleteUserRoleNotInUserCriteria() { UserID = userId }, tran);
                                }
                            }
                        }
                    }
                    //清空选择用户的权限
                    App.Framework.Web.Permissions.UserIdentityCollection.Instance.ClearUserIdentity(userId.ToString());
                }

                if (result.ResultType != 0)
                {
                    tran.Rollback();
                    this.ShowMessage(result.GetMessage(), isSucessed: false);

                    if (isEdit)
                    {
                        return Edit(vm.UserModel.UserId);
                    }
                    else
                    {
                        return Add(vm.UserModel.UserId);
                    }
                }

                //added by jason in 20120308 for SYSTEM05#13.doc NO.1
                GetUserShopCountCriteria GetUserShopCount = new GetUserShopCountCriteria()
                {
                    UserID = userId
                };
                BusinessPortal.Execute(GetUserShopCount, tran);
                if (GetUserShopCount.UserShopCount <= 0)
                {
                    tran.Rollback();
                    this.ShowMessage(CSC.Resources.GlobalText.MustSelectShop, isSucessed: false);
                }
                else
                {
                //end added by jason in 20120308 for SYSTEM05#13.doc NO.1
                    tran.Commit();

                    if (result.ResultType == 0)
                    {
                        this.ShowMessage(Resources.BusinessResultMessage.INF_SAVE_SUCCEED, isSucessed: true);
                    }
                    else
                    {
                        this.ShowMessage(result.GetMessage(), isSucessed: false);
                    }
                }
                //return Edit(vm.UserModel.UserId);
                if (isEdit)
                {
                    return Edit(vm.UserModel.UserId);
                }
                else
                {
                    return Add(vm.UserModel.UserId);
                }
            }
            catch (Exception ex)
            {
                tran.Rollback();
                this.ShowMessage(ex.Message, isSucessed: false);
                //return Edit(vm.UserModel.UserId);
                if (isEdit)
                {
                    return Edit(vm.UserModel.UserId);
                }
                else
                {
                    return Add(vm.UserModel.UserId);
                }
            }
        }
Esempio n. 7
0
        public ActionResult DoEdit(long? userId, Func<object, ActionResult> View)
        {
            var userSearch = new SearchUserCriteria()
            {
                UserId = userId.HasValue ? userId.Value : -1
            };

            var userShopCriteria = new UserShopInUserCriteria()
            {
                UserId = userId.HasValue ? userId.Value : -1
            };

            UserViewModel viewModel = new UserViewModel()
            {
                UserModel = BusinessPortal.Load<UserModel>(userSearch),
                UserShopList = BusinessPortal.Search<UserShop>(userShopCriteria)
            };
            return View(viewModel);
        }