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,225 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年3月13日
* 首页模型类
*/
namespace app\admin\model;
use core\basic\Model;
class IndexModel extends Model
{
// 检查用户账号密码
public function login($where)
{
// 执行登录
$result = parent::table('ay_user')->field('id,ucode,username,realname')
->where($where)
->where('status=1')
->find();
if ($result) { // 登录成功
$this->updateLogin($where); // 执行更新登录记录
$menus = $this->getUserMenu($result->ucode); // 用户菜单
$result->menus = get_tree($menus, 0, 'mcode', 'pcode'); // 用户菜单树
$result->rcodes = $this->getUserRcode($result->ucode); // 用户角色
$result->levels = $this->getUserLevel($result->ucode); // 用户权限
$acodes = $this->getUserAcode($result->ucode); // 获取用户区域
$areas = $this->getAreas();
$first_acode = $areas[0]->acode;
if (in_array($first_acode, $acodes)) {
array_unshift($acodes, $first_acode);
$acodes = array_unique($acodes);
}
$result->acodes = $acodes;
$result->area_map = get_mapping($areas, 'name', 'acode'); // 区域代码名称映射表
$result->area_tree = $this->getUserAreaTree($areas, 0, 'acode', 'pcode', 'son', $result->acodes); // 当前用户的区域树
return $result;
} else {
return false;
}
}
// 用户登录成功后更新登录信息
private function updateLogin($where)
{
$data = array(
'last_login_ip' => ip2long(get_user_ip()),
'login_count' => '+=1'
);
return parent::table('ay_user')->where($where)
->autoTime()
->update($data);
}
// 获取用户菜单列表
public function getUserMenu($ucode)
{
if ($ucode == '10001') { // 管理员获所有区域
$field = array(
'id',
'mcode',
'pcode',
'name',
'url',
'shortcut',
'ico',
'sorting',
'status'
);
$order = array(
'sorting',
'pcode',
'id'
);
$result = parent::table('ay_menu')->distinct()
->field($field)
->order($order)
->select();
} else {
$table = array(
'ay_user',
'ay_user_role',
'ay_role',
'ay_role_level',
'ay_menu'
);
$field = array(
'ay_menu.id',
'ay_menu.mcode',
'ay_menu.pcode',
'ay_menu.name',
'ay_menu.url',
'ay_menu.shortcut',
'ay_menu.ico',
'ay_menu.sorting',
'ay_menu.status'
);
$where = array(
"ay_user.ucode='$ucode'",
"ay_user.ucode=ay_user_role.ucode",
"ay_role.rcode=ay_user_role.rcode",
"ay_role.rcode=ay_role_level.rcode",
"ay_menu.url=ay_role_level.level"
);
$order = array(
'ay_menu.sorting',
'ay_menu.pcode',
'ay_menu.id'
);
$result = parent::table($table)->distinct()
->field($field)
->where($where)
->order($order)
->select();
}
return $result;
}
// 获取用户的角色代码
public function getUserRcode($ucode)
{
return parent::table('ay_user_role')->where("ucode='$ucode'")->column('rcode');
}
// 获取用户权限列表
public function getUserLevel($ucode)
{
$table = array(
'ay_user',
'ay_user_role',
'ay_role',
'ay_role_level'
);
$where = array(
"ay_user.ucode='$ucode'",
"ay_user.ucode=ay_user_role.ucode",
"ay_role.rcode=ay_user_role.rcode",
"ay_role.rcode=ay_role_level.rcode"
);
return parent::table($table)->distinct()
->where($where)
->column('ay_role_level.level');
}
// 获取用户可管理的区域代码
public function getUserAcode($ucode)
{
if ($ucode == '10001') { // 管理员获所有区域
$result = parent::table('ay_area')->distinct()->column('acode');
} else {
$table = array(
'ay_user',
'ay_user_role',
'ay_role',
'ay_role_area',
'ay_area'
);
$where = array(
"ay_user.ucode = '$ucode'",
"ay_user.ucode=ay_user_role.ucode",
"ay_role.rcode=ay_user_role.rcode",
"ay_role.rcode=ay_role_area.rcode",
"ay_area.acode=ay_role_area.acode"
);
$result = parent::table($table)->distinct()
->where($where)
->column('ay_area.acode');
}
return $result;
}
// 获取区域列表
public function getAreas()
{
$result = parent::table('ay_area')->field('pcode,acode,name,is_default')
->order('is_default DESC,pcode,acode')
->select();
return $result;
}
// 生成授权的区域树
public function getUserAreaTree($data, $tid, $idField, $pidField, $sonName = 'son', $valid = array())
{
$tree = array();
foreach ($data as $key => $value) {
if ($value->$pidField == "$tid") { // 父亲找到儿子
$value->$sonName = $this->getUserAreaTree($data, $value->$idField, $idField, $pidField, $sonName, $valid);
if ($value->$sonName) {
$tree[] = $value;
} elseif (in_array($value->$idField, $valid)) {
$tree[] = $value;
}
}
}
return $tree;
}
// 检查当前用户密码
public function checkUserPwd($password)
{
return parent::table('ay_user')->field('id')
->where("id=" . session('id') . " AND password='$password'")
->find();
}
// 修改当前用户信息
public function modUserInfo($data)
{
return parent::table('ay_user')->where("id=" . session('id'))->update($data);
}
// 获取用户信息
public function getUserInfo($ucode)
{
$result = parent::table('ay_user')->field('id,ucode,username,realname,last_login_ip,update_time,login_count')
->where("ucode='$ucode'")
->find();
return $result;
}
}

View File

