2019-09-06 23:53:10 +08:00

154 lines
4.5 KiB
PHP
Executable File

<?php
namespace wstmart\home\model;
use think\Db;
/**
* ============================================================================
* 门店色务类
*/
class ShopRoles extends Base{
/**
* 角色列表
*/
public function pageQuery(){
$shopId = (int)session('WST_USER.shopId');
$roleName = input("roleName/s");
$where = ["shopId"=>$shopId,"dataFlag"=>1];
if($roleName != ""){
$where["roleName"] = ["like","%".$roleName."%"];
}
$page = $this
->field('id,shopId,roleName,createTime')
->where($where)
->paginate(input('pagesize/d'))->toArray();
return $page;
}
public function listQuery(){
$shopId = (int)session('WST_USER.shopId');
$where = ["shopId"=>$shopId,"dataFlag"=>1];
$list = $this
->field('id,shopId,roleName,createTime')
->where($where)
->select();
return $list;
}
/**
* 根据id获取店铺角色
*/
public function getById($id){
$shopId = (int)session('WST_USER.shopId');
$role = $this->field('id,shopId,roleName,createTime,privilegeUrls,privilegeMsgs')
->where(["id"=>$id,"shopId"=>$shopId,"dataFlag"=>1])
->find();
$menuList = json_decode($role["privilegeUrls"],true);
$menuUrls = array();
$menuOtherUrls = array();
foreach ($menuList as $k1 => $menus1) {
foreach ($menus1 as $k2 => $menus2) {
$menuUrls = array_merge($menuUrls,$menus2["urls"]);
$otherUrls = $menus2["otherUrls"];
foreach ($otherUrls as $ko => $ourls) {
$othurls = explode(',',$ourls);
$menuOtherUrls = array_merge($menuOtherUrls,$othurls);
}
}
}
$role["privilegeMsgs"] = explode(",",$role["privilegeMsgs"]);
$role["menuUrls"] = array_filter($menuUrls);
$role["menuOtherUrls"] = array_filter($menuOtherUrls);
return $role;
}
/**
* 新增店铺角色
*/
public function add(){
$shopId = (int)session('WST_USER.shopId');
$data["shopId"] = $shopId;
$data["roleName"] = input('roleName/s');
if($data["roleName"]==""){
return WSTReturn('请输入角色名称',-1);
}
$data["privilegeMsgs"] = input('privilegeMsgs/s');
$menuIds = input('menuIds/s');
$urls = [];
$otherUrls = [];
if($menuIds==""){
return WSTReturn('请选择权限',-1);
}else{
$roleMenus = model("HomeMenus")->getRoleMenus();
$menuIds = explode(",",$menuIds);
$menuList = array();
for($i=0,$j=count($menuIds);$i<$j;$i++){
$menu = $roleMenus[$menuIds[$i]];
$menuList[$menu["grandpaId"]][$menu["parentId"]]["urls"][] = strtolower($menu["menuUrl"]);
$menuList[$menu["grandpaId"]][$menu["parentId"]]["otherUrls"][] = strtolower($menu["menuOtherUrl"]);
}
}
$data["privilegeUrls"] = json_encode($menuList);
$data["createTime"] = date("Y-m-d H:i:s");
$result = $this->save($data);
if(false !== $result){
return WSTReturn("新增成功", 1);
}
return WSTReturn('新增失败',-1);
}
/**
* 修改店铺角色
*/
public function edit(){
$shopId = (int)session('WST_USER.shopId');
$id = (int)input('id');
$data["roleName"] = input('roleName/s');
if($data["roleName"]==""){
return WSTReturn('请输入角色名称',-1);
}
$data["privilegeMsgs"] = input('privilegeMsgs/s');
$menuIds = input('menuIds/s');
$urls = [];
$otherUrls = [];
if($menuIds==""){
return WSTReturn('请选择权限',-1);
}else{
$roleMenus = model("HomeMenus")->getRoleMenus();
$menuIds = explode(",",$menuIds);
$menuList = array();
for($i=0,$j=count($menuIds);$i<$j;$i++){
$menu = $roleMenus[$menuIds[$i]];
$menuList[$menu["grandpaId"]][$menu["parentId"]]["urls"][] = strtolower($menu["menuUrl"]);
$menuList[$menu["grandpaId"]][$menu["parentId"]]["otherUrls"][] = strtolower($menu["menuOtherUrl"]);
}
}
$data["privilegeUrls"] = json_encode($menuList);
$result = $this->where(["id"=>$id,"shopId"=>$shopId])->update($data);
if(false !== $result){
return WSTReturn("修改成功", 1);
}
return WSTReturn('删除失败',-1);
}
/**
* 删除店铺角色
*/
public function del(){
$shopId = (int)session('WST_USER.shopId');
$id = input('post.id/d');
$data = [];
$data['dataFlag'] = -1;
Db::startTrans();
try{
$result = $this->where(["id"=>$id,"shopId"=>$shopId])->update($data);
if(false !== $result){
//删除关联记录
Db::name("shop_users")->where(["roleId"=>$id,"shopId"=>$shopId])->update($data);
Db::commit();
return WSTReturn("删除成功", 1);
}
}catch (\Exception $e) {
Db::rollback();errLog($e);
}
return WSTReturn('删除失败',-1);
}
}