Skip to content

POST /dm-store/storePermission/add

Content-Type: application/json

触发按钮:storePermissionAdd

入参

传递对象:StorePermissionVo

出参

传递对象:ResultData

前端校验规则

权限校验
├── 新增按钮权限
│   └── v-auth: 'inventory:storePermission:add:popup'
├── 表单校验
│   ├── user(userName/userCode)
│   │   └── required: true, trigger: change
│   └── storeNos(storeName/storeCode)
│       └── required: true, trigger: change
└── 提交拦截校验
    └── approvalAction
        └── this.$refs.form.validate 通过后才触发 addAction

后端逻辑

业务流程:校验用户仓库权限是否重复 -> 按仓库拆分生成权限记录 -> 批量保存仓库权限

├── 校验重复权限 :81-91
│   ├── 查询已存在权限:list :87
│   ├── 条件:
│   │   ├── userAccount
│   │   ├── userName
│   │   ├── storeNo in storeNoList
│   │   └── isDelete=0
│   └── 已存在则终止新增
├── 按仓库拆分生成权限记录
│   └── 每个 storeNo 生成一条 store_permission 记录
└── 批量保存仓库权限
    ├── 切换仓储数据源:DynamicDataSourceContextHolder.push :99
    ├── 保存权限记录:saveOrUpdateBatch :100
    └── 恢复数据源:DynamicDataSourceContextHolder.poll :101

后端校验规则

业务唯一性校验
└── 校验同一用户账号+用户名称+仓库集合内任一仓库的未删除权限记录是否重复:save :80-91
    ├── 条件:isDelete=0,且 userAccount=请求用户账号,userName=请求用户名称,storeNo in storeNoList
    └── ExceptionCode.EX90144

涉及数据库表

库名.表名mapper.statement描述
store.store_permissionStorePermissionMapper.insert新增storePermission数据