@@ -0,0 +1,39 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年3月24日
* 公司信息模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class CompanyModel extends Model
{
// 获取公司信息
public function getList()
{
return parent::table('ay_company')->where("acode='" . session('acode') . "'")->find();
}
// 检查公司信息
public function checkCompany()
{
return parent::table('ay_company')->where("acode='" . session('acode') . "'")->find();
}
// 增加公司信息
public function addCompany($data)
{
return parent::table('ay_company')->insert($data);
}
// 修改公司信息
public function modCompany($data)
{
return parent::table('ay_company')->where("acode='" . session('acode') . "'")->update($data);
}
}

View File

@@ -0,0 +1,332 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年12月15日
* 列表文章模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class ContentModel extends Model
{
protected $scodes = array();
// 获取文章列表
public function getList($mcode)
{
$field = array(
'a.id',
'b.name as sortname',
'a.scode',
'c.name as subsortname',
'a.subscode',
'a.title',
'a.subtitle',
'a.date',
'a.sorting',
'a.status',
'a.istop',
'a.isrecommend',
'a.isheadline',
'a.visits',
'a.ico',
'a.pics',
'a.filename',
'a.outlink',
'd.urlname',
'b.filename as sortfilename'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_sort c',
'a.subscode=c.scode',
'LEFT'
),
array(
'ay_model d',
'b.mcode=d.mcode',
'LEFT'
)
);
return parent::table('ay_content a')->field($field)
->where("b.mcode='$mcode'")
->where('d.type=2 OR d.type is null ')
->where("a.acode='" . session('acode') . "'")
->join($join)
->order('a.sorting ASC,a.id DESC')
->page()
->select();
}
// 查找指定分类及子类文章
public function findContent($mcode, $scode, $keyword)
{
$fields = array(
'a.id',
'b.name as sortname',
'a.scode',
'c.name as subsortname',
'a.subscode',
'a.title',
'a.subtitle',
'a.date',
'a.sorting',
'a.status',
'a.istop',
'a.isrecommend',
'a.isheadline',
'a.visits',
'a.ico',
'a.pics',
'a.filename',
'a.outlink',
'd.urlname',
'b.filename as sortfilename'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_sort c',
'a.subscode=c.scode',
'LEFT'
),
array(
'ay_model d',
'b.mcode=d.mcode',
'LEFT'
)
);
$this->scodes = array(); // 先清空
$scodes = $this->getSubScodes($scode);
return parent::table('ay_content a')->field($fields)
->where("b.mcode='$mcode'")
->where('d.type=2 OR d.type is null ')
->where("a.acode='" . session('acode') . "'")
->in('a.scode', $scodes)
->like('a.title', $keyword)
->join($join)
->order('a.sorting ASC,a.id DESC')
->page()
->select();
}
// 在全部栏目查找文章
public function findContentAll($mcode, $keyword)
{
$fields = array(
'a.id',
'b.name as sortname',
'a.scode',
'c.name as subsortname',
'a.subscode',
'a.title',
'a.subtitle',
'a.date',
'a.sorting',
'a.status',
'a.istop',
'a.isrecommend',
'a.isheadline',
'a.visits',
'a.ico',
'a.pics',
'a.filename',
'a.outlink',
'd.urlname',
'b.filename as sortfilename'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_sort c',
'a.subscode=c.scode',
'LEFT'
),
array(
'ay_model d',
'b.mcode=d.mcode',
'LEFT'
)
);
return parent::table('ay_content a')->field($fields)
->where("b.mcode='$mcode'")
->where('d.type=2 OR d.type is null ')
->where("a.acode='" . session('acode') . "'")
->like('a.title', $keyword)
->join($join)
->order('a.sorting ASC,a.id DESC')
->page()
->select();
}
// 获取子栏目
public function getSubScodes($scode)
{
if (! $scode) {
return;
}
$this->scodes[] = $scode;
$subs = parent::table('ay_content_sort')->where("pcode='$scode'")->column('scode');
if ($subs) {
foreach ($subs as $value) {
$this->getSubScodes($value);
}
}
return $this->scodes;
}
// 检查文章
public function checkContent($where)
{
return parent::table('ay_content')->field('id')
->where($where)
->find();
}
// 获取文章详情
public function getContent($id)
{
$field = array(
'a.*',
'b.name as sortname',
'c.name as subsortname',
'd.*'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_sort c',
'a.subscode=c.scode',
'LEFT'
),
array(
'ay_content_ext d',
'a.id=d.contentid',
'LEFT'
)
);
return parent::table('ay_content a')->field($field)
->where("a.id=$id")
->where("a.acode='" . session('acode') . "'")
->join($join)
->find();
}
// 添加文章
public function addContent(array $data)
{
return parent::table('ay_content')->autoTime()->insertGetId($data);
}
// 删除文章
public function delContent($id)
{
return parent::table('ay_content')->where("id=$id")
->where("acode='" . session('acode') . "'")
->delete();
}
// 删除文章
public function delContentList($ids)
{
return parent::table('ay_content')->where("acode='" . session('acode') . "'")->delete($ids);
}
// 修改文章
public function modContent($id, $data)
{
return parent::table('ay_content')->autoTime()
->in('id', $id)
->where("acode='" . session('acode') . "'")
->update($data);
}
// 复制内容到指定栏目
public function copyContent($ids, $scode)
{
// 查找出要复制的主内容
$data = parent::table('ay_content')->in('id', $ids)->select(1);
foreach ($data as $key => $value) {
// 查找扩展内容
$extdata = parent::table('ay_content_ext')->where('contentid=' . $value['id'])->find(1);
// 去除主键并修改栏目
unset($value['id']);
$value['scode'] = $scode;
// 插入主内容
$id = parent::table('ay_content')->insertGetId($value);
// 插入扩展内容
if ($id && $extdata) {
unset($extdata['extid']);
$extdata['contentid'] = $id;
$result = parent::table('ay_content_ext')->insert($extdata);
} else {
$result = $id;
}
}
return $result;
}
// 查找文章扩展内容
public function findContentExt($id)
{
return parent::table('ay_content_ext')->where("contentid=$id")->find();
}
// 添加文章扩展内容
public function addContentExt(array $data)
{
return parent::table('ay_content_ext')->insert($data);
}
// 修改文章扩展内容
public function modContentExt($id, $data)
{
return parent::table('ay_content_ext')->where("contentid=$id")->update($data);
}
// 删除文章扩展内容
public function delContentExt($id)
{
return parent::table('ay_content_ext')->where("contentid=$id")->delete();
}
// 删除文章扩展内容
public function delContentExtList($ids)
{
return parent::table('ay_content_ext')->delete($ids, 'contentid');
}
// 检查自定义URL名称
public function checkFilename($filename, $where = array())
{
return parent::table('ay_content')->field('id')
->where("filename='$filename'")
->where($where)
->find();
}
}

