This commit is contained in:
Gitea
2022-01-24 10:43:35 +08:00
commit 15dfc6576b
786 changed files with 219240 additions and 0 deletions

View 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');
}
}

View 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');
}
}

View 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;
}
}
}

View 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;
}
}

View 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);
}
}

View 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();
}
}

View 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);
}
}

View 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();
}
}