first commit

This commit is contained in:
2025-06-25 10:53:11 +08:00
commit 9f374011ae
1240 changed files with 181139 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace app\model;
use think\Model;
use think\facade\Db;
class Account extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = $this->where('id', $id)->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace app\model;
use think\Model;
use think\facade\Db;
class AccountCategory extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = $this->where('id', $id)->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace app\model;
use think\Model;
use think\facade\Db;
class AccountChannel extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = $this->where('id', $id)->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+15
View File
@@ -0,0 +1,15 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
namespace app\model;
use think\Model;
class Admin extends Model
{
}
+15
View File
@@ -0,0 +1,15 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
namespace app\model;
use think\Model;
class AdminGroup extends Model
{
}
+45
View File
@@ -0,0 +1,45 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
declare(strict_types=1);
namespace app\model;
use think\Model;
class AdminLog extends Model
{
public function get_log_list($param = [])
{
$where = array();
if (!empty($param['no_delete'])) {
$where['type'] = ['neq', 'delete']; //过滤删除操作
}
if (!empty($param['no_admin'])) {
$where['uid'] = ['neq', 1]; //超级管理员删除操作
}
if (!empty($param['uid'])) {
$where['uid'] = $param['uid']; //查询指定用户的操作
}
$where['status'] = 1;
$rows = empty($param['limit']) ? get_config('app.pages') : $param['limit'];
$content = \think\facade\Db::name('AdminLog')
->field("id,uid,name,type,title,module,controller,function,subject,action,create_time,param")
->order('create_time desc')
->where($where)
->paginate($rows, false, ['query' => $param]);
$content->toArray();
foreach ($content as $k => $v) {
$data = $v;
$param_array = json_decode($v['param'], true);
$data['content'] = $v['name'] . $v['action'] . '了' . $v['subject'];
$data['times'] = time_trans($v['create_time']);
$content->offsetSet($k, $data);
}
return $content;
}
}
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Application extends Model
{
//详情
public function detail($id)
{
$detail = Db::name('application')->where(['id' => $id])->find();
if (!empty($detail)) {
// $detail['times'] = time_trans($detail['create_time']);
// $detail['logs'] = Db::name('Log')->where(['module' => 'applications', 'applications_id' => $detail['id']])->count();
$detail['year'] = Db::name('Application')->where('id', $detail['id'])->value('year');
$detail['name'] = Db::name('Application')->where(['id' => $detail['id']])->value('name');
$start_time = Db::name('Application')->where(['id' => $detail['id']])->value('start_time');
$end_time = Db::name('Application')->where(['id' => $detail['id']])->value('end_time');
// $detail['start_time'] = date('Y-m-d', $start_time);
// $detail['end_time'] = date('Y-m-d', $end_time);
$detail['start_time'] = !empty($start_time) ? date('Y-m-d', $start_time) : '待定';
$detail['end_time'] = !empty($end_time) ? date('Y-m-d', $end_time) : '待定';
$detail['status'] = Db::name('status_mapping')->where('id', $detail['status'])->value('description');
$detail['cate'] = Db::name('project_category')->where('id', $detail['cate'])->value('name');
$detail['schedule'] = Db::name('Application')->where(['id' => $detail['id']])->value('schedule');
$detail['remark'] = Db::name('Application')->where(['id' => $detail['id']])->value('remark');
}
return $detail;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Business extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = Db::name('business')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Businesscontact extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = Db::name('business')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
declare(strict_types=1);
namespace app\model;
use think\Model;
class Comment extends Model
{
public function get_list($param = [])
{
$where = array();
$where['a.module'] = $param['m'];
$where['a.topic_id'] = $param['tid'];
$where['a.delete_time'] = 0;
// $rows = empty($param['limit']) ? get_config('app.pages') : $param['limit'];
$content = \think\facade\Db::name('Comment')
->field('a.*,u.name,u.thumb,pu.name as pname')
->alias('a')
->join('Admin u', 'u.id = a.admin_id')
->leftjoin('Admin pu', 'pu.id = a.padmin_id')
->order('a.create_time desc')
->where($where)
->select()->toArray();
foreach ($content as $k => &$v) {
$v['times'] = time_trans($v['create_time']);
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
if ($v['update_time'] > 0) {
$v['update_time'] = ',最后编辑时间:' . time_trans($v['update_time']);
} else {
$v['update_time'] = '';
}
}
return $content;
}
}
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Department extends Model
{
//详情
public function detail($id)
{
$detail = Db::name('plan')->where(['id' => $id])->find();
if (!empty($detail)) {
// $detail['times'] = time_trans($detail['create_time']);
// $detail['logs'] = Db::name('Log')->where(['module' => 'plans', 'plans_id' => $detail['id']])->count();
$detail['year'] = Db::name('Plan')->where('id', $detail['id'])->value('year');
$detail['name'] = Db::name('Plan')->where(['id' => $detail['id']])->value('name');
$start_time = Db::name('Plan')->where(['id' => $detail['id']])->value('start_time');
$end_time = Db::name('Plan')->where(['id' => $detail['id']])->value('end_time');
// $detail['start_time'] = date('Y-m-d', $start_time);
// $detail['end_time'] = date('Y-m-d', $end_time);
$detail['start_time'] = !empty($start_time) ? date('Y-m-d', $start_time) : '待定';
$detail['end_time'] = !empty($end_time) ? date('Y-m-d', $end_time) : '待定';
$detail['status'] = Db::name('status_mapping')->where('id', $detail['status'])->value('description');
$detail['cate'] = Db::name('project_category')->where('id', $detail['cate'])->value('name');
$detail['schedule'] = Db::name('Plan')->where(['id' => $detail['id']])->value('schedule');
$detail['remark'] = Db::name('Plan')->where(['id' => $detail['id']])->value('remark');
}
return $detail;
}
}
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class DevelopmentLanguage extends Model
{
//详情
public function detail($id)
{
$detail = Db::name('plan')->where(['id' => $id])->find();
if (!empty($detail)) {
// $detail['times'] = time_trans($detail['create_time']);
// $detail['logs'] = Db::name('Log')->where(['module' => 'plans', 'plans_id' => $detail['id']])->count();
$detail['year'] = Db::name('Plan')->where('id', $detail['id'])->value('year');
$detail['name'] = Db::name('Plan')->where(['id' => $detail['id']])->value('name');
$start_time = Db::name('Plan')->where(['id' => $detail['id']])->value('start_time');
$end_time = Db::name('Plan')->where(['id' => $detail['id']])->value('end_time');
// $detail['start_time'] = date('Y-m-d', $start_time);
// $detail['end_time'] = date('Y-m-d', $end_time);
$detail['start_time'] = !empty($start_time) ? date('Y-m-d', $start_time) : '待定';
$detail['end_time'] = !empty($end_time) ? date('Y-m-d', $end_time) : '待定';
$detail['status'] = Db::name('status_mapping')->where('id', $detail['status'])->value('description');
$detail['cate'] = Db::name('project_category')->where('id', $detail['cate'])->value('name');
$detail['schedule'] = Db::name('Plan')->where(['id' => $detail['id']])->value('schedule');
$detail['remark'] = Db::name('Plan')->where(['id' => $detail['id']])->value('remark');
}
return $detail;
}
}
+51
View File
@@ -0,0 +1,51 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
declare(strict_types=1);
namespace app\model;
use think\facade\Db;
use think\Model;
class Document extends Model
{
public function get_list($param = [])
{
$where = array();
$where['a.module'] = $param['m'];
$where['a.topic_id'] = $param['tid'];
$where['a.delete_time'] = 0;
// $rows = empty($param['limit']) ? get_config('app.pages') : $param['limit'];
$content = Db::name('Document')
->field('a.*,u.name,u.thumb')
->alias('a')
->join('Admin u', 'u.id = a.admin_id')
->order('a.create_time desc')
->where($where)
->select()->toArray();
foreach ($content as $k => &$v) {
$v['create_time'] = date('Y-m-d H:i', $v['create_time']);
if ($v['update_time'] > 0) {
$v['update_time'] = date('Y-m-d H:i', $v['update_time']);
} else {
$v['update_time'] = '-';
}
}
return $content;
}
//详情
public function detail($id)
{
$detail = Db::name('Document')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['times'] = time_trans($detail['create_time']);
}
return $detail;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace app\model;
use think\Model;
use think\facade\Db;
class Information extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = $this->where('id', $id)->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+28
View File
@@ -0,0 +1,28 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
namespace app\model;
use think\Model;
use think\facade\Db;
class Knowledge extends Model
{
//详情
public function detail($id)
{
$detail = Db::name('Knowledge')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['user'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['cate_name'] = Db::name('KnowledgeCate')->where(['id' => $detail['cate_id']])->value('title');
$detail['count'] = Db::name('KnowledgeDoc')->where(['knowledge_id' => $id, 'delete_time' => 0])->count();
$detail['views'] = Db::name('KnowledgeDoc')->where(['knowledge_id' => $id, 'delete_time' => 0])->sum('read');
$detail['tags'] = Db::name('KnowledgeTags')->where(['id' => $detail['tags']])->value('name');
}
return $detail;
}
}
+308
View File
@@ -0,0 +1,308 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
declare(strict_types=1);
namespace app\model;
use think\facade\Db;
use think\Model;
class Log extends Model
{
public static $Sourse = [
'product' => [
'status' => ['关闭', '开启', '暂停'],
'is_open' => ['', '内部', '公开'],
'field_array' => [
'director_uid' => array('icon' => 'icon-xueshengzhuce', 'title' => '负责人'),
'check_admin_ids' => array('icon' => 'icon-xueshengzhuce', 'title' => '产品评审人'),
'start_time' => array('icon' => 'icon-kaoshijihua', 'title' => '预计开始时间'),
'end_time' => array('icon' => 'icon-kaoshijihua', 'title' => '预计结束时间'),
'name' => array('icon' => 'icon-wodedianping', 'title' => '标题'),
'status' => array('icon' => 'icon-wodedianping', 'title' => '状态'),
'is_open' => array('icon' => 'icon-wodedianping', 'title' => '访问权限'),
'content' => array('icon' => 'icon-wodedianping', 'title' => '描述'),
'file' => array('icon' => 'icon-sucaiziyuan', 'title' => '文件'),
'link' => array('icon' => 'icon-sucaiziyuan', 'title' => '链接'),
'document' => array('icon' => 'icon-jichushezhi', 'title' => '文档'),
'new' => array('icon' => 'icon-zidingyishezhi', 'title' => '产品'),
'delete' => array('icon' => 'icon-shanchu', 'title' => '产品'),
'is_own' => array('icon' => 'icon-shifouziyan', 'title' => '是否自研'),
]
],
'project' => [
'status' => ['', '未开始', '进行中', '已完成', '已关闭'],
'field_array' => [
'director_uid' => array('icon' => 'icon-xueshengzhuce', 'title' => '负责人'),
'start_time' => array('icon' => 'icon-kaoshijihua', 'title' => '预计开始时间'),
'end_time' => array('icon' => 'icon-kaoshijihua', 'title' => '预计结束时间'),
'name' => array('icon' => 'icon-wodedianping', 'title' => '标题'),
'status' => array('icon' => 'icon-wodedianping', 'title' => '状态'),
'product_id' => array('icon' => 'icon-wodedianping', 'title' => '关联产品'),
'project_type' => array('icon' => 'icon-wodedianping', 'title' => '项目类型'),
'content' => array('icon' => 'icon-wodedianping', 'title' => '项目描述'),
'file' => array('icon' => 'icon-sucaiziyuan', 'title' => '项目文件'),
'link' => array('icon' => 'icon-sucaiziyuan', 'title' => '项目链接'),
'document' => array('icon' => 'icon-jichushezhi', 'title' => '项目文档'),
'new' => array('icon' => 'icon-zidingyishezhi', 'title' => '项目'),
'delete' => array('icon' => 'icon-shanchu', 'title' => '项目'),
'user' => array('icon' => 'icon-xueshengzhuce', 'title' => '项目成员'),
]
],
'business' => [
'is_open' => ['', '内部', '公开'],
'field_array' => [
'director_uid' => array('icon' => 'icon-xueshengzhuce', 'title' => '内部可对接人员'),
'check_admin_ids' => array('icon' => 'icon-xueshengzhuce', 'title' => '主要对接人'),
'start_time' => array('icon' => 'icon-kaoshijihua', 'title' => '预计开始时间'),
'end_time' => array('icon' => 'icon-kaoshijihua', 'title' => '预计结束时间'),
'name' => array('icon' => 'icon-wodedianping', 'title' => '客户单位'),
'status' => array('icon' => 'icon-wodedianping', 'title' => '状态'),
'is_open' => array('icon' => 'icon-wodedianping', 'title' => '访问权限'),
'product_id' => array('icon' => 'icon-wodedianping', 'title' => '关联产品'),
'project_type' => array('icon' => 'icon-wodedianping', 'title' => '项目类型'),
'content' => array('icon' => 'icon-wodedianping', 'title' => '备注信息'),
'file' => array('icon' => 'icon-sucaiziyuan', 'title' => '项目文件'),
'link' => array('icon' => 'icon-sucaiziyuan', 'title' => '项目链接'),
'document' => array('icon' => 'icon-jichushezhi', 'title' => '项目文档'),
'new' => array('icon' => 'icon-zidingyishezhi', 'title' => '项目'),
'delete' => array('icon' => 'icon-shanchu', 'title' => '项目'),
'user' => array('icon' => 'icon-xueshengzhuce', 'title' => '项目成员'),
]
],
'task' => [
'priority' => ['', '低', '中', '高', '紧急'],
'flow_status' => ['', '未开始', '进行中', '已完成', '已拒绝', '已关闭','未解决'],
'field_array' => [
'director_uid' => array('icon' => 'icon-xueshengzhuce', 'title' => '负责人'),
'assist_admin_ids' => array('icon' => 'icon-xueshengbaoming', 'title' => '协作人'),
'end_time' => array('icon' => 'icon-kaoshijihua', 'title' => '预计结束时间'),
'title' => array('icon' => 'icon-wodedianping', 'title' => '标题'),
'flow_status' => array('icon' => 'icon-wodedianping', 'title' => '任务状态'),
'plan_hours' => array('icon' => 'icon-wodedianping', 'title' => '工时'),
'priority' => array('icon' => 'icon-wodedianping', 'title' => '等级'),
'type' => array('icon' => 'icon-wodedianping', 'title' => '任务类型'),
'cate' => array('icon' => 'icon-wodedianping', 'title' => '任务类别'),
'is_bug' => array('icon' => 'icon-wodedianping', 'title' => '任务性质'),
'done_ratio' => array('icon' => 'icon-wodedianping', 'title' => '完成进度'),
'product_id' => array('icon' => 'icon-wodedianping', 'title' => '关联产品'),
'project_type' => array('icon' => 'icon-wodedianping', 'title' => '项目类型'),
'project_id' => array('icon' => 'icon-wodedianping', 'title' => '关联项目'),
'content' => array('icon' => 'icon-wodedianping', 'title' => '描述'),
'file' => array('icon' => 'icon-sucaiziyuan', 'title' => '文件'),
'link' => array('icon' => 'icon-sucaiziyuan', 'title' => '链接'),
'document' => array('icon' => 'icon-jichushezhi', 'title' => '文档'),
'new' => array('icon' => 'icon-zidingyishezhi', 'title' => '任务'),
'delete' => array('icon' => 'icon-shanchu', 'title' => '任务'),
]
],
'document' => [
'field_array' => [
'document' => array('icon' => 'icon-jichushezhi', 'title' => '文档'),
'new' => array('icon' => 'icon-zidingyishezhi', 'title' => '文档'),
'delete' => array('icon' => 'icon-shanchu', 'title' => '文档'),
]
],
];
public function get_list($param = [])
{
$where = array();
$where['a.module'] = $param['m'];
$where['a.' . $param['m'] . '_id'] = $param['tid'];
$content = Db::name('Log')
->field('a.*,u.name')
->alias('a')
->join('Admin u', 'u.id = a.admin_id')
->order('a.create_time desc')
->where($where)
->select()->toArray();
$sourse = self::$Sourse[$param['m']];
$action = get_config('log.type_action');
$field_array = $sourse['field_array'];
$data = [];
foreach ($content as $k => $v) {
if (isset($sourse[$v['field']])) {
$v['old_content'] = $sourse[$v['field']][$v['old_content']];
$v['new_content'] = $sourse[$v['field']][$v['new_content']];
}
if (strpos($v['field'], '_time') !== false) {
if ($v['old_content'] == '') {
$v['old_content'] = '未设置';
}
$v['new_content'] = date('Y-m-d', (int) $v['new_content']);
}
if (strpos($v['field'], '_uid') !== false) {
$v['old_content'] = Db::name('Admin')->where(['id' => $v['old_content']])->value('name');
$v['new_content'] = Db::name('Admin')->where(['id' => $v['new_content']])->value('name');
}
if ($v['field'] == 'user') {
$v['new_content'] = Db::name('Admin')->where(['id' => $v['new_content']])->value('name');
}
if ($v['field'] == 'product_id') {
$v['old_content'] = Db::name('Product')->where(['id' => $v['old_content']])->value('name');
$v['new_content'] = Db::name('Product')->where(['id' => $v['new_content']])->value('name');
}
if ($v['field'] == 'project_id') {
$v['old_content'] = Db::name('Project')->where(['id' => $v['old_content']])->value('name');
$v['new_content'] = Db::name('Project')->where(['id' => $v['new_content']])->value('name');
}
if ($v['field'] == 'type') {
$v['old_content'] = Db::name('TaskCate')->where(['id' => $v['old_content']])->value('title');
$v['new_content'] = Db::name('TaskCate')->where(['id' => $v['new_content']])->value('title');
}
if ($v['field'] == 'cate') {
$v['old_content'] = Db::name('WorkCate')->where(['id' => $v['old_content']])->value('title');
$v['new_content'] = Db::name('WorkCate')->where(['id' => $v['new_content']])->value('title');
}
if ($v['field'] == 'is_bug') {
$v['old_content'] = $v['old_content'] == 0 ? '普通任务' : '问题缺陷';
$v['new_content'] = $v['new_content'] == 0 ? '普通任务' : '问题缺陷';
}
if ($v['field'] == 'done_ratio') {
$v['old_content'] = $v['old_content'] . '%';
$v['new_content'] = $v['new_content'] . '%';
}
if (strpos($v['field'], '_ids') !== false) {
$old_ids = Db::name('Admin')->where('id', 'in', $v['old_content'])->column('name');
$v['old_content'] = implode(',', $old_ids);
$new_ids = Db::name('Admin')->where('id', 'in', $v['new_content'])->column('name');
$v['new_content'] = implode(',', $new_ids);
}
if ($v['old_content'] == '' || $v['old_content'] == null) {
$v['old_content'] = '未设置';
}
if ($v['new_content'] == '' || $v['new_content'] == null) {
$v['new_content'] = '未设置';
}
$v['action'] = $action[$v['action']];
$v['icon'] = $field_array[$v['field']]['icon'];
$v['title'] = $field_array[$v['field']]['title'];
$v['times'] = time_trans($v['create_time']);
$v['create_time'] = date('Y-m-d H:i:s', $v['create_time']);
$data[] = $v;
}
return $data;
}
public function log_list($param = [])
{
$task_ids = Db::name('Task')->where(['project_id' => $param['topic_id'], 'delete_time' => 0])->column('id');
$document_ids = Db::name('Document')->where(['module' => 'project', 'topic_id' => $param['topic_id'], 'delete_time' => 0])->column('id');
$where1 = [];
$where2 = [];
$where3 = [];
$where1[] = ['a.module', '=', 'project'];
$where1[] = ['a.project_id', '=', $param['topic_id']];
$where2[] = ['a.module', '=', 'task'];
$where2[] = ['a.task_id', 'in', $task_ids];
$where3[] = ['a.module', '=', 'document'];
$where3[] = ['a.document_id', 'in', $document_ids];
$page = intval($param['page']);
$rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit'];
$content = Db::name('Log')
->field('a.*,u.name,u.thumb')
->alias('a')
->join('Admin u', 'u.id = a.admin_id')
->order('a.create_time desc')
->whereOr([$where1, $where2, $where3])
->page($page, $rows)
->select()->toArray();
$module = [
'project' => '',
'task' => '任务',
'document' => '文档',
];
$action = get_config('log.type_action');
$data = [];
foreach ($content as $k => $v) {
$sourse = self::$Sourse[$v['module']];
$field_array = $sourse['field_array'];
if (isset($sourse[$v['field']])) {
$v['old_content'] = $sourse[$v['field']][$v['old_content']];
$v['new_content'] = $sourse[$v['field']][$v['new_content']];
}
if (strpos($v['field'], '_time') !== false) {
if ($v['old_content'] == '') {
$v['old_content'] = '未设置';
}
$v['new_content'] = date('Y-m-d', (int) $v['new_content']);
}
if (strpos($v['field'], '_uid') !== false) {
$v['old_content'] = Db::name('Admin')->where(['id' => $v['old_content']])->value('name');
$v['new_content'] = Db::name('Admin')->where(['id' => $v['new_content']])->value('name');
}
if ($v['field'] == 'user') {
$v['new_content'] = Db::name('Admin')->where(['id' => $v['new_content']])->value('name');
}
if ($v['field'] == 'product_id') {
$v['old_content'] = Db::name('Product')->where(['id' => $v['old_content']])->value('name');
$v['new_content'] = Db::name('Product')->where(['id' => $v['new_content']])->value('name');
}
if ($v['field'] == 'project_id') {
$v['old_content'] = Db::name('Project')->where(['id' => $v['old_content']])->value('name');
$v['new_content'] = Db::name('Project')->where(['id' => $v['new_content']])->value('name');
}
if ($v['field'] == 'type') {
$v['old_content'] = Db::name('TaskCate')->where(['id' => $v['old_content']])->value('title');
$v['new_content'] = Db::name('TaskCate')->where(['id' => $v['new_content']])->value('title');
}
if ($v['field'] == 'cate') {
$v['old_content'] = Db::name('WorkCate')->where(['id' => $v['old_content']])->value('title');
$v['new_content'] = Db::name('WorkCate')->where(['id' => $v['new_content']])->value('title');
}
if ($v['field'] == 'is_bug') {
$v['old_content'] = $v['old_content'] == 0 ? '普通任务' : '问题缺陷';
$v['new_content'] = $v['new_content'] == 0 ? '普通任务' : '问题缺陷';
}
if ($v['field'] == 'done_ratio') {
$v['old_content'] = $v['old_content'] . '%';
$v['new_content'] = $v['new_content'] . '%';
}
if (strpos($v['field'], '_ids') !== false) {
$old_ids = Db::name('Admin')->where('id', 'in', $v['old_content'])->column('name');
$v['old_content'] = implode(',', $old_ids);
$new_ids = Db::name('Admin')->where('id', 'in', $v['new_content'])->column('name');
$v['new_content'] = implode(',', $new_ids);
}
if ($v['old_content'] == '' || $v['old_content'] == null) {
$v['old_content'] = '未设置';
}
if ($v['new_content'] == '' || $v['new_content'] == null) {
$v['new_content'] = '未设置';
}
$v['module_name'] = $module[$v['module']];
$v['topic'] = '';
$v['topic_title'] = '';
$v['url'] = '';
if ($v['module'] == 'task') {
$v['topic'] = 'T' . $v['task_id'];
$v['topic_title'] = Db::name('Task')->where('id', $v['task_id'])->value('title');
$v['url'] = '/task/index/view/id/' . $v['task_id'];
}
if ($v['module'] == 'document') {
$v['topic'] = 'D' . $v['document_id'];
$v['topic_title'] = Db::name('Document')->where('id', $v['document_id'])->value('title');
$v['url'] = '/api/document/view/id/' . $v['document_id'];
}
$v['action'] = $action[$v['action']];
$v['icon'] = $field_array[$v['field']]['icon'];
$v['title'] = $field_array[$v['field']]['title'];
$v['times'] = time_trans($v['create_time']);
$v['create_time'] = date('Y-m-d', $v['create_time']);
$data[] = $v;
}
return $data;
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
namespace app\model;
use think\Model;
use think\facade\Db;
class Message extends Model
{
const ZERO = 0;
const ONE = 1;
const TWO = 2;
const THREE = 3;
const FOUR = 4;
const FINE = 5;
public static $Source = [
self::ZERO => '无',
self::ONE => '已发消息',
self::TWO => '草稿消息',
self::THREE => '已收消息',
];
public static $Type = [
self::ZERO => '系统',
self::ONE => '同事',
self::TWO => '部门',
self::THREE => '岗位',
self::FOUR => '全部',
];
}
+7
View File
@@ -0,0 +1,7 @@
<?php
namespace app\model;
use think\Model;
class Note extends Model
{
}
+44
View File
@@ -0,0 +1,44 @@
<?php
namespace app\model;
use think\Model;
class PicbedFolder extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = Db::name('business')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+44
View File
@@ -0,0 +1,44 @@
<?php
namespace app\model;
use think\Model;
class PicbedImages extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = Db::name('business')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+38
View File
@@ -0,0 +1,38 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Plan extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = Db::name('plan')->where(['id' => $id])->find();
if (!empty($detail)) {
// $detail['times'] = time_trans($detail['create_time']);
// $detail['logs'] = Db::name('Log')->where(['module' => 'plans', 'plans_id' => $detail['id']])->count();
$detail['year'] = Db::name('Plan')->where('id', $detail['id'])->value('year');
$detail['name'] = Db::name('Plan')->where(['id' => $detail['id']])->value('name');
$start_time = Db::name('Plan')->where(['id' => $detail['id']])->value('start_time');
$end_time = Db::name('Plan')->where(['id' => $detail['id']])->value('end_time');
// $detail['start_time'] = date('Y-m-d', $start_time);
// $detail['end_time'] = date('Y-m-d', $end_time);
$detail['start_time'] = !empty($start_time) ? date('Y-m-d', $start_time) : '待定';
$detail['end_time'] = !empty($end_time) ? date('Y-m-d', $end_time) : '待定';
$detail['status'] = Db::name('status_mapping')->where('id', $detail['status'])->value('description');
$detail['cate'] = Db::name('project_category')->where('id', $detail['cate'])->value('name');
$detail['schedule'] = Db::name('Plan')->where(['id' => $detail['id']])->value('schedule');
$detail['remark'] = Db::name('Plan')->where(['id' => $detail['id']])->value('remark');
}
return $detail;
}
}
+54
View File
@@ -0,0 +1,54 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Product extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
public static $Is_own = [
self::ZERO => '非自研',
self::ONE => '自研',
];
//详情
public function detail($id)
{
$detail = Db::name('Product')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['status_name'] = self::$Status[(int) $detail['status']];
$detail['is_own_name'] = self::$Is_own[(int) $detail['is_own']];
//$detail['project_type'] = self::$Project_type[(int) $detail['project_type']];
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'product', 'product_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'product_id' => $detail['id']])->count();
$project_ids = Db::name('Project')->where(['delete_time' => 0, 'product_id' =>$detail['id']])->column('id');
$task_map = [];
$task_map[] = ['project_id', 'in', $project_ids];
$task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+50
View File
@@ -0,0 +1,50 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Project extends Model
{
const ZERO = 0;
const ONE = 1;
const TWO = 2;
const THREE = 3;
const FORE = 4;
public static $Status = [
self::ZERO => '未设置',
self::ONE => '未开始',
self::TWO => '进行中',
self::THREE => '已完成',
self::FORE => '已关闭',
];
//详情
public function detail($id)
{
$detail = Db::name('Project')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['product_name'] = Db::name('Product')->where(['id' => $detail['product_id']])->value('name');
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
// 增加筛选条件,删除时间为null
$team_admin_ids = Db::name('ProjectUser')
->where(['delete_time' => 0, 'project_id' => $id, 'delete_time' => null]) // 确保delete_time为空
->column('uid');
$team_admin_names = Db::name('Admin')->where('id', 'in', $team_admin_ids)->column('name');
$detail['team_admin_names'] = implode(',', $team_admin_names);
$detail['team_admin_ids'] = implode(',', $team_admin_ids);
$detail['status_name'] = self::$Status[(int) $detail['status']];
$detail['project_type'] = Db::name('Admin')->where(['id' => $detail['project_type']])->value('name');
$detail['times'] = time_trans($detail['create_time']);
$detail['users'] = Db::name('ProjectUser')->where(['delete_time' => 0, 'project_id' => $id])->count();
$detail['comments'] = Db::name('Comment')->where([['module','=','project'],['topic_id','=',$detail['id']],['delete_time','=',0]])->count();
$detail['logs'] = Db::name('Log')->where(['module' => 'project', 'project_id' => $detail['id']])->count();
}
return $detail;
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class ProjectCategory extends Model
{
//详情
public function detail($id)
{
$detail = Db::name('Project')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['product_name'] = Db::name('Product')->where(['id' => $detail['product_id']])->value('name');
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$team_admin_ids = Db::name('ProjectUser')->where(['delete_time' => 0,'project_id'=>$id])->column('uid');
$team_admin_names = Db::name('Admin')->where('id', 'in', $team_admin_ids)->column('name');
$detail['team_admin_names'] = implode(',', $team_admin_names);
$detail['status_name'] = self::$Status[(int) $detail['status']];
$detail['project_type'] = Db::name('Admin')->where(['id' => $detail['project_type']])->value('name');
$detail['times'] = time_trans($detail['create_time']);
$detail['users'] = Db::name('ProjectUser')->where(['delete_time' => 0,'project_id'=>$id])->count();
$detail['comments'] = Db::name('Comment')->where([['module','=','project'],['topic_id','=',$detail['id']],['delete_time','=',0]])->count();
$detail['logs'] = Db::name('Log')->where(['module' => 'project', 'project_id' => $detail['id']])->count();
}
return $detail;
}
}
+46
View File
@@ -0,0 +1,46 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class ProjectDemo extends Model
{
//详情
public function detail($id)
{
$detail = Db::name('ProjectDemo')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['name'] = Db::name('ProjectDemo')->where(['id' => $detail['id']])->value('name');
$detail['url'] = Db::name('ProjectDemo')->where('id', $detail['id'])->value('url');
$detail['cate'] = Db::name('ProjectDemo')->where('id', $detail['id'])->value('cate');
$detail['url_cate'] = Db::name('ProjectDemo')->where(['id' => $detail['id']])->value('url_cate');
$detail['language'] = Db::name('ProjectDemo')->where(['id' => $detail['id']])->value('language');
$detail['language'] = Db::name('development_language')->where('id', $detail['language'])->value('name');
$detail['remark'] = Db::name('ProjectDemo')->where(['id' => $detail['id']])->value('remark');
$detail['create_time'] = Db::name('ProjectDemo')->where(['id' => $detail['id']])->value('create_time');
}
return $detail;
}
//编辑
public function edit($id)
{
$edit = Db::name('ProjectDemo')->where('id', $id)->find();
if (!empty($edit)) {
$result = Db::name('ProjectDemo')->where(['id' => $edit['id']])->update([
'name' => $edit['name'],
'url' => $edit['url'],
'cate' => $edit['cate'],
'url_cate' => $edit['url_cate'],
'language' => $edit['language'],
'remark' => $edit['remark'],
'update_time' => $edit['update_time']
]);
if ($result) {
return '修改成功';
}
}
return false;
}
}
+30
View File
@@ -0,0 +1,30 @@
<?php
namespace app\model;
use app\model\Reimbursement as ReimbursementList;
use think\facade\Db;
use think\Model;
class Reimbursement extends Model
{
//详情
// public function detail($id)
// {
// $detail = Db::name('reimbursement')->where(['id' => $id])->find();
// if (!empty($detail)) {
// // $detail['order'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('order');
// // $detail['status'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('status');
// // $detail['lock'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('lock');
// }
// return $detail;
// }
// public function editdetailitem($id)
// {
// $reimbursementLists = ReimbursementList::where('id', $id)
// ->order('times', 'desc')
// ->select();
// return json(["code" => 0, "data" => $reimbursementLists]);
// }
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class ReimbursementCategory extends Model
{
//详情
// public function detail($id)
// {
// $detail = Db::name('reimbursement')->where(['id' => $id])->find();
// if (!empty($detail)) {
// // $detail['pid'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('order');
// // $detail['status'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('status');
// // $detail['lock'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('lock');
// }
// return $detail;
// }
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class ReimbursementOrder extends Model
{
//详情
// public function detail($id)
// {
// $detail = Db::name('reimbursement_order')->where(['id' => $id])->find();
// if (!empty($detail)) {
// // $detail['pid'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('order');
// // $detail['status'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('status');
// // $detail['lock'] = Db::name('ReimbursementOrder')->where('id', $detail['id'])->value('lock');
// }
// return $detail;
// }
}
+7
View File
@@ -0,0 +1,7 @@
<?php
namespace app\model;
use think\Model;
class Schedule extends Model
{
}
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace app\model;
use think\Model;
use think\facade\Db;
class StatusMapping extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = $this->where('id', $id)->find();
if (!empty($detail)) {
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$check_admin_names = Db::name('Admin')->where('id', 'in', $detail['check_admin_ids'])->column('name');
$detail['check_admin_names'] = implode(',', $check_admin_names);
$detail['times'] = time_trans($detail['create_time']);
$detail['logs'] = Db::name('Log')->where(['module' => 'business', 'business_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 1, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['projects'] = Db::name('Project')->where(['delete_time' => 0, 'id' => $detail['id']])->count();
$detail['md_content'] = Db::name('Business')->where(['id' => $detail['id']])->value('md_content');
$detail['content'] = Db::name('Business')->where(['id' => $detail['id']])->value('content');
// print_r($detail['md_content']);
// $task_map = [];
// $task_map[] = ['delete_time', '=', 0];
//任务
$task_cate = Db::name('TaskCate')->where(['status' => 1])->select()->toArray();
foreach ($task_cate as $k => $v) {
$task_map[] = ['type', '=', $v['id']];
$task_cate[$k]['count'] = Db::name('Task')->where($task_map)->count();
}
$detail['task_cate'] = $task_cate;
}
return $detail;
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Supplier extends Model
{
const ZERO = 0;
const ONE = 1;
public static $Status = [
self::ZERO => '关闭',
self::ONE => '开启',
];
//详情
public function detail($id)
{
$detail = Db::name('Supplier')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['supplier_name'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('supplier_name');
$detail['contact_name'] = Db::name('Supplier')->where('id', $detail['id'])->value('contact_name');
$detail['contact_phone'] = Db::name('Supplier')->where('id', $detail['id'])->value('contact_phone');
$detail['contact_email'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('contact_email');
$detail['contact_wechat'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('contact_wechat');
$detail['registered_address'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('registered_address');
$detail['business_scope'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('business_scope');
$detail['company_size'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('company_size');
$detail['invoice_company_name'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('invoice_company_name');
$detail['taxpayer_id'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('taxpayer_id');
$detail['invoice_address'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('invoice_address');
$detail['invoice_phone'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('invoice_phone');
$detail['bank_name'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('bank_name');
$detail['bank_account'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('bank_account');
$detail['remarks'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('remarks');
$detail['create_time'] = Db::name('Supplier')->where(['id' => $detail['id']])->value('create_time');
}
return $detail;
}
}
+177
View File
@@ -0,0 +1,177 @@
<?php
namespace app\model;
use think\facade\Db;
use think\Model;
class Task extends Model
{
const ZERO = 0; //#648A8D
const ONE = 1; //#4AC8BE
const TWO = 2; //#409CDE
const THREE = 3; //#C0DB38
const FOUR = 4; //#4DCE58
const FIVE = 5; //#FEC939
const SIX = 6; //#8838DA
const SEVEN = 7; //#FD6206
const EIGHT = 8; //#F03347
const NINE = 9; //#A38B82
public static $Priority = [
self::ZERO => '未设置',
self::ONE => '低',
self::TWO => '中',
self::THREE => '高',
self::FOUR => '紧急',
];
public static $FlowStatus = [
self::ZERO => '未设置',
self::ONE => '未开始',
self::TWO => '进行中',
self::THREE => '已完成',
self::FOUR => '已拒绝',
self::FIVE => '已关闭',
self::SIX => '未解决',
];
//列表
function list($param)
{
$where = array();
$map1 = [];
$map2 = [];
$map3 = [];
$map4 = [];
if (!empty($param['project_id'])) {
$where[] = ['project_id', '=', $param['project_id']];
} else {
$project_ids = Db::name('ProjectUser')->where(['uid' => $param['uid'], 'delete_time' => 0])->column('project_id');
$map1[] = ['admin_id', '=', $param['uid']];
$map2[] = ['director_uid', '=', $param['uid']];
$map3[] = ['', 'exp', Db::raw("FIND_IN_SET({$param['uid']},assist_admin_ids)")];
$map4[] = ['project_id', 'in', $project_ids];
}
if (!empty($param['admin_id'])) {
$where[] = ['admin_id', '=', $param['admin_id']];
}
if (!empty($param['type'])) {
$where[] = ['type', '=', $param['type']];
}
if (!empty($param['flow_status'])) {
$where[] = ['flow_status', '=', $param['flow_status']];
}
if (!empty($param['priority'])) {
$where[] = ['priority', '=', $param['priority']];
}
if (!empty($param['cate'])) {
$where[] = ['cate', '=', $param['cate']];
}
if (!empty($param['is_new'])) {
$where[] = ['is_new', '=', $param['is_new']];
}
if (!empty($param['is_bug'])) {
$where[] = ['is_bug', '=', $param['is_new']];
}
if (!empty($param['director_uid'])) {
$where[] = ['director_uid', 'in', $param['director_uid']];
}
if (!empty($param['keywords'])) {
$where[] = ['title|content', 'like', '%' . $param['keywords'] . '%'];
}
$where[] = ['delete_time', '=', 0];
$rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit'];
$list = Db::name('Task')->where(function ($query) use ($map1, $map2, $map3, $map4) {
$query->where($map1)->whereor($map2)->whereor($map3)->whereor($map4);
})->where($where)
->withoutField('content,md_content')
->orderRaw("FIELD(flow_status, 6, 1, 2, 4, 5, 3)")
->order('id', 'desc')
->paginate($rows, false, ['query' => $param])
->each(function ($item, $key) {
$item['director_name'] = Db::name('Admin')->where(['id' => $item['director_uid']])->value('name');
$item['creater_name'] = Db::name('Admin')->where(['id' => $item['admin_id']])->value('name');
$item['creater_id'] = Db::name('Admin')->where(['id' => $item['admin_id']])->value('id');
$assist_admin_names = Db::name('Admin')->where([['id', 'in', $item['assist_admin_ids']]])->column('name');
$item['cate_name'] = Db::name('WorkCate')->where(['id' => $item['cate']])->value('title');
$item['type_name'] = Db::name('TaskCate')->where(['id' => $item['type']])->value('title');
$tid = $item['id']; //tid的值等于当前任务的id
$is_new = Db::name('Schedule')->where('tid', $tid)->column('is_new');
// 判断is_new数组中是否存在1
if (in_array(1, $is_new)) {
$item['is_new'] = 1;
} else {
$item['is_new'] = 0;
}
//$item['belong_project'] = Db::name('Project')->where(['id' => $v['project_id']])->value('name_short');
$item['belong_project'] = Db::name('Project')->where(['id' => $item['project_id']])->order('id desc')->value('name_short');
if (empty($assist_admin_names)) {
$item['assist_admin_names'] = '-';
} else {
$item['assist_admin_names'] = implode(',', $assist_admin_names);
}
$item['end_time'] = date('Y-m-d', $item['end_time']);
$item['delay'] = 0;
if ($item['over_time'] > 0 && $item['flow_status'] < 4) {
$item['delay'] = countDays($item['end_time'], date('Y-m-d', $item['over_time']));
}
if ($item['over_time'] == 0 && $item['flow_status'] < 4) {
$item['delay'] = countDays($item['end_time']);
}
$item['priority_name'] = self::$Priority[(int) $item['priority']];
$item['flow_name'] = self::$FlowStatus[(int) $item['flow_status']];
return $item;
});
return $list;
}
//详情
public function detail($id)
{
$detail = Db::name('Task')->where(['id' => $id])->find();
if (!empty($detail)) {
$detail['product_name'] = '';
$detail['project_name'] = '';
if ($detail['project_id'] > 0) {
$project = Db::name('Project')->where(['id' => $detail['project_id']])->field('product_id,name')->find();
$detail['product_name'] = Db::name('Product')->where(['id' => $project['product_id']])->value('name');
$detail['project_name'] = $project['name'];
}
$detail['admin_name'] = Db::name('Admin')->where(['id' => $detail['admin_id']])->value('name');
//将admin_id转换为name
$detail['creater_name'] = Db::name('Admin')->where(['id' => $detail['id']])->value('name');
$detail['creater_id'] = Db::name('Admin')->where(['id' => $detail['id']])->value('id');
$detail['director_name'] = Db::name('Admin')->where(['id' => $detail['director_uid']])->value('name');
$detail['work_hours'] = Db::name('Schedule')->where(['delete_time' => 0, 'tid' => $detail['id']])->sum('labor_time');
$detail['cate_name'] = Db::name('WorkCate')->where(['id' => $detail['cate']])->value('title');
$detail['type_name'] = Db::name('TaskCate')->where(['id' => $detail['type']])->value('title');
$detail['logs'] = Db::name('Log')->where(['module' => 'task', 'task_id' => $detail['id']])->count();
$detail['comments'] = Db::name('Comment')->where(['module' => 4, 'delete_time' => 0, 'topic_id' => $detail['id']])->count();
$detail['assist_admin_names'] = '';
if (!empty($detail['assist_admin_ids'])) {
$assist_admin_names = Db::name('Admin')->where('id', 'in', $detail['assist_admin_ids'])->column('name');
$detail['assist_admin_names'] = implode(',', $assist_admin_names);
}
$detail['priority_name'] = self::$Priority[(int) $detail['priority']];
//$detail['belong_project'] = Db::name('Project')->where(['id' => $v['project_id']])->value('name_short');
$detail['flow_name'] = self::$FlowStatus[(int) $detail['flow_status']];
$detail['times'] = time_trans($detail['create_time']);
$detail['end_time'] = date('Y-m-d', $detail['end_time']);
$detail['delay'] = 0;
if ($detail['over_time'] > 0 && $detail['flow_status'] < 4) {
$detail['delay'] = countDays($detail['end_time'], date('Y-m-d', $detail['over_time']));
}
if ($detail['over_time'] == 0 && $detail['flow_status'] < 4) {
$detail['delay'] = countDays($detail['end_time']);
}
}
return $detail;
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
namespace app\model;
use think\Model;
use think\facade\Db;
class Work extends Model
{
}
+26
View File
@@ -0,0 +1,26 @@
<?php
/**
* @copyright Copyright (c) 2023-2024 美天智能科技
* @author 李志强
* @link http://www.meteteme.com
*/
namespace app\model;
use think\Model;
use think\facade\Db;
class WorkRecord extends Model
{
const ZERO = 0;
const ONE = 1;
const TWO = 2;
const THREE = 3;
public static $Type = [
self::ZERO => '-',
self::ONE => '日报',
self::TWO => '周报',
self::THREE => '月报',
];
}