View File

@@ -0,0 +1,261 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年12月26日
* 内容栏目模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class ContentSortModel extends Model
{
// 存储分类及子编码
protected $scodes = array();
// 获取内容栏目列表
public function getList()
{
$field = array(
'a.*',
'b.type',
'b.urlname'
);
$join = array(
'ay_model b',
'a.mcode=b.mcode',
'LEFT'
);
$result = parent::table('ay_content_sort a')->field($field)
->where("a.acode='" . session('acode') . "'")
->join($join)
->order('a.pcode,a.sorting,a.id')
->select();
$tree = get_tree($result, 0, 'scode', 'pcode');
return $tree;
}
// 获取内容栏目选择列表
public function getSelect()
{
$result = parent::table('ay_content_sort')->field('pcode,scode,name')
->where("acode='" . session('acode') . "'")
->order('pcode,sorting,id')
->select();
$tree = get_tree($result, 0, 'scode', 'pcode');
return $tree;
}
// 获取单页内容栏目选择列表
public function getSingleSelect()
{
$field = array(
'a.pcode',
'a.scode',
'a.name',
'a.outlink'
);
$join = array(
'ay_model b',
'a.mcode=b.mcode',
'LEFT'
);
$result = parent::table('ay_content_sort a')->field($field)
->where('b.type=1')
->where("a.outlink=''")
->where("a.acode='" . session('acode') . "'")
->notIn('a.scode', 'select scode from ay_content')
->join($join)
->order('a.pcode,a.sorting,a.id')
->select();
return $result;
}
// 获取列表内容栏目选择列表
public function getListSelect($mcode)
{
$field = array(
'a.pcode',
'a.scode',
'a.name',
'a.outlink'
);
$join = array(
'ay_model b',
'a.mcode=b.mcode',
'LEFT'
);
$result = parent::table('ay_content_sort a')->field($field)
->where('b.type=2')
->where("a.outlink=''")
->where("a.mcode='$mcode'")
->where("a.acode='" . session('acode') . "'")
->join($join)
->order('a.pcode,a.sorting,a.id')
->select();
$tree = get_tree($result, 0, 'scode', 'pcode');
// 对于父栏目非列表的栏目进行追加到后面
foreach ($result as $value) {
if ($value->pcode != 0 && result_value_search($value->pcode, $result, 'scode') === false) {
$value->son = get_tree($result, $value->scode, 'scode', 'pcode');
$tree[] = $value;
}
}
return $tree;
}
// 检查内容栏目
public function checkSort($where)
{
return parent::table('ay_content_sort')->field('id')
->where($where)
->find();
}
// 获取内容栏目详情
public function getSort($scode)
{
$field = array(
'a.*',
'b.type'
);
$join = array(
'ay_model b',
'a.mcode=b.mcode',
'LEFT'
);
return parent::table('ay_content_sort a')->field($field)
->where("a.scode='$scode'")
->where("a.acode='" . session('acode') . "'")
->join($join)
->find();
}
// 获取最后一个code
public function getLastCode()
{
return parent::table('ay_content_sort')->order('id DESC')->value('scode');
}
// 添加内容栏目
public function addSort(array $data)
{
return parent::table('ay_content_sort')->autoTime()->insert($data);
}
// 删除内容栏目及内容
public function delSort($scode)
{
$this->scodes = array(); // 先清空
$scodes = $this->getSubScodes($scode); // 获取全部子类
$this->delContent($scodes);
return parent::table('ay_content_sort')->in('scode', $scodes)
->where("acode='" . session('acode') . "'")
->delete();
}
// 批量删除栏目及内容
public function delSortList($scodes)
{
$this->scodes = array(); // 先清空
foreach ($scodes as $value) {
$allscode = $this->getSubScodes($value); // 获取全部子类
}
$this->delContent($allscode);
return parent::table('ay_content_sort')->in('scode', $allscode)
->where("acode='" . session('acode') . "'")
->delete();
}
// 修改内容栏目资料
public function modSort($scode, $data, $modsub = false)
{
if ($modsub) {
// 同步修改子栏目模型及模板
$scodes = $this->getSubScodes($scode);
$subdata = array(
'mcode' => $data['mcode'],
'listtpl' => $data['listtpl'],
'contenttpl' => $data['contenttpl']
);
parent::table('ay_content_sort')->in('scode', $scodes)
->where("acode='" . session('acode') . "'")
->update($subdata);
}
$result = parent::table('ay_content_sort')->autoTime()
->where("scode='$scode'")
->where("acode='" . session('acode') . "'")
->update($data);
return $result;
}
// 修改内容栏目排序
public function modSortSorting($id, $data)
{
$result = parent::table('ay_content_sort')->autoTime()
->where("id='$id'")
->where("acode='" . session('acode') . "'")
->update($data);
return $result;
}
// 查找指定单页内容
public function findContent($scode)
{
return parent::table('ay_content')->where("scode='$scode'")->find();
}
// 添加单篇文章
public function addSingle(array $data)
{
return parent::table('ay_content')->autoTime()->insert($data);
}
// 删除指定栏目文章
public function delContent($scodes)
{
return parent::table('ay_content')->in('scode', $scodes)->delete();
}
// 分类子类集
private function getSubScodes($scode)
{
if (! $scode) {
return;
}
$this->scodes[] = $scode;
$subs = parent::table('ay_content_sort')->where("pcode='$scode'")->column('scode');
if ($subs) {
foreach ($subs as $value) {
$this->getSubScodes($value);
}
}
return $this->scodes;
}
// 检查自定义URL名称
public function checkFilename($filename, $where = array())
{
return parent::table('ay_content_sort')->field('id')
->where("filename='$filename'")
->where($where)
->find();
}
// 检查URL名字冲突
public function checkUrlname($filename)
{
return parent::table('ay_model')->field('id')
->where("urlname='$filename'")
->find();
}
// 获取当前主题
public function getTheme()
{
return parent::table('ay_site')->where("acode='" . session('acode') . "'")->value('theme');
}
}

