first commit
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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 => '全部',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
namespace app\model;
|
||||
use think\Model;
|
||||
class Note extends Model
|
||||
{
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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]);
|
||||
// }
|
||||
}
|
||||
@@ -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;
|
||||
// }
|
||||
}
|
||||
@@ -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;
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
namespace app\model;
|
||||
use think\Model;
|
||||
class Schedule extends Model
|
||||
{
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
|
||||
}
|
||||
@@ -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 => '月报',
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user