Merge branch 'develop'
This commit is contained in:
@@ -34,4 +34,104 @@ class Constants
|
||||
self::TICKET_STATUS['REJECTED'] => 'Закрыть',
|
||||
];
|
||||
|
||||
//客户分级 USTOMER_GRADE
|
||||
|
||||
public const GRADE = [
|
||||
'INITIAL' => 0, // 初步接触
|
||||
'COMMUNICATE' => 1, // 需求沟通
|
||||
'PLAN' => 2, // 方案推进
|
||||
'DEAL' => 3, // 成交阶段
|
||||
'SALES' => 4, // 售后阶段
|
||||
'LOSS' => 5, // 停滞或流失
|
||||
];
|
||||
|
||||
public const GRADE_ZH = [
|
||||
self::GRADE['INITIAL'] => '初步接触',
|
||||
self::GRADE['COMMUNICATE'] => '需求沟通',
|
||||
self::GRADE['PLAN'] => '方案推进',
|
||||
self::GRADE['DEAL'] => '成交阶段',
|
||||
self::GRADE['SALES'] => '售后阶段',
|
||||
self::GRADE['LOSS'] => '停滞或流失',
|
||||
];
|
||||
public const GRADE_EN = [
|
||||
self::GRADE['INITIAL'] => 'Initial contact',
|
||||
self::GRADE['COMMUNICATE'] => 'Demand Chat',
|
||||
self::GRADE['PLAN'] => 'promotion of the plan',
|
||||
self::GRADE['DEAL'] => 'Transaction Stage',
|
||||
self::GRADE['SALES'] => 'After Sales',
|
||||
self::GRADE['LOSS'] => 'Stagnation or loss',
|
||||
];
|
||||
public const GRADE_RU = [
|
||||
self::GRADE['INITIAL'] => 'Первоначальные контакты',
|
||||
self::GRADE['COMMUNICATE'] => 'Потребности в общении',
|
||||
self::GRADE['PLAN'] => 'Продвижение программы',
|
||||
self::GRADE['DEAL'] => 'Этап сделки',
|
||||
self::GRADE['SALES'] => 'Послепродажный этап',
|
||||
self::GRADE['LOSS'] => 'Застой или потеря',
|
||||
];
|
||||
|
||||
//客户重要性
|
||||
public const CUSTOMER_MAGNITUDE_INITIAL = 0; // 金牌商机
|
||||
public const CUSTOMER_MAGNITUDE_COMMUNICATE = 1; // 银牌商机
|
||||
public const CUSTOMER_MAGNITUDE_PLAN = 2; // 铜牌商机
|
||||
|
||||
public const MAGNITUDE = [
|
||||
self::CUSTOMER_MAGNITUDE_INITIAL => '金牌商机',
|
||||
self::CUSTOMER_MAGNITUDE_COMMUNICATE => '银牌商机',
|
||||
self::CUSTOMER_MAGNITUDE_PLAN => '铜牌商机',
|
||||
];
|
||||
public const MAGNITUDE_EN = [
|
||||
self::CUSTOMER_MAGNITUDE_INITIAL => 'Gold Medal',
|
||||
self::CUSTOMER_MAGNITUDE_COMMUNICATE => 'Silver Medal',
|
||||
self::CUSTOMER_MAGNITUDE_PLAN => 'Bronze Medal',
|
||||
];
|
||||
|
||||
public const MAGNITUDE_RU = [
|
||||
self::CUSTOMER_MAGNITUDE_INITIAL => 'Золотой бизнес',
|
||||
self::CUSTOMER_MAGNITUDE_COMMUNICATE => 'Серебряный бизнес',
|
||||
self::CUSTOMER_MAGNITUDE_PLAN => 'Бронзовый бизнес.',
|
||||
];
|
||||
|
||||
|
||||
//跟进类型
|
||||
public const CUSTOMER_FOLLOW_VISIT = 0; // 线下拜访
|
||||
public const CUSTOMER_FOLLOW_UP = 1; // 线上跟进
|
||||
|
||||
public const FOLLOW = [
|
||||
self::CUSTOMER_FOLLOW_VISIT => '线下拜访',
|
||||
self::CUSTOMER_FOLLOW_UP => '线上跟进',
|
||||
];
|
||||
public const FOLLOW_EN = [
|
||||
self::CUSTOMER_FOLLOW_VISIT => 'Visit',
|
||||
self::CUSTOMER_FOLLOW_UP => 'On line',
|
||||
];
|
||||
|
||||
//跟进类型
|
||||
public const CUSTOMER_SEX_UNKNOWN = 0; // 未知
|
||||
public const CUSTOMER_SEX_MAN = 1; // 男
|
||||
public const CUSTOMER_SEX_WOMAN = 2; // 女
|
||||
|
||||
public const SEX = [
|
||||
self::CUSTOMER_SEX_UNKNOWN => '未知',
|
||||
self::CUSTOMER_SEX_MAN => '男',
|
||||
self::CUSTOMER_SEX_WOMAN => '女',
|
||||
];
|
||||
public const SEX_EN = [
|
||||
self::CUSTOMER_SEX_UNKNOWN => 'unknown',
|
||||
self::CUSTOMER_SEX_MAN => 'man',
|
||||
self::CUSTOMER_SEX_WOMAN => 'woman',
|
||||
];
|
||||
|
||||
public const SEX_RU = [
|
||||
self::CUSTOMER_SEX_UNKNOWN => 'неизвестный',
|
||||
self::CUSTOMER_SEX_MAN => 'мужской',
|
||||
self::CUSTOMER_SEX_WOMAN => 'женский',
|
||||
];
|
||||
|
||||
public const SIGN = [
|
||||
['id' => 'xinyouhe', 'name' => '新友合'],
|
||||
['id' => 'mbaf', 'name' => 'MAGIC BRIDGE AUTO FZE']
|
||||
];
|
||||
|
||||
public const LANGUAGE = ['en', 'zh_CN','ru'];
|
||||
}
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'count' => getenv('REDIS_QUEUE_PROCESS_COUNT'), // 可以设置多进程同时消费
|
||||
'constructor' => [
|
||||
// 消费者类目录
|
||||
// 'consumer_dir' => app_path() . '/queue/redis'
|
||||
'consumer_dir' => app_path() . '/queue/redis',
|
||||
'consumer_dir' => app_path() . getenv('REDIS_QUEUE_CONSUMER_DIR')
|
||||
]
|
||||
]
|
||||
|
||||
+4
-1
@@ -59,5 +59,8 @@ return [
|
||||
'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/',
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
'task' => [
|
||||
'handler' => app\process\Task::class
|
||||
],
|
||||
];
|
||||
|
||||
+68
-5
@@ -25,9 +25,18 @@ use Webman\Route;
|
||||
// POST /admin/user/{user_id}/kickout // body: {"tokens": ["..."]} // 踢下线
|
||||
// POST /admin/user/{user_id}/kickout_all // 一键踢全部
|
||||
|
||||
// 调试
|
||||
|
||||
Route::any('/c', [app\controller\IndexController::class, 'createResource']);
|
||||
Route::any('/perm', [app\controller\IndexController::class, 'perm']);
|
||||
|
||||
// 飞书
|
||||
Route::any('/feishu/event', [app\common\controller\NotifyController::class, 'feishuEvent']);
|
||||
// 飞书回调
|
||||
Route::any('/feishu/callback', [app\common\controller\NotifyController::class, 'feishuCallback']);
|
||||
// 代理oss文件地址
|
||||
Route::any('/proxy/ossurl', [app\common\controller\UploadController::class, 'proxy']);
|
||||
|
||||
// 公共
|
||||
Route::group('/common', function () {
|
||||
Route::group('/auth', function () {
|
||||
Route::any('/login', [app\common\controller\AuthController::class, 'login']);
|
||||
@@ -42,21 +51,44 @@ Route::group('/common', function () {
|
||||
|
||||
Route::group('/user', function () {
|
||||
Route::any('/info', [app\common\controller\UserController::class, 'info']);
|
||||
Route::any('/get', [app\common\controller\UserController::class, 'getUser']);
|
||||
});
|
||||
|
||||
Route::group('/preset', function () {
|
||||
Route::any('/corps', [app\common\controller\PresetController::class, 'corps']);
|
||||
Route::any('/feishu/app', [app\common\controller\PresetController::class, 'feishuApp']);
|
||||
Route::any('/systems', [app\common\controller\PresetController::class, 'systems']);
|
||||
});
|
||||
});
|
||||
|
||||
// 后台管理
|
||||
Route::group('/admin', function () {
|
||||
// 角色
|
||||
Route::group('/role', function () {
|
||||
Route::any('/list', [app\admin\controller\RoleController::class, 'list']);
|
||||
Route::any('/detail', [app\admin\controller\RoleController::class, 'detail']);
|
||||
Route::any('/create', [app\admin\controller\RoleController::class, 'create']);
|
||||
Route::any('/list', [app\admin\controller\RoleController::class, 'index']);
|
||||
Route::any('/show', [app\admin\controller\RoleController::class, 'show']);
|
||||
Route::any('/store', [app\admin\controller\RoleController::class, 'store']);
|
||||
Route::any('/update', [app\admin\controller\RoleController::class, 'update']);
|
||||
Route::any('/delete', [app\admin\controller\RoleController::class, 'delete']);
|
||||
Route::any('/destroy', [app\admin\controller\RoleController::class, 'destroy']);
|
||||
});
|
||||
// 公司
|
||||
Route::group('/corp', function () {
|
||||
Route::any('/list', [app\admin\controller\CorpController::class, 'index']);
|
||||
Route::any('/show', [app\admin\controller\CorpController::class, 'show']);
|
||||
Route::any('/store', [app\admin\controller\CorpController::class, 'store']);
|
||||
Route::any('/update', [app\admin\controller\CorpController::class, 'update']);
|
||||
Route::any('/destroy', [app\admin\controller\CorpController::class, 'destroy']);
|
||||
});
|
||||
|
||||
// 询单
|
||||
Route::group('/inquiry', function () {
|
||||
Route::any('/list', [app\inquiry\controller\InquiryLogController::class, 'index']);
|
||||
Route::any('/show', [app\inquiry\controller\InquiryLogController::class, 'show']);
|
||||
Route::any('/store', [app\inquiry\controller\InquiryLogController::class, 'store']);
|
||||
Route::any('/update', [app\inquiry\controller\InquiryLogController::class, 'update']);
|
||||
Route::any('/destroy', [app\inquiry\controller\InquiryLogController::class, 'destroy']);
|
||||
Route::any('/release', [app\inquiry\controller\InquiryLogController::class, 'release']);
|
||||
Route::any('/allocation', [app\inquiry\controller\InquiryLogController::class, 'allocation']);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -87,3 +119,34 @@ Route::group('/ticket', function () {
|
||||
|
||||
});
|
||||
|
||||
//crm
|
||||
Route::group('/crm', function () {
|
||||
//跟进
|
||||
Route::any('/follow/list', [app\crm\controller\FollowController::class, 'list']);
|
||||
Route::any('/follow/detail', [app\crm\controller\FollowController::class, 'detail']);
|
||||
Route::any('/follow/add', [app\crm\controller\FollowController::class, 'save']);
|
||||
Route::any('/follow/getFollowType', [app\crm\controller\FollowController::class, 'getFollowType']);
|
||||
|
||||
//客户
|
||||
Route::any('/customer/list', [app\crm\controller\CustomerController::class, 'list']);
|
||||
Route::any('/customer/detail', [app\crm\controller\CustomerController::class, 'detail']);
|
||||
Route::any('/customer/add', [app\crm\controller\CustomerController::class, 'save']);
|
||||
Route::any('/customer/claim', [app\crm\controller\CustomerController::class, 'claim']);
|
||||
Route::any('/customer/restore', [app\crm\controller\CustomerController::class, 'restore']);
|
||||
Route::any('/customer/delete', [app\crm\controller\CustomerController::class, 'delete']);
|
||||
Route::any('/customer/waitFollow', [app\crm\controller\CustomerController::class, 'waitFollow']);
|
||||
Route::any('/customer/statistics', [app\crm\controller\CustomerController::class, 'statistics']);
|
||||
Route::any('/customer/getChannel', [app\crm\controller\CustomerController::class, 'getChannel']);
|
||||
Route::any('/customer/getCountry', [app\crm\controller\CustomerController::class, 'getCountry']);
|
||||
Route::any('/customer/followNext', [app\crm\controller\CustomerController::class, 'followNext']);
|
||||
|
||||
Route::any('/tagGroup/list', [app\crm\controller\TagGroupController::class, 'list']);
|
||||
Route::any('/tagGroup/updatePivot', [app\crm\controller\TagGroupController::class, 'updatePivot']);
|
||||
|
||||
Route::any('/upload/image', [app\common\controller\UploadController::class, 'uploadImage']);
|
||||
|
||||
|
||||
Route::any('/user/edit', [app\common\controller\UserController::class, 'edit']);
|
||||
Route::any('/user/savePassword', [app\common\controller\UserController::class, 'savePassword']);
|
||||
});
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'basi_cdata' => [
|
||||
'/', // 首页
|
||||
'/index/index', // 首页
|
||||
'/index/view', // 飞书调试
|
||||
'/perm', // 调试-添加权限
|
||||
|
||||
'/common/preset/corps', // 公司列表
|
||||
'/common/preset/feishu/app', // 飞书应用信息
|
||||
]
|
||||
];
|
||||
Reference in New Issue
Block a user