View File

@@ -0,0 +1,87 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2018年4月7日
* 扩展字段模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class ExtFieldModel extends Model
{
// 获取扩展字段列表
public function getList()
{
return parent::table('ay_extfield')->order('mcode asc,sorting asc,id asc')
->page()
->select();
}
// 查找扩展字段
public function findExtField($field, $keyword)
{
return parent::table('ay_extfield')->like($field, $keyword)
->order('mcode asc,sorting asc,id asc')
->page()
->select();
}
// 检查扩展字段
public function checkExtField($name)
{
return parent::table('ay_extfield')->where("name='$name'")->find();
}
// 获取模型字段
public function getModelField($mcode)
{
return parent::table('ay_extfield')->where("mcode='$mcode'")
->order('sorting asc,id asc')
->select();
}
// 获取扩展字段详情
public function getExtField($id)
{
return parent::table('ay_extfield')->where("id=$id")->find();
}
// 获取扩展字段名称
public function getExtFieldName($id)
{
return parent::table('ay_extfield')->where("id=$id")->value('name');
}
// 添加扩展字段
public function addExtField(array $data)
{
return parent::table('ay_extfield')->insert($data);
}
// 删除扩展字段
public function delExtField($id)
{
return parent::table('ay_extfield')->where("id=$id")->delete();
}
// 修改扩展字段
public function modExtField($id, $data)
{
return parent::table('ay_extfield')->where("id=$id")->update($data);
}
// 判断字段是否存在
public function isExistField($field)
{
$fields = parent::tableFields('ay_content_ext');
if (in_array($field, $fields)) {
return true;
} else {
return false;
}
}
}

View File

@@ -0,0 +1,238 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2018年5月28日
* 自定义表单模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class FormModel extends Model
{
// 获取自定义表单列表
public function getList()
{
return parent::table('ay_form')->page()->select();
}
// 查找自定义表单
public function findForm($field, $keyword)
{
return parent::table('ay_form')->like($field, $keyword)
->page()
->select();
}
// 获取最后一个code
public function getLastCode()
{
return parent::table('ay_form')->order('id DESC')->value('fcode');
}
// 获取自定义表单详情
public function getForm($id)
{
return parent::table('ay_form')->where("id=$id")->find();
}
// 获取自定义表单详情
public function getFormByCode($fcode)
{
return parent::table('ay_form')->where("fcode='$fcode'")->find();
}
// 获取自定义表单表
public function getFormTable($id)
{
return parent::table('ay_form')->where("id=$id")->value('table_name');
}
// 获取自定义表单表
public function getFormCode($id)
{
return parent::table('ay_form')->where("id=$id")->value('fcode');
}
// 获取自定义表单表
public function getFormTableByCode($fcode)
{
return parent::table('ay_form')->where("fcode='$fcode'")->value('table_name');
}
// 添加自定义表单
public function addForm(array $data)
{
return parent::table('ay_form')->autoTime()->insert($data);
}
// 删除自定义表单
public function delForm($id)
{
$form = parent::table('ay_form')->field('fcode,form_name')
->where("id=$id")
->find();
// 删除可能存在的菜单
if (! ! $rs = parent::table('ay_menu')->like('url', '/Form/index/fcode/' . $form->fcode . '/action/showdata')->find()) {
parent::table('ay_menu')->where("mcode='" . $rs->mcode . "'")->delete();
$menu = session('menu_tree');
foreach ($menu as $key => $value) {
if (! ! $delkey = result_value_search($rs->mcode, $menu[$key]->son, 'mcode')) {
unset($menu[$key]->son[$delkey]);
}
}
}
$result = parent::table('ay_form')->where("id=$id")->delete(); // 删除表单
return $result;
}
// 修改自定义表单
public function modForm($id, $data)
{
return parent::table('ay_form')->where("id=$id")
->autoTime()
->update($data);
}
// 获取表单字段
public function getFormFieldByCode($fcode)
{
return parent::table('ay_form_field')->where("fcode='$fcode'")
->order('sorting ASC,id ASC')
->select();
}
// 获取字段详情
public function getFormField($id)
{
return parent::table('ay_form_field')->where("id=$id")->find();
}
// 检查表单字段
public function checkFormField($fcode, $name)
{
return parent::table('ay_form_field')->where("fcode='$fcode' AND name='$name'")->find();
}
// 获取表单字段名称
public function getFormFieldName($id)
{
return parent::table('ay_form_field')->where("id=$id")->value('name');
}
// 新增表单字段
public function addFormField(array $data)
{
return parent::table('ay_form_field')->autoTime()->insert($data);
}
// 删除表单字段
public function delFormField($id)
{
return parent::table('ay_form_field')->where("id=$id")->delete();
}
// 删除表单字段
public function delFormFieldByCode($fcode)
{
return parent::table('ay_form_field')->where("fcode='$fcode'")->delete();
}
// 修改表单字段
public function modFormField($id, $data)
{
return parent::table('ay_form_field')->where("id=$id")
->autoTime()
->update($data);
}
// 判断字段是否存在
public function isExistField($table, $field)
{
$fields = parent::tableFields($table);
if (in_array($field, $fields)) {
return true;
} else {
return false;
}
}
// 获取表单数据
public function getFormData($table, $page = true)
{
return parent::table($table)->page($page)
->order('id DESC')
->select();
}
// 删除自定义表单数据
public function delFormData($table, $id)
{
return parent::table($table)->where("id=$id")->delete();
}
// 清空自定义表单数据
public function clearFormData($table)
{
return parent::table($table)->delete();
}
// 增加表单数据查看到菜单
public function addFormMenu($id)
{
$form = parent::table('ay_form')->field('fcode,form_name')
->where("id=$id")
->find();
$menus = session('menu_tree');
// 判断是否已经在菜单中
if (! ! $menu = parent::table('ay_menu')->like('url', '/Form/index/fcode/' . $form->fcode . '/action/showdata')->find()) {
if ($form->form_name != $menu->name) {
// 更新缓存菜单
parent::table('ay_menu')->where('mcode="' . $menu->mcode . '"')->update('name="' . $form->form_name . '"');
foreach ($menus as $key => $value) {
if ($value->mcode == 'M157') {
if (($skey = result_value_search($menu->mcode, $menus[$key]->son, 'mcode')) !== false) {
$menus[$key]->son[$skey]->name = $form->form_name;
}
break;
}
}
}
return false;
}
// 构建数据
$lastmcode = parent::table('ay_menu')->order('mcode DESC')->value('mcode');
$mcode = get_auto_code($lastmcode);
$data = array(
'mcode' => $mcode,
'pcode' => 'M157',
'name' => $form->form_name,
'url' => '/Form/index/fcode/' . $form->fcode . '/action/showdata',
'sorting' => 599,
'status' => 1,
'shortcut' => 0,
'ico' => 'fa-plus-square-o',
'create_user' => session('username'),
'update_user' => session('username')
);
// 加入菜单
foreach ($menus as $key => $value) {
if ($value->mcode == 'M157') {
// 未在缓存菜单中才执行添加
if (result_value_search($mcode, $menus[$key]->son, 'mcode') === false) {
$menus[$key]->son[] = array_to_object($data);
return parent::table('ay_menu')->autoTime()->insert($data); // 插入到数据库
}
break;
}
}
}
}

