x

门店用户、角色、权限设置详解

生成时间:2026年5月15日
路径:/www/wwwroot/lingshou/Application/Retail/
相关控制器:StoreRolesController、StoreJurUsersController、MerchantRolesController、MerchantJurUsersController、JurisdictionController
相关模型:JurisdictionGroupModel、JurisdictionListModel、JurisdictionUserModel、JurisdictionGroupModel


一、权限体系架构

1.1 层级关系

商户 (merchant_id)
│
├── 商户用户 (MerchantJurUsers)
│   └── 商户角色 (MerchantRoles)
│       └── 商户权限 (Jurisdiction)
│
└── 门店 (store_id)
    ├── 门店用户 (StoreJurUsers)
    │   └── 门店角色 (StoreRoles)
    │       └── 门店权限 (Jurisdiction)
    │
    └── 权限设置 (JurisdictionController)

1.2 用户类型 (user_type)

user_type 说明
2 店长
4 店员/收银员

1.3 权限类型 (type)

type 说明
1-6 基础权限范围
705, 709, 1322, 684, 693 隐藏权限(店长以下账号不可见)

二、门店角色管理 - StoreRolesController

文件: Application/Retail/Controller/StoreRolesController.class.php

2.1 功能方法列表

方法 用途 说明
index 角色管理首页 展示门店所有角色列表
getRoles 获取角色列表 AJAX分页获取角色数据
rolesAdd 添加角色页面 选择权限、设置售价限定
getAllJurList 获取权限树 获取当前用户可分配的权限树形结构
getAllJurListRow 获取权限列表 按user_type获取权限,支持多级嵌套
buildTree 构建权限树 递归构建权限树形结构(最多5级)
getAllChildIds 获取子权限ID 递归获取所有子权限ID
rolesAddAjax 提交角色 新增/编辑角色
changeStatus 启用/禁用角色 切换角色状态
rolesDel 删除角色 删除角色(需无用户关联)

2.2 角色设置项

设置项 说明 选项/值
角色名称 角色标识名称 必填,唯一
是否启用 角色启用/禁用状态 开启/关闭
售价限定 是否限制商品售价 开启/关闭
售价限定类型 当开启售价限定时 不低于售价比例 / 不得低于批发价
售价比例 当选择"不低于售价比例"时 百分比数值(0-100)
权限列表 可分配的功能权限 多级复选框树形结构

2.3 售价限定详解

设置项 说明
price_limited 0 不开启售价限定
price_limited 1 开启售价限定
discount_limited 1 不低于售价比例(需设置百分比)
discount_limited 2 不得低于批发价
discount_limited_value 0-100 售价比例值(如80表示不低于售价的80%)

示例: 设置 discount_limited=1, discount_limited_value=80 表示该角色用户开单时商品售价不能低于原售价的80%


2.4 权限树结构

权限列表为 5级树形结构

权限分类type
└── 父权限pid=0
    ├── 子权限1pid=父ID
       ├── 孙权限1
          ├── 曾孙权限1
             └── 玄孙权限1
          └── 曾孙权限2
       └── 孙权限2
    └── 子权限2

权限数据表: ls_jurisdiction_list


三、门店用户管理 - StoreJurUsersController

文件: Application/Retail/Controller/StoreJurUsersController.class.php

3.1 功能方法列表

方法 用途 说明
index 用户管理首页 展示门店所有用户列表
getUser 获取用户详情 根据ID获取单个用户信息
userAdd 添加用户页面 填写用户信息、选择角色
getStoreRoleList 获取角色列表 获取当前门店的角色下拉列表
userAddAjax 提交用户 新增/编辑用户
changeStatus 启用/禁用用户 切换用户账号状态
usersDel 删除用户 删除用户账号

3.2 用户设置项

设置项 说明 规则/限制
登录账号 用户登录手机号 必填,11位手机号格式
登录密码 用户登录密码 必填(新增时),6-16位字符
用户姓名 用户显示名称 必填
所属角色 用户所属角色 必填,从角色列表选择
是否启用 用户账号状态 开启/关闭

3.3 用户验证规则

验证项 规则
登录账号格式 必须为手机号(1[3456789]开头,11位)
登录账号唯一性 同一store下手机号不能重复
密码长度 6-16位字符
用户数量限制 受门店 limit_user 字段控制

3.4 用户数量限制

门店可创建的用户数量受 retail_store.limit_user 字段限制:

// 获取门店用户数量限制
$storeInfo['limit_user']

// 获取已创建用户数
$yetNumber = D('retail_cashier')->where(['storeid'=>$storeId,'status'=>1])->count();

