commit
99a16ddf6f
4
application/command.php
Normal file
4
application/command.php
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'projectReport' => 'app\common\command\ProjectReport',
|
||||||
|
];
|
42
application/common/Model/ProjectInfo.php
Normal file
42
application/common/Model/ProjectInfo.php
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\common\Model;
|
||||||
|
|
||||||
|
class ProjectInfo extends CommonModel
|
||||||
|
{
|
||||||
|
protected $pk = 'id';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建项目信息
|
||||||
|
* @param $name
|
||||||
|
* @param $description
|
||||||
|
* @param $projectCode
|
||||||
|
* @param $organizationCode
|
||||||
|
* @return array
|
||||||
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
|
* @throws \think\exception\DbException
|
||||||
|
*/
|
||||||
|
public function createData($name, $value, $description, $projectCode, $organizationCode, $sort = 0)
|
||||||
|
{
|
||||||
|
if (!$name) {
|
||||||
|
return error(1, '请填写项目信息名称');
|
||||||
|
}
|
||||||
|
$project = Project::where(['code' => $projectCode, 'deleted' => 0])->field('id')->find();
|
||||||
|
if (!$project) {
|
||||||
|
return error(3, '该项目已失效');
|
||||||
|
}
|
||||||
|
$data = [
|
||||||
|
'create_time' => nowTime(),
|
||||||
|
'code' => createUniqueCode('ProjectInfo'),
|
||||||
|
'project_code' => $projectCode,
|
||||||
|
'description' => $description,
|
||||||
|
'organization_code' => $organizationCode,
|
||||||
|
'value' => trim($value),
|
||||||
|
'sort' => $sort,
|
||||||
|
'name' => trim($name),
|
||||||
|
];
|
||||||
|
$result = self::create($data)->toArray();
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
@ -17,6 +17,50 @@ class ProjectReport extends CommonModel
|
|||||||
protected $append = [];
|
protected $append = [];
|
||||||
protected $json = ['content'];
|
protected $json = ['content'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算最近n天的数据
|
||||||
|
* @param string $projectCode 项目code
|
||||||
|
* @param int $day 近n天
|
||||||
|
* @return array
|
||||||
|
* @throws DataNotFoundException
|
||||||
|
* @throws DbException
|
||||||
|
* @throws ModelNotFoundException
|
||||||
|
*/
|
||||||
|
public static function getReportByDay($projectCode, $day = 10)
|
||||||
|
{
|
||||||
|
$dateList = [];
|
||||||
|
$taskList = [];
|
||||||
|
$undoneTaskList = [];
|
||||||
|
$baseLineList = [];
|
||||||
|
$max = 0;
|
||||||
|
for ($i = $day; $i >= 1; $i--) {
|
||||||
|
$date = date('Y-m-d', mktime(0, 0, 0, date("m"), date("d") - $i, date("Y")));
|
||||||
|
$dateFormat = date('m-d', strtotime($date));
|
||||||
|
$dateList[] = $dateFormat;
|
||||||
|
$report = ProjectReport::where(['project_code' => $projectCode, 'date' => $date])->find();
|
||||||
|
if ($report) {
|
||||||
|
$task = get_object_vars($report['content']);
|
||||||
|
$taskList[] = $task['task'];
|
||||||
|
$undoneTaskList[] = $task['task:undone'];
|
||||||
|
if ($task['task:undone'] > $max) {
|
||||||
|
$max = $task['task:undone'];
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$taskList[] = 0;
|
||||||
|
$undoneTaskList[] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($max) {
|
||||||
|
$each = ceil($max / ($day - 1));
|
||||||
|
$current = $max;
|
||||||
|
for ($i = 1; $i <= $day; $i++) {
|
||||||
|
$baseLineList[] = $current;
|
||||||
|
$current -= $each;
|
||||||
|
$current < 0 && $current = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ['date' => $dateList, 'task' => $taskList, 'undoneTask' => $undoneTaskList, 'baseLineList' => $baseLineList];
|
||||||
|
}
|
||||||
|
|
||||||
public static function setDayilyProejctReport()
|
public static function setDayilyProejctReport()
|
||||||
{
|
{
|
||||||
|
@ -8,4 +8,4 @@ define('USE_SSL', false);//是否使用ssl
|
|||||||
define('LOCAL_CERT', '/www/wwwroot/EasyProjectApi/server.pem');// 证书路径也可以是crt文件
|
define('LOCAL_CERT', '/www/wwwroot/EasyProjectApi/server.pem');// 证书路径也可以是crt文件
|
||||||
define('LOCAL_PK', '/www/wwwroot/EasyProjectApi/server.key');
|
define('LOCAL_PK', '/www/wwwroot/EasyProjectApi/server.key');
|
||||||
define('VERIFY_PEER', false);
|
define('VERIFY_PEER', false);
|
||||||
define('ALLOW_SELF_SIGNED', true);//如果是自签名证书需要开启此选项
|
define('ALLOW_SELF_SIGNED', false);//如果是自签名证书需要开启此选项
|
||||||
|
47
application/common/Plugins/GateWayWorker/crontab.php
Normal file
47
application/common/Plugins/GateWayWorker/crontab.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use GuzzleHttp\Client;
|
||||||
|
use Workerman\Lib\Timer;
|
||||||
|
use Workerman\Worker;
|
||||||
|
|
||||||
|
require_once __DIR__ . '/vendor/autoload.php';
|
||||||
|
require_once __DIR__ . '/config.php';
|
||||||
|
require_once __DIR__ . '/../../../../vendor/autoload.php';
|
||||||
|
|
||||||
|
date_default_timezone_set('Asia/Shanghai');
|
||||||
|
|
||||||
|
$client = new Client();
|
||||||
|
$task = new Worker();
|
||||||
|
$task->name = 'crontab';
|
||||||
|
$doneTicket = [];
|
||||||
|
$task->onWorkerStart = function ($task) {
|
||||||
|
$timerId = Timer::add(1, 'checkTime');
|
||||||
|
};
|
||||||
|
|
||||||
|
// 运行worker
|
||||||
|
Worker::runAll();
|
||||||
|
|
||||||
|
function checkTime()
|
||||||
|
{
|
||||||
|
global $doneTicket;
|
||||||
|
$now = time();
|
||||||
|
$dateTime = date('H:i', $now);
|
||||||
|
//每天23:55统计项目情况
|
||||||
|
if ($dateTime == '23:55' && (!isset($doneTicket['setProjectReportDate']) || date('Y-m-d', $now) != $doneTicket['setProjectReportDate'])) {
|
||||||
|
setProjectReport();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setProjectReport()
|
||||||
|
{
|
||||||
|
global $client,$doneTicket;
|
||||||
|
$doneTicket['setProjectReportDate'] = date('Y-m-d', time());
|
||||||
|
//命令行模式
|
||||||
|
// exec("php think projectReport",$out);
|
||||||
|
// echo $out[0];
|
||||||
|
|
||||||
|
//http模式
|
||||||
|
$res = $client->request('GET', SITE_URL . '/index.php/project/project/_setDayilyProejctReport');
|
||||||
|
echo $res->getBody();
|
||||||
|
}
|
||||||
|
|
21
application/common/command/ProjectReport.php
Normal file
21
application/common/command/ProjectReport.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\common\command;
|
||||||
|
|
||||||
|
use think\console\Command;
|
||||||
|
use think\console\Input;
|
||||||
|
use think\console\Output;
|
||||||
|
|
||||||
|
class ProjectReport extends Command
|
||||||
|
{
|
||||||
|
protected function configure()
|
||||||
|
{
|
||||||
|
$this->setName('ProjectReport');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(Input $input, Output $output)
|
||||||
|
{
|
||||||
|
\app\common\Model\ProjectReport::setDayilyProejctReport();
|
||||||
|
$output->writeln('success_at ' . nowTime());
|
||||||
|
}
|
||||||
|
}
|
@ -176,6 +176,27 @@ class Account extends BasicApi
|
|||||||
$this->success('', ['organizationList' => $organizationList, 'currentOrganization' => $organization]);
|
$this->success('', ['organizationList' => $organizationList, 'currentOrganization' => $organization]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新本团队内的头像和手机、邮箱
|
||||||
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
|
* @throws \think\exception\DbException
|
||||||
|
*/
|
||||||
|
public function _syncDetail()
|
||||||
|
{
|
||||||
|
$code = Request::post('code');
|
||||||
|
$memberAccount = $this->model->where(['code' => $code])->find();
|
||||||
|
$memberInfo = Member::where('code', $memberAccount['member_code'])->find();
|
||||||
|
if (!$memberInfo) {
|
||||||
|
$this->error("更新失败!");
|
||||||
|
}
|
||||||
|
$memberAccount->avatar = $memberInfo['avatar'];
|
||||||
|
!$memberAccount->mobile && $memberAccount->mobile = $memberInfo['mobile'];
|
||||||
|
!$memberAccount->email && $memberAccount->email = $memberInfo['email'];
|
||||||
|
$memberAccount->save();
|
||||||
|
$this->success('更新成功');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 账户添加
|
* 账户添加
|
||||||
* @return array|string
|
* @return array|string
|
||||||
|
@ -368,13 +368,24 @@ class Project extends BasicApi
|
|||||||
echo 'success_at ' . nowTime();
|
echo 'success_at ' . nowTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function _getProjectReport()
|
||||||
|
{
|
||||||
|
$projectCode = Request::param('projectCode');
|
||||||
|
if (!$projectCode) {
|
||||||
|
$this->error('项目已失效');
|
||||||
|
}
|
||||||
|
$data = ProjectReport::getReportByDay($projectCode, 10);
|
||||||
|
$this->success('', $data);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 概览报表
|
* 概览报表
|
||||||
* @throws DataNotFoundException
|
* @throws DataNotFoundException
|
||||||
* @throws DbException
|
* @throws DbException
|
||||||
* @throws ModelNotFoundException
|
* @throws ModelNotFoundException
|
||||||
*/
|
*/
|
||||||
public function _projectStats()
|
public
|
||||||
|
function _projectStats()
|
||||||
{
|
{
|
||||||
$projectCode = Request::param('projectCode');
|
$projectCode = Request::param('projectCode');
|
||||||
if (!$projectCode) {
|
if (!$projectCode) {
|
||||||
@ -425,7 +436,8 @@ class Project extends BasicApi
|
|||||||
/**
|
/**
|
||||||
* 上传封面
|
* 上传封面
|
||||||
*/
|
*/
|
||||||
public function uploadCover()
|
public
|
||||||
|
function uploadCover()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$file = $this->model->uploadCover(Request::file('cover'));
|
$file = $this->model->uploadCover(Request::file('cover'));
|
||||||
@ -438,7 +450,8 @@ class Project extends BasicApi
|
|||||||
/**
|
/**
|
||||||
* 放入回收站
|
* 放入回收站
|
||||||
*/
|
*/
|
||||||
public function recycle()
|
public
|
||||||
|
function recycle()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$this->model->recycle(Request::post('projectCode'));
|
$this->model->recycle(Request::post('projectCode'));
|
||||||
@ -451,7 +464,8 @@ class Project extends BasicApi
|
|||||||
/**
|
/**
|
||||||
* 恢复
|
* 恢复
|
||||||
*/
|
*/
|
||||||
public function recovery()
|
public
|
||||||
|
function recovery()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$this->model->recovery(Request::post('projectCode'));
|
$this->model->recovery(Request::post('projectCode'));
|
||||||
@ -465,7 +479,8 @@ class Project extends BasicApi
|
|||||||
/**
|
/**
|
||||||
* 归档
|
* 归档
|
||||||
*/
|
*/
|
||||||
public function archive()
|
public
|
||||||
|
function archive()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$this->model->archive(Request::post('projectCode'));
|
$this->model->archive(Request::post('projectCode'));
|
||||||
@ -478,7 +493,8 @@ class Project extends BasicApi
|
|||||||
/**
|
/**
|
||||||
* 恢复归档
|
* 恢复归档
|
||||||
*/
|
*/
|
||||||
public function recoveryArchive()
|
public
|
||||||
|
function recoveryArchive()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$this->model->recoveryArchive(Request::post('projectCode'));
|
$this->model->recoveryArchive(Request::post('projectCode'));
|
||||||
@ -491,7 +507,8 @@ class Project extends BasicApi
|
|||||||
/**
|
/**
|
||||||
* 退出项目
|
* 退出项目
|
||||||
*/
|
*/
|
||||||
public function quit()
|
public
|
||||||
|
function quit()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$this->model->quit(Request::post('projectCode'));
|
$this->model->quit(Request::post('projectCode'));
|
||||||
|
114
application/project/controller/ProjectInfo.php
Normal file
114
application/project/controller/ProjectInfo.php
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\project\controller;
|
||||||
|
|
||||||
|
use controller\BasicApi;
|
||||||
|
use think\db\exception\DataNotFoundException;
|
||||||
|
use think\db\exception\ModelNotFoundException;
|
||||||
|
use think\Exception;
|
||||||
|
use think\exception\DbException;
|
||||||
|
use think\exception\PDOException;
|
||||||
|
use think\facade\Request;
|
||||||
|
|
||||||
|
class ProjectInfo extends BasicApi
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
if (!$this->model) {
|
||||||
|
$this->model = new \app\common\Model\ProjectInfo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示资源项目信息
|
||||||
|
* @return void
|
||||||
|
* @throws DataNotFoundException
|
||||||
|
* @throws ModelNotFoundException
|
||||||
|
* @throws DbException
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$where = [];
|
||||||
|
$code = Request::post('projectCode');
|
||||||
|
if (!$code) {
|
||||||
|
$this->error("请选择一个项目");
|
||||||
|
}
|
||||||
|
$where[] = ['project_code', '=', $code];
|
||||||
|
// $list = $this->model->_list($where, 'sort asc,id asc');
|
||||||
|
$list = $this->model->where($where)->order('id desc')->select()->toArray();
|
||||||
|
$this->success('', $list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
* @param Request $request
|
||||||
|
* @return void
|
||||||
|
* @throws DataNotFoundException
|
||||||
|
* @throws DbException
|
||||||
|
* @throws ModelNotFoundException
|
||||||
|
*/
|
||||||
|
public function save(Request $request)
|
||||||
|
{
|
||||||
|
$data = $request::only('name,value,sort,projectCode,description');
|
||||||
|
if (!$request::post('name')) {
|
||||||
|
$this->error("请填写项目信息名称");
|
||||||
|
}
|
||||||
|
$result = $this->model->createData($data['name'], $data['value'], $data['description'], $data['projectCode'], getCurrentOrganizationCode());
|
||||||
|
if (!isError($result)) {
|
||||||
|
$this->success('添加成功', $result);
|
||||||
|
}
|
||||||
|
$this->error($result['msg']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存
|
||||||
|
* @param Request $request
|
||||||
|
* @return void
|
||||||
|
* @throws DataNotFoundException
|
||||||
|
* @throws ModelNotFoundException
|
||||||
|
* @throws DbException
|
||||||
|
*/
|
||||||
|
public function edit(Request $request)
|
||||||
|
{
|
||||||
|
$data = $request::only('name,value,sort,projectCode,description,infoCode');
|
||||||
|
if (!$request::post('name')) {
|
||||||
|
$this->error("请填写项目信息名称");
|
||||||
|
}
|
||||||
|
if (!$data['infoCode']) {
|
||||||
|
$this->error("请选择一个项目信息");
|
||||||
|
}
|
||||||
|
$info = $this->model->where(['code' => $data['infoCode']])->field('id,project_code')->find();
|
||||||
|
if (!$info) {
|
||||||
|
$this->error("该项目信息已失效");
|
||||||
|
}
|
||||||
|
$has = $this->model->where(['name' => $data['name'], 'project_code' => $info['project_code']])->field('id,sort')->find();
|
||||||
|
if ($has && $has['id'] != $info['id']) {
|
||||||
|
$this->error("该项目信息名称已存在");
|
||||||
|
}
|
||||||
|
$result = $this->model->_edit(['name' => $data['name'], 'description' => $data['description'], 'value' => $data['value'], 'sort' => isset($data['sort']) ? $data['sort'] : $has['sort']], ['code' => $data['infoCode']]);
|
||||||
|
if ($result) {
|
||||||
|
$this->success('');
|
||||||
|
}
|
||||||
|
$this->error("操作失败,请稍候再试!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除项目信息
|
||||||
|
* @return void
|
||||||
|
* @throws Exception
|
||||||
|
* @throws PDOException
|
||||||
|
*/
|
||||||
|
public function delete()
|
||||||
|
{
|
||||||
|
$code = Request::post('infoCode');
|
||||||
|
if (!$code) {
|
||||||
|
$this->error("请选择一个项目信息");
|
||||||
|
}
|
||||||
|
$result = $this->model->where('code', $code)->delete();
|
||||||
|
if (isError($result)) {
|
||||||
|
$this->error($result['msg'], $result['errno']);
|
||||||
|
}
|
||||||
|
$this->success();
|
||||||
|
}
|
||||||
|
}
|
@ -42,6 +42,35 @@ class ProjectMember extends BasicApi
|
|||||||
$this->success('', $list);
|
$this->success('', $list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function _listForInvite()
|
||||||
|
{
|
||||||
|
$code = trim(Request::post('projectCode'));
|
||||||
|
if (!$code) {
|
||||||
|
$this->error('请先选择项目');
|
||||||
|
}
|
||||||
|
$orgCode = getCurrentOrganizationCode();
|
||||||
|
$memberAccountList = MemberAccount::where([['organization_code', '=', $orgCode]])->select()->toArray();
|
||||||
|
$list = [];
|
||||||
|
if ($memberAccountList) {
|
||||||
|
foreach ($memberAccountList as $member) {
|
||||||
|
$has = $this->model->where('member_code', $member['member_code'])->where('project_code', $code)->field('id')->find();
|
||||||
|
$item['memberCode'] = $member['member_code'];
|
||||||
|
$item['status'] = $member['status'];
|
||||||
|
$item['avatar'] = $member['avatar'];
|
||||||
|
$item['name'] = $member['name'];
|
||||||
|
$item['email'] = $member['email'] ?? '未绑定邮箱';
|
||||||
|
$item['joined'] = false;
|
||||||
|
if ($has) {
|
||||||
|
$item['joined'] = true;
|
||||||
|
// $item['avatar'] = $has['avatar'];
|
||||||
|
// $item['name'] = $has['name'];
|
||||||
|
}
|
||||||
|
$list[] = $item; //为了去重
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->success('', $list);//数组下标重置
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 邀请成员查询
|
* 邀请成员查询
|
||||||
@ -62,6 +91,7 @@ class ProjectMember extends BasicApi
|
|||||||
}
|
}
|
||||||
$project = \app\common\Model\Project::where(['code' => $code])->field('id')->find();
|
$project = \app\common\Model\Project::where(['code' => $code])->field('id')->find();
|
||||||
//先找出项目所有成员
|
//先找出项目所有成员
|
||||||
|
// $projectMemberIds = [];
|
||||||
$projectMemberIds = $this->model->where([['project_code', '=', $code]])->column('member_code');
|
$projectMemberIds = $this->model->where([['project_code', '=', $code]])->column('member_code');
|
||||||
$tempList = [];
|
$tempList = [];
|
||||||
//从当前组织的所有成员查询,判断是否已加入该项目,并存储已加入项目的成员的account_id
|
//从当前组织的所有成员查询,判断是否已加入该项目,并存储已加入项目的成员的account_id
|
||||||
@ -83,7 +113,7 @@ class ProjectMember extends BasicApi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//从平台查询
|
//从平台查询
|
||||||
$memberList = Member::where([['email', 'like', "%{$keyword}%"]])->whereNotIn('code', $projectMemberIds)->select()->toArray();
|
$memberList = Member::where([['email', 'like', "%{$keyword}%"]])->select()->toArray();
|
||||||
if ($memberList) {
|
if ($memberList) {
|
||||||
foreach ($memberList as $member) {
|
foreach ($memberList as $member) {
|
||||||
$item = [];
|
$item = [];
|
||||||
|
@ -6,7 +6,7 @@ return [
|
|||||||
// 应用名称
|
// 应用名称
|
||||||
'app_name' => 'pearProject',
|
'app_name' => 'pearProject',
|
||||||
// 应用版本
|
// 应用版本
|
||||||
'app_version' => '2.8.6',
|
'app_version' => '2.8.8',
|
||||||
// 应用地址
|
// 应用地址
|
||||||
'app_host' => '',
|
'app_host' => '',
|
||||||
// 应用调试模式
|
// 应用调试模式
|
||||||
|
1
crontab.bat
Normal file
1
crontab.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
php application\common\Plugins\GateWayWorker\crontab.php
|
2
crontab.sh
Normal file
2
crontab.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
php application/common/Plugins/GateWayWorker/crontab.php start&
|
2
crontab_stop.sh
Normal file
2
crontab_stop.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
php application/common/Plugins/GateWayWorker/crontab.php stop&
|
3067
data/2.8.0/2.8.6-2.8.8.sql
Normal file
3067
data/2.8.0/2.8.6-2.8.8.sql
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,15 +3,15 @@
|
|||||||
|
|
||||||
Source Server : localhost
|
Source Server : localhost
|
||||||
Source Server Type : MySQL
|
Source Server Type : MySQL
|
||||||
Source Server Version : 80012
|
Source Server Version : 50726
|
||||||
Source Host : localhost:3306
|
Source Host : localhost:3306
|
||||||
Source Schema : pearproject
|
Source Schema : pearproject
|
||||||
|
|
||||||
Target Server Type : MySQL
|
Target Server Type : MySQL
|
||||||
Target Server Version : 80012
|
Target Server Version : 50726
|
||||||
File Encoding : 65001
|
File Encoding : 65001
|
||||||
|
|
||||||
Date: 13/09/2019 10:29:28
|
Date: 22/02/2020 20:22:08
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SET NAMES utf8mb4;
|
SET NAMES utf8mb4;
|
||||||
@ -1263,6 +1263,27 @@ CREATE TABLE `pear_project_features` (
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `pear_project_features` VALUES (1, 'qtsxlwob1m0uja37y2g4pefc', '3.x', '3.x', '2019-06-23 11:17:48', NULL, '6v7be19pwman2fird04gqu53', 'mo4uqwfb06dxv8ez2spkl3rg');
|
INSERT INTO `pear_project_features` VALUES (1, 'qtsxlwob1m0uja37y2g4pefc', '3.x', '3.x', '2019-06-23 11:17:48', NULL, '6v7be19pwman2fird04gqu53', 'mo4uqwfb06dxv8ez2spkl3rg');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for pear_project_info
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `pear_project_info`;
|
||||||
|
CREATE TABLE `pear_project_info` (
|
||||||
|
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
|
||||||
|
`value` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '值',
|
||||||
|
`description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',
|
||||||
|
`create_time` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
|
`update_time` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
|
`organization_code` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '组织id',
|
||||||
|
`project_code` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '项目id',
|
||||||
|
`sort` int(11) NULL DEFAULT 0 COMMENT '排序',
|
||||||
|
`code` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'code',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
UNIQUE INDEX `code`(`code`) USING BTREE,
|
||||||
|
INDEX `project_code`(`project_code`) USING BTREE,
|
||||||
|
INDEX `organization_code`(`organization_code`) USING BTREE
|
||||||
|
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目自定义信息表' ROW_FORMAT = Compact;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for pear_project_log
|
-- Table structure for pear_project_log
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
@ -2003,7 +2024,7 @@ CREATE TABLE `pear_project_node` (
|
|||||||
`create_at` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时间',
|
`create_at` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
INDEX `index_system_node_node`(`node`) USING BTREE
|
INDEX `index_system_node_node`(`node`) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 635 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目端节点表' ROW_FORMAT = Compact;
|
) ENGINE = InnoDB AUTO_INCREMENT = 641 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目端节点表' ROW_FORMAT = Compact;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of pear_project_node
|
-- Records of pear_project_node
|
||||||
@ -2332,7 +2353,7 @@ CREATE TABLE `pear_system_config` (
|
|||||||
`value` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '配置值',
|
`value` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '配置值',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
INDEX `index_system_config_name`(`name`) USING BTREE
|
INDEX `index_system_config_name`(`name`) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统参数配置' ROW_FORMAT = Compact;
|
) ENGINE = InnoDB AUTO_INCREMENT = 44 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统参数配置' ROW_FORMAT = Compact;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of pear_system_config
|
-- Records of pear_system_config
|
||||||
|
@ -3,15 +3,15 @@
|
|||||||
|
|
||||||
Source Server : localhost
|
Source Server : localhost
|
||||||
Source Server Type : MySQL
|
Source Server Type : MySQL
|
||||||
Source Server Version : 80012
|
Source Server Version : 50726
|
||||||
Source Host : localhost:3306
|
Source Host : localhost:3306
|
||||||
Source Schema : pearproject
|
Source Schema : pearproject
|
||||||
|
|
||||||
Target Server Type : MySQL
|
Target Server Type : MySQL
|
||||||
Target Server Version : 80012
|
Target Server Version : 50726
|
||||||
File Encoding : 65001
|
File Encoding : 65001
|
||||||
|
|
||||||
Date: 13/09/2019 10:29:28
|
Date: 22/02/2020 20:22:08
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SET NAMES utf8mb4;
|
SET NAMES utf8mb4;
|
||||||
@ -1263,6 +1263,27 @@ CREATE TABLE `pear_project_features` (
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `pear_project_features` VALUES (1, 'qtsxlwob1m0uja37y2g4pefc', '3.x', '3.x', '2019-06-23 11:17:48', NULL, '6v7be19pwman2fird04gqu53', 'mo4uqwfb06dxv8ez2spkl3rg');
|
INSERT INTO `pear_project_features` VALUES (1, 'qtsxlwob1m0uja37y2g4pefc', '3.x', '3.x', '2019-06-23 11:17:48', NULL, '6v7be19pwman2fird04gqu53', 'mo4uqwfb06dxv8ez2spkl3rg');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for pear_project_info
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `pear_project_info`;
|
||||||
|
CREATE TABLE `pear_project_info` (
|
||||||
|
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
|
||||||
|
`value` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '值',
|
||||||
|
`description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',
|
||||||
|
`create_time` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
|
`update_time` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
|
`organization_code` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '组织id',
|
||||||
|
`project_code` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '项目id',
|
||||||
|
`sort` int(11) NULL DEFAULT 0 COMMENT '排序',
|
||||||
|
`code` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'code',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
UNIQUE INDEX `code`(`code`) USING BTREE,
|
||||||
|
INDEX `project_code`(`project_code`) USING BTREE,
|
||||||
|
INDEX `organization_code`(`organization_code`) USING BTREE
|
||||||
|
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目自定义信息表' ROW_FORMAT = Compact;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for pear_project_log
|
-- Table structure for pear_project_log
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
@ -2003,7 +2024,7 @@ CREATE TABLE `pear_project_node` (
|
|||||||
`create_at` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时间',
|
`create_at` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
INDEX `index_system_node_node`(`node`) USING BTREE
|
INDEX `index_system_node_node`(`node`) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 635 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目端节点表' ROW_FORMAT = Compact;
|
) ENGINE = InnoDB AUTO_INCREMENT = 641 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目端节点表' ROW_FORMAT = Compact;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of pear_project_node
|
-- Records of pear_project_node
|
||||||
@ -2332,7 +2353,7 @@ CREATE TABLE `pear_system_config` (
|
|||||||
`value` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '配置值',
|
`value` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '配置值',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
INDEX `index_system_config_name`(`name`) USING BTREE
|
INDEX `index_system_config_name`(`name`) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统参数配置' ROW_FORMAT = Compact;
|
) ENGINE = InnoDB AUTO_INCREMENT = 44 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统参数配置' ROW_FORMAT = Compact;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of pear_system_config
|
-- Records of pear_system_config
|
||||||
|
Loading…
x
Reference in New Issue
Block a user