View File

@@ -0,0 +1,70 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2018年03月23日
* 自定义标签模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class LabelModel extends Model
{
// 获取自定义标签列表
public function getList()
{
return parent::table('ay_label')->select();
}
// 检查自定义标签
public function checkLabel($where)
{
return parent::table('ay_label')->field('id')
->where($where)
->find();
}
// 获取自定义标签详情
public function getLabel($id)
{
return parent::table('ay_label')->where("id=$id")->find();
}
// 添加自定义标签
public function addLabel(array $data)
{
return parent::table('ay_label')->autoTime()->insert($data);
}
// 删除自定义标签
public function delLabel($id)
{
return parent::table('ay_label')->where("id='$id'")->delete();
}
// 修改自定义标签
public function modLabel($id, $data)
{
return parent::table('ay_label')->where("id=$id")
->autoTime()
->update($data);
}
// 修改自定义标签值
public function modValue($name, $value)
{
return parent::table('ay_label')->where("name='$name'")
->autoTime()
->update("value='$value'");
}
// 获取配置参数
public function getValue()
{
return parent::table('ay_label')->column('value', 'name');
}
}

View File

@@ -0,0 +1,80 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2018年3月1日
* 友情链接模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class LinkModel extends Model
{
// 获取友情链接列表
public function getList()
{
return parent::table('ay_link')->where("acode='" . session('acode') . "'")
->order('gid asc,sorting asc,id asc')
->page()
->select();
}
// 查找友情链接
public function findLink($field, $keyword)
{
return parent::table('ay_link')->where("acode='" . session('acode') . "'")
->like($field, $keyword)
->order('gid asc,sorting asc,id asc')
->page()
->select();
}
// 获取友情链接详情
public function getLink($id)
{
return parent::table('ay_link')->where("id=$id")
->where("acode='" . session('acode') . "'")
->find();
}
// 获取分组
public function getGid()
{
return parent::table('ay_link')->distinct()
->where("acode='" . session('acode') . "'")
->order('gid')
->column('gid');
}
// 获取最大分组值
public function getMaxGid()
{
return parent::table('ay_link')->max('gid');
}
// 添加友情链接
public function addLink(array $data)
{
return parent::table('ay_link')->autoTime()->insert($data);
}
// 删除友情链接
public function delLink($id)
{
return parent::table('ay_link')->where("id=$id")
->where("acode='" . session('acode') . "'")
->delete();
}
// 修改友情链接
public function modLink($id, $data)
{
return parent::table('ay_link')->autoTime()
->where("id=$id")
->where("acode='" . session('acode') . "'")
->update($data);
}
}

View File

@@ -0,0 +1,99 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年3月29日
* 留言模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class MessageModel extends Model
{
// 获取列表
public function getList($page = true)
{
$field = array(
'a.*',
'b.username',
'b.nickname',
'b.headpic'
);
$join = array(
'ay_member b',
'a.uid=b.id',
'LEFT'
);
return parent::table('ay_message a')->field($field)
->join($join)
->where("a.acode='" . session('acode') . "'")
->order('a.id DESC')
->decode(false)
->page($page)
->select();
}
// 获取详情
public function getMessage($id)
{
$field = array(
'a.*',
'b.username',
'b.nickname',
'b.headpic'
);
$join = array(
'ay_member b',
'a.uid=b.id',
'LEFT'
);
return parent::table('ay_message a')->field($field)
->join($join)
->where("a.id=$id")
->where("a.acode='" . session('acode') . "'")
->find();
}
// 删除留言
public function delMessage($id)
{
return parent::table('ay_message')->where("id=$id")
->where("acode='" . session('acode') . "'")
->delete();
}
// 修改留言
public function modMessage($id, $data)
{
return parent::table('ay_message')->autoTime()
->where("id=$id")
->where("acode='" . session('acode') . "'")
->update($data);
}
// 获取表单字段
public function getFormFieldByCode($fcode)
{
return parent::table('ay_form_field')->where("fcode='$fcode'")
->order('sorting ASC,id ASC')
->select();
}
// 获取留言数量
public function getCount()
{
$rs = parent::table('ay_message')->field('count(*) as count')
->where("acode='" . session('acode') . "'")
->find();
return $rs->count ?: 0;
}
// 删除全部
public function clearMessage()
{
return parent::table('ay_message')->delete();
}
}