// 判断是否已达上限
if(bccomp((string)$yetNumber, (string)$storeInfo['limit_user']) >= 0) {
    // 已达上限,禁止创建
}

四、商户角色管理 - MerchantRolesController

文件: Application/Retail/Controller/MerchantRolesController.class.php

4.1 功能方法列表

方法 用途 说明
index 商户角色首页 展示商户所有角色
getRoles 获取角色列表 AJAX分页获取
rolesAdd 添加角色页面 选择权限
getAllJurList 获取权限树 获取商户级权限列表
rolesAddAjax 提交角色 新增/编辑商户角色
changeStatus 启用/禁用角色 切换角色状态
rolesDel 删除角色 删除商户角色

五、商户用户管理 - MerchantJurUsersController

文件: Application/Retail/Controller/MerchantJurUsersController.class.php

5.1 功能方法列表

方法 用途 说明
index 商户用户首页 展示商户所有用户
getUser 获取用户详情 获取单个用户信息
userAdd 添加用户页面 填写用户信息
getStoreRoleList 获取角色列表 获取商户角色下拉列表
userAddAjax 提交用户 新增/编辑商户用户
changeStatus 启用/禁用用户 切换用户状态
usersDel 删除用户 删除商户用户

六、权限分配 - JurisdictionController

文件: Application/Retail/Controller/JurisdictionController.class.php

6.1 功能方法列表

方法 用途 说明
index 权限分配首页 展示权限树形结构
setJurisdiction 保存权限 修改用户或角色的具体权限

6.2 权限设置操作

参数 说明
id 权限记录ID
status 状态值(0/1)
key 要修改的字段名

七、权限模型详解

7.1 JurisdictionGroupModel(角色表)

表名: ls_jurisdiction_group

字段 说明
id 角色ID
jurisdiction_id 权限ID列表(逗号分隔)
role_name 角色名称
status 状态(1启用/0禁用)
create_user 创建人类型
create_user_id 创建人ID
add_time 添加时间
price_limited 是否开启售价限定
discount_limited 售价限定类型
discount_limited_value 售价限定值

7.2 JurisdictionListModel(权限表)

表名: ls_jurisdiction_list

字段 说明
id 权限ID
name 权限名称(中文)
en_name 英文名称
es_name 西班牙语名称
fr_name 法语名称
pt_name 葡萄牙语名称
uzb_name 乌兹别克语名称
pid 父权限ID
type 权限类型
user_type 适用用户类型
path 权限路径

7.3 JurisdictionUserModel(用户权限关联表)

表名: ls_jurisdiction_user

字段 说明
id 记录ID
user_id 用户ID
jurisdiction_id 权限ID
user_type 用户类型

八、操作流程

8.1 创建角色流程

1. 进入 角色管理  添加角色
2. 填写角色名称
3. 设置是否启用
4. 设置是否开启售价限定
   ├── 若开启选择限定类型售价比例/批发价
   └── 若选择售价比例填写百分比数值
5. 从权限树中选择权限
6. 点击保存

8.2 创建用户流程

1. 进入 用户管理  添加用户
2. 填写登录账号手机号
3. 填写登录密码
4. 填写用户姓名
5. 选择所属角色
6. 设置是否启用
7. 点击保存
   └── 系统检查用户数量是否已达上限

8.3 权限分配流程

1. 进入 权限分配 页面
2. 选择要分配的用户或角色
3. 在权限树中勾选需要的权限
4. 点击保存

九、特殊权限控制

9.1 隐藏权限

以下权限ID对店长以下账号隐藏:

权限ID 说明
705 未知(隐藏)
709 未知(隐藏)
1322 未知(隐藏)
684 未知(隐藏)
693 未知(隐藏)

9.2 插件权限控制

插件ID 权限ID 说明
60 1351 发票管理(需开通插件)
64 1372 合同管理(需开通插件)

十、设置项汇总表

10.1 角色设置

分类 设置项 选项/值
基本 角色名称 文本输入
基本 是否启用 开启/关闭
售价限制 是否开启售价限定 开启/关闭
售价限制 限定类型 不低于售价比例 / 不得低于批发价
售价限制 售价比例 0-100%
权限 权限列表 多级复选框树

10.2 用户设置

分类 设置项 规则
基本 登录账号 必填,11位手机号
基本 登录密码 必填,6-16位
基本 用户姓名 必填
基本 所属角色 必填
基本 是否启用 开启/关闭

10.3 操作设置

操作 说明
启用角色 开启角色可用性
禁用角色 关闭角色可用性
删除角色 需确认无用户关联
启用用户 开启用户账号
禁用用户 关闭用户账号
删除用户 删除用户账号
Left-click: follow link, Right-click: select node, Scroll: zoom
x