415 lines
14 KiB
PHP
415 lines
14 KiB
PHP
<?php
|
|
/**
|
|
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
|
|
* =========================================================
|
|
* Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
|
|
* ----------------------------------------------
|
|
* 官方网址: https://www.gobuysaas.com
|
|
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
|
|
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
|
|
* =========================================================
|
|
*/
|
|
|
|
namespace addon\store\shopapi\controller;
|
|
|
|
use app\model\site\Site;
|
|
use app\model\system\Group;
|
|
use app\model\system\Menu;
|
|
use app\model\system\User as UserModel;
|
|
|
|
|
|
/**
|
|
* 用户控制器
|
|
* Class User
|
|
* @package addon\shop\siteapi\controller
|
|
*/
|
|
class User extends BaseStoreApi
|
|
{
|
|
/**
|
|
* 用户列表
|
|
* @return mixed
|
|
*/
|
|
public function lists()
|
|
{
|
|
$page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
|
|
$page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
|
|
$status = isset($this->params[ 'status' ]) ? $this->params[ 'status' ] : '';
|
|
$username = isset($this->params[ 'username' ]) ? $this->params[ 'username' ] : '';
|
|
|
|
$condition = [];
|
|
$condition[] = [ "site_id", "=", $this->site_id ];
|
|
$condition[] = [ "app_module", "=", $this->app_module ];
|
|
if (!empty($username)) {
|
|
$condition[] = [ 'username', 'like', '%' . $username . '%' ];
|
|
}
|
|
if ($status != "") {
|
|
$condition[ "status" ] = [ "status", "=", $status ];
|
|
}
|
|
$user_model = new UserModel();
|
|
$list = $user_model->getUserPageList($condition, $page, $page_size, "is_admin desc,create_time desc");
|
|
return $this->response($list);
|
|
|
|
}
|
|
|
|
/**
|
|
* 添加用户
|
|
* @return mixed
|
|
*/
|
|
public function addUser()
|
|
{
|
|
|
|
$mobile = isset($this->params[ 'mobile' ]) ? $this->params[ 'mobile' ] : '';
|
|
$group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : '';
|
|
|
|
$user_model = new UserModel();
|
|
$data = array (
|
|
"mobile" => $mobile,
|
|
"group_id" => $group_id,
|
|
"app_module" => $this->app_module,
|
|
"site_id" => $this->site_id
|
|
);
|
|
$result = $user_model->addUser($data);
|
|
return $this->response($result);
|
|
|
|
}
|
|
|
|
/**
|
|
* 获取用户组列表
|
|
*/
|
|
public function groupList()
|
|
{
|
|
$group_model = new Group();
|
|
$group_list = $group_model->getGroupList([ [ "site_id", "=", $this->site_id ], [ "app_module", "=", $this->app_module ] ]);
|
|
return $this->response($group_list);
|
|
}
|
|
|
|
/**
|
|
* 用户详情
|
|
*/
|
|
public function userInfo()
|
|
{
|
|
$uid = isset($this->params[ 'uid' ]) ? $this->params[ 'uid' ] : 0;
|
|
|
|
$user_model = new UserModel();
|
|
$user_condition = [
|
|
[ 'uid', '=', $uid ]
|
|
];
|
|
$user_info = $user_model->getUserInfo($user_condition);
|
|
|
|
return $this->response($user_info);
|
|
}
|
|
|
|
/**
|
|
* 编辑用户
|
|
* @return mixed
|
|
*/
|
|
public function editUser()
|
|
{
|
|
$user_model = new UserModel();
|
|
|
|
$group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : '';
|
|
$status = isset($this->params[ 'status' ]) ? $this->params[ 'status' ] : '';
|
|
$uid = isset($this->params[ 'uid' ]) ? $this->params[ 'uid' ] : 0;
|
|
|
|
$condition = array (
|
|
[ "uid", "=", $uid ],
|
|
[ "site_id", "=", $this->site_id ],
|
|
[ "app_module", "=", $this->app_module ],
|
|
);
|
|
$data = array (
|
|
"group_id" => $group_id,
|
|
"status" => $status
|
|
);
|
|
|
|
$this->addLog("编辑用户:" . $uid);
|
|
|
|
$result = $user_model->editUser($data, $condition);
|
|
return $this->response($result);
|
|
|
|
}
|
|
|
|
/**
|
|
* 删除用户
|
|
*/
|
|
public function deleteUser()
|
|
{
|
|
$uid = isset($this->params[ 'uid' ]) ? $this->params[ 'uid' ] : 0;
|
|
$user_model = new UserModel();
|
|
$condition = array (
|
|
[ "uid", "=", $uid ],
|
|
[ "app_module", "=", $this->app_module ],
|
|
[ "site_id", "=", $this->site_id ],
|
|
);
|
|
$result = $user_model->deleteUser($condition);
|
|
return $this->response($result);
|
|
}
|
|
|
|
/**
|
|
* 编辑管理员状态
|
|
*/
|
|
public function modifyUserStatus()
|
|
{
|
|
$status = isset($this->params[ 'status' ]) ? $this->params[ 'status' ] : '';
|
|
$uid = isset($this->params[ 'uid' ]) ? $this->params[ 'uid' ] : 0;
|
|
$user_model = new UserModel();
|
|
$condition = array (
|
|
[ "uid", "=", $uid ],
|
|
[ "site_id", "=", $this->site_id ],
|
|
[ "app_module", "=", $this->app_module ],
|
|
);
|
|
$result = $user_model->modifyUserStatus($status, $condition);
|
|
return $this->response($result);
|
|
}
|
|
|
|
/**
|
|
* 管理组列表
|
|
* @return mixed
|
|
*/
|
|
public function group()
|
|
{
|
|
$page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
|
|
$page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
|
|
$search_keys = isset($this->params[ 'search_keys' ]) ? $this->params[ 'search_keys' ] : '';
|
|
|
|
$condition = array (
|
|
[ 'site_id', "=", $this->site_id ],
|
|
[ "app_module", "=", $this->app_module ]
|
|
);
|
|
if (!empty($search_keys)) {
|
|
$condition[] = [ 'desc', 'like', '%' . $search_keys . '%' ];
|
|
}
|
|
|
|
$group_model = new Group();
|
|
$list = $group_model->getGroupPageList($condition, $page, $page_size);
|
|
return $this->response($list);
|
|
|
|
}
|
|
|
|
/**
|
|
* 添加用户组
|
|
* @return mixed
|
|
*/
|
|
public function addGroup()
|
|
{
|
|
$group_name = isset($this->params[ 'group_name' ]) ? $this->params[ 'group_name' ] : '';
|
|
$menu_array = isset($this->params[ 'menu_array' ]) ? $this->params[ 'menu_array' ] : '';
|
|
$desc = isset($this->params[ 'desc' ]) ? $this->params[ 'desc' ] : '';
|
|
$group_model = new Group();
|
|
$data = array (
|
|
"group_name" => $group_name,
|
|
"site_id" => $this->site_id,
|
|
"app_module" => $this->app_module,
|
|
"group_status" => 1,
|
|
"menu_array" => $menu_array,
|
|
"desc" => $desc,
|
|
"is_system" => 0
|
|
);
|
|
$result = $group_model->addGroup($data);
|
|
return $this->response($result);
|
|
|
|
}
|
|
|
|
/*
|
|
* 菜单列表
|
|
*/
|
|
public function menuList()
|
|
{
|
|
$menu_model = new Menu();
|
|
// 查询站点的插件
|
|
$site_model = new Site();
|
|
$site_addon = $site_info = $site_model->getSiteAddonStr($this->site_id)[ 'data' ];
|
|
$menu_list = $menu_model->getMenuList([ [ 'addon', 'in', $site_addon ], [ 'app_module', "=", $this->app_module ], [ 'is_control', "=", 1 ] ], '*', 'sort asc');
|
|
$menu_tree = list_to_tree($menu_list[ 'data' ], 'name', 'parent', 'child_list', '');
|
|
return $this->response($this->success($menu_tree));
|
|
}
|
|
|
|
/**
|
|
* 编辑用户组
|
|
* @return mixed
|
|
*/
|
|
public function editGroup()
|
|
{
|
|
$group_model = new Group();
|
|
|
|
$group_name = isset($this->params[ 'group_name' ]) ? $this->params[ 'group_name' ] : '';
|
|
$menu_array = isset($this->params[ 'menu_array' ]) ? $this->params[ 'menu_array' ] : '';
|
|
$group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : 0;
|
|
$desc = isset($this->params[ 'desc' ]) ? $this->params[ 'desc' ] : '';
|
|
|
|
$data = array (
|
|
"group_name" => $group_name,
|
|
"menu_array" => $menu_array,
|
|
"desc" => $desc,
|
|
);
|
|
$condition = array (
|
|
[ "group_id", "=", $group_id ],
|
|
[ "site_id", "=", $this->site_id ],
|
|
[ "app_module", "=", $this->app_module ]
|
|
);
|
|
$result = $group_model->editGroup($data, $condition);
|
|
return $this->response($result);
|
|
|
|
}
|
|
|
|
/**
|
|
* 编辑用户组菜单信息
|
|
*/
|
|
public function editGroupMenuInfo()
|
|
{
|
|
$group_model = new Group();
|
|
|
|
$group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : '';
|
|
$condition = array (
|
|
[ "group_id", "=", $group_id ],
|
|
[ "site_id", "=", $this->site_id ],
|
|
[ "app_module", "=", $this->app_module ]
|
|
);
|
|
$group_info_result = $group_model->getGroupInfo($condition);
|
|
$group_info = $group_info_result[ "data" ];
|
|
if (empty($group_info)) return $this->response($this->error([], "未获取到用户分组信息!"));
|
|
|
|
$menu_model = new Menu();
|
|
// 查询站点的插件
|
|
$site_model = new Site();
|
|
$site_addon = $site_info = $site_model->getSiteAddonStr($this->site_id);
|
|
$site_addon = $site_addon[ 'data' ];
|
|
$menu_list = $menu_model->getMenuList([ [ 'addon', 'in', $site_addon ], [ 'app_module', "=", $this->app_module ], [ 'is_control', "=", 1 ] ], '*', 'sort asc');
|
|
//处理选中数据
|
|
$group_array = $group_info[ 'menu_array' ];
|
|
$checked_array = explode(',', $group_array);
|
|
foreach ($menu_list[ 'data' ] as $key => $val) {
|
|
if (in_array($val[ 'name' ], $checked_array)) {
|
|
$menu_list[ 'data' ][ $key ][ 'checked' ] = true;
|
|
} else {
|
|
$menu_list[ 'data' ][ $key ][ 'checked' ] = false;
|
|
}
|
|
}
|
|
$menu_tree = list_to_tree($menu_list[ 'data' ], 'name', 'parent', 'child_list', '');
|
|
return $this->response($this->success($menu_tree));
|
|
}
|
|
|
|
/**
|
|
* 删除用户组
|
|
*/
|
|
public function deleteGroup()
|
|
{
|
|
$group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : '';
|
|
$condition = array (
|
|
[ "group_id", "=", $group_id ],
|
|
[ "site_id", "=", $this->site_id ],
|
|
[ "app_module", "=", $this->app_module ],
|
|
);
|
|
$group_model = new Group();
|
|
$result = $group_model->deleteGroup($condition);
|
|
return $this->response($result);
|
|
}
|
|
|
|
/**
|
|
* 用户组状态
|
|
*/
|
|
public function modifyGroupStatus()
|
|
{
|
|
$group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : 0;
|
|
$status = isset($this->params[ 'status' ]) ? $this->params[ 'status' ] : 0;
|
|
$group_model = new Group();
|
|
$condition = array (
|
|
[ "group_id", "=", $group_id ],
|
|
[ "site_id", "=", $this->site_id ],
|
|
[ "app_module", "=", $this->app_module ],
|
|
);
|
|
$result = $group_model->modifyGroupStatus($status, $condition);
|
|
return $this->response($result);
|
|
}
|
|
|
|
/**
|
|
* 用户日志
|
|
*/
|
|
public function userLog()
|
|
{
|
|
$user_model = new UserModel();
|
|
|
|
$page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
|
|
$page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
|
|
$uid = isset($this->params[ 'uid' ]) ? $this->params[ 'uid' ] : 0;
|
|
$search_keys = isset($this->params[ 'search_keys' ]) ? $this->params[ 'search_keys' ] : '';
|
|
|
|
$condition = [];
|
|
$condition[] = [ "site_id", "=", $this->site_id ];
|
|
if (!empty($search_keys)) {
|
|
$condition[] = [ 'action_name', 'like', '%' . $search_keys . '%' ];
|
|
}
|
|
if ($uid > 0) {
|
|
$condition[] = [ 'uid', '=', $uid ];
|
|
}
|
|
|
|
$list = $user_model->getUserlogPageList($condition, $page, $page_size, "create_time desc");
|
|
return $this->response($list);
|
|
|
|
}
|
|
|
|
/**
|
|
* 获取站点所有用户
|
|
*/
|
|
public function userList()
|
|
{
|
|
$user_model = new UserModel();
|
|
//获取站点所有用户
|
|
$condition = [];
|
|
$condition[] = [ "site_id", "=", $this->site_id ];
|
|
$condition[] = [ "app_module", "=", $this->app_module ];
|
|
$user_list = $user_model->getUserList($condition);
|
|
return $this->response($user_list);
|
|
}
|
|
|
|
/**
|
|
* 批量删除日志
|
|
*/
|
|
public function deleteUserLog()
|
|
{
|
|
$user_model = new UserModel();
|
|
$id = isset($this->params[ 'id' ]) ? $this->params[ 'id' ] : '';
|
|
$condition = array (
|
|
[ "id", "in", $id ],
|
|
[ "site_id", '=', $this->site_id ],
|
|
);
|
|
$res = $user_model->deleteUserLog($condition);
|
|
return $this->response($res);
|
|
}
|
|
|
|
/**
|
|
* 获取菜单根据用户组
|
|
*/
|
|
public function getMenuByGroup()
|
|
{
|
|
$group_id = isset($this->params[ 'group_id' ]) ? $this->params[ 'group_id' ] : 0;
|
|
$condition = array (
|
|
[ "group_id", "=", $group_id ],
|
|
[ "site_id", "=", $this->site_id ],
|
|
[ "app_module", "=", $this->app_module ]
|
|
);
|
|
$group_info_result = ( new Group() )->getGroupInfo($condition);
|
|
$group_info = $group_info_result[ "data" ];
|
|
if (empty($group_info)) return error();
|
|
|
|
$menu_model = new Menu();
|
|
// 查询站点的插件
|
|
$site_model = new Site();
|
|
$site_addon = $site_info = $site_model->getSiteAddonStr($this->site_id);
|
|
$site_addon = $site_addon[ 'data' ];
|
|
$menu_list = $menu_model->getMenuList([ [ 'addon', 'in', $site_addon ], [ 'app_module', "=", $this->app_module ], [ 'is_control', "=", 1 ] ], '*', 'sort asc');
|
|
|
|
//处理选中数据
|
|
$group_array = $group_info[ 'menu_array' ];
|
|
$checked_array = empty($group_array) ? [] : explode(',', $group_array);
|
|
|
|
foreach ($menu_list[ 'data' ] as $key => $val) {
|
|
if (empty($checked_array) || in_array($val[ 'name' ], $checked_array)) {
|
|
$menu_list[ 'data' ][ $key ][ 'checked' ] = true;
|
|
} else {
|
|
$menu_list[ 'data' ][ $key ][ 'checked' ] = false;
|
|
}
|
|
}
|
|
$menu_tree = list_to_tree($menu_list[ 'data' ], 'name', 'parent', 'child_list', '');
|
|
return $this->response($this->success($menu_tree));
|
|
}
|
|
} |