View File

@@ -0,0 +1,140 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2018年3月25日
* 内容模型模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class ModelModel extends Model
{
// 获取内容模型列表
public function getList()
{
return parent::table('ay_model')->order('id ASC')
->page()
->select();
}
// 获取模型名称
public function getName($mcode)
{
return parent::table('ay_model')->where("mcode='$mcode'")->value('name');
}
// 获取内容模型选择
public function getSelectAll()
{
return parent::table('ay_model')->field('mcode,name,type,listtpl,contenttpl')
->order('id ASC')
->select();
}
// 获取内容模型选择
public function getModelMenu()
{
return parent::table('ay_model')->field('mcode,name,type')
->where('status=1')
->order('id ASC')
->select();
}
// 获取模型内容数量
public function getModelCount($mcode)
{
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_model d',
'b.mcode=d.mcode',
'LEFT'
)
);
return parent::table('ay_content a')->field('count(*) as count')
->where("b.mcode='$mcode'")
->where("a.acode='" . session('acode') . "'")
->join($join)
->find();
}
// 获取内容模型选择
public function getSelect()
{
return parent::table('ay_model')->field('mcode,name,type,listtpl,contenttpl')
->where('status=1')
->order('id ASC')
->select();
}
// 查找内容模型
public function findModel($field, $keyword)
{
return parent::table('ay_model')->like($field, $keyword)
->page()
->select();
}
// 获取最后一个code
public function getLastCode()
{
return parent::table('ay_model')->order('id DESC')->value('mcode');
}
// 获取内容模型详情
public function getModel($id)
{
return parent::table('ay_model')->where("id=$id")->find();
}
// 添加内容模型
public function addModel(array $data)
{
return parent::table('ay_model')->autoTime()->insert($data);
}
// 删除内容模型
public function delModel($id)
{
$model = parent::table('ay_model')->where('id=' . $id)->find();
if (parent::table('ay_content_sort')->where("mcode='$model->mcode'")->find()) {
alert_back('模型下面有栏目,不允许直接删除!');
}
return parent::table('ay_model')->where("id=$id")
->where("issystem=0")
->delete();
}
// 修改内容模型
public function modModel($id, $data)
{
return parent::table('ay_model')->autoTime()
->where("id=$id")
->update($data);
}
// 检查URL名字冲突
public function checkUrlname($urlname, $type, $where = array())
{
return parent::table('ay_model')->field('id')
->where("urlname='$urlname' AND type<>$type")
->where($where)
->find();
}
// 检查栏目名字冲突
public function checkSortFilename($urlname)
{
return parent::table('ay_content_sort')->field('id')
->where("filename='$urlname'")
->find();
}
}

View File

@@ -0,0 +1,196 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年12月15日
* 单页文章模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class SingleModel extends Model
{
// 获取文章列表
public function getList($mcode)
{
$field = array(
'a.id',
'a.scode',
'b.name as sortname',
'a.title',
'a.date',
'a.status',
'a.visits',
'b.mcode',
'a.ico',
'a.pics',
'a.outlink',
'b.filename',
'c.urlname'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_model c',
'b.mcode=c.mcode',
'LEFT'
)
);
return parent::table('ay_content a')->distinct()
->field($field)
->where("b.mcode='$mcode'")
->where("a.acode='" . session('acode') . "'")
->where('c.type=1')
->join($join)
->where('a.id IN(SELECT MAX(d.id) FROM ay_content d WHERE d.scode=a.scode)')
->order('a.id DESC')
->select();
}
// 查找文章
public function findSingle($mcode, $field, $keyword)
{
$fields = array(
'a.id',
'a.scode',
'b.name as sortname',
'a.title',
'a.date',
'a.status',
'a.visits',
'b.mcode',
'a.ico',
'a.pics',
'a.outlink',
'b.filename',
'c.urlname'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_model c',
'b.mcode=c.mcode',
'LEFT'
)
);
return parent::table('ay_content a')->distinct()
->field($fields)
->where("b.mcode='$mcode'")
->where("a.acode='" . session('acode') . "'")
->where('c.type=1')
->like($field, $keyword)
->join($join)
->group('b.name')
->order('a.id DESC')
->select();
}
// 检查文章
public function checkSingle($where)
{
return parent::table('ay_content')->field('id')
->where($where)
->find();
}
// 获取文章详情
public function getSingle($id)
{
$field = array(
'a.*',
'b.name as sortname',
'c.*',
'b.filename',
'd.urlname'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_ext c',
'a.id=c.contentid',
'LEFT'
),
array(
'ay_model d',
'b.mcode=d.mcode',
'LEFT'
)
);
return parent::table('ay_content a')->field($field)
->where("a.id=$id")
->where("a.acode='" . session('acode') . "'")
->join($join)
->find();
}
// 添加文章
public function addSingle(array $data)
{
return parent::table('ay_content')->autoTime()->insert($data);
}
// 删除文章
public function delSingle($id)
{
return parent::table('ay_content')->where("id=$id")
->where("acode='" . session('acode') . "'")
->delete();
}
// 修改文章
public function modSingle($id, $data)
{
return parent::table('ay_content')->autoTime()
->where("id=$id")
->where("acode='" . session('acode') . "'")
->update($data);
}
// 查找文章扩展内容
public function findContentExt($id)
{
return parent::table('ay_content_ext')->where("contentid=$id")->find();
}
// 添加文章扩展内容
public function addContentExt(array $data)
{
return parent::table('ay_content_ext')->insert($data);
}
// 修改文章扩展内容
public function modContentExt($id, $data)
{
return parent::table('ay_content_ext')->where("contentid=$id")->update($data);
}
// 删除文章扩展内容
public function delContentExt($id)
{
return parent::table('ay_content_ext')->where("contentid=$id")->delete();
}
// 检查自定义URL名称
public function checkFilename($where)
{
return parent::table('ay_content')->field('id')
->where($where)
->find();
}
}

