init
This commit is contained in:
101
apps/admin/model/system/AreaModel.php
Normal file
101
apps/admin/model/system/AreaModel.php
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||||
* @author XingMeng
|
||||
* @email hnxsh@foxmail.com
|
||||
* @date 2017年04月07日
|
||||
* 区域模型类
|
||||
*/
|
||||
namespace app\admin\model\system;
|
||||
|
||||
use core\basic\Model;
|
||||
|
||||
class AreaModel extends Model
|
||||
{
|
||||
|
||||
// 获取区域列表
|
||||
public function getList()
|
||||
{
|
||||
$result = parent::table('ay_area')->order('pcode,acode')
|
||||
->page()
|
||||
->select();
|
||||
$tree = get_tree($result, 0, 'acode', 'pcode');
|
||||
return $tree;
|
||||
}
|
||||
|
||||
// 获取区域选择列表
|
||||
public function getSelect()
|
||||
{
|
||||
$result = parent::table('ay_area')->field('pcode,acode,name')
|
||||
->order('pcode,acode')
|
||||
->select();
|
||||
$tree = get_tree($result, 0, 'acode', 'pcode');
|
||||
return $tree;
|
||||
}
|
||||
|
||||
// 检查区域
|
||||
public function checkArea($where)
|
||||
{
|
||||
return parent::table('ay_area')->field('id')
|
||||
->where($where)
|
||||
->find();
|
||||
}
|
||||
|
||||
// 获取区域详情
|
||||
public function getArea($acode)
|
||||
{
|
||||
return parent::table('ay_area')->where("acode='$acode'")->find();
|
||||
}
|
||||
|
||||
// 获取最后一个code
|
||||
public function getLastCode()
|
||||
{
|
||||
return parent::table('ay_area')->order('id DESC')->value('acode');
|
||||
}
|
||||
|
||||
// 添加区域
|
||||
public function addArea(array $data)
|
||||
{
|
||||
if ($data['is_default']) {
|
||||
$this->unsetDefault($data['acode']);
|
||||
}
|
||||
return parent::table('ay_area')->autoTime()->insert($data);
|
||||
}
|
||||
|
||||
// 删除区域
|
||||
public function delArea($acode)
|
||||
{
|
||||
return parent::table('ay_area')->where("acode='$acode' OR pcode='$acode'")
|
||||
->where('is_default=0')
|
||||
->delete();
|
||||
}
|
||||
|
||||
// 修改区域资料
|
||||
public function modArea($acode, $data)
|
||||
{
|
||||
$result = parent::table('ay_area')->autoTime()
|
||||
->where("acode='$acode'")
|
||||
->update($data);
|
||||
if ($data['is_default']) {
|
||||
$this->unsetDefault($data['acode']);
|
||||
}
|
||||
if ($result && array_key_exists('acode', $data) && $acode != $data['acode']) {
|
||||
$this->modSubArea($acode, $data['acode']);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 当父编号改变时,修改子栏目的父编码
|
||||
private function modSubArea($pcode, $pcodeNew)
|
||||
{
|
||||
return parent::table('ay_area')->where("pcode='$pcode'")
|
||||
->autoTime()
|
||||
->update("pcode='$pcodeNew'");
|
||||
}
|
||||
|
||||
// 去除$acode以外的默认区域
|
||||
private function unsetDefault($acode)
|
||||
{
|
||||
parent::table('ay_area')->where("acode<>'$acode'")->update('is_default=0');
|
||||
}
|
||||
}
|
||||
66
apps/admin/model/system/ConfigModel.php
Normal file
66
apps/admin/model/system/ConfigModel.php
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||||
* @author XingMeng
|
||||
* @email hnxsh@foxmail.com
|
||||
* @date 2018年01月03日
|
||||
* 应用配置模型类
|
||||
*/
|
||||
namespace app\admin\model\system;
|
||||
|
||||
use core\basic\Model;
|
||||
|
||||
class ConfigModel extends Model
|
||||
{
|
||||
|
||||
// 获取应用配置列表
|
||||
public function getList()
|
||||
{
|
||||
return parent::table('ay_config')->order('sorting,id')->column('name,value,type,description', 'name');
|
||||
}
|
||||
|
||||
// 检查应用配置
|
||||
public function checkConfig($where)
|
||||
{
|
||||
return parent::table('ay_config')->field('id')
|
||||
->where($where)
|
||||
->find();
|
||||
}
|
||||
|
||||
// 添加应用配置字段
|
||||
public function addConfig(array $data)
|
||||
{
|
||||
return parent::table('ay_config')->insert($data);
|
||||
}
|
||||
|
||||
// 修改应用配置值
|
||||
public function modValue($name, $value)
|
||||
{
|
||||
return parent::table('ay_config')->where("name='$name'")->update("value='$value'");
|
||||
}
|
||||
|
||||
// 获取区域及主题
|
||||
public function getAreaTheme()
|
||||
{
|
||||
$field = array(
|
||||
'a.*',
|
||||
'b.theme'
|
||||
);
|
||||
$join = array(
|
||||
'ay_site b',
|
||||
'a.acode=b.acode',
|
||||
'LEFT'
|
||||
);
|
||||
return parent::table('ay_area a')->field($field)
|
||||
->join($join)
|
||||
->order('is_default DESC')
|
||||
->select(1);
|
||||
}
|
||||
|
||||
// 获取配置参数
|
||||
public function getConfig()
|
||||
{
|
||||
return parent::table('ay_config')->column('value', 'name');
|
||||
}
|
||||
}
|
||||
|
||||
102
apps/admin/model/system/DatabaseModel.php
Normal file
102
apps/admin/model/system/DatabaseModel.php
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||||
* @author XingMeng
|
||||
* @email hnxsh@foxmail.com
|
||||
* @date 2017年11月19日
|
||||
* 数据库管理模型类,只兼容MySQL数据库
|
||||
*/
|
||||
namespace app\admin\model\system;
|
||||
|
||||
use core\basic\Model;
|
||||
|
||||
class DatabaseModel extends Model
|
||||
{
|
||||
|
||||
// 数据库表状态列表
|
||||
public function getList()
|
||||
{
|
||||
return parent::all('SHOW TABLE STATUS');
|
||||
}
|
||||
|
||||
// 获取全部表
|
||||
public function getTables()
|
||||
{
|
||||
$result = parent::all('SHOW TABLES', 2);
|
||||
foreach ($result as $value) {
|
||||
$tables[] = $value[0];
|
||||
}
|
||||
return $tables;
|
||||
}
|
||||
|
||||
// 获取表字段数量
|
||||
public function getFieldNum($table)
|
||||
{
|
||||
return parent::fields($table);
|
||||
}
|
||||
|
||||
// 获取表字段名
|
||||
public function getFields($table)
|
||||
{
|
||||
$one_data = parent::one("SELECT * FROM " . $table); // 读取数据
|
||||
$fields = array();
|
||||
if ($one_data) {
|
||||
foreach ($one_data as $key => $value) {
|
||||
$fields[] = "`$key`";
|
||||
}
|
||||
}
|
||||
return $fields;
|
||||
}
|
||||
|
||||
// 获取一条数据
|
||||
public function getOne($table)
|
||||
{
|
||||
return parent::one("SELECT * FROM " . $table);
|
||||
}
|
||||
|
||||
// 获取全部数据
|
||||
public function getAll($table)
|
||||
{
|
||||
return parent::all("SELECT * FROM " . $table, MYSQLI_NUM);
|
||||
}
|
||||
|
||||
// 数据库表结构
|
||||
public function tableStru($table)
|
||||
{
|
||||
$sql = "DROP TABLE IF EXISTS `" . $table . '`;' . PHP_EOL;
|
||||
$result = parent::one('SHOW CREATE TABLE `' . $table . '`', MYSQLI_ASSOC);
|
||||
return $sql . $result['Create Table'] . ';' . PHP_EOL . PHP_EOL;
|
||||
}
|
||||
|
||||
// 数据库表优化
|
||||
public function optimize($tables)
|
||||
{
|
||||
return parent::query("OPTIMIZE TABLE $tables");
|
||||
}
|
||||
|
||||
// 数据库表修复
|
||||
public function repair($tables)
|
||||
{
|
||||
return parent::query("REPAIR TABLE $tables");
|
||||
}
|
||||
|
||||
// 锁定数据库表
|
||||
public function lock($tablename, $op = "WRITE")
|
||||
{
|
||||
if (parent::query("lock tables " . $tablename . " " . $op)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 解锁数据库标
|
||||
public function unlock()
|
||||
{
|
||||
if (parent::query("unlock tables")) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
161
apps/admin/model/system/MenuModel.php
Normal file
161
apps/admin/model/system/MenuModel.php
Normal file
@@ -0,0 +1,161 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||||
* @author XingMeng
|
||||
* @email hnxsh@foxmail.com
|
||||
* @date 2017年4月3日
|
||||
* 菜单管理模型类
|
||||
*/
|
||||
namespace app\admin\model\system;
|
||||
|
||||
use core\basic\Model;
|
||||
|
||||
class MenuModel extends Model
|
||||
{
|
||||
|
||||
// 获取菜单列表
|
||||
public function getList()
|
||||
{
|
||||
$result = parent::table('ay_menu')->order('pcode,sorting,id')->select();
|
||||
$tree = get_tree($result, 0, 'mcode', 'pcode');
|
||||
return $tree;
|
||||
}
|
||||
|
||||
// 获取菜单选择列表
|
||||
public function getSelect()
|
||||
{
|
||||
$result = parent::table('ay_menu')->field('id,pcode,mcode,name,url,sorting')
|
||||
->order('pcode,sorting,id')
|
||||
->select();
|
||||
$tree = get_tree($result, 0, 'mcode', 'pcode');
|
||||
return $tree;
|
||||
}
|
||||
|
||||
// 获取菜单详情
|
||||
public function getMenu($mcode)
|
||||
{
|
||||
$result = parent::table('ay_menu')->where("mcode='$mcode'")->find();
|
||||
if ($result)
|
||||
$result->actions = $this->getMenuAction($result->mcode);
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 检查是否存在
|
||||
public function checkMenu($data)
|
||||
{
|
||||
return parent::table('ay_menu')->where($data)->find();
|
||||
}
|
||||
|
||||
// 获取最后一个code
|
||||
public function getLastCode()
|
||||
{
|
||||
return parent::table('ay_menu')->order('mcode DESC')->value('mcode');
|
||||
}
|
||||
|
||||
// 新增菜单,$actions为菜单功能按钮数组
|
||||
public function addMenu(array $data, array $actions = array())
|
||||
{
|
||||
$result = parent::table('ay_menu')->autoTime()->insert($data);
|
||||
if ($result && $actions) {
|
||||
$this->delMenuAction($data['mcode']);
|
||||
$this->addMenuAction($data['mcode'], $actions);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 删除菜单
|
||||
public function delMenu($mcode)
|
||||
{
|
||||
$result = parent::table('ay_menu')->where("mcode='$mcode' OR pcode='$mcode'")->delete();
|
||||
if ($result) {
|
||||
$this->delMenuAction($mcode);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 修改菜单
|
||||
public function modMenu($mcode, $data, array $actions = null)
|
||||
{
|
||||
$result = parent::table('ay_menu')->where("mcode='$mcode'")
|
||||
->autoTime()
|
||||
->update($data);
|
||||
if ($result) {
|
||||
if (array_key_exists('mcode', $data) && $mcode != $data['mcode']) {
|
||||
$this->modSubMenu($mcode, $data['mcode']);
|
||||
}
|
||||
if (is_array($actions)) {
|
||||
$this->delMenuAction($mcode);
|
||||
}
|
||||
if ($actions) {
|
||||
if (array_key_exists('mcode', $data)) {
|
||||
$mcode = $data['mcode'];
|
||||
}
|
||||
$this->addMenuAction($mcode, $actions);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 修改子菜单的父菜单
|
||||
private function modSubMenu($mcode, $mcodeNew)
|
||||
{
|
||||
return parent::table('ay_menu')->where("pcode='$mcode'")->update("mcode='$mcodeNew'");
|
||||
}
|
||||
|
||||
// 获取指定菜单的功能数据
|
||||
private function getMenuAction($mcode)
|
||||
{
|
||||
return parent::table('ay_menu_action')->where("mcode='$mcode'")->column('action');
|
||||
}
|
||||
|
||||
// 插入指定菜单功能关联数据
|
||||
private function addMenuAction($mcode, array $actions)
|
||||
{
|
||||
return parent::table('ay_menu_action')->field('mcode,action')
|
||||
->relation($mcode, $actions)
|
||||
->insert();
|
||||
}
|
||||
|
||||
// 删除指定菜单功能关联数据
|
||||
private function delMenuAction($mcode)
|
||||
{
|
||||
return parent::table('ay_menu_action')->where("mcode='$mcode'")->delete();
|
||||
}
|
||||
|
||||
// 获取菜单权限功能表
|
||||
public function getMenuLevel()
|
||||
{
|
||||
$table = array(
|
||||
'ay_menu',
|
||||
'ay_menu_action',
|
||||
'ay_type'
|
||||
);
|
||||
$field = array(
|
||||
'ay_menu.mcode',
|
||||
'ay_menu.name',
|
||||
'ay_menu.url',
|
||||
'ay_type.item',
|
||||
'ay_type.value'
|
||||
);
|
||||
$where = array(
|
||||
"ay_type.tcode='T101'",
|
||||
"ay_menu.mcode=ay_menu_action.mcode",
|
||||
"ay_type.value=ay_menu_action.action"
|
||||
);
|
||||
$order = array(
|
||||
'ay_menu.mcode',
|
||||
'ay_type.tcode',
|
||||
'ay_type.sorting'
|
||||
);
|
||||
$result = parent::table($table)->field($field)
|
||||
->where($where)
|
||||
->order($order)
|
||||
->select();
|
||||
$data = array();
|
||||
foreach ($result as $key => $value) {
|
||||
$data[$value->mcode][] = $value;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
169
apps/admin/model/system/RoleModel.php
Normal file
169
apps/admin/model/system/RoleModel.php
Normal file
@@ -0,0 +1,169 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||||
* @author XingMeng
|
||||
* @email hnxsh@foxmail.com
|
||||
* @date 2017年04月07日
|
||||
* 角色管理模型类
|
||||
*/
|
||||
namespace app\admin\model\system;
|
||||
|
||||
use core\basic\Model;
|
||||
|
||||
class RoleModel extends Model
|
||||
{
|
||||
|
||||
// 获取角色列表
|
||||
public function getList()
|
||||
{
|
||||
return parent::table('ay_role')->order('rcode,id DESC')
|
||||
->page()
|
||||
->select();
|
||||
}
|
||||
|
||||
// 获取角色选择列表
|
||||
public function getSelect()
|
||||
{
|
||||
return parent::table('ay_role')->field('rcode,name')
|
||||
->order('rcode,id')
|
||||
->select();
|
||||
}
|
||||
|
||||
// 检查角色
|
||||
public function checkRole($where)
|
||||
{
|
||||
return parent::table('ay_role')->field('id')
|
||||
->where($where)
|
||||
->find();
|
||||
}
|
||||
|
||||
// 获取角色详情
|
||||
public function getRole($rcode)
|
||||
{
|
||||
$result = parent::table('ay_role')->where("rcode='$rcode'")->find();
|
||||
if ($result) {
|
||||
$result->acodes = $this->getRoleArea($rcode);
|
||||
$result->levels = $this->getRoleLevel($rcode);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 获取最后一个code
|
||||
public function getLastCode()
|
||||
{
|
||||
return parent::table('ay_role')->order('id DESC')->value('rcode');
|
||||
}
|
||||
|
||||
// 添加角色
|
||||
public function addRole(array $data, array $acodes, array $levels)
|
||||
{
|
||||
$result = parent::table('ay_role')->autoTime()->insert($data);
|
||||
if ($result) {
|
||||
if ($acodes) {
|
||||
$this->delRoleArea($data['rcode']);
|
||||
$this->addRoleArea($data['rcode'], $acodes);
|
||||
}
|
||||
if ($levels) {
|
||||
$this->delRoleLevel($data['rcode']);
|
||||
$this->addRoleLevel($data['rcode'], $levels);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
public function delRole($rcode)
|
||||
{
|
||||
$result = parent::table('ay_role')->where("rcode='$rcode'")->delete();
|
||||
if ($result) {
|
||||
$this->delRoleArea($rcode);
|
||||
$this->delRoleLevel($rcode);
|
||||
$this->delUserRole($rcode);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 修改角色资料
|
||||
public function modRole($rcode, $data, array $acodes = null, array $levels = null)
|
||||
{
|
||||
$result = parent::table('ay_role')->where("rcode='$rcode'")
|
||||
->autoTime()
|
||||
->update($data);
|
||||
if ($result) {
|
||||
if (is_array($acodes)) {
|
||||
$this->delRoleArea($rcode);
|
||||
}
|
||||
|
||||
if (is_array($levels)) {
|
||||
$this->delRoleLevel($rcode);
|
||||
}
|
||||
|
||||
if (array_key_exists('rcode', $data)) {
|
||||
if ($rcode != $data['rcode']) {
|
||||
$this->modUserRole($rcode, "rcode='" . $data['rcode'] . "'");
|
||||
$rcode = $data['rcode'];
|
||||
}
|
||||
}
|
||||
if ($acodes) {
|
||||
$this->addRoleArea($rcode, $acodes);
|
||||
}
|
||||
if ($levels) {
|
||||
$this->addRoleLevel($rcode, $levels);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 获取角色的区域数据
|
||||
private function getRoleArea($rcode)
|
||||
{
|
||||
return parent::table('ay_role_area')->where("rcode='$rcode'")->column('acode');
|
||||
}
|
||||
|
||||
// 插入角色区域关联数据
|
||||
private function addRoleArea($rcode, array $acodes)
|
||||
{
|
||||
return parent::table('ay_role_area')->field('rcode,acode')
|
||||
->relation($rcode, $acodes)
|
||||
->insert();
|
||||
}
|
||||
|
||||
// 删除角色区域关联数据
|
||||
private function delRoleArea($rcode)
|
||||
{
|
||||
return parent::table('ay_role_area')->where("rcode='$rcode'")->delete();
|
||||
}
|
||||
|
||||
// 获取角色的权限数据
|
||||
private function getRoleLevel($rcode)
|
||||
{
|
||||
return parent::table('ay_role_level')->where("rcode='$rcode'")->column('level');
|
||||
}
|
||||
|
||||
// 插入角色权限关联数据
|
||||
private function addRoleLevel($rcode, array $levels)
|
||||
{
|
||||
return parent::table('ay_role_level')->field('rcode,level')
|
||||
->relation($rcode, $levels)
|
||||
->insert();
|
||||
}
|
||||
|
||||
// 删除角色权限关联数据
|
||||
private function delRoleLevel($rcode)
|
||||
{
|
||||
return parent::table('ay_role_level')->where("rcode='$rcode'")->delete();
|
||||
}
|
||||
|
||||
// 删除角色用户关联数据
|
||||
private function delUserRole($rcode)
|
||||
{
|
||||
return parent::table('ay_user_role')->where("rcode='$rcode'")->delete();
|
||||
}
|
||||
|
||||
// 修改角色用户关联数据
|
||||
private function modUserRole($rcode, $data)
|
||||
{
|
||||
return parent::table('ay_user_role')->where("rcode='$rcode'")->update($data);
|
||||
}
|
||||
}
|
||||
|
||||
29
apps/admin/model/system/SyslogModel.php
Normal file
29
apps/admin/model/system/SyslogModel.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||||
* @author XingMeng
|
||||
* @email hnxsh@foxmail.com
|
||||
* @date 2017年3月29日
|
||||
* 日志模型类
|
||||
*/
|
||||
namespace app\admin\model\system;
|
||||
|
||||
use core\basic\Model;
|
||||
|
||||
class SyslogModel extends Model
|
||||
{
|
||||
|
||||
// 获取日志列表
|
||||
public function getList()
|
||||
{
|
||||
return parent::table('ay_syslog')->order('id DESC')
|
||||
->page()
|
||||
->select();
|
||||
}
|
||||
|
||||
// 删除全部
|
||||
public function clearLog()
|
||||
{
|
||||
return parent::table('ay_syslog')->delete();
|
||||
}
|
||||
}
|
||||
89
apps/admin/model/system/TypeModel.php
Normal file
89
apps/admin/model/system/TypeModel.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||||
* @author XingMeng
|
||||
* @email hnxsh@foxmail.com
|
||||
* @date 2017年04月07日
|
||||
* 类型模型类
|
||||
*/
|
||||
namespace app\admin\model\system;
|
||||
|
||||
use core\basic\Model;
|
||||
|
||||
class TypeModel extends Model
|
||||
{
|
||||
|
||||
// 获取类型列表
|
||||
public function getList()
|
||||
{
|
||||
return parent::table('ay_type')->order('tcode DESC,sorting')
|
||||
->page()
|
||||
->select();
|
||||
}
|
||||
|
||||
// 查找类型
|
||||
public function findType($field, $keyword)
|
||||
{
|
||||
return parent::table('ay_type')->like($field, $keyword)
|
||||
->order('tcode DESC,sorting')
|
||||
->page()
|
||||
->select();
|
||||
}
|
||||
|
||||
// 获取类型编码选择
|
||||
public function getSelect()
|
||||
{
|
||||
return parent::table('ay_type')->distinct()
|
||||
->field('tcode,name')
|
||||
->order('tcode')
|
||||
->select();
|
||||
}
|
||||
|
||||
// 检查类型
|
||||
public function checkType($where)
|
||||
{
|
||||
return parent::table('ay_type')->field('id')
|
||||
->where($where)
|
||||
->find();
|
||||
}
|
||||
|
||||
// 获取类型详情
|
||||
public function getType($id)
|
||||
{
|
||||
return parent::table('ay_type')->where("id=$id")->find();
|
||||
}
|
||||
|
||||
// 获取指定分类项
|
||||
public function getItem($tcode)
|
||||
{
|
||||
return parent::table('ay_type')->field('item,value')
|
||||
->where("tcode='$tcode'")
|
||||
->select();
|
||||
}
|
||||
|
||||
// 获取最后一个code
|
||||
public function getLastCode()
|
||||
{
|
||||
return parent::table('ay_type')->order('id DESC')->value('tcode');
|
||||
}
|
||||
|
||||
// 添加类型
|
||||
public function addType(array $data)
|
||||
{
|
||||
return parent::table('ay_type')->autoTime()->insert($data);
|
||||
}
|
||||
|
||||
// 删除类型
|
||||
public function delType($id)
|
||||
{
|
||||
return parent::table('ay_type')->where("id=$id")->delete();
|
||||
}
|
||||
|
||||
// 修改类型资料
|
||||
public function modType($id, $data)
|
||||
{
|
||||
return parent::table('ay_type')->where("id=$id")
|
||||
->autoTime()
|
||||
->update($data);
|
||||
}
|
||||
}
|
||||
166
apps/admin/model/system/UserModel.php
Normal file
166
apps/admin/model/system/UserModel.php
Normal file
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||||
* @author XingMeng
|
||||
* @email hnxsh@foxmail.com
|
||||
* @date 2017年04月07日
|
||||
* 用户模型类
|
||||
*/
|
||||
namespace app\admin\model\system;
|
||||
|
||||
use core\basic\Model;
|
||||
|
||||
class UserModel extends Model
|
||||
{
|
||||
|
||||
// 获取用户列表
|
||||
public function getList()
|
||||
{
|
||||
$result = parent::table('ay_user')->page()
|
||||
->order('id DESC')
|
||||
->select();
|
||||
// 获取每用户的第一角色
|
||||
foreach ($result as $key => $value) {
|
||||
if ($value->ucode == '10001') {
|
||||
$value->rolename = '创始人';
|
||||
continue;
|
||||
}
|
||||
$roles = $this->getUserRole($value->ucode);
|
||||
if ($roles) {
|
||||
$value->rolename = $roles[0]->name;
|
||||
} else {
|
||||
$value->rolename = '';
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 查找用户资料
|
||||
public function findUser($field, $keyword)
|
||||
{
|
||||
$result = parent::table('ay_user')->like($field, $keyword)
|
||||
->order('id DESC')
|
||||
->page()
|
||||
->select();
|
||||
// 获取每用户的第一角色
|
||||
foreach ($result as $key => $value) {
|
||||
if ($value->ucode == '10001') {
|
||||
$value->rolename = '创始人';
|
||||
continue;
|
||||
}
|
||||
$roles = $this->getUserRole($value->ucode);
|
||||
if ($roles) {
|
||||
$value->rolename = $roles[0]->name;
|
||||
} else {
|
||||
$value->rolename = '';
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 获取用户列表
|
||||
public function getSelect()
|
||||
{
|
||||
return parent::table('ay_user')->field('ucode,username,realname')
|
||||
->order('id DESC')
|
||||
->select();
|
||||
}
|
||||
|
||||
// 检查用户
|
||||
public function checkUser($where)
|
||||
{
|
||||
return parent::table('ay_user')->field('id')
|
||||
->where($where)
|
||||
->find();
|
||||
}
|
||||
|
||||
// 获取用户详情
|
||||
public function getUser($ucode)
|
||||
{
|
||||
$result = parent::table('ay_user')->where("ucode='$ucode'")->find();
|
||||
// 用户角色信息
|
||||
if ($result) {
|
||||
$roles = $this->getUserRole($ucode);
|
||||
$result->roles = $roles;
|
||||
$result->rcodes = get_mapping($roles, 'rcode');
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 获取最后一个code
|
||||
public function getLastCode()
|
||||
{
|
||||
return parent::table('ay_user')->order('id DESC')->value('ucode');
|
||||
}
|
||||
|
||||
// 添加用户
|
||||
public function addUser(array $data, array $roles)
|
||||
{
|
||||
$result = parent::table('ay_user')->insert($data);
|
||||
if ($result && $roles) {
|
||||
$this->addUserRole($data['ucode'], $roles);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
public function delUser($ucode)
|
||||
{
|
||||
$result = parent::table('ay_user')->where("ucode='$ucode' AND ucode<>10001")->delete();
|
||||
if ($result) {
|
||||
$this->delUserRole($ucode);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 修改用户资料
|
||||
public function modUser($ucode, $data, array $roles = null)
|
||||
{
|
||||
$result = parent::table('ay_user')->where("ucode='$ucode'")->update($data);
|
||||
if (is_array($roles)) {
|
||||
$result = $this->delUserRole($ucode);
|
||||
if ($roles) {
|
||||
if (array_key_exists('ucode', $data)) {
|
||||
$ucode = $data['ucode'];
|
||||
}
|
||||
if ($ucode != '10001')
|
||||
$result = $this->addUserRole($ucode, $roles);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 获取指定用户角色表
|
||||
private function getUserRole($ucode)
|
||||
{
|
||||
$table = array(
|
||||
'ay_role',
|
||||
'ay_user_role'
|
||||
);
|
||||
$field = array(
|
||||
'ay_role.rcode',
|
||||
'ay_role.name'
|
||||
);
|
||||
$where = array(
|
||||
"ay_user_role.ucode='$ucode'",
|
||||
"ay_role.rcode=ay_user_role.rcode"
|
||||
);
|
||||
return parent::table($table)->field($field)
|
||||
->where($where)
|
||||
->select();
|
||||
}
|
||||
|
||||
// 插入用户角色关联数据
|
||||
private function addUserRole($ucode, array $roles)
|
||||
{
|
||||
return parent::table('ay_user_role')->field('ucode,rcode')
|
||||
->relation($ucode, $roles)
|
||||
->insert();
|
||||
}
|
||||
|
||||
// 删除用户角色关联数据
|
||||
private function delUserRole($ucode)
|
||||
{
|
||||
return parent::table('ay_user_role')->where("ucode='$ucode' AND ucode<>10001")->delete();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user