View File

@@ -0,0 +1,45 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年3月24日
* 站点配置模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class SiteModel extends Model
{
// 获取系统配置信息
public function getList()
{
return parent::table('ay_site')->where("acode='" . session('acode') . "'")->find();
}
// 检查系统配置信息
public function checkSite()
{
return parent::table('ay_site')->where("acode='" . session('acode') . "'")->find();
}
// 增加系统配置信息
public function addSite($data)
{
return parent::table('ay_site')->insert($data);
}
// 修改系统配置信息
public function modSite($data)
{
return parent::table('ay_site')->where("acode='" . session('acode') . "'")->update($data);
}
// 系统数据库版本
public function getMysql()
{
return parent::one('SELECT VERSION()', MYSQLI_NUM);
}
}

View File

@@ -0,0 +1,80 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2018年3月1日
* 轮播图模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class SlideModel extends Model
{
// 获取轮播图列表
public function getList()
{
return parent::table('ay_slide')->where("acode='" . session('acode') . "'")
->order('gid asc,sorting asc,id asc')
->page()
->select();
}
// 查找轮播图
public function findSlide($field, $keyword)
{
return parent::table('ay_slide')->where("acode='" . session('acode') . "'")
->like($field, $keyword)
->order('gid asc,sorting asc,id asc')
->page()
->select();
}
// 获取轮播图详情
public function getSlide($id)
{
return parent::table('ay_slide')->where("id=$id")
->where("acode='" . session('acode') . "'")
->find();
}
// 获取分组
public function getGid()
{
return parent::table('ay_slide')->distinct()
->where("acode='" . session('acode') . "'")
->order('gid')
->column('gid');
}
// 获取最大分组值
public function getMaxGid()
{
return parent::table('ay_slide')->max('gid');
}
// 添加轮播图
public function addSlide(array $data)
{
return parent::table('ay_slide')->autoTime()->insert($data);
}
// 删除轮播图
public function delSlide($id)
{
return parent::table('ay_slide')->where("id=$id")
->where("acode='" . session('acode') . "'")
->delete();
}
// 修改轮播图
public function modSlide($id, $data)
{
return parent::table('ay_slide')->autoTime()
->where("id=$id")
->where("acode='" . session('acode') . "'")
->update($data);
}
}

View File

@@ -0,0 +1,65 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2019年07月12日
* 内链链接模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class TagsModel extends Model
{
// 获取文章内链列表
public function getList()
{
return parent::table('ay_tags')->where("acode='" . session('acode') . "'")
->order('id asc')
->page()
->select();
}
// 查找文章内链
public function findTags($field, $keyword)
{
return parent::table('ay_tags')->where("acode='" . session('acode') . "'")
->like($field, $keyword)
->order('id asc')
->page()
->select();
}
// 获取文章内链详情
public function getTags($id)
{
return parent::table('ay_tags')->where("id=$id")
->where("acode='" . session('acode') . "'")
->find();
}
// 添加文章内链
public function addTags(array $data)
{
return parent::table('ay_tags')->autoTime()->insert($data);
}
// 删除文章内链
public function delTags($id)
{
return parent::table('ay_tags')->where("id=$id")
->where("acode='" . session('acode') . "'")
->delete();
}
// 修改文章内链
public function modTags($id, $data)
{
return parent::table('ay_tags')->autoTime()
->where("id=$id")
->where("acode='" . session('acode') . "'")
->update($data);
}
}

View File

@@ -0,0 +1,136 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2020年06月27日
* 文章评论模型类
*/
namespace app\admin\model\member;
use core\basic\Model;
class MemberCommentModel extends Model
{
// 获取列表
public function getList()
{
$field = array(
'a.*',
'b.title',
'c.username',
'c.nickname',
'c.headpic'
);
$join = array(
array(
'ay_content b',
'a.contentid=b.id',
'LEFT'
),
array(
'ay_member c',
'a.uid=c.id',
'LEFT'
)
);
return parent::table('ay_member_comment a')->field($field)
->join($join)
->order('a.id desc')
->page()
->select();
}
// 查找
public function findComment($field, $keyword)
{
$fields = array(
'a.*',
'b.title',
'c.username',
'c.nickname',
'c.headpic'
);
$join = array(
array(
'ay_content b',
'a.contentid=b.id',
'LEFT'
),
array(
'ay_member c',
'a.uid=c.id',
'LEFT'
)
);
return parent::table('ay_member_comment a')->field($fields)
->join($join)
->like($field, $keyword)
->order('a.id desc')
->page()
->select();
}
// 获取详情
public function getComment($id)
{
$field = array(
'a.*',
'b.title',
'c.username',
'c.nickname',
'c.headpic',
'd.username as pusername',
'd.nickname as pnickname'
);
$join = array(
array(
'ay_content b',
'a.contentid=b.id',
'LEFT'
),
array(
'ay_member c',
'a.uid=c.id',
'LEFT'
),
array(
'ay_member d',
'a.puid=d.id',
'LEFT'
)
);
return parent::table('ay_member_comment a')->field($field)
->join($join)
->where("a.id=$id")
->find();
}
// 删除
public function delComment($id)
{
return parent::table('ay_member_comment')->where("id=$id")->delete();
}
// 删除多个
public function delCommentList($ids)
{
return parent::table('ay_member_comment')->delete($ids);
}
// 修改
public function modComment($id, $data)
{
return parent::table('ay_member_comment')->where("id=$id")
->autoTime()
->update($data);
}
// 修改多个
public function modCommentList($ids, $data)
{
return parent::table('ay_member_comment')->in('id', $ids)->update($data);
}
}

View File

@@ -0,0 +1,79 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2020年06月25日
* 会员字段模型类
*/
namespace app\admin\model\member;
use core\basic\Model;
class MemberFieldModel extends Model
{
// 获取会员字段列表
public function getList()
{
return parent::table('ay_member_field')->order('sorting asc,id asc')
->page()
->select();
}
// 查找会员字段
public function findField($field, $keyword)
{
return parent::table('ay_member_field')->like($field, $keyword)
->order('sorting asc,id asc')
->page()
->select();
}
// 检查会员字段
public function checkField($name)
{
return parent::table('ay_member_field')->where("name='$name'")->find();
}
// 获取会员字段详情
public function getField($id)
{
return parent::table('ay_member_field')->where("id=$id")->find();
}
// 获取会员字段名称
public function getFieldName($id)
{
return parent::table('ay_member_field')->where("id=$id")->value('name');
}
// 添加会员字段
public function addField(array $data)
{
return parent::table('ay_member_field')->autoTime()->insert($data);
}
// 删除会员字段
public function delField($id)
{
return parent::table('ay_member_field')->where("id=$id")->delete();
}
// 修改会员字段
public function modField($id, $data)
{
return parent::table('ay_member_field')->where("id=$id")->update($data);
}
// 判断字段是否存在
public function isExistField($field)
{
$fields = parent::tableFields('ay_member');
if (in_array($field, $fields)) {
return true;
} else {
return false;
}
}
}

View File

@@ -0,0 +1,98 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2020年06月25日
* 会员等级模型类
*/
namespace app\admin\model\member;
use core\basic\Model;
class MemberGroupModel extends Model
{
// 获取会员等级列表
public function getList()
{
return parent::table('ay_member_group')->order('gcode,id')
->page()
->select();
}
// 查找会员等级
public function findGroup($field, $keyword)
{
return parent::table('ay_member_group')->like($field, $keyword)
->order('gcode,id')
->page()
->select();
}
// 获取最后一个code
public function getLastGid()
{
return parent::table('ay_member_group')->order('id DESC')->value('gcode');
}
// 获取等级选择列表
public function getSelect()
{
return parent::table('ay_member_group')->field('id,gcode,gname')
->order('gcode,id')
->select();
}
// 获取会员等级详情
public function getGroup($id)
{
return parent::table('ay_member_group')->where("id=$id")->find();
}
// 获取会员等级名称
public function getGroupName($id)
{
return parent::table('ay_member_group')->where("id=$id")->value('gname');
}
// 添加会员等级
public function addGroup(array $data)
{
return parent::table('ay_member_group')->autoTime()->insert($data);
}
// 删除会员等级
public function delGroup($id)
{
return parent::table('ay_member_group')->where("id=$id")->delete();
}
// 修改会员等级
public function modGroup($id, $data)
{
return parent::table('ay_member_group')->where("id=$id")->update($data);
}
// 查找等级下会员是否存在
public function findGroupUser($id)
{
return parent::table('ay_member')->field('id')
->where("gid=$id")
->find();
}
// 查找等级编号
public function findGroupCode($gcode, $id = null)
{
if ($id) {
return parent::table('ay_member_group')->field('id')
->where("gcode='$gcode' and id<>$id")
->find();
} else {
return parent::table('ay_member_group')->field('id')
->where("gcode='$gcode'")
->find();
}
}
}

View File

@@ -0,0 +1,122 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2019年10月05日
* 会员模型类
*/
namespace app\admin\model\member;
use core\basic\Model;
class MemberModel extends Model
{
// 获取会员列表
public function getList()
{
$field = array(
'a.*',
'b.gname'
);
$join = array(
'ay_member_group b',
'a.gid=b.id',
'LEFT'
);
return parent::table('ay_member a')->field($field)
->join($join)
->order('a.id desc')
->page()
->select();
}
// 查找会员
public function findMember($field, $keyword)
{
$fields = array(
'a.*',
'b.gname'
);
$join = array(
'ay_member_group b',
'a.gid=b.id',
'LEFT'
);
return parent::table('ay_member a')->field($fields)
->join($join)
->like($field, $keyword)
->order('a.id desc')
->page()
->select();
}
// 检查会员
public function checkMember($where)
{
return parent::table('ay_member')->where($where)->find();
}
// 获取最后一个code
public function getLastCode()
{
return parent::table('ay_member')->order('id DESC')->value('ucode');
}
// 获取会员详情
public function getMember($id)
{
$field = array(
'a.*',
'b.gname'
);
$join = array(
'ay_member_group b',
'a.gid=b.id',
'LEFT'
);
return parent::table('ay_member a')->field($field)
->join($join)
->where("a.id=$id")
->find();
}
// 添加会员
public function addMember(array $data)
{
return parent::table('ay_member')->insert($data);
}
// 删除会员
public function delMember($id)
{
return parent::table('ay_member')->where("id=$id")->delete();
}
// 删除会员
public function delMemberList($ids)
{
return parent::table('ay_member')->delete($ids);
}
// 修改会员
public function modMember($id, $data)
{
return parent::table('ay_member')->where("id=$id")->update($data);
}
// 修改会员
public function modMemberList($ids, $data)
{
return parent::table('ay_member')->in('id', $ids)->update($data);
}
// 会员字段
public function getFields()
{
return parent::table('ay_member_field')->where('status=1')
->order('sorting')
->select();
}
}

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