Initial commit: ThinkPHP refactor (tp)
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,11 @@
|
|||||||
|
APP_DEBUG = true
|
||||||
|
|
||||||
|
DB_TYPE = mysql
|
||||||
|
DB_HOST = 127.0.0.1
|
||||||
|
DB_NAME = test
|
||||||
|
DB_USER = username
|
||||||
|
DB_PASS = password
|
||||||
|
DB_PORT = 3306
|
||||||
|
DB_CHARSET = utf8
|
||||||
|
|
||||||
|
DEFAULT_LANG = zh-cn
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
*.log
|
||||||
|
.env
|
||||||
|
composer.phar
|
||||||
|
composer.lock
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
/.idea
|
||||||
|
/.vscode
|
||||||
|
/vendor
|
||||||
|
/.settings
|
||||||
|
/.buildpath
|
||||||
|
/.project
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
sudo: false
|
||||||
|
|
||||||
|
language: php
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- stable
|
||||||
|
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- $HOME/.composer/cache
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- composer self-update
|
||||||
|
|
||||||
|
install:
|
||||||
|
- composer install --no-dev --no-interaction --ignore-platform-reqs
|
||||||
|
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip .
|
||||||
|
- composer require --update-no-dev --no-interaction "topthink/think-image:^1.0"
|
||||||
|
- composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0"
|
||||||
|
- composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0"
|
||||||
|
- composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0"
|
||||||
|
- composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0"
|
||||||
|
- composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0"
|
||||||
|
- composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0"
|
||||||
|
- composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0"
|
||||||
|
- composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0"
|
||||||
|
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip .
|
||||||
|
|
||||||
|
script:
|
||||||
|
- php think unit
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
provider: releases
|
||||||
|
api_key:
|
||||||
|
secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw=
|
||||||
|
file:
|
||||||
|
- ThinkPHP_Core.zip
|
||||||
|
- ThinkPHP_Full.zip
|
||||||
|
skip_cleanup: true
|
||||||
|
on:
|
||||||
|
tags: true
|
||||||
@@ -0,0 +1,330 @@
|
|||||||
|
# 常见问题 FAQ
|
||||||
|
|
||||||
|
## 1. 安装和配置
|
||||||
|
|
||||||
|
### Q: 如何修改默认应用?
|
||||||
|
A: 编辑 `config/app.php` 文件,修改 `default_app` 配置:
|
||||||
|
```php
|
||||||
|
'default_app' => 'api',
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何配置数据库?
|
||||||
|
A: 编辑 `.env` 文件,修改数据库连接信息:
|
||||||
|
```env
|
||||||
|
[DATABASE]
|
||||||
|
TYPE = mysql
|
||||||
|
HOSTNAME = 127.0.0.1
|
||||||
|
DATABASE = tp_api
|
||||||
|
USERNAME = root
|
||||||
|
PASSWORD = your_password
|
||||||
|
HOSTPORT = 3306
|
||||||
|
CHARSET = utf8mb4
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何开启调试模式?
|
||||||
|
A: 在 `.env` 文件中设置:
|
||||||
|
```env
|
||||||
|
APP_DEBUG = true
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. 路由和访问
|
||||||
|
|
||||||
|
### Q: 如何访问 API 接口?
|
||||||
|
A: URL 格式为 `http://域名/应用名/控制器/方法`
|
||||||
|
- 示例:`http://localhost:8000/api/index/index`
|
||||||
|
- 或使用路由:`http://localhost:8000/api/index`(需配置路由)
|
||||||
|
|
||||||
|
### Q: 如何添加新的路由?
|
||||||
|
A: 在 `route/api.php` 文件中添加路由规则:
|
||||||
|
```php
|
||||||
|
Route::get('user/profile', 'api.User/profile');
|
||||||
|
Route::post('user/update', 'api.User/update');
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何设置路由参数?
|
||||||
|
A: 使用 `:参数名` 格式:
|
||||||
|
```php
|
||||||
|
Route::get('user/:id', 'api.User/detail');
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. 控制器开发
|
||||||
|
|
||||||
|
### Q: 如何创建新的控制器?
|
||||||
|
A:
|
||||||
|
1. 手动创建:在 `app/api/controller/` 目录下创建 PHP 文件
|
||||||
|
2. 使用命令:`php think make:controller api@Demo`
|
||||||
|
|
||||||
|
### Q: 如何返回 JSON 数据?
|
||||||
|
A: 使用基础控制器提供的方法:
|
||||||
|
```php
|
||||||
|
// 成功响应
|
||||||
|
return $this->success($data, '操作成功');
|
||||||
|
|
||||||
|
// 失败响应
|
||||||
|
return $this->error('操作失败');
|
||||||
|
|
||||||
|
// 或使用 json() 函数
|
||||||
|
return json(['code' => 200, 'data' => $data]);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何获取请求参数?
|
||||||
|
A:
|
||||||
|
```php
|
||||||
|
// GET 参数
|
||||||
|
$data = $this->request->get();
|
||||||
|
|
||||||
|
// POST 参数
|
||||||
|
$data = $this->request->post();
|
||||||
|
|
||||||
|
// 所有参数
|
||||||
|
$data = $this->request->param();
|
||||||
|
|
||||||
|
// 单个参数
|
||||||
|
$name = $this->request->param('name');
|
||||||
|
```
|
||||||
|
|
||||||
|
## 4. 数据验证
|
||||||
|
|
||||||
|
### Q: 如何验证请求数据?
|
||||||
|
A:
|
||||||
|
1. 在控制器中直接验证:
|
||||||
|
```php
|
||||||
|
$this->validate($data, [
|
||||||
|
'username' => 'require|length:3,20',
|
||||||
|
'email' => 'require|email',
|
||||||
|
]);
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 使用验证器:
|
||||||
|
```php
|
||||||
|
$this->validate($data, 'app\api\validate\User.register');
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何自定义验证错误信息?
|
||||||
|
A:
|
||||||
|
```php
|
||||||
|
$this->validate($data, $rules, [
|
||||||
|
'username.require' => '用户名不能为空',
|
||||||
|
'email.email' => '邮箱格式不正确',
|
||||||
|
]);
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5. 中间件
|
||||||
|
|
||||||
|
### Q: 如何创建中间件?
|
||||||
|
A:
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
namespace app\api\middleware;
|
||||||
|
|
||||||
|
class CheckToken
|
||||||
|
{
|
||||||
|
public function handle($request, \Closure $next)
|
||||||
|
{
|
||||||
|
// 前置中间件
|
||||||
|
$token = $request->header('token');
|
||||||
|
if (empty($token)) {
|
||||||
|
return json(['code' => 401, 'msg' => '未授权']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何使用中间件?
|
||||||
|
A:
|
||||||
|
1. 全局中间件:在 `app/api/middleware.php` 中注册
|
||||||
|
2. 路由中间件:在路由定义中使用
|
||||||
|
```php
|
||||||
|
Route::group('api', function () {
|
||||||
|
Route::get('user/info', 'api.User/info');
|
||||||
|
})->middleware(\app\api\middleware\Auth::class);
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6. 数据库操作
|
||||||
|
|
||||||
|
### Q: 如何使用模型?
|
||||||
|
A:
|
||||||
|
```php
|
||||||
|
// 查询单条
|
||||||
|
$user = \app\api\model\User::find(1);
|
||||||
|
|
||||||
|
// 查询多条
|
||||||
|
$users = \app\api\model\User::where('status', 1)->select();
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
$user = new \app\api\model\User;
|
||||||
|
$user->username = 'test';
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
// 或
|
||||||
|
\app\api\model\User::create([
|
||||||
|
'username' => 'test',
|
||||||
|
'password' => '123456',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 更新
|
||||||
|
\app\api\model\User::update(['id' => 1, 'status' => 0]);
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
\app\api\model\User::destroy(1);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何使用事务?
|
||||||
|
A:
|
||||||
|
```php
|
||||||
|
use think\facade\Db;
|
||||||
|
|
||||||
|
Db::startTrans();
|
||||||
|
try {
|
||||||
|
// 数据库操作
|
||||||
|
Db::commit();
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Db::rollback();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 7. 缓存
|
||||||
|
|
||||||
|
### Q: 如何使用缓存?
|
||||||
|
A:
|
||||||
|
```php
|
||||||
|
use think\facade\Cache;
|
||||||
|
|
||||||
|
// 设置缓存
|
||||||
|
Cache::set('key', 'value', 3600);
|
||||||
|
|
||||||
|
// 获取缓存
|
||||||
|
$value = Cache::get('key');
|
||||||
|
|
||||||
|
// 删除缓存
|
||||||
|
Cache::delete('key');
|
||||||
|
```
|
||||||
|
|
||||||
|
## 8. 跨域问题
|
||||||
|
|
||||||
|
### Q: 如何解决跨域问题?
|
||||||
|
A:
|
||||||
|
1. 项目已内置跨域中间件 `CrossDomain`
|
||||||
|
2. 确保中间件已注册到 `app/api/middleware.php`
|
||||||
|
3. 前端请求时需要设置正确的 headers
|
||||||
|
|
||||||
|
## 9. 认证授权
|
||||||
|
|
||||||
|
### Q: 如何实现 Token 认证?
|
||||||
|
A:
|
||||||
|
1. 安装 JWT 扩展:`composer require firebase/php-jwt`
|
||||||
|
2. 在登录接口生成 Token
|
||||||
|
3. 在中间件中验证 Token
|
||||||
|
4. 参考 `app/api/middleware/Auth.php`
|
||||||
|
|
||||||
|
### Q: 如何实现接口签名验证?
|
||||||
|
A:
|
||||||
|
1. 前端按照规则生成签名
|
||||||
|
2. 后端在中间件中验证签名
|
||||||
|
3. 签名规则:`md5(参数排序后的字符串 + 密钥 + 时间戳)`
|
||||||
|
|
||||||
|
## 10. 性能优化
|
||||||
|
|
||||||
|
### Q: 如何优化接口性能?
|
||||||
|
A:
|
||||||
|
1. 开启路由缓存:`php think route:list`
|
||||||
|
2. 使用缓存减少数据库查询
|
||||||
|
3. 优化 SQL 查询,避免 N+1 问题
|
||||||
|
4. 使用队列处理耗时任务
|
||||||
|
5. 开启 OPcache
|
||||||
|
|
||||||
|
### Q: 如何开启路由缓存?
|
||||||
|
A:
|
||||||
|
```bash
|
||||||
|
php think route:list
|
||||||
|
```
|
||||||
|
|
||||||
|
## 11. 错误处理
|
||||||
|
|
||||||
|
### Q: 如何自定义错误响应?
|
||||||
|
A:
|
||||||
|
1. 修改 `app/ExceptionHandle.php`
|
||||||
|
2. 自定义异常处理逻辑
|
||||||
|
3. 返回 JSON 格式的错误信息
|
||||||
|
|
||||||
|
### Q: 如何记录错误日志?
|
||||||
|
A:
|
||||||
|
```php
|
||||||
|
use think\facade\Log;
|
||||||
|
|
||||||
|
Log::error('错误信息', ['data' => $data]);
|
||||||
|
Log::info('提示信息');
|
||||||
|
Log::warning('警告信息');
|
||||||
|
```
|
||||||
|
|
||||||
|
## 12. 部署
|
||||||
|
|
||||||
|
### Q: 生产环境如何部署?
|
||||||
|
A:
|
||||||
|
1. 关闭调试模式:`APP_DEBUG = false`
|
||||||
|
2. 配置正确的数据库信息
|
||||||
|
3. 设置正确的目录权限
|
||||||
|
4. 配置 Nginx/Apache
|
||||||
|
5. 开启 OPcache
|
||||||
|
6. 使用缓存
|
||||||
|
|
||||||
|
### Q: 如何设置目录权限?
|
||||||
|
A:
|
||||||
|
```bash
|
||||||
|
chmod -R 755 /path/to/tp
|
||||||
|
chmod -R 777 /path/to/tp/runtime
|
||||||
|
```
|
||||||
|
|
||||||
|
## 13. 常见错误
|
||||||
|
|
||||||
|
### Q: 提示"控制器不存在"?
|
||||||
|
A:
|
||||||
|
1. 检查命名空间是否正确
|
||||||
|
2. 检查类名和文件名是否一致
|
||||||
|
3. 检查控制器是否继承正确的基类
|
||||||
|
|
||||||
|
### Q: 提示"方法不存在"?
|
||||||
|
A:
|
||||||
|
1. 检查方法名拼写
|
||||||
|
2. 检查方法访问修饰符(必须是 public)
|
||||||
|
3. 清除缓存:`php think clear`
|
||||||
|
|
||||||
|
### Q: 数据库连接失败?
|
||||||
|
A:
|
||||||
|
1. 检查 `.env` 配置是否正确
|
||||||
|
2. 检查数据库服务是否启动
|
||||||
|
3. 检查防火墙设置
|
||||||
|
4. 检查用户权限
|
||||||
|
|
||||||
|
## 14. 扩展功能
|
||||||
|
|
||||||
|
### Q: 如何添加更多应用?
|
||||||
|
A:
|
||||||
|
```bash
|
||||||
|
# 创建 admin 应用
|
||||||
|
mkdir -p app/admin/controller
|
||||||
|
# 然后创建控制器和配置文件
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何使用队列?
|
||||||
|
A:
|
||||||
|
```bash
|
||||||
|
composer require topthink/think-queue
|
||||||
|
php think queue:listen
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 如何使用定时任务?
|
||||||
|
A:
|
||||||
|
```bash
|
||||||
|
composer require topthink/think-cron
|
||||||
|
# 然后配置定时任务
|
||||||
|
```
|
||||||
|
|
||||||
|
## 更多帮助
|
||||||
|
|
||||||
|
如有其他问题,请查阅:
|
||||||
|
- ThinkPHP 官方文档:https://www.kancloud.cn/manual/thinkphp8
|
||||||
|
- 项目文档:README_API.md
|
||||||
|
- 提交 Issue:https://github.com/top-think/framework/issues
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
ThinkPHP遵循Apache2开源协议发布,并提供免费使用。
|
||||||
|
版权所有Copyright © 2006-2025 by ThinkPHP (http://thinkphp.cn)
|
||||||
|
All rights reserved。
|
||||||
|
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。
|
||||||
|
|
||||||
|
Apache Licence是著名的非盈利开源组织Apache采用的协议。
|
||||||
|
该协议和BSD类似,鼓励代码共享和尊重原作者的著作权,
|
||||||
|
允许代码修改,再作为开源或商业软件发布。需要满足
|
||||||
|
的条件:
|
||||||
|
1. 需要给代码的用户一份Apache Licence ;
|
||||||
|
2. 如果你修改了代码,需要在被修改的文件中说明;
|
||||||
|
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要
|
||||||
|
带有原来代码中的协议,商标,专利声明和其他原来作者规
|
||||||
|
定需要包含的说明;
|
||||||
|
4. 如果再发布的产品中包含一个Notice文件,则在Notice文
|
||||||
|
件中需要带有本协议内容。你可以在Notice中增加自己的
|
||||||
|
许可,但不可以表现为对Apache Licence构成更改。
|
||||||
|
具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|

|
||||||
|
|
||||||
|
ThinkPHP 8
|
||||||
|
===============
|
||||||
|
|
||||||
|
## 特性
|
||||||
|
|
||||||
|
* 基于PHP`8.0+`重构
|
||||||
|
* 升级`PSR`依赖
|
||||||
|
* 依赖`think-orm`3.0+版本
|
||||||
|
* 全新的`think-dumper`服务,支持远程调试
|
||||||
|
* 支持`6.0`/`6.1`无缝升级
|
||||||
|
|
||||||
|
> ThinkPHP8的运行环境要求PHP8.0+
|
||||||
|
|
||||||
|
现在开始,你可以使用官方提供的[ThinkChat](https://chat.topthink.com/),让你在学习ThinkPHP的旅途中享受私人AI助理服务!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
ThinkPHP生态服务由[顶想云](https://www.topthink.com)(TOPThink Cloud)提供,为生态提供专业的开发者服务和价值之选。
|
||||||
|
|
||||||
|
## 文档
|
||||||
|
|
||||||
|
[完全开发手册](https://doc.thinkphp.cn)
|
||||||
|
|
||||||
|
|
||||||
|
## 赞助
|
||||||
|
|
||||||
|
全新的[赞助计划](https://www.thinkphp.cn/sponsor)可以让你通过我们的网站、手册、欢迎页及GIT仓库获得巨大曝光,同时提升企业的品牌声誉,也更好保障ThinkPHP的可持续发展。
|
||||||
|
|
||||||
|
[](https://www.thinkphp.cn/sponsor/special)
|
||||||
|
|
||||||
|
[](https://www.thinkphp.cn/sponsor)
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
~~~
|
||||||
|
composer create-project topthink/think tp
|
||||||
|
~~~
|
||||||
|
|
||||||
|
启动服务
|
||||||
|
|
||||||
|
~~~
|
||||||
|
cd tp
|
||||||
|
php think run
|
||||||
|
~~~
|
||||||
|
|
||||||
|
然后就可以在浏览器中访问
|
||||||
|
|
||||||
|
~~~
|
||||||
|
http://localhost:8000
|
||||||
|
~~~
|
||||||
|
|
||||||
|
如果需要更新框架使用
|
||||||
|
~~~
|
||||||
|
composer update topthink/framework
|
||||||
|
~~~
|
||||||
|
|
||||||
|
## 命名规范
|
||||||
|
|
||||||
|
`ThinkPHP`遵循PSR-2命名规范和PSR-4自动加载规范。
|
||||||
|
|
||||||
|
## 参与开发
|
||||||
|
|
||||||
|
直接提交PR或者Issue即可
|
||||||
|
|
||||||
|
## 版权信息
|
||||||
|
|
||||||
|
ThinkPHP遵循Apache2开源协议发布,并提供免费使用。
|
||||||
|
|
||||||
|
本项目包含的第三方源码和二进制文件之版权信息另行标注。
|
||||||
|
|
||||||
|
版权所有Copyright © 2006-2024 by ThinkPHP (http://thinkphp.cn) All rights reserved。
|
||||||
|
|
||||||
|
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。
|
||||||
|
|
||||||
|
更多细节参阅 [LICENSE.txt](LICENSE.txt)
|
||||||
+321
@@ -0,0 +1,321 @@
|
|||||||
|
# ThinkPHP 8 API 多应用脚手架
|
||||||
|
|
||||||
|
基于 ThinkPHP 8.1 的 API 接口开发脚手架,采用多应用模式。
|
||||||
|
|
||||||
|
## 环境要求
|
||||||
|
|
||||||
|
- PHP >= 8.0
|
||||||
|
- Composer
|
||||||
|
- MySQL >= 5.7
|
||||||
|
|
||||||
|
## 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
tp/
|
||||||
|
├── app/ # 应用目录
|
||||||
|
│ ├── api/ # API 应用
|
||||||
|
│ │ ├── controller/ # 控制器
|
||||||
|
│ │ │ ├── BaseController.php # 基础控制器
|
||||||
|
│ │ │ ├── Index.php # 首页控制器
|
||||||
|
│ │ │ └── User.php # 用户控制器
|
||||||
|
│ │ ├── model/ # 模型
|
||||||
|
│ │ ├── validate/ # 验证器
|
||||||
|
│ │ ├── middleware/ # 中间件
|
||||||
|
│ │ │ ├── Auth.php # 认证中间件
|
||||||
|
│ │ │ └── CrossDomain.php # 跨域中间件
|
||||||
|
│ │ ├── common/ # 公共类
|
||||||
|
│ │ │ └── Response.php # 统一响应类
|
||||||
|
│ │ └── AppService.php # 应用服务
|
||||||
|
│ └── BaseController.php # 默认基础控制器
|
||||||
|
├── config/ # 配置文件
|
||||||
|
├── route/ # 路由
|
||||||
|
│ └── api.php # API 路由配置
|
||||||
|
├── public/ # 公共资源
|
||||||
|
├── runtime/ # 运行时目录
|
||||||
|
├── vendor/ # Composer 依赖
|
||||||
|
├── .env # 环境配置
|
||||||
|
├── database.sql # 数据库结构
|
||||||
|
└── README.md # 说明文档
|
||||||
|
```
|
||||||
|
|
||||||
|
## 安装步骤
|
||||||
|
|
||||||
|
### 1. 安装依赖
|
||||||
|
|
||||||
|
依赖已安装完成,如需更新:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 配置环境
|
||||||
|
|
||||||
|
复制 `.env` 文件并修改数据库配置:
|
||||||
|
|
||||||
|
```env
|
||||||
|
[DATABASE]
|
||||||
|
TYPE = mysql
|
||||||
|
HOSTNAME = 127.0.0.1
|
||||||
|
DATABASE = tp_api
|
||||||
|
USERNAME = root
|
||||||
|
PASSWORD = your_password
|
||||||
|
HOSTPORT = 3306
|
||||||
|
CHARSET = utf8mb4
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 创建数据库
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE DATABASE tp_api DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||||
|
```
|
||||||
|
|
||||||
|
导入数据表结构:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mysql -u root -p tp_api < database.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 配置 Web 服务器
|
||||||
|
|
||||||
|
#### Nginx 配置示例
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
root /path/to/tp/public;
|
||||||
|
index index.php index.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
if (!-e $request_filename) {
|
||||||
|
rewrite ^(.*)$ /index.php?s=/$1 last;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. 启动开发服务器
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php think run
|
||||||
|
```
|
||||||
|
|
||||||
|
默认访问地址:http://localhost:8000
|
||||||
|
|
||||||
|
## API 接口文档
|
||||||
|
|
||||||
|
### 公共接口(无需认证)
|
||||||
|
|
||||||
|
#### 1. 首页信息
|
||||||
|
- **URL**: `/api/index`
|
||||||
|
- **Method**: GET
|
||||||
|
- **响应示例**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"msg": "success",
|
||||||
|
"data": {
|
||||||
|
"name": "ThinkPHP API",
|
||||||
|
"version": "8.1.3",
|
||||||
|
"message": "Welcome to ThinkPHP API Application"
|
||||||
|
},
|
||||||
|
"time": 1640000000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2. 健康检查
|
||||||
|
- **URL**: `/api/health`
|
||||||
|
- **Method**: GET
|
||||||
|
- **响应示例**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"msg": "success",
|
||||||
|
"data": {
|
||||||
|
"status": "ok",
|
||||||
|
"timestamp": "2024-01-01 12:00:00"
|
||||||
|
},
|
||||||
|
"time": 1640000000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 3. 用户登录
|
||||||
|
- **URL**: `/api/user/login`
|
||||||
|
- **Method**: POST
|
||||||
|
- **参数**:
|
||||||
|
- `username`: 用户名(必填)
|
||||||
|
- `password`: 密码(必填)
|
||||||
|
- **响应示例**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"msg": "登录成功",
|
||||||
|
"data": {
|
||||||
|
"token": "example_token_xxx",
|
||||||
|
"username": "demo"
|
||||||
|
},
|
||||||
|
"time": 1640000000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 4. 用户注册
|
||||||
|
- **URL**: `/api/user/register`
|
||||||
|
- **Method**: POST
|
||||||
|
- **参数**:
|
||||||
|
- `username`: 用户名(3-20位)
|
||||||
|
- `password`: 密码(6-20位)
|
||||||
|
- `email`: 邮箱
|
||||||
|
- **响应示例**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"msg": "注册成功",
|
||||||
|
"data": {
|
||||||
|
"user_id": 1001
|
||||||
|
},
|
||||||
|
"time": 1640000000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 认证接口(需要 token)
|
||||||
|
|
||||||
|
#### 5. 获取用户信息
|
||||||
|
- **URL**: `/api/user/info`
|
||||||
|
- **Method**: GET
|
||||||
|
- **Headers**: `token: your_token`
|
||||||
|
- **响应示例**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"msg": "success",
|
||||||
|
"data": {
|
||||||
|
"id": 1,
|
||||||
|
"username": "demo_user",
|
||||||
|
"nickname": "演示用户",
|
||||||
|
"avatar": "",
|
||||||
|
"email": "demo@example.com",
|
||||||
|
"created_at": "2024-01-01 12:00:00"
|
||||||
|
},
|
||||||
|
"time": 1640000000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 功能特性
|
||||||
|
|
||||||
|
### 1. 多应用模式
|
||||||
|
- 采用 ThinkPHP 多应用扩展
|
||||||
|
- API 接口独立目录
|
||||||
|
- 便于扩展其他应用模块
|
||||||
|
|
||||||
|
### 2. 统一响应格式
|
||||||
|
```php
|
||||||
|
// 成功响应
|
||||||
|
return $this->success($data, '操作成功');
|
||||||
|
|
||||||
|
// 失败响应
|
||||||
|
return $this->error('操作失败', 400);
|
||||||
|
|
||||||
|
// 分页响应
|
||||||
|
return Response::paginate($list, $total, $page, $pageSize);
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 中间件支持
|
||||||
|
- **跨域中间件**: 支持 API 跨域请求
|
||||||
|
- **认证中间件**: Token 验证(需自行实现具体逻辑)
|
||||||
|
|
||||||
|
### 4. 数据验证
|
||||||
|
```php
|
||||||
|
// 控制器中使用
|
||||||
|
$this->validate($data, [
|
||||||
|
'username' => 'require|length:3,20',
|
||||||
|
'password' => 'require|length:6,20',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 或使用验证器
|
||||||
|
$this->validate($data, 'app\api\validate\User.login');
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. 模型自动时间戳
|
||||||
|
```php
|
||||||
|
protected $autoWriteTimestamp = true;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 开发建议
|
||||||
|
|
||||||
|
### 1. 控制器开发
|
||||||
|
- 所有控制器继承 `BaseController`
|
||||||
|
- 使用 `$this->success()` 和 `$this->error()` 统一响应
|
||||||
|
- 复杂逻辑封装到 Service 层
|
||||||
|
|
||||||
|
### 2. 模型开发
|
||||||
|
- 使用模型关联处理表关系
|
||||||
|
- 定义访问器和修改器
|
||||||
|
- 使用自动时间戳
|
||||||
|
|
||||||
|
### 3. 异常处理
|
||||||
|
- 使用 try-catch 捕获异常
|
||||||
|
- 自定义异常处理类
|
||||||
|
- 记录错误日志
|
||||||
|
|
||||||
|
### 4. API 安全
|
||||||
|
- 使用 HTTPS
|
||||||
|
- Token 认证机制
|
||||||
|
- 参数签名验证
|
||||||
|
- 请求频率限制
|
||||||
|
|
||||||
|
### 5. 性能优化
|
||||||
|
- 开启路由缓存
|
||||||
|
- 使用缓存减少数据库查询
|
||||||
|
- 优化 SQL 查询
|
||||||
|
- 使用队列处理耗时任务
|
||||||
|
|
||||||
|
## 常用命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动开发服务器
|
||||||
|
php think run
|
||||||
|
|
||||||
|
# 清除缓存
|
||||||
|
php think clear
|
||||||
|
|
||||||
|
# 生成控制器
|
||||||
|
php think make:controller api@Demo
|
||||||
|
|
||||||
|
# 生成模型
|
||||||
|
php think make:model api@Demo
|
||||||
|
|
||||||
|
# 生成验证器
|
||||||
|
php think make:validate api@Demo
|
||||||
|
```
|
||||||
|
|
||||||
|
## 扩展安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# JWT 认证
|
||||||
|
composer require firebase/php-jwt
|
||||||
|
|
||||||
|
# Redis 缓存
|
||||||
|
composer require topthink/think-cache
|
||||||
|
|
||||||
|
# 队列
|
||||||
|
composer require topthink/think-queue
|
||||||
|
|
||||||
|
# 定时任务
|
||||||
|
composer require topthink/think-cron
|
||||||
|
```
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
Apache 2.0
|
||||||
|
|
||||||
|
## 联系方式
|
||||||
|
|
||||||
|
如有问题请提交 Issue 或 PR。
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
deny from all
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app;
|
||||||
|
|
||||||
|
use think\Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用服务类
|
||||||
|
*/
|
||||||
|
class AppService extends Service
|
||||||
|
{
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
// 服务注册
|
||||||
|
}
|
||||||
|
|
||||||
|
public function boot()
|
||||||
|
{
|
||||||
|
// 服务启动
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app;
|
||||||
|
|
||||||
|
use think\App;
|
||||||
|
use think\exception\ValidateException;
|
||||||
|
use think\Validate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 控制器基础类
|
||||||
|
*/
|
||||||
|
abstract class BaseController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Request实例
|
||||||
|
* @var \think\Request
|
||||||
|
*/
|
||||||
|
protected $request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用实例
|
||||||
|
* @var \think\App
|
||||||
|
*/
|
||||||
|
protected $app;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否批量验证
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected $batchValidate = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 控制器中间件
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $middleware = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造方法
|
||||||
|
* @access public
|
||||||
|
* @param App $app 应用对象
|
||||||
|
*/
|
||||||
|
public function __construct(App $app)
|
||||||
|
{
|
||||||
|
$this->app = $app;
|
||||||
|
$this->request = $this->app->request;
|
||||||
|
|
||||||
|
// 控制器初始化
|
||||||
|
$this->initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化
|
||||||
|
protected function initialize()
|
||||||
|
{}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证数据
|
||||||
|
* @access protected
|
||||||
|
* @param array $data 数据
|
||||||
|
* @param string|array $validate 验证器名或者验证规则数组
|
||||||
|
* @param array $message 提示信息
|
||||||
|
* @param bool $batch 是否批量验证
|
||||||
|
* @return array|string|true
|
||||||
|
* @throws ValidateException
|
||||||
|
*/
|
||||||
|
protected function validate(array $data, string|array $validate, array $message = [], bool $batch = false)
|
||||||
|
{
|
||||||
|
if (is_array($validate)) {
|
||||||
|
$v = new Validate();
|
||||||
|
$v->rule($validate);
|
||||||
|
} else {
|
||||||
|
if (strpos($validate, '.')) {
|
||||||
|
// 支持场景
|
||||||
|
[$validate, $scene] = explode('.', $validate);
|
||||||
|
}
|
||||||
|
$class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate);
|
||||||
|
$v = new $class();
|
||||||
|
if (!empty($scene)) {
|
||||||
|
$v->scene($scene);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$v->message($message);
|
||||||
|
|
||||||
|
// 是否批量验证
|
||||||
|
if ($batch || $this->batchValidate) {
|
||||||
|
$v->batch(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $v->failException(true)->check($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
namespace app;
|
||||||
|
|
||||||
|
use think\db\exception\DataNotFoundException;
|
||||||
|
use think\db\exception\ModelNotFoundException;
|
||||||
|
use think\exception\Handle;
|
||||||
|
use think\exception\HttpException;
|
||||||
|
use think\exception\HttpResponseException;
|
||||||
|
use think\exception\ValidateException;
|
||||||
|
use think\Response;
|
||||||
|
use Throwable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用异常处理类
|
||||||
|
*/
|
||||||
|
class ExceptionHandle extends Handle
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 不需要记录信息(日志)的异常类列表
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $ignoreReport = [
|
||||||
|
HttpException::class,
|
||||||
|
HttpResponseException::class,
|
||||||
|
ModelNotFoundException::class,
|
||||||
|
DataNotFoundException::class,
|
||||||
|
ValidateException::class,
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录异常信息(包括日志或者其它方式记录)
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @param Throwable $exception
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function report(Throwable $exception): void
|
||||||
|
{
|
||||||
|
// 使用内置的方式记录异常日志
|
||||||
|
parent::report($exception);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render an exception into an HTTP response.
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @param \think\Request $request
|
||||||
|
* @param Throwable $e
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function render($request, Throwable $e): Response
|
||||||
|
{
|
||||||
|
// 添加自定义异常处理机制
|
||||||
|
|
||||||
|
// 其他错误交给系统处理
|
||||||
|
return parent::render($request, $e);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
namespace app;
|
||||||
|
|
||||||
|
// 应用请求对象类
|
||||||
|
class Request extends \think\Request
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\api;
|
||||||
|
|
||||||
|
use think\Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API 应用服务
|
||||||
|
*/
|
||||||
|
class AppService extends Service
|
||||||
|
{
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
// 注册服务
|
||||||
|
}
|
||||||
|
|
||||||
|
public function boot()
|
||||||
|
{
|
||||||
|
// 启动服务
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace app\api\common;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JWT 工具类
|
||||||
|
* 用于生成和验证 JWT Token
|
||||||
|
*/
|
||||||
|
class Jwt
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 生成 Token
|
||||||
|
* @param array $payload 载荷数据
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function encode(array $payload): string
|
||||||
|
{
|
||||||
|
$config = config('jwt');
|
||||||
|
|
||||||
|
// 添加标准声明
|
||||||
|
$payload['iat'] = time();
|
||||||
|
$payload['iss'] = $config['issuer'] ?? 'dyai-api';
|
||||||
|
$payload['exp'] = time() + ($config['expire'] ?? 604800);
|
||||||
|
|
||||||
|
// 编码
|
||||||
|
$header = self::base64UrlEncode(json_encode(['typ' => 'JWT', 'alg' => 'HS256']));
|
||||||
|
$body = self::base64UrlEncode(json_encode($payload));
|
||||||
|
|
||||||
|
// 签名
|
||||||
|
$signature = self::signature("$header.$body", $config['secret'] ?? 'default_secret');
|
||||||
|
|
||||||
|
return "$header.$body.$signature";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析 Token
|
||||||
|
* @param string $token
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
public static function decode(string $token): ?array
|
||||||
|
{
|
||||||
|
$parts = explode('.', $token);
|
||||||
|
if (count($parts) !== 3) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
[$header, $body, $signature] = $parts;
|
||||||
|
|
||||||
|
// 验证签名
|
||||||
|
$config = config('jwt');
|
||||||
|
$expectedSignature = self::signature("$header.$body", $config['secret'] ?? 'default_secret');
|
||||||
|
|
||||||
|
if (!hash_equals($expectedSignature, $signature)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解码载荷
|
||||||
|
$payload = json_decode(self::base64UrlDecode($body), true);
|
||||||
|
if (!$payload) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证过期时间
|
||||||
|
if (isset($payload['exp']) && $payload['exp'] < time()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $payload;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成刷新 Token
|
||||||
|
* @param int $userid
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function refreshToken(int $userid): string
|
||||||
|
{
|
||||||
|
$config = config('jwt');
|
||||||
|
|
||||||
|
$payload = [
|
||||||
|
'userid' => $userid,
|
||||||
|
'type' => 'refresh',
|
||||||
|
'iat' => time(),
|
||||||
|
'exp' => time() + ($config['refresh_expire'] ?? 2592000),
|
||||||
|
];
|
||||||
|
|
||||||
|
return self::encode($payload);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从请求头获取 Token
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
public static function getTokenFromRequest(): ?string
|
||||||
|
{
|
||||||
|
$request = request();
|
||||||
|
|
||||||
|
// 从 Authorization 头获取
|
||||||
|
$authorization = $request->header('Authorization', '');
|
||||||
|
if (preg_match('/Bearer\s+(.+)/', $authorization, $matches)) {
|
||||||
|
return $matches[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 从参数获取
|
||||||
|
$token = $request->param('token');
|
||||||
|
if ($token) {
|
||||||
|
return $token;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URL安全的 Base64 编码
|
||||||
|
*/
|
||||||
|
private static function base64UrlEncode(string $data): string
|
||||||
|
{
|
||||||
|
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URL安全的 Base64 解码
|
||||||
|
*/
|
||||||
|
private static function base64UrlDecode(string $data): string
|
||||||
|
{
|
||||||
|
return base64_decode(strtr($data, '-_', '+/'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成签名
|
||||||
|
*/
|
||||||
|
private static function signature(string $data, string $secret): string
|
||||||
|
{
|
||||||
|
return self::base64UrlEncode(hash_hmac('sha256', $data, $secret, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\api\common;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统一响应类
|
||||||
|
*/
|
||||||
|
class Response
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 成功响应
|
||||||
|
* @param mixed $data 返回数据
|
||||||
|
* @param string $message 提示信息
|
||||||
|
* @param int $code 状态码
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public static function success($data = [], string $message = 'success', int $code = 200)
|
||||||
|
{
|
||||||
|
return json([
|
||||||
|
'code' => $code,
|
||||||
|
'msg' => $message,
|
||||||
|
'data' => $data,
|
||||||
|
'time' => time(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 失败响应
|
||||||
|
* @param string $message 提示信息
|
||||||
|
* @param int $code 状态码
|
||||||
|
* @param mixed $data 返回数据
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public static function error(string $message = 'error', int $code = 400, $data = [])
|
||||||
|
{
|
||||||
|
return json([
|
||||||
|
'code' => $code,
|
||||||
|
'msg' => $message,
|
||||||
|
'data' => $data,
|
||||||
|
'time' => time(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页数据响应
|
||||||
|
* @param mixed $list 数据列表
|
||||||
|
* @param int $total 总数
|
||||||
|
* @param int $page 当前页
|
||||||
|
* @param int $pageSize 每页数量
|
||||||
|
* @param string $message 提示信息
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public static function paginate($list, int $total, int $page, int $pageSize, string $message = 'success')
|
||||||
|
{
|
||||||
|
return json([
|
||||||
|
'code' => 200,
|
||||||
|
'msg' => $message,
|
||||||
|
'data' => [
|
||||||
|
'list' => $list,
|
||||||
|
'total' => $total,
|
||||||
|
'page' => $page,
|
||||||
|
'page_size' => $pageSize,
|
||||||
|
],
|
||||||
|
'time' => time(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\api\controller;
|
||||||
|
|
||||||
|
use think\App;
|
||||||
|
use think\exception\ValidateException;
|
||||||
|
use think\Validate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API 基础控制器
|
||||||
|
*/
|
||||||
|
abstract class BaseController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Request实例
|
||||||
|
* @var \think\Request
|
||||||
|
*/
|
||||||
|
protected $request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用实例
|
||||||
|
* @var \think\App
|
||||||
|
*/
|
||||||
|
protected $app;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造方法
|
||||||
|
* @access public
|
||||||
|
* @param App $app 应用对象
|
||||||
|
*/
|
||||||
|
public function __construct(App $app)
|
||||||
|
{
|
||||||
|
$this->app = $app;
|
||||||
|
$this->request = $this->app->request;
|
||||||
|
|
||||||
|
// 控制器初始化
|
||||||
|
$this->initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化
|
||||||
|
protected function initialize()
|
||||||
|
{}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成功响应
|
||||||
|
* @param mixed $data 返回数据
|
||||||
|
* @param string $message 提示信息
|
||||||
|
* @param int $code 状态码
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
protected function success($data = [], string $message = 'success', int $code = 200)
|
||||||
|
{
|
||||||
|
return json([
|
||||||
|
'code' => $code,
|
||||||
|
'msg' => $message,
|
||||||
|
'data' => $data,
|
||||||
|
'time' => time(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 失败响应
|
||||||
|
* @param string $message 提示信息
|
||||||
|
* @param int $code 状态码
|
||||||
|
* @param mixed $data 返回数据
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
protected function error(string $message = 'error', int $code = 400, $data = [])
|
||||||
|
{
|
||||||
|
return json([
|
||||||
|
'code' => $code,
|
||||||
|
'msg' => $message,
|
||||||
|
'data' => $data,
|
||||||
|
'time' => time(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证数据
|
||||||
|
* @access protected
|
||||||
|
* @param array $data 数据
|
||||||
|
* @param string|array $validate 验证器名或者验证规则数组
|
||||||
|
* @param array $message 提示信息
|
||||||
|
* @param bool $batch 是否批量验证
|
||||||
|
* @return array|string|true
|
||||||
|
* @throws ValidateException
|
||||||
|
*/
|
||||||
|
protected function validate(array $data, $validate, array $message = [], bool $batch = false)
|
||||||
|
{
|
||||||
|
if (is_array($validate)) {
|
||||||
|
$v = new Validate();
|
||||||
|
$v->rule($validate);
|
||||||
|
} else {
|
||||||
|
if (strpos($validate, '.')) {
|
||||||
|
// 支持场景
|
||||||
|
[$validate, $scene] = explode('.', $validate);
|
||||||
|
}
|
||||||
|
$class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate);
|
||||||
|
$v = new $class();
|
||||||
|
if (!empty($scene)) {
|
||||||
|
$v->scene($scene);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$v->message($message);
|
||||||
|
|
||||||
|
// 是否批量验证
|
||||||
|
if ($batch || $this->request->isBatchValidate()) {
|
||||||
|
$v->batch(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $v->failException(true)->check($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\api\controller;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API 示例控制器
|
||||||
|
*/
|
||||||
|
class Index extends BaseController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 首页接口
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'name' => 'ThinkPHP API',
|
||||||
|
'version' => app()->version(),
|
||||||
|
'message' => 'Welcome to ThinkPHP API Application',
|
||||||
|
];
|
||||||
|
|
||||||
|
return $this->success($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 健康检查接口
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function health()
|
||||||
|
{
|
||||||
|
return $this->success([
|
||||||
|
'status' => 'ok',
|
||||||
|
'timestamp' => date('Y-m-d H:i:s'),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\api\controller;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户控制器示例
|
||||||
|
*/
|
||||||
|
class User extends BaseController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 用户登录
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
$data = $this->request->post();
|
||||||
|
|
||||||
|
// 验证数据
|
||||||
|
$this->validate($data, [
|
||||||
|
'username' => 'require',
|
||||||
|
'password' => 'require',
|
||||||
|
], [
|
||||||
|
'username.require' => '用户名不能为空',
|
||||||
|
'password.require' => '密码不能为空',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// TODO: 实际的登录逻辑
|
||||||
|
return $this->success([
|
||||||
|
'token' => 'example_token_' . md5($data['username']),
|
||||||
|
'username' => $data['username'],
|
||||||
|
], '登录成功');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户信息
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function info()
|
||||||
|
{
|
||||||
|
// TODO: 从 token 或 session 中获取用户信息
|
||||||
|
$userInfo = [
|
||||||
|
'id' => 1,
|
||||||
|
'username' => 'demo_user',
|
||||||
|
'nickname' => '演示用户',
|
||||||
|
'avatar' => '',
|
||||||
|
'email' => 'demo@example.com',
|
||||||
|
'created_at' => date('Y-m-d H:i:s'),
|
||||||
|
];
|
||||||
|
|
||||||
|
return $this->success($userInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户注册
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
$data = $this->request->post();
|
||||||
|
|
||||||
|
// 验证数据
|
||||||
|
$this->validate($data, [
|
||||||
|
'username' => 'require|length:3,20',
|
||||||
|
'password' => 'require|length:6,20',
|
||||||
|
'email' => 'require|email',
|
||||||
|
], [
|
||||||
|
'username.require' => '用户名不能为空',
|
||||||
|
'username.length' => '用户名长度3-20位',
|
||||||
|
'password.require' => '密码不能为空',
|
||||||
|
'password.length' => '密码长度6-20位',
|
||||||
|
'email.require' => '邮箱不能为空',
|
||||||
|
'email.email' => '邮箱格式不正确',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// TODO: 实际的注册逻辑
|
||||||
|
return $this->success([
|
||||||
|
'user_id' => rand(1000, 9999),
|
||||||
|
], '注册成功');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,193 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace app\api\controller;
|
||||||
|
|
||||||
|
use app\api\common\Jwt;
|
||||||
|
use app\api\common\Response;
|
||||||
|
use app\api\controller\BaseController;
|
||||||
|
use app\api\service\AuthService;
|
||||||
|
use think\exception\ValidateException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 认证控制器 (v1版本)
|
||||||
|
* 处理用户登录、注册、Token 刷新等
|
||||||
|
*/
|
||||||
|
class Auth extends BaseController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var AuthService
|
||||||
|
*/
|
||||||
|
protected AuthService $authService;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->authService = new AuthService();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户登录
|
||||||
|
* POST /api/v1/auth/login
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$data = $this->request->post();
|
||||||
|
|
||||||
|
// 验证参数
|
||||||
|
validate($data, [
|
||||||
|
'username' => 'require',
|
||||||
|
'password' => 'require',
|
||||||
|
], [
|
||||||
|
'username.require' => '用户名不能为空',
|
||||||
|
'password.require' => '密码不能为空',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$result = $this->authService->login(
|
||||||
|
$data['username'],
|
||||||
|
$data['password']
|
||||||
|
);
|
||||||
|
|
||||||
|
return Response::success($result, '登录成功');
|
||||||
|
} catch (ValidateException $e) {
|
||||||
|
return Response::error($e->getMessage(), 400);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return Response::error($e->getMessage(), $e->getCode() ?: 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户注册
|
||||||
|
* POST /api/v1/auth/register
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$data = $this->request->post();
|
||||||
|
|
||||||
|
// 验证参数
|
||||||
|
validate($data, [
|
||||||
|
'username' => 'require|length:3,20|alphaNum',
|
||||||
|
'password' => 'require|length:6,20',
|
||||||
|
'email' => 'email',
|
||||||
|
], [
|
||||||
|
'username.require' => '用户名不能为空',
|
||||||
|
'username.length' => '用户名长度3-20位',
|
||||||
|
'username.alphaNum' => '用户名只能包含字母和数字',
|
||||||
|
'password.require' => '密码不能为空',
|
||||||
|
'password.length' => '密码长度6-20位',
|
||||||
|
'email.email' => '邮箱格式不正确',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$result = $this->authService->register(
|
||||||
|
$data['username'],
|
||||||
|
$data['password'],
|
||||||
|
$data['email'] ?? null,
|
||||||
|
$data['formtypeid'] ?? null
|
||||||
|
);
|
||||||
|
|
||||||
|
return Response::success($result, '注册成功');
|
||||||
|
} catch (ValidateException $e) {
|
||||||
|
return Response::error($e->getMessage(), 400);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return Response::error($e->getMessage(), $e->getCode() ?: 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 刷新 Token
|
||||||
|
* POST /api/v1/auth/refresh
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function refresh()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$data = $this->request->post();
|
||||||
|
|
||||||
|
if (empty($data['refresh_token'])) {
|
||||||
|
return Response::error('刷新令牌不能为空', 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->authService->refreshToken($data['refresh_token']);
|
||||||
|
|
||||||
|
return Response::success($result, '刷新成功');
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return Response::error($e->getMessage(), $e->getCode() ?: 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前用户信息
|
||||||
|
* GET /api/v1/auth/me
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function me()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$payload = $this->request->payload ?? null;
|
||||||
|
if (!$payload) {
|
||||||
|
return Response::error('未登录', 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->authService->getUserInfo($payload['userid']);
|
||||||
|
|
||||||
|
return Response::success($result);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return Response::error($e->getMessage(), $e->getCode() ?: 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退出登录
|
||||||
|
* POST /api/v1/auth/logout
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function logout()
|
||||||
|
{
|
||||||
|
// JWT 无状态,退出只需客户端删除 Token
|
||||||
|
// 如果需要服务端失效,可以将 Token 加入黑名单(需要 Redis 支持)
|
||||||
|
return Response::success([], '退出成功');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改密码
|
||||||
|
* POST /api/v1/auth/password
|
||||||
|
* @return \think\response\Json
|
||||||
|
*/
|
||||||
|
public function password()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$payload = $this->request->payload ?? null;
|
||||||
|
if (!$payload) {
|
||||||
|
return Response::error('未登录', 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = $this->request->post();
|
||||||
|
|
||||||
|
validate($data, [
|
||||||
|
'old_password' => 'require',
|
||||||
|
'new_password' => 'require|length:6,20|confirm:confirm_password',
|
||||||
|
], [
|
||||||
|
'old_password.require' => '原密码不能为空',
|
||||||
|
'new_password.require' => '新密码不能为空',
|
||||||
|
'new_password.length' => '新密码长度6-20位',
|
||||||
|
'new_password.confirm' => '两次密码输入不一致',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->authService->changePassword(
|
||||||
|
$payload['userid'],
|
||||||
|
$data['old_password'],
|
||||||
|
$data['new_password']
|
||||||
|
);
|
||||||
|
|
||||||
|
return Response::success([], '密码修改成功');
|
||||||
|
} catch (ValidateException $e) {
|
||||||
|
return Response::error($e->getMessage(), 400);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return Response::error($e->getMessage(), $e->getCode() ?: 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
// API 应用中间件配置
|
||||||
|
|
||||||
|
return [
|
||||||
|
// 全局中间件
|
||||||
|
\app\api\middleware\CrossDomain::class,
|
||||||
|
];
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace app\api\middleware;
|
||||||
|
|
||||||
|
use app\api\common\Jwt;
|
||||||
|
use app\api\common\Response;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JWT 认证中间件
|
||||||
|
*/
|
||||||
|
class Auth
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 处理请求
|
||||||
|
* @param \think\Request $request
|
||||||
|
* @param \Closure $next
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle($request, \Closure $next)
|
||||||
|
{
|
||||||
|
// 获取 Token
|
||||||
|
$token = Jwt::getTokenFromRequest();
|
||||||
|
|
||||||
|
if (!$token) {
|
||||||
|
return Response::error('未提供认证令牌', 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证 Token
|
||||||
|
$payload = Jwt::decode($token);
|
||||||
|
|
||||||
|
if (!$payload) {
|
||||||
|
return Response::error('令牌无效或已过期', 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将用户信息注入请求
|
||||||
|
$request->payload = $payload;
|
||||||
|
$request->userid = $payload['userid'] ?? null;
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\api\middleware;
|
||||||
|
|
||||||
|
use think\Response;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API 跨域中间件
|
||||||
|
*/
|
||||||
|
class CrossDomain
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 处理请求
|
||||||
|
* @param \think\Request $request
|
||||||
|
* @param \Closure $next
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle($request, \Closure $next)
|
||||||
|
{
|
||||||
|
// OPTIONS 请求直接返回
|
||||||
|
if ($request->method() == 'OPTIONS') {
|
||||||
|
return Response::create('', 'html', 204)
|
||||||
|
->header([
|
||||||
|
'Access-Control-Allow-Origin' => '*',
|
||||||
|
'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS',
|
||||||
|
'Access-Control-Allow-Headers' => 'Origin, Content-Type, Accept, Authorization, X-Request-With, token',
|
||||||
|
'Access-Control-Allow-Credentials' => 'true',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$response = $next($request);
|
||||||
|
|
||||||
|
// 设置跨域响应头
|
||||||
|
$response->header([
|
||||||
|
'Access-Control-Allow-Origin' => '*',
|
||||||
|
'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS',
|
||||||
|
'Access-Control-Allow-Headers' => 'Origin, Content-Type, Accept, Authorization, X-Request-With, token',
|
||||||
|
'Access-Control-Allow-Credentials' => 'true',
|
||||||
|
]);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace app\api\model;
|
||||||
|
|
||||||
|
use think\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户模型 (对应原系统 member 表)
|
||||||
|
* 数据库连接: dbmember (member库)
|
||||||
|
*/
|
||||||
|
class Member extends Model
|
||||||
|
{
|
||||||
|
// 设置连接名 (对应 config/database.php 中的 connections)
|
||||||
|
protected $connection = 'dbmember';
|
||||||
|
|
||||||
|
// 表名
|
||||||
|
protected $name = 'member';
|
||||||
|
|
||||||
|
// 主键
|
||||||
|
protected $pk = 'userid';
|
||||||
|
|
||||||
|
// 自动时间戳
|
||||||
|
protected $autoWriteTimestamp = false;
|
||||||
|
|
||||||
|
// 隐藏字段
|
||||||
|
protected $hidden = ['password'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户名查找用户
|
||||||
|
* @param string $username
|
||||||
|
* @return Member|null
|
||||||
|
*/
|
||||||
|
public static function findByUsername(string $username): ?Member
|
||||||
|
{
|
||||||
|
return self::where('username', $username)->find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户ID查找用户
|
||||||
|
* @param int $userid
|
||||||
|
* @return Member|null
|
||||||
|
*/
|
||||||
|
public static function findByUserid(int $userid): ?Member
|
||||||
|
{
|
||||||
|
return self::where('userid', $userid)->find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证密码
|
||||||
|
* 支持两种密码格式:
|
||||||
|
* 1. 新格式: bcrypt hash (60字符, 以 $2y$ 开头)
|
||||||
|
* 2. 旧格式: 双重MD5 (32字符)
|
||||||
|
*
|
||||||
|
* @param string $password 明文密码
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function verifyPassword(string $password): bool
|
||||||
|
{
|
||||||
|
$hash = $this->password;
|
||||||
|
|
||||||
|
// 新格式: bcrypt
|
||||||
|
if (strlen($hash) === 60 && strpos($hash, '$2y$') === 0) {
|
||||||
|
return password_verify($password, $hash);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 旧格式: 双重MD5 (兼容原系统)
|
||||||
|
$legacyHash = md5(md5($password));
|
||||||
|
return $legacyHash === $hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 升级密码为 bcrypt 格式
|
||||||
|
* @param string $password 明文密码
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function upgradePassword(string $password): bool
|
||||||
|
{
|
||||||
|
$this->password = password_hash($password, PASSWORD_DEFAULT);
|
||||||
|
return $this->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查用户是否被禁用
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isDisabled(): bool
|
||||||
|
{
|
||||||
|
return $this->disabled == 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查账号是否过期
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isExpired(): bool
|
||||||
|
{
|
||||||
|
if (empty($this->endtime)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return $this->endtime < time();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户套餐信息
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
public function getProductInfo(): ?array
|
||||||
|
{
|
||||||
|
// 从主库获取套餐信息
|
||||||
|
$product = \think\facade\Db::connect('dbbiz')
|
||||||
|
->name('product_list')
|
||||||
|
->where('v_type', $this->v_type)
|
||||||
|
->find();
|
||||||
|
|
||||||
|
return $product;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取代理商信息
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
public function getAgentInfo(): ?array
|
||||||
|
{
|
||||||
|
if (empty($this->formtypeid)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::where('userid', $this->formtypeid)->find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录登录日志
|
||||||
|
* @param bool $success
|
||||||
|
* @param string $loginType
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function logLogin(bool $success, string $loginType = 'password'): void
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
\think\facade\Db::connect('dbmember')
|
||||||
|
->name('member_login_log')
|
||||||
|
->insert([
|
||||||
|
'userid' => $this->userid,
|
||||||
|
'ip' => request()->ip(),
|
||||||
|
'time' => time(),
|
||||||
|
'succeed' => $success ? 1 : 0,
|
||||||
|
'diqu' => '',
|
||||||
|
'login_type' => $loginType,
|
||||||
|
'adminid' => 0,
|
||||||
|
'v_type' => $this->v_type ?? 0,
|
||||||
|
]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// 日志记录失败不影响登录
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\api\model;
|
||||||
|
|
||||||
|
use think\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户模型
|
||||||
|
*/
|
||||||
|
class User extends Model
|
||||||
|
{
|
||||||
|
// 表名
|
||||||
|
protected $name = 'user';
|
||||||
|
|
||||||
|
// 自动写入时间戳
|
||||||
|
protected $autoWriteTimestamp = true;
|
||||||
|
|
||||||
|
// 类型转换
|
||||||
|
protected $type = [
|
||||||
|
'id' => 'integer',
|
||||||
|
'status' => 'integer',
|
||||||
|
];
|
||||||
|
|
||||||
|
// 隐藏字段
|
||||||
|
protected $hidden = ['password', 'delete_time'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码加密
|
||||||
|
* @param string $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function setPasswordAttr(string $value): string
|
||||||
|
{
|
||||||
|
return password_hash($value, PASSWORD_DEFAULT);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证密码
|
||||||
|
* @param string $password 明文密码
|
||||||
|
* @param string $hash 加密后的密码
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function verifyPassword(string $password, string $hash): bool
|
||||||
|
{
|
||||||
|
return password_verify($password, $hash);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use think\facade\Route;
|
||||||
|
use app\api\controller\Index;
|
||||||
|
use app\api\controller\User;
|
||||||
|
use app\api\controller\V1Auth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API 应用路由
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ==================== v1 版本接口 ====================
|
||||||
|
|
||||||
|
// 健康检查 (公开)
|
||||||
|
Route::get('v1/health', [Index::class, 'health']);
|
||||||
|
|
||||||
|
// 认证接口 (公开)
|
||||||
|
Route::post('v1/auth/login', [V1Auth::class, 'login']);
|
||||||
|
Route::post('v1/auth/register', [V1Auth::class, 'register']);
|
||||||
|
Route::post('v1/auth/refresh', [V1Auth::class, 'refresh']);
|
||||||
|
|
||||||
|
// 认证接口 (需登录)
|
||||||
|
Route::group('v1/auth', function () {
|
||||||
|
Route::get('me', [V1Auth::class, 'me']);
|
||||||
|
Route::post('logout', [V1Auth::class, 'logout']);
|
||||||
|
Route::post('password', [V1Auth::class, 'password']);
|
||||||
|
})->middleware(\app\api\middleware\Auth::class);
|
||||||
|
|
||||||
|
// ==================== 兼容旧版路由 ====================
|
||||||
|
|
||||||
|
Route::get('index', [Index::class, 'index']);
|
||||||
|
Route::get('health', [Index::class, 'health']);
|
||||||
|
Route::post('user/login', [V1Auth::class, 'login']);
|
||||||
|
Route::post('user/register', [V1Auth::class, 'register']);
|
||||||
|
Route::get('user/info', [V1Auth::class, 'me'])->middleware(\app\api\middleware\Auth::class);
|
||||||
@@ -0,0 +1,201 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace app\api\service;
|
||||||
|
|
||||||
|
use app\api\common\Jwt;
|
||||||
|
use app\api\model\Member;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 认证服务
|
||||||
|
* 处理用户登录、注册、Token 管理等
|
||||||
|
*/
|
||||||
|
class AuthService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 用户登录
|
||||||
|
* @param string $username 用户名
|
||||||
|
* @param string $password 密码
|
||||||
|
* @return array
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function login(string $username, string $password): array
|
||||||
|
{
|
||||||
|
// 查找用户
|
||||||
|
$member = Member::findByUsername($username);
|
||||||
|
if (!$member) {
|
||||||
|
throw new \Exception('用户名或密码错误', 4001);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查是否被禁用
|
||||||
|
if ($member->isDisabled()) {
|
||||||
|
$member->logLogin(false, 'password');
|
||||||
|
throw new \Exception('账号已被禁用', 4002);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证密码
|
||||||
|
if (!$member->verifyPassword($password)) {
|
||||||
|
$member->logLogin(false, 'password');
|
||||||
|
throw new \Exception('用户名或密码错误', 4001);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查是否过期
|
||||||
|
if ($member->isExpired()) {
|
||||||
|
$member->logLogin(false, 'password');
|
||||||
|
throw new \Exception('账号已过期,请联系客服续费', 4003);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 密码升级:旧MD5格式自动升级为bcrypt
|
||||||
|
if (strlen($member->password) === 32) {
|
||||||
|
$member->upgradePassword($password);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 记录登录日志
|
||||||
|
$member->logLogin(true, 'password');
|
||||||
|
|
||||||
|
// 生成 Token
|
||||||
|
$token = Jwt::encode([
|
||||||
|
'userid' => $member->userid,
|
||||||
|
'username' => $member->username,
|
||||||
|
'v_type' => $member->v_type,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$refreshToken = Jwt::refreshToken($member->userid);
|
||||||
|
|
||||||
|
// 返回用户信息
|
||||||
|
return [
|
||||||
|
'token' => $token,
|
||||||
|
'refresh_token' => $refreshToken,
|
||||||
|
'expires_in' => config('jwt.expire', 604800),
|
||||||
|
'user' => [
|
||||||
|
'userid' => $member->userid,
|
||||||
|
'username' => $member->username,
|
||||||
|
'v_type' => $member->v_type,
|
||||||
|
'endtime' => $member->endtime,
|
||||||
|
'formtypeid' => $member->formtypeid,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户注册
|
||||||
|
* @param string $username 用户名
|
||||||
|
* @param string $password 密码
|
||||||
|
* @param string|null $email 邮箱
|
||||||
|
* @param int|null $formtypeid 代理商ID
|
||||||
|
* @return array
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function register(string $username, string $password, ?string $email = null, ?int $formtypeid = null): array
|
||||||
|
{
|
||||||
|
// 检查用户名是否已存在
|
||||||
|
$exists = Member::findByUsername($username);
|
||||||
|
if ($exists) {
|
||||||
|
throw new \Exception('用户名已存在', 4004);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建用户
|
||||||
|
$member = new Member();
|
||||||
|
$member->username = $username;
|
||||||
|
$member->password = password_hash($password, PASSWORD_DEFAULT);
|
||||||
|
$member->email = $email;
|
||||||
|
$member->formtypeid = $formtypeid ?? 0;
|
||||||
|
$member->v_type = 0; // 默认套餐
|
||||||
|
$member->disabled = 0;
|
||||||
|
$member->endtime = 0;
|
||||||
|
$member->regtime = time();
|
||||||
|
$member->regip = request()->ip();
|
||||||
|
|
||||||
|
if (!$member->save()) {
|
||||||
|
throw new \Exception('注册失败,请稍后重试', 5001);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 自动登录
|
||||||
|
return $this->login($username, $password);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 刷新 Token
|
||||||
|
* @param string $refreshToken
|
||||||
|
* @return array
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function refreshToken(string $refreshToken): array
|
||||||
|
{
|
||||||
|
$payload = Jwt::decode($refreshToken);
|
||||||
|
if (!$payload || ($payload['type'] ?? '') !== 'refresh') {
|
||||||
|
throw new \Exception('无效的刷新令牌', 4005);
|
||||||
|
}
|
||||||
|
|
||||||
|
$member = Member::findByUserid($payload['userid']);
|
||||||
|
if (!$member || $member->isDisabled()) {
|
||||||
|
throw new \Exception('用户不存在或已被禁用', 4002);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成新 Token
|
||||||
|
$token = Jwt::encode([
|
||||||
|
'userid' => $member->userid,
|
||||||
|
'username' => $member->username,
|
||||||
|
'v_type' => $member->v_type,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return [
|
||||||
|
'token' => $token,
|
||||||
|
'expires_in' => config('jwt.expire', 604800),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户信息
|
||||||
|
* @param int $userid
|
||||||
|
* @return array
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function getUserInfo(int $userid): array
|
||||||
|
{
|
||||||
|
$member = Member::findByUserid($userid);
|
||||||
|
if (!$member) {
|
||||||
|
throw new \Exception('用户不存在', 4006);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取套餐信息
|
||||||
|
$productInfo = $member->getProductInfo();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'userid' => $member->userid,
|
||||||
|
'username' => $member->username,
|
||||||
|
'v_type' => $member->v_type,
|
||||||
|
'endtime' => $member->endtime,
|
||||||
|
'formtypeid' => $member->formtypeid,
|
||||||
|
'disabled' => $member->disabled,
|
||||||
|
'product' => $productInfo ? [
|
||||||
|
'v_type' => $productInfo['v_type'] ?? null,
|
||||||
|
'video_num' => $productInfo['video_num'] ?? 0,
|
||||||
|
'account_num' => $productInfo['account_num'] ?? 0,
|
||||||
|
] : null,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改密码
|
||||||
|
* @param int $userid
|
||||||
|
* @param string $oldPassword
|
||||||
|
* @param string $newPassword
|
||||||
|
* @return bool
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function changePassword(int $userid, string $oldPassword, string $newPassword): bool
|
||||||
|
{
|
||||||
|
$member = Member::findByUserid($userid);
|
||||||
|
if (!$member) {
|
||||||
|
throw new \Exception('用户不存在', 4006);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$member->verifyPassword($oldPassword)) {
|
||||||
|
throw new \Exception('原密码错误', 4007);
|
||||||
|
}
|
||||||
|
|
||||||
|
$member->password = password_hash($newPassword, PASSWORD_DEFAULT);
|
||||||
|
return $member->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\api\validate;
|
||||||
|
|
||||||
|
use think\Validate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户验证器
|
||||||
|
*/
|
||||||
|
class User extends Validate
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 验证规则
|
||||||
|
*/
|
||||||
|
protected $rule = [
|
||||||
|
'username' => 'require|length:3,20|chsDash',
|
||||||
|
'password' => 'require|length:6,20',
|
||||||
|
'email' => 'require|email',
|
||||||
|
'phone' => 'mobile',
|
||||||
|
'nickname' => 'length:2,20',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证提示信息
|
||||||
|
*/
|
||||||
|
protected $message = [
|
||||||
|
'username.require' => '用户名不能为空',
|
||||||
|
'username.length' => '用户名长度3-20位',
|
||||||
|
'username.chsDash' => '用户名只能是汉字、字母、数字和下划线_及破折号-',
|
||||||
|
'password.require' => '密码不能为空',
|
||||||
|
'password.length' => '密码长度6-20位',
|
||||||
|
'email.require' => '邮箱不能为空',
|
||||||
|
'email.email' => '邮箱格式不正确',
|
||||||
|
'phone.mobile' => '手机号格式不正确',
|
||||||
|
'nickname.length' => '昵称长度2-20位',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证场景
|
||||||
|
*/
|
||||||
|
protected $scene = [
|
||||||
|
'login' => ['username', 'password'],
|
||||||
|
'register' => ['username', 'password', 'email'],
|
||||||
|
'update' => ['email', 'phone', 'nickname'],
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
// 应用公共文件
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\controller;
|
||||||
|
|
||||||
|
use app\BaseController;
|
||||||
|
|
||||||
|
class Index extends BaseController
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return '<style>*{ padding: 0; margin: 0; }</style><iframe src="https://www.thinkphp.cn/welcome?version=' . \think\facade\App::version() . '" width="100%" height="100%" frameborder="0" scrolling="auto"></iframe>';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function hello($name = 'ThinkPHP8')
|
||||||
|
{
|
||||||
|
return 'hello,' . $name;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
// 事件定义文件
|
||||||
|
return [
|
||||||
|
'bind' => [
|
||||||
|
],
|
||||||
|
|
||||||
|
'listen' => [
|
||||||
|
'AppInit' => [],
|
||||||
|
'HttpRun' => [],
|
||||||
|
'HttpEnd' => [],
|
||||||
|
'LogLevel' => [],
|
||||||
|
'LogWrite' => [],
|
||||||
|
],
|
||||||
|
|
||||||
|
'subscribe' => [
|
||||||
|
],
|
||||||
|
];
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
// 全局中间件定义文件
|
||||||
|
return [
|
||||||
|
// 全局请求缓存
|
||||||
|
// \think\middleware\CheckRequestCache::class,
|
||||||
|
// 多语言加载
|
||||||
|
// \think\middleware\LoadLangPack::class,
|
||||||
|
// Session初始化
|
||||||
|
// \think\middleware\SessionInit::class
|
||||||
|
];
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
use app\ExceptionHandle;
|
||||||
|
use app\Request;
|
||||||
|
|
||||||
|
// 容器Provider定义文件
|
||||||
|
return [
|
||||||
|
'think\Request' => Request::class,
|
||||||
|
'think\exception\Handle' => ExceptionHandle::class,
|
||||||
|
];
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use app\AppService;
|
||||||
|
|
||||||
|
// 系统服务定义文件
|
||||||
|
// 服务在完成全局初始化之后执行
|
||||||
|
return [
|
||||||
|
AppService::class,
|
||||||
|
];
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"name": "topthink/think",
|
||||||
|
"description": "the new thinkphp framework",
|
||||||
|
"type": "project",
|
||||||
|
"keywords": [
|
||||||
|
"framework",
|
||||||
|
"thinkphp",
|
||||||
|
"ORM"
|
||||||
|
],
|
||||||
|
"homepage": "https://www.thinkphp.cn/",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "liu21st",
|
||||||
|
"email": "liu21st@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "yunwuxin",
|
||||||
|
"email": "448901948@qq.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.0.0",
|
||||||
|
"topthink/framework": "^8.0",
|
||||||
|
"topthink/think-orm": "^3.0|^4.0",
|
||||||
|
"topthink/think-filesystem": "^2.0|^3.0",
|
||||||
|
"topthink/think-multi-app": "^1.1"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"topthink/think-dumper": "^1.0",
|
||||||
|
"topthink/think-trace": "^2.0"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"app\\": "app"
|
||||||
|
},
|
||||||
|
"psr-0": {
|
||||||
|
"": "extend/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"preferred-install": "dist"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"post-autoload-dump": [
|
||||||
|
"@php think service:discover",
|
||||||
|
"@php think vendor:publish"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | 应用设置
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
|
return [
|
||||||
|
// 应用的命名空间
|
||||||
|
'app_namespace' => '',
|
||||||
|
// 是否启用路由
|
||||||
|
'with_route' => true,
|
||||||
|
// 默认应用
|
||||||
|
'default_app' => 'api',
|
||||||
|
// 默认时区
|
||||||
|
'default_timezone' => 'Asia/Shanghai',
|
||||||
|
|
||||||
|
// 应用映射(自动多应用模式有效)
|
||||||
|
'app_map' => [],
|
||||||
|
// 域名绑定(自动多应用模式有效)
|
||||||
|
'domain_bind' => [],
|
||||||
|
// 禁止URL访问的应用列表(自动多应用模式有效)
|
||||||
|
'deny_app_list' => [],
|
||||||
|
|
||||||
|
// 异常页面的模板文件
|
||||||
|
'exception_tmpl' => app()->getThinkPath() . 'tpl/think_exception.tpl',
|
||||||
|
|
||||||
|
// 错误显示信息,非调试模式有效
|
||||||
|
'error_message' => '页面错误!请稍后再试~',
|
||||||
|
// 显示错误信息
|
||||||
|
'show_error_msg' => false,
|
||||||
|
];
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | 缓存设置
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
|
return [
|
||||||
|
// 默认缓存驱动
|
||||||
|
'default' => 'file',
|
||||||
|
|
||||||
|
// 缓存连接方式配置
|
||||||
|
'stores' => [
|
||||||
|
'file' => [
|
||||||
|
// 驱动方式
|
||||||
|
'type' => 'File',
|
||||||
|
// 缓存保存目录
|
||||||
|
'path' => '',
|
||||||
|
// 缓存前缀
|
||||||
|
'prefix' => '',
|
||||||
|
// 缓存有效期 0表示永久缓存
|
||||||
|
'expire' => 0,
|
||||||
|
// 缓存标签前缀
|
||||||
|
'tag_prefix' => 'tag:',
|
||||||
|
// 序列化机制 例如 ['serialize', 'unserialize']
|
||||||
|
'serialize' => [],
|
||||||
|
],
|
||||||
|
// 更多的缓存连接
|
||||||
|
],
|
||||||
|
];
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | 控制台配置
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
return [
|
||||||
|
// 指令定义
|
||||||
|
'commands' => [
|
||||||
|
],
|
||||||
|
];
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Cookie设置
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
return [
|
||||||
|
// cookie 保存时间
|
||||||
|
'expire' => 0,
|
||||||
|
// cookie 保存路径
|
||||||
|
'path' => '/',
|
||||||
|
// cookie 有效域名
|
||||||
|
'domain' => '',
|
||||||
|
// cookie 启用安全传输
|
||||||
|
'secure' => false,
|
||||||
|
// httponly设置
|
||||||
|
'httponly' => false,
|
||||||
|
// 是否使用 setcookie
|
||||||
|
'setcookie' => true,
|
||||||
|
// samesite 设置,支持 'strict' 'lax'
|
||||||
|
'samesite' => '',
|
||||||
|
];
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
// 默认使用的数据库连接配置
|
||||||
|
'default' => 'dbmember',
|
||||||
|
|
||||||
|
// 自定义时间查询规则
|
||||||
|
'time_query_rule' => [],
|
||||||
|
|
||||||
|
// 自动写入时间戳字段
|
||||||
|
// true为自动识别类型 false关闭
|
||||||
|
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
|
||||||
|
'auto_timestamp' => false,
|
||||||
|
|
||||||
|
// 时间字段取出后的默认时间格式
|
||||||
|
'datetime_format' => 'Y-m-d H:i:s',
|
||||||
|
|
||||||
|
// 时间字段配置 配置格式:create_time,update_time
|
||||||
|
'datetime_field' => '',
|
||||||
|
|
||||||
|
// 数据库连接配置信息
|
||||||
|
'connections' => [
|
||||||
|
// 会员数据库 (member) - 主连接
|
||||||
|
'dbmember' => [
|
||||||
|
'type' => 'mysql',
|
||||||
|
'hostname' => env('DB_HOSTNAME', 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com'),
|
||||||
|
'database' => env('DATABASE', 'member'),
|
||||||
|
'username' => env('USERNAME', 'newsystemrds'),
|
||||||
|
'password' => env('PASSWORD', 'Xx123456'),
|
||||||
|
'hostport' => env('HOSTPORT', '3306'),
|
||||||
|
'params' => [],
|
||||||
|
'charset' => env('CHARSET', 'utf8mb4'),
|
||||||
|
'prefix' => '',
|
||||||
|
'deploy' => 0,
|
||||||
|
'rw_separate' => false,
|
||||||
|
'master_num' => 1,
|
||||||
|
'slave_no' => '',
|
||||||
|
'fields_strict' => false,
|
||||||
|
'break_reconnect' => false,
|
||||||
|
'trigger_sql' => env('APP_DEBUG', true),
|
||||||
|
'fields_cache' => false,
|
||||||
|
],
|
||||||
|
|
||||||
|
// 业务数据库 (aicaigoupmw) - 主库
|
||||||
|
'dbbiz' => [
|
||||||
|
'type' => 'mysql',
|
||||||
|
'hostname' => env('DB_BIZ_HOSTNAME', 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com'),
|
||||||
|
'database' => env('DB_BIZ_DATABASE', 'aicaigoupmw'),
|
||||||
|
'username' => env('DB_BIZ_USERNAME', 'contenttpl'),
|
||||||
|
'password' => env('DB_BIZ_PASSWORD', 'QXYxgg123!@#q'),
|
||||||
|
'hostport' => env('DB_BIZ_HOSTPORT', '3306'),
|
||||||
|
'params' => [],
|
||||||
|
'charset' => env('CHARSET', 'utf8mb4'),
|
||||||
|
'prefix' => '',
|
||||||
|
'deploy' => 0,
|
||||||
|
'rw_separate' => false,
|
||||||
|
'master_num' => 1,
|
||||||
|
'slave_no' => '',
|
||||||
|
'fields_strict' => false,
|
||||||
|
'break_reconnect' => false,
|
||||||
|
'trigger_sql' => env('APP_DEBUG', true),
|
||||||
|
'fields_cache' => false,
|
||||||
|
],
|
||||||
|
|
||||||
|
// 后台管理数据库
|
||||||
|
'dbxgg' => [
|
||||||
|
'type' => 'mysql',
|
||||||
|
'hostname' => env('DB_HOSTNAME', 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com'),
|
||||||
|
'database' => env('DB_XGG_DATABASE', 'member'),
|
||||||
|
'username' => env('DB_XGG_USERNAME', 'newsystemrds'),
|
||||||
|
'password' => env('DB_XGG_PASSWORD', 'Xx123456'),
|
||||||
|
'hostport' => env('HOSTPORT', '3306'),
|
||||||
|
'params' => [],
|
||||||
|
'charset' => env('CHARSET', 'utf8mb4'),
|
||||||
|
'prefix' => '',
|
||||||
|
'deploy' => 0,
|
||||||
|
'rw_separate' => false,
|
||||||
|
'master_num' => 1,
|
||||||
|
'slave_no' => '',
|
||||||
|
'fields_strict' => false,
|
||||||
|
'break_reconnect' => false,
|
||||||
|
'trigger_sql' => env('APP_DEBUG', true),
|
||||||
|
'fields_cache' => false,
|
||||||
|
],
|
||||||
|
|
||||||
|
// 积分数据库
|
||||||
|
'dbintegral' => [
|
||||||
|
'type' => 'mysql',
|
||||||
|
'hostname' => env('DB_HOSTNAME', 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com'),
|
||||||
|
'database' => env('DB_INTEGRAL_DATABASE', 'integral'),
|
||||||
|
'username' => env('DB_INTEGRAL_USERNAME', 'newsystemrds'),
|
||||||
|
'password' => env('DB_INTEGRAL_PASSWORD', 'Xx123456'),
|
||||||
|
'hostport' => env('HOSTPORT', '3306'),
|
||||||
|
'params' => [],
|
||||||
|
'charset' => env('CHARSET', 'utf8mb4'),
|
||||||
|
'prefix' => '',
|
||||||
|
'deploy' => 0,
|
||||||
|
'rw_separate' => false,
|
||||||
|
'master_num' => 1,
|
||||||
|
'slave_no' => '',
|
||||||
|
'fields_strict' => false,
|
||||||
|
'break_reconnect' => false,
|
||||||
|
'trigger_sql' => env('APP_DEBUG', true),
|
||||||
|
'fields_cache' => false,
|
||||||
|
],
|
||||||
|
|
||||||
|
// 本地开发数据库 (可选)
|
||||||
|
'mysql' => [
|
||||||
|
'type' => 'mysql',
|
||||||
|
'hostname' => '127.0.0.1',
|
||||||
|
'database' => 'tp_api',
|
||||||
|
'username' => 'root',
|
||||||
|
'password' => '',
|
||||||
|
'hostport' => '3306',
|
||||||
|
'params' => [],
|
||||||
|
'charset' => 'utf8mb4',
|
||||||
|
'prefix' => '',
|
||||||
|
'deploy' => 0,
|
||||||
|
'rw_separate' => false,
|
||||||
|
'master_num' => 1,
|
||||||
|
'slave_no' => '',
|
||||||
|
'fields_strict' => false,
|
||||||
|
'break_reconnect' => false,
|
||||||
|
'trigger_sql' => env('APP_DEBUG', true),
|
||||||
|
'fields_cache' => false,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
// 默认磁盘
|
||||||
|
'default' => 'local',
|
||||||
|
// 磁盘列表
|
||||||
|
'disks' => [
|
||||||
|
'local' => [
|
||||||
|
'type' => 'local',
|
||||||
|
'root' => app()->getRuntimePath() . 'storage',
|
||||||
|
],
|
||||||
|
'public' => [
|
||||||
|
// 磁盘类型
|
||||||
|
'type' => 'local',
|
||||||
|
// 磁盘路径
|
||||||
|
'root' => app()->getRootPath() . 'public/storage',
|
||||||
|
// 磁盘路径对应的外部URL路径
|
||||||
|
'url' => '/storage',
|
||||||
|
// 可见性
|
||||||
|
'visibility' => 'public',
|
||||||
|
],
|
||||||
|
// 更多的磁盘配置信息
|
||||||
|
],
|
||||||
|
];
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* JWT 配置
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
// 密钥 (生产环境请修改)
|
||||||
|
'secret' => env('JWT_SECRET', 'dyai_jwt_secret_key_2026_change_in_production'),
|
||||||
|
|
||||||
|
// 签发者
|
||||||
|
'issuer' => env('JWT_ISSUER', 'dyai-api'),
|
||||||
|
|
||||||
|
// Token 有效期 (秒) 默认 7 天
|
||||||
|
'expire' => env('JWT_EXPIRE', 604800),
|
||||||
|
|
||||||
|
// 刷新 Token 有效期 (秒) 默认 30 天
|
||||||
|
'refresh_expire' => env('JWT_REFRESH_EXPIRE', 2592000),
|
||||||
|
];
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | 多语言设置
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
|
return [
|
||||||
|
// 默认语言
|
||||||
|
'default_lang' => env('DEFAULT_LANG', 'zh-cn'),
|
||||||
|
// 自动侦测浏览器语言
|
||||||
|
'auto_detect_browser' => true,
|
||||||
|
// 允许的语言列表
|
||||||
|
'allow_lang_list' => [],
|
||||||
|
// 多语言自动侦测变量名
|
||||||
|
'detect_var' => 'lang',
|
||||||
|
// 是否使用Cookie记录
|
||||||
|
'use_cookie' => true,
|
||||||
|
// 多语言cookie变量
|
||||||
|
'cookie_var' => 'think_lang',
|
||||||
|
// 多语言header变量
|
||||||
|
'header_var' => 'think-lang',
|
||||||
|
// 扩展语言包
|
||||||
|
'extend_list' => [],
|
||||||
|
// Accept-Language转义为对应语言包名称
|
||||||
|
'accept_language' => [
|
||||||
|
'zh-hans-cn' => 'zh-cn',
|
||||||
|
],
|
||||||
|
// 是否支持语言分组
|
||||||
|
'allow_group' => false,
|
||||||
|
];
|
||||||
Executable
+56
@@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统配置文件
|
||||||
|
*/
|
||||||
|
|
||||||
|
return array(
|
||||||
|
|
||||||
|
/* Cookie设置 */
|
||||||
|
'cookie_expire' => 0, // Cookie生命周期 0 表示随浏览器进程
|
||||||
|
'cookie_domain' => '', // Cookie有效域名
|
||||||
|
'cookie_path' => '/', // Cookie路径
|
||||||
|
'cookie_prefix' => 'work_', // Cookie前缀 避免冲突
|
||||||
|
'cookie_secure' => false, // Cookie安全传输
|
||||||
|
'cookie_httponly' => true, // Cookie httponly设置
|
||||||
|
|
||||||
|
/* Session设置 */
|
||||||
|
'session_driver' => 'mysql', // session 驱动类型
|
||||||
|
'session_maxlifetime' => 1440, // Session 配置数组 支持type name id path expire domain 等参数
|
||||||
|
|
||||||
|
'authkey' => 'cab76dz7leXhfjIo',
|
||||||
|
|
||||||
|
/* Cache设置支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator */
|
||||||
|
'cache_type' => 'File', // 默认文件
|
||||||
|
|
||||||
|
'database' => array (
|
||||||
|
/*
|
||||||
|
'read' => array(
|
||||||
|
'host' => '192.168.1.1',
|
||||||
|
),
|
||||||
|
|
||||||
|
'write' =>array(
|
||||||
|
array('host' => '1.0.0.1',),
|
||||||
|
array('host' => '2.0.0.1',),
|
||||||
|
array('host' => '3.0.0.1',),
|
||||||
|
array('host' => '4.0.0.1',),
|
||||||
|
),
|
||||||
|
*/
|
||||||
|
|
||||||
|
'driver' => 'mysql',
|
||||||
|
'host' => '127.0.0.1',
|
||||||
|
'dbname' => 'web1',
|
||||||
|
'username' => 'root',
|
||||||
|
'password' => 'root',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
'prefix' => 'z_',
|
||||||
|
|
||||||
|
), // 默认文件
|
||||||
|
'redis' => array(
|
||||||
|
'host' => 'r-m5edpistyzhh5h9w3cpd.redis.rds.aliyuncs.com',
|
||||||
|
'port' => 6379,
|
||||||
|
'password' => 'QXYxgg123!@#q'
|
||||||
|
),
|
||||||
|
'ip_info' => 'http://218.58.222.138:8092'
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'aicaigoupmw',
|
||||||
|
'username' => 'contenttpl',
|
||||||
|
'password' => 'QXYxgg123!@#q',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'integral',
|
||||||
|
'username' => 'integral',
|
||||||
|
'password' => 'yhBfC8TyirXDJ8kM',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'aicaigoupmw',
|
||||||
|
'username' => 'contenttpl',
|
||||||
|
'password' => 'QXYxgg123!@#q',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
// 'host' => 'rds7gob7r49f11mobky3.mysql.rds.aliyuncs.com',
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'member',
|
||||||
|
'username' => 'newsystemrds',
|
||||||
|
'password' => 'Qixinyun123!@#',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+26
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 => 'acgpmw.xuntuoguan.com',
|
||||||
|
1 => 'aicaigou.aetsx.com',
|
||||||
|
2 => 'acg.qianyuwang.com',
|
||||||
|
3 => 'acg.kp88.cn',
|
||||||
|
4 => 'zyc.bjweizhifu.cn',
|
||||||
|
5 => 'dy.jinxinqiao.net',
|
||||||
|
6 => 'video.vip5188.net',
|
||||||
|
7 => 'manage.s2stu.cn',
|
||||||
|
8 => 'daili.huokebang.cc',
|
||||||
|
9 => 'wstdl.bjweizhifu.com',
|
||||||
|
10 => 'admin.dayousp.com',
|
||||||
|
11 => 'vedio.sywl.co',
|
||||||
|
12 => 'dy.letuirj.com',
|
||||||
|
13 => 'yunying.qianyuwang.com',
|
||||||
|
14 => 'gl.slyunshipin.com',
|
||||||
|
15 => 'feipin.soukuaitui.com',
|
||||||
|
16 => 'youkuaituiadmin.yiwangtui.com',
|
||||||
|
17 => 'xljz.haokajia.com',
|
||||||
|
18 => 'dsj.baicivip.cn',
|
||||||
|
19 => 'ms.dingziyun.net',
|
||||||
|
20 => 'jbha.kanglilai168.cn',
|
||||||
|
21 => 'adm.duomiduonet.com',
|
||||||
|
22 => 'dslk913.dongshun413.cn',
|
||||||
|
);
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 => 'pm.yuntuoguan.cc',
|
||||||
|
1 => 'pm.qianyuwang.com',
|
||||||
|
2 => 'video.video-marketing.cn',
|
||||||
|
3 => 'wstbb.bjweizhifu.com',
|
||||||
|
4 => 'baobiao.yiqidou.cn',
|
||||||
|
5 => 'baobiao.hnhsweb.com',
|
||||||
|
6 => 'baobiaovip.s2stu.cn',
|
||||||
|
7 => 'aaaa.name.na',
|
||||||
|
8 => 'aaa33a.name.na',
|
||||||
|
9 => 'baobiao.jiayichuanmei.cn',
|
||||||
|
);
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 => 'acgi.yuntuoguan.cc',
|
||||||
|
1 => 'aicaigou.aetsx.com',
|
||||||
|
2 => 'acgself.xuntuoguan.com',
|
||||||
|
3 => 'acg.qianyuwang.com',
|
||||||
|
4 => 'acg.kp88.cn',
|
||||||
|
5 => 'zyc.bjweizhifu.cn',
|
||||||
|
6 => 'kehu.hnhsweb.com',
|
||||||
|
7 => 'doushijia.s2stu.cn',
|
||||||
|
);
|
||||||
Executable
+49
@@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 => 'dy.0635.com',
|
||||||
|
1 => 'dkw.aetsx.com',
|
||||||
|
2 => '47.104.211.80:8019',
|
||||||
|
3 => 'dou.dzjhjz.com',
|
||||||
|
4 => 'ds.0635.com',
|
||||||
|
5 => 'douyin.huanyudada.com',
|
||||||
|
6 => 'dy.jinxinqiao.net',
|
||||||
|
7 => 'dy.douying.net',
|
||||||
|
8 => 'dy.qixinyun.net',
|
||||||
|
9 => 'acgs.xunguagua.com',
|
||||||
|
10 => 'video.vip5188.net',
|
||||||
|
11 => 'doushijia.s2stu.cn',
|
||||||
|
12 => 'ybmember.ybaigc.cn',
|
||||||
|
13 => 'daili.huokebang.cc',
|
||||||
|
14 => 'wst.bjweizhifu.com',
|
||||||
|
15 => 'dy.dayousp.com',
|
||||||
|
16 => 'videoht.qianhewangluo.com',
|
||||||
|
17 => 'dy.sywl.co',
|
||||||
|
18 => 'dy.letuirj.com',
|
||||||
|
19 => 'user.qianyuwang.com',
|
||||||
|
20 => 'douyin.douqitui.com',
|
||||||
|
21 => 'dkx.lcduoduo.top',
|
||||||
|
22 => 'video.l001.cn',
|
||||||
|
23 => 'kh.slyunshipin.com',
|
||||||
|
24 => 'video.julianglaike.xn--fiqs8s',
|
||||||
|
25 => 'login.51cap.cn',
|
||||||
|
26 => 'feipin.soukuaitui.com',
|
||||||
|
27 => 'dyy.xunguagua.com',
|
||||||
|
28 => 'youkuaitui.yiwangtui.com',
|
||||||
|
29 => 'jz.haokajia.com',
|
||||||
|
30 => 'doushijia.baicivip.cn',
|
||||||
|
31 => 'dyclip.smartcloai.com',
|
||||||
|
32 => 'cs.dingziyun.net',
|
||||||
|
33 => 'douyin.xtcc.vip',
|
||||||
|
34 => 'video.qimingwangluo.com',
|
||||||
|
35 => 'dyjz.dsxindianshang.com',
|
||||||
|
36 => 'dy.feitechuhai.com',
|
||||||
|
37 => 'hqy.zhhqhh.com',
|
||||||
|
38 => 'hxk.haixunkekeji.com',
|
||||||
|
39 => 'douqian.haian1688.com',
|
||||||
|
40 => 'aaaa.name.na',
|
||||||
|
41 => 'aaa2212a.name.na',
|
||||||
|
42 => 'jbh.kanglilai168.cn',
|
||||||
|
43 => 'adu.duomiduonet.com',
|
||||||
|
44 => 'jiayi.jiayichuanmei.cn',
|
||||||
|
45 => 'dslk413.dongshun413.cn',
|
||||||
|
);
|
||||||
Executable
+49
@@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'dy.0635.com' => 'mvsp',
|
||||||
|
'dkw.aetsx.com' => 'dkw',
|
||||||
|
'47.104.211.80:8019' => '',
|
||||||
|
'dou.dzjhjz.com' => 'dkw',
|
||||||
|
'ds.0635.com' => 'dkw',
|
||||||
|
'douyin.huanyudada.com' => 'dkw',
|
||||||
|
'dy.jinxinqiao.net' => 'dkw',
|
||||||
|
'dy.douying.net' => 'mvsp',
|
||||||
|
'dy.qixinyun.net' => 'mvsp',
|
||||||
|
'acgs.xunguagua.com' => 'mvsp',
|
||||||
|
'video.vip5188.net' => 'dkw',
|
||||||
|
'doushijia.s2stu.cn' => 'mvsp',
|
||||||
|
'ybmember.ybaigc.cn' => 'mvsp',
|
||||||
|
'daili.huokebang.cc' => 'dkw',
|
||||||
|
'wst.bjweizhifu.com' => 'mvsp',
|
||||||
|
'dy.dayousp.com' => 'dkw',
|
||||||
|
'videoht.qianhewangluo.com' => 'mvsp',
|
||||||
|
'dy.sywl.co' => 'mvsp',
|
||||||
|
'dy.letuirj.com' => '',
|
||||||
|
'user.qianyuwang.com' => '',
|
||||||
|
'douyin.douqitui.com' => '',
|
||||||
|
'dkx.lcduoduo.top' => '',
|
||||||
|
'video.l001.cn' => '',
|
||||||
|
'kh.slyunshipin.com' => '',
|
||||||
|
'video.julianglaike.xn--fiqs8s' => '',
|
||||||
|
'login.51cap.cn' => '',
|
||||||
|
'feipin.soukuaitui.com' => '',
|
||||||
|
'dyy.xunguagua.com' => '',
|
||||||
|
'youkuaitui.yiwangtui.com' => '',
|
||||||
|
'jz.haokajia.com' => '',
|
||||||
|
'doushijia.baicivip.cn' => 'mvsp',
|
||||||
|
'dyclip.smartcloai.com' => '',
|
||||||
|
'cs.dingziyun.net' => '',
|
||||||
|
'douyin.xtcc.vip' => '',
|
||||||
|
'video.qimingwangluo.com' => '',
|
||||||
|
'dyjz.dsxindianshang.com' => '',
|
||||||
|
'dy.feitechuhai.com' => '',
|
||||||
|
'hqy.zhhqhh.com' => '',
|
||||||
|
'hxk.haixunkekeji.com' => '',
|
||||||
|
'douqian.haian1688.com' => '',
|
||||||
|
'aaaa.name.na' => '',
|
||||||
|
'aaa2212a.name.na' => '',
|
||||||
|
'jbh.kanglilai168.cn' => '',
|
||||||
|
'adu.duomiduonet.com' => '',
|
||||||
|
'jiayi.jiayichuanmei.cn' => '',
|
||||||
|
'dslk413.dongshun413.cn' => '',
|
||||||
|
);
|
||||||
Executable
+39
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 => 'videopm.0635.com',
|
||||||
|
1 => 'baobiao.aetsx.com',
|
||||||
|
2 => '47.104.78.219:4597',
|
||||||
|
3 => 'dada.huanyudada.com',
|
||||||
|
4 => 'baobiao.jinxinqiao.net',
|
||||||
|
5 => 'vd.vip5188.net',
|
||||||
|
6 => 'baobiao.s2stu.cn',
|
||||||
|
7 => 'ybbaobiao.ybaigc.cn',
|
||||||
|
8 => 'baobiao.huokebang.cc',
|
||||||
|
9 => 'bjweizhifu.com',
|
||||||
|
10 => 'wstbb.bjweizhifu.com',
|
||||||
|
11 => 'videopm.dayousp.com',
|
||||||
|
12 => 'video.qianhewangluo.com',
|
||||||
|
13 => 'dou.sywl.co',
|
||||||
|
14 => 'baobiao.letuirj.com',
|
||||||
|
15 => 'douyu.qianyuwang.com',
|
||||||
|
16 => 'baobiao.douqitui.com',
|
||||||
|
17 => 'baobiao.l001.cn',
|
||||||
|
18 => 'bg.slyunshipin.com',
|
||||||
|
19 => 'baobiao.51cap.cn',
|
||||||
|
20 => 'shipin.soukuaitui.com',
|
||||||
|
21 => 'youkuaitaidata.yiwangtui.com',
|
||||||
|
22 => 'bb.haokajia.com',
|
||||||
|
23 => 'baobiaovip.baicivip.cn',
|
||||||
|
24 => 'dypotal.smartcloai.com',
|
||||||
|
25 => 'report.dingziyun.net',
|
||||||
|
26 => '47.104.211.80:8019',
|
||||||
|
27 => 'baobiao.qimingwangluo.com',
|
||||||
|
28 => 'baobiao.dsxindianshang.com',
|
||||||
|
29 => 'baobiao.feitechuhai.com',
|
||||||
|
30 => 'baobiao.zhhqhh.com',
|
||||||
|
31 => 'baobiao.haixunkekeji.com',
|
||||||
|
32 => 'baobiao.haian1688.com',
|
||||||
|
33 => 'jbhb.kanglilai168.cn',
|
||||||
|
34 => 'add.duomiduonet.com',
|
||||||
|
35 => 'dslk4193.dongshun413.cn',
|
||||||
|
);
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @DATE 5.28
|
||||||
|
*/
|
||||||
|
return array (
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'integral',
|
||||||
|
'username' => 'integral',
|
||||||
|
'password' => 'yhBfC8TyirXDJ8kM',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+7961
File diff suppressed because it is too large
Load Diff
Executable
+31
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
2 => '搞笑',
|
||||||
|
3 => '美女',
|
||||||
|
4 => '祝福',
|
||||||
|
5 => '豪车',
|
||||||
|
6 => '浪漫',
|
||||||
|
7 => '暴富',
|
||||||
|
8 => '飞机',
|
||||||
|
9 => '帅哥',
|
||||||
|
// 10 => '新春',
|
||||||
|
11 => '企业',
|
||||||
|
// 12 => '元宵节',
|
||||||
|
// 13 => '公主节',
|
||||||
|
// 15 => '五一',
|
||||||
|
// 16 => '母亲节',
|
||||||
|
// 17 => '端午节',
|
||||||
|
// 18 => '父亲节',
|
||||||
|
// 19 => '建党节',
|
||||||
|
// 20 => '中秋节',
|
||||||
|
//21 => '国庆节',
|
||||||
|
//22 => '元旦',
|
||||||
|
//23 => '小年',
|
||||||
|
//24 => '除夕',
|
||||||
|
//25 => '春节',
|
||||||
|
//26 => '元宵',
|
||||||
|
14 => '其他',
|
||||||
|
// 27 => '元旦',
|
||||||
|
//28 => '小年',
|
||||||
|
// 29 => '春节',
|
||||||
|
);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (10504,7264,1746,9429,2658,6162,15823,1532,9907,3490,10533,11507,4333,8398,3749,15507,14255,13647,13061,9780,11116,12217,15914,13052,3025,15920,14499,6315,15940,13551,12168,4717,1901,8517,13771,15979,2183,15949,10478,15996,15941,8042,5057,15881,3900,16027,5958,16054,16056,14465,9660,2549,15116,13928,11733,15768,4799,16046,16116,16121,15829,16123,3669,13656,14410,15844,14993,5613,16147,15843,12839,12056,16168,15755,16167,14098,3711,4306,10107,13047,12581,4697,16226,16195,8705,11002,12089,15844,16251,8910,16293,12584,10929,11360,8042,4930,16310,15923,16275,13182,13432,8281,4838,4582,16395,3518,11449,11035,16421,16435,12152,16196,14098,16117,16457,16431,7320,16436,16508,9805,16471,4523,10674,14482,7613,15809,13829,16609,15342,1805,1648,16624,15686,16629,14783,16649,16650,11560,16656,5230,16482,16659,9895,16432,16145,16625,1770,9250,8019,10871,13030,9263,12880,11067,16710,1247,16714,16726,16725,16737,16751,6276,11865,5777,15659,13288,16566,16805,5742,6365,5986,16392,9939,5179,16825,16831,16861,16065,16865,16870,16871,14311,16258,16896,14753,16920,16675,16958,6242,10162,1766,16989,17006,17030,17049,17055,15763,4030,15552,16937,16379,17009,16364,17065,12266,17077,17189,17242,16341,10778,5257);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (15844,14993,5613,16147,16145,15843,15755,14098,16168,16226,16229,4306,8705,1869,12089,15844,16251,12056,1257,14348,14670,12584,10929,11360,8042,16312,15923,15608,8281,11208,4838,16247,13975,10692,14042,12121,4429,13760,14404,5774,13040,1746,2104,13061,12776,9807,11449,11035,16108,12402,16435,4030,13978,12152,16117,4558,9299,11998,9343,10758,1354,5592,11392,15763,6374,10674,15262,1159,14482,8241,3778,2045,7613,15809,13829,1805,1648,16624,15686,12596,14056,13442,11954,15677,11560,7847,9895,12841,16432,15770,16017,10598,2959,10504,8479,9802,8413,16625,1770,9250,8019,10871,8747,9263,12880,11067,3269,1247,16714,13580,3503,8974,16339,15979,12071,14811,6276,14940,11191,5614,5777,11002,13598,1160,16566,13288,14499,13876,9826,9939,5179,16825,4523,3046,8910,4413,16870,16871,9805,15920,14311,13693,14863,15671,16896,5371,12236,16920,16922,14255,12033,13979,12356,16958,14834,16315,4281,9495,17006,7552,17030,13752,17055,15552,6108,6071,15098,15678,15709,16937,6840,16379,17092,12145,16184,16243,9861,17168,5908,14480,12978,6071,15720,17004,16795,17077,16389,14812,12463,5643,14122,4371,11850,3668,13623,6367,10778,5257);
|
||||||
Executable
+2
File diff suppressed because one or more lines are too long
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (1097,1139,1258,8333,3503,8106,7324,4401,5614,3908,9132,7233,8107,8089,8177,4334,1986,9109,9183,2550,3833,2037,1748,1924,2437,9205,9224,2540,9269,8667,9250,1770,9267,7962,9333,9180,5962,2016,9357,1466,9340,1901,7145,1529,2451,9455,9442,9480,3287,3698,9496,9485,3161,2851,2549,9495,9496,3112,6673,9522,9526,3140,2104,2697,8230,3990,1532,3711,5716,9018,9566,9571,8893,9469,8454,1160,5795,3037,5257,9327,6728,9665,6728,6620,8142,8069,3703,4306,3576,5257,9679,6141,9733,2664,9640,9753,2857,2389,6346,3363,1896,9783,8930,1747,9796,3825,2037,2552,9502,9716,9477,1548,9834,9837,9826,9775,9608,9426,9878,9880,6768,9891,7969,9907,9544,9530,8305,1330,3581,3496,1613,6400,1332,9931,9835,1961,9762,9762,8134,9951,3005,3571,9406,9191,9976,9360,9851,9982,7968,2331,9920,8974,9997,3756,6790,7433,9922,2886,9950,8481,9631,8931,6888,9317,4870,3627,3092,10026,2930,6316,1213,9943,7898,8646,9443,1759,3129,1675,10046,9805,9263,9249,3085,8998,1653,3330,8903,3667,9247,5994,10101,6114,10028,4467,10084,10088,2045,1129,10103,10071,10042,9946,6813,10108,9989,8285,9100,3152,9828,8709,10019,5317,9975,1405,7232,10012,10144,6711,5861,9908,9574,9814,9815,9838,9839,9840,9864,9908,9919,9921,9965,10004,10014,10015,10020,10035,10044,10098,10126,10159,7135,4185,9104,10147,6696,10158,10187,10047,10213,10200,10167,10192,10216,10239,10080,10248,4581,10266,1697,5021,10247,3912,7634,6092,9624,8906,9970,6506,9747,10208,10301,10107,10328,8105,10197,2127,10339,10362,10323,10324,10325,10326,10316,10382,10378,10401,10398,5407,4188,10263,10373,6470,9892,7411,6837,9978,6202,10379,10464,10449,10421,10406,10405,3312,7833,4185,10497,10494,10477,10513,10511,10500,3425,8283,10514,10492,10519,10486,6905,6444,9861,8439,10511,10525,10531,10540,4404,10575,1549,8540,9758,10442,7093,4337,10003,1119,9192,4398,4060,1650,7210,9764,6075,10644,7371,1997,9776,1827,7665,9219,10692,10627,9738,10631,10695,10655,10270,10429,7809,10704,1406,9341,7248,10396,1600,3066,10713,10653,8604,10063,10735,2658,2391,2327,5086,10759,2365,10457,9951,10780,9076,5254,9645,6453,5753,9108,3722,8956,9665,9470,10105,9692,2265,10723,3882,2641,6726,1970,10836,10821,10697,5037,2615,9719,10845,3626,10601,6774,9383,10832,4221,10883,6306,5831,10846,10817,1751,3959,4219,6795,10868,7949,10577,10462,1314,10975,10797,8398,10974,10987,4272,1886,1968,2277,2505,1942,10824,10763,4879,2978,10980,11030,11006,10877,10083,2229,2588,5566,11089,11028,9702,10890,7910,11121,11128,9868,2076,3656,11147,11148,4072,4710,11168,5201,6326,7074,11179,8747,11207,11204,5729,11294,2386,11190,11283,1942,11262,11234,11198,10517,9057,2371,11395,11572,11213,11581,11582,11097,2281,11626,11560,10885,10274,4074,11606,11607,11643,1335,9429,6379,9856,11014,2068,4436,3515,1584,6377,11708,11681,11095,11098,11465,10060,10931,2322,8718,11075,11800,11817,11702,11671,11828,11818,11043,11801,10241,4281,8691,11525,6160,10884,5371,5892,5001,10797,11365,11927,10424,4429,3365,11790,11985,4129,11575,11974,3103,11997,11633,11954,9743,5728,11856,11650,10724,11829,1688,11621,11135,10157,1450,5444,3025,5404,6315,12057,12058,12059,11191,4359,10160,11929,11275,3668,11031,10085,12094,11966,4424,12097,2098,11836,9464,10743,11180,12056,9031,10032,12168,11242,12111,10743,3957,11178,10593,11116,7541,3848,12156,11947,12217,6201,12215,2596,2020,12188,7214,12234,11998,1776,5519,8879,10438,2372,12153,12302,12248,12054,3840,11932,11532,12286,12281,12148,8339,10443,12325,12013,11926,12333,12337,8029,2612,1715,6276,12296,10698,12035,5813,10432,10431,4438,4295,4294,3468,12145,11839,10871,9879,12422,12136,11844,6757,12226,12150,12429,12271,12052,9941,2202,9178,12452,11783,11187,12266,5791,6201,10867,9583,12484,10466,9626,5884,5572,3900,12529,12203,12285,11092,11991,12501,12437,12055,2254,11067,12483,12535,12402,12152,9703,12592,11798,12358,4376,10728,12493,12463,11652,12619,11845,12320,11184,7506,9338,12511,12220,12542,12306,5986,5742,12581,6365,11846,12553,11977,12625,12641,12151,6747,12622,1863,7276,12710,12709,11654,6746,3909,12313,10630,12014,10810,10120,3955,12738,12728,8427,12671,11695,12630,12644,12710,12088,9283,12759,2545,11081,12771,12736,11185,11202,7162,12766,2102,12776,10155,11719,5297,12772,12236,3543,8464,11192,11637,12785,10057,12799,12841,12820,12797,6842,5393,9406,9279,12856,10733,10520,2183,10611,12819,12594,11169,2039,5589,12883,2069,12855,12882,5813,9746,12882,12892,12925,10444,10733,9729,9777,12868,4095,12839,10689,12196,12828,10541,6233,12007,1826,10504,10198,11258,6770,12964,10440,12492,12850,1679 ,1638,1455,1652,4334,1811,1812,1912,2817,12558,4026,3826,9256,12118,12943,12843,10533,9875,9691,9523,11860,9777,11996,4577,5283,11166,11784,5062,12928,13013,12995,12838,12760,12980,8745,4276,13033,12938,8874,4276,10992,13052,9660,13032,12154,13038,13030,13058,10787,13109,13053,10787,13108,12966,6885,4520,6688,11026,10061,9414,13143,13039,13026,12653,4276,13071,8991,8611,9986);
|
||||||
Executable
+2
File diff suppressed because one or more lines are too long
Executable
+143
@@ -0,0 +1,143 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'b138' => array('name'=>'技术流运镜', 'url'=>'http://douyin.zzwl.info/douyin766_com20220110101348.mp3'),
|
||||||
|
'b139' => array('name'=>'Traag性别反转大挑战', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20220110104026.mp3'),
|
||||||
|
'b140' => array('name'=>'门没锁', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20220110130503.mp3'),
|
||||||
|
'b141' => array('name'=>'新年快乐', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20220110131332.mp3'),
|
||||||
|
'b142' => array('name'=>'哪里都是你剪辑版', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20220110132147.mp3'),
|
||||||
|
'b143' => array('name'=>'2022三倍爱你', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20220110132407.mp3'),
|
||||||
|
'b144' => array('name'=>'恭喜发财','url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20220110135443.mp3'),
|
||||||
|
'b129' => array('name'=>'那就好好告个别吧', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211222102842.mp3'),
|
||||||
|
'b130' => array('name'=>'Live Another Day', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211222110533.mp3'),
|
||||||
|
'b131' => array('name'=>'叹-副歌', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211222113417.mp3'),
|
||||||
|
'b132' => array('name'=>'神魂颠倒', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211222113837.mp3'),
|
||||||
|
'b133' => array('name'=>'特别的人', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211227131241.mp3'),
|
||||||
|
'b134' => array('name'=>'嘿!关于爱', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211227131851.mp3'),
|
||||||
|
'b135' => array('name'=>'落在生命力的光', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211227132322.mp3'),
|
||||||
|
'b119' => array('name'=>'想某人', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211216112856.mp3'),
|
||||||
|
'b120' => array('name'=>'秒针', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211216112445.mp3'),
|
||||||
|
'b121' => array('name'=>'If I Aint Got You', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211216110057.mp3'),
|
||||||
|
'b122' => array('name'=>'艺术家', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211216104959.mp3'),
|
||||||
|
'b123' => array('name'=>'夜舞', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211216104629.mp3'),
|
||||||
|
'b124' => array('name'=>'我们的明天', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211216104246.mp3'),
|
||||||
|
'b125' => array('name'=>'平凡的一天', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211216103920.mp3'),
|
||||||
|
'b126' => array('name'=>'猫爪舞', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211214142849.mp3'),
|
||||||
|
'b127' => array('name'=>'In The End', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211214141459.mp3'),
|
||||||
|
'b128' => array('name'=>'左右脸对称测试', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/douyin766_com20211214140336.mp3'),
|
||||||
|
'b99' => array('name'=>'野兽的花', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/99.mp3'),
|
||||||
|
'b101' => array('name'=>'好见(rap版)', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/101.mp3'),
|
||||||
|
'b103' => array('name'=>'哭泣站台', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/103.mp3'),
|
||||||
|
'b104' => array('name'=>'我不是刘德华', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/104.mp3'),
|
||||||
|
'b105' => array('name'=>'艺术品', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/105.mp3'),
|
||||||
|
'b106' => array('name'=>'先生请出山搞笑', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/106.mp3'),
|
||||||
|
'b107' => array('name'=>'你的背包', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/107.mp3'),
|
||||||
|
'b108' => array('name'=>'Bingo', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/108.mp3'),
|
||||||
|
'b109' => array('name'=>'我为爱情掉过几滴', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/109.mp3'),
|
||||||
|
'b110' => array('name'=>'晚秋', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/110.mp3'),
|
||||||
|
'b111' => array('name'=>'风中有朵雨做的云', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/111.mp3'),
|
||||||
|
'b112' => array('name'=>'la song', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/112.mp3'),
|
||||||
|
'b113' => array('name'=>'秋衣秋裤', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/113.mp3'),
|
||||||
|
'b114' => array('name'=>'你的蝴蝶', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/114.mp3'),
|
||||||
|
'b115' => array('name'=>'Stay With Me', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/115.mp3'),
|
||||||
|
'b116' => array('name'=>'给你给我', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/116.mp3'),
|
||||||
|
'b117' => array('name'=>'拍照指南', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/117.mp3'),
|
||||||
|
'b118' => array('name'=>'删了吧', 'url'=>'http://douyin.zzwl.info/dy_rm_bgm/118.mp3'),
|
||||||
|
'b98' => array('name'=>'问心(剪辑版)', 'url'=>'http://douyin.zzwl.info/b98.mp3'),
|
||||||
|
'b97' => array('name'=>'张同学同款BGM', 'url'=>'http://douyin.zzwl.info/b97.mp3'),
|
||||||
|
'b01' => array('name'=>'A Little Story', 'url'=>'http://douyin.zzwl.info/b01.mp3'),
|
||||||
|
'b02' => array('name'=>'Go Time', 'url'=>'http://douyin.zzwl.info/b02.mp3'),
|
||||||
|
'b03' => array('name'=>'万能', 'url'=>'http://douyin.zzwl.info/b03.mp3'),
|
||||||
|
'b04' => array('name'=>'for bubu', 'url'=>'http://douyin.zzwl.info/b04.mp3'),
|
||||||
|
'b05' => array('name'=>'Man At Arms', 'url'=>'http://douyin.zzwl.info/b05.mp3'),
|
||||||
|
'b06' => array('name'=>'万能_交响', 'url'=>'http://douyin.zzwl.info/b06.mp3'),
|
||||||
|
'b07' => array('name'=>'万能_振奋', 'url'=>'http://douyin.zzwl.info/b07.mp3'),
|
||||||
|
'b08' => array('name'=>'万能_海边', 'url'=>'http://douyin.zzwl.info/b08.mp3'),
|
||||||
|
'b09' => array('name'=>'万能_激昂', 'url'=>'http://douyin.zzwl.info/b09.mp3'),
|
||||||
|
'b10' => array('name'=>'万能_激昂1', 'url'=>'http://douyin.zzwl.info/b10.mp3'),
|
||||||
|
'b11' => array('name'=>'万能_激昂2', 'url'=>'http://douyin.zzwl.info/b11.mp3'),
|
||||||
|
'b12' => array('name'=>'万能_激昂3', 'url'=>'http://douyin.zzwl.info/b12.mp3'),
|
||||||
|
'b13' => array('name'=>'万能_电子', 'url'=>'http://douyin.zzwl.info/b13.mp3'),
|
||||||
|
'b14' => array('name'=>'万能_电子2', 'url'=>'http://douyin.zzwl.info/b14.mp3'),
|
||||||
|
'b15' => array('name'=>'英雄联盟', 'url'=>'http://douyin.zzwl.info/b15.mp3'),
|
||||||
|
'b16' => array('name'=>'万能_觉醒', 'url'=>'http://douyin.zzwl.info/b16.mp3'),
|
||||||
|
'b17' => array('name'=>'部队 紧张', 'url'=>'http://douyin.zzwl.info/b17.mp3'),
|
||||||
|
'b18' => array('name'=>'一剪梅', 'url'=>'http://douyin.zzwl.info/b18.mp3'),
|
||||||
|
'b19' => array('name'=>'无人之岛', 'url'=>'http://douyin.zzwl.info/b19.mp3'),
|
||||||
|
'b20' => array('name'=>'星辰大海', 'url'=>'http://douyin.zzwl.info/b20.mp3'),
|
||||||
|
'b21' => array('name'=>'很久以后', 'url'=>'http://douyin.zzwl.info/b21.mp3'),
|
||||||
|
'b22' => array('name'=>'无人之岛', 'url'=>'http://douyin.zzwl.info/b22.mp3'),
|
||||||
|
'b23' => array('name'=>'军事_财经', 'url'=>'http://douyin.zzwl.info/b23.mp3'),
|
||||||
|
'b24' => array('name'=>'夜空中最亮的星', 'url'=>'http://douyin.zzwl.info/b24.mp3'),
|
||||||
|
'b25' => array('name'=>'励志_希望', 'url'=>'http://douyin.zzwl.info/b25.mp3'),
|
||||||
|
'b26' => array('name'=>'夏天的风', 'url'=>'http://douyin.zzwl.info/b26.mp3'),
|
||||||
|
'b27' => array('name'=>'kill this love', 'url'=>'http://douyin.zzwl.info/b27.mp3'),
|
||||||
|
'b28' => array('name'=>'lemo', 'url'=>'http://douyin.zzwl.info/b28.mp3'),
|
||||||
|
'b29' => array('name'=>'周五', 'url'=>'http://douyin.zzwl.info/b29.mp3'),
|
||||||
|
'b30' => array('name'=>'哥只是个传说', 'url'=>'http://douyin.zzwl.info/b30.mp3'),
|
||||||
|
'b31' => array('name'=>'夏天的风', 'url'=>'http://douyin.zzwl.info/b31.mp3'),
|
||||||
|
'b32' => array('name'=>'大鱼', 'url'=>'http://douyin.zzwl.info/b32.mp3'),
|
||||||
|
'b33' => array('name'=>'奇迹再现', 'url'=>'http://douyin.zzwl.info/b33.mp3'),
|
||||||
|
'b34' => array('name'=>'忘情水', 'url'=>'http://douyin.zzwl.info/b34.mp3'),
|
||||||
|
'b35' => array('name'=>'娱乐_搞笑1', 'url'=>'http://douyin.zzwl.info/b35.mp3'),
|
||||||
|
'b36' => array('name'=>'娱乐_搞笑2', 'url'=>'http://douyin.zzwl.info/b36.mp3'),
|
||||||
|
'b37' => array('name'=>'ouou for bubu', 'url'=>'http://douyin.zzwl.info/b37.mp3'),
|
||||||
|
'b38' => array('name'=>'see you again', 'url'=>'http://douyin.zzwl.info/b38.mp3'),
|
||||||
|
'b39' => array('name'=>'you raise me up', 'url'=>'http://douyin.zzwl.info/b39.mp3'),
|
||||||
|
'b40' => array('name'=>'娱乐-exo-live', 'url'=>'http://douyin.zzwl.info/b40.mp3'),
|
||||||
|
'b41' => array('name'=>'娱乐_樱花泪', 'url'=>'http://douyin.zzwl.info/b41.mp3'),
|
||||||
|
'b42' => array('name'=>'娱乐_快乐', 'url'=>'http://douyin.zzwl.info/b42.mp3'),
|
||||||
|
'b43' => array('name'=>'娱乐_起风了', 'url'=>'http://douyin.zzwl.info/b43.mp3'),
|
||||||
|
'b44' => array('name'=>'娱乐_鬼怪', 'url'=>'http://douyin.zzwl.info/b44.mp3'),
|
||||||
|
'b45' => array('name'=>'娱乐__芒种', 'url'=>'http://douyin.zzwl.info/b45.mp3'),
|
||||||
|
'b46' => array('name'=>'娱乐_爱恨交加', 'url'=>'http://douyin.zzwl.info/b46.mp3'),
|
||||||
|
'b47' => array('name'=>'娱乐_社会_柯南', 'url'=>'http://douyin.zzwl.info/b47.mp3'),
|
||||||
|
'b48' => array('name'=>'take me highe', 'url'=>'http://douyin.zzwl.info/b48.mp3'),
|
||||||
|
'b49' => array('name'=>'娱乐_whistle', 'url'=>'http://douyin.zzwl.info/b49.mp3'),
|
||||||
|
'b50' => array('name'=>'娱乐_开心', 'url'=>'http://douyin.zzwl.info/b50.mp3'),
|
||||||
|
'b51' => array('name'=>'娱乐_吉他', 'url'=>'http://douyin.zzwl.info/b51.mp3'),
|
||||||
|
'b52' => array('name'=>'Beginning of Conflict', 'url'=>'http://douyin.zzwl.info/b52.mp3'),
|
||||||
|
'b53' => array('name'=>'悲伤再见警察', 'url'=>'http://douyin.zzwl.info/b53.mp3'),
|
||||||
|
'b54' => array('name'=>'悲伤大鱼海棠', 'url'=>'http://douyin.zzwl.info/b54.mp3'),
|
||||||
|
'b55' => array('name'=>'悲壮-雪见', 'url'=>'http://douyin.zzwl.info/b55.mp3'),
|
||||||
|
'b56' => array('name'=>'新闻快讯-2', 'url'=>'http://douyin.zzwl.info/b56.mp3'),
|
||||||
|
'b57' => array('name'=>'新闻快讯-3', 'url'=>'http://douyin.zzwl.info/b57.mp3'),
|
||||||
|
'b58' => array('name'=>'新闻快讯-4', 'url'=>'http://douyin.zzwl.info/b58.mp3'),
|
||||||
|
'b59' => array('name'=>'新闻快讯-5', 'url'=>'http://douyin.zzwl.info/b59.mp3'),
|
||||||
|
'b60' => array('name'=>'新闻快讯-7', 'url'=>'http://douyin.zzwl.info/b60.mp3'),
|
||||||
|
'b61' => array('name'=>'新闻快讯-8', 'url'=>'http://douyin.zzwl.info/b61.mp3'),
|
||||||
|
'b62' => array('name'=>'新闻快讯-6', 'url'=>'http://douyin.zzwl.info/b62.mp3'),
|
||||||
|
'b63' => array('name'=>'好舒服的萨克斯', 'url'=>'http://douyin.zzwl.info/b63.mp3'),
|
||||||
|
'b64' => array('name'=>'歌颂-感恩-画', 'url'=>'http://douyin.zzwl.info/b64.mp3'),
|
||||||
|
'b65' => array('name'=>'轻快', 'url'=>'http://douyin.zzwl.info/b65.mp3'),
|
||||||
|
'b66' => array('name'=>'治愈,舒畅', 'url'=>'http://douyin.zzwl.info/b66.mp3'),
|
||||||
|
'b67' => array('name'=>'跑跑卡丁车', 'url'=>'http://douyin.zzwl.info/b67.mp3'),
|
||||||
|
'b68' => array('name'=>'激励_Adventure', 'url'=>'http://douyin.zzwl.info/b68.mp3'),
|
||||||
|
'b69' => array('name'=>'天气预报', 'url'=>'http://douyin.zzwl.info/b69.mp3'),
|
||||||
|
'b70' => array('name'=>'_Behind Enemy Lines', 'url'=>'http://douyin.zzwl.info/b70.mp3'),
|
||||||
|
'b71' => array('name'=>'热点_筷子兄弟', 'url'=>'http://douyin.zzwl.info/b71.mp3'),
|
||||||
|
'b72' => array('name'=>'victory', 'url'=>'http://douyin.zzwl.info/b72.mp3'),
|
||||||
|
'b73' => array('name'=>'热点_你的答案', 'url'=>'http://douyin.zzwl.info/b73.mp3'),
|
||||||
|
'b74' => array('name'=>'热爱105°C的你', 'url'=>'http://douyin.zzwl.info/b74.mp3'),
|
||||||
|
'b75' => array('name'=>'意难平', 'url'=>'http://douyin.zzwl.info/b75.mp3'),
|
||||||
|
'b76' => array('name'=>'推理悬疑神秘配乐', 'url'=>'http://douyin.zzwl.info/b76.mp3'),
|
||||||
|
'b77' => array('name'=>'社会_时政_突发', 'url'=>'http://douyin.zzwl.info/b77.mp3'),
|
||||||
|
'b78' => array('name'=>'热点_欢快', 'url'=>'http://douyin.zzwl.info/b78.mp3'),
|
||||||
|
'b79' => array('name'=>'科技_财经', 'url'=>'http://douyin.zzwl.info/b79.mp3'),
|
||||||
|
'b80' => array('name'=>'Action Strike', 'url'=>'http://douyin.zzwl.info/b80.mp3'),
|
||||||
|
'b81' => array('name'=>'热点_激昂', 'url'=>'http://douyin.zzwl.info/b81.mp3'),
|
||||||
|
'b82' => array('name'=>'紧张 紧急', 'url'=>'http://douyin.zzwl.info/b82.mp3'),
|
||||||
|
'b83' => array('name'=>'震撼', 'url'=>'http://douyin.zzwl.info/b83.mp3'),
|
||||||
|
'b84' => array('name'=>'紧张 危险', 'url'=>'http://douyin.zzwl.info/b84.mp3'),
|
||||||
|
'b85' => array('name'=>'筷子兄弟', 'url'=>'http://douyin.zzwl.info/b85.mp3'),
|
||||||
|
'b86' => array('name'=>'时政_交响', 'url'=>'http://douyin.zzwl.info/b86.mp3'),
|
||||||
|
'b87' => array('name'=>'舒缓-Adevertime', 'url'=>'http://douyin.zzwl.info/b87.mp3'),
|
||||||
|
'b88' => array('name'=>'财经_时政', 'url'=>'http://douyin.zzwl.info/b88.mp3'),
|
||||||
|
'b89' => array('name'=>'电音Astronomia', 'url'=>'http://douyin.zzwl.info/b89.mp3'),
|
||||||
|
'b90' => array('name'=>'游戏_野狼disco', 'url'=>'http://douyin.zzwl.info/b90.mp3'),
|
||||||
|
'b91' => array('name'=>'生活方式', 'url'=>'http://douyin.zzwl.info/b91.mp3'),
|
||||||
|
'b92' => array('name'=>'汽车_田园', 'url'=>'http://douyin.zzwl.info/b92.mp3'),
|
||||||
|
'b93' => array('name'=>'悬疑 紧张', 'url'=>'http://douyin.zzwl.info/b93.mp3'),
|
||||||
|
'b94' => array('name'=>'经济', 'url'=>'http://douyin.zzwl.info/b94.mp3'),
|
||||||
|
'b95' => array('name'=>'遇见', 'url'=>'http://douyin.zzwl.info/b95.mp3'),
|
||||||
|
'b96' => array('name'=>'重返幼稚', 'url'=>'http://douyin.zzwl.info/b96.mp3'),
|
||||||
|
);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (1139,7898,7232,10084,3152,2207,1186,2254,3311,10205,3085,2550,3312,9647,9279);
|
||||||
Executable
+31
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'id' => '1',
|
||||||
|
'name' => '其他',
|
||||||
|
'type' => '0',
|
||||||
|
'jiancheng' => '其他',
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
'id' => '2',
|
||||||
|
'name' => 'QXY',
|
||||||
|
'type' => '1',
|
||||||
|
'jiancheng' => 'QXY',
|
||||||
|
),
|
||||||
|
2 =>
|
||||||
|
array (
|
||||||
|
'id' => '3',
|
||||||
|
'name' => 'ZZWL',
|
||||||
|
'type' => '2',
|
||||||
|
'jiancheng' => 'ZZWL',
|
||||||
|
),
|
||||||
|
3 =>
|
||||||
|
array (
|
||||||
|
'id' => '4',
|
||||||
|
'name' => 'SZXGG',
|
||||||
|
'type' => '3',
|
||||||
|
'jiancheng' => 'SZXGG',
|
||||||
|
),
|
||||||
|
);
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
// 大师使用的版本等级参数
|
||||||
|
return array (
|
||||||
|
149 => '云大师VIP版(1年)',
|
||||||
|
152 => '短视频-至尊会员',
|
||||||
|
157 => '抖盈巨量版(1年)',
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'aicaigoupmw',
|
||||||
|
'username' => 'contenttpl',
|
||||||
|
'password' => 'QXYxgg123!@#q',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
//外网
|
||||||
|
// 'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
//内网
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'contenttpl',
|
||||||
|
'username' => 'contenttpl',
|
||||||
|
'password' => 'QXYxgg123!@#q',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => '47.104.211.80',
|
||||||
|
'dbname' => 'aeshipin',
|
||||||
|
'username' => 'aeshipin',
|
||||||
|
'password' => 'Md3Ln46AJrbYwX32',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
// 'host' => '47.104.211.80',
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'biaoge1',
|
||||||
|
'username' => 'biaoge',
|
||||||
|
'password' => 'Dz5G62CdnHHnz6cj',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'douying',
|
||||||
|
'username' => 'contenttpl',
|
||||||
|
'password' => 'QXYxgg123!@#q',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => '47.104.130.141',
|
||||||
|
'dbname' => 'geo',
|
||||||
|
'username' => 'geo',
|
||||||
|
'password' => 'YftsmHsEGMaChKRx',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
//外网
|
||||||
|
// 'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
//内网
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'record',
|
||||||
|
'username' => 'root1',
|
||||||
|
'password' => '952467@Aa',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => '36.112.156.6',
|
||||||
|
'dbname' => 'e2eesxt',
|
||||||
|
'username' => 'root',
|
||||||
|
'password' => 'l361018304',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'host' => 'rm-m5e6936bb24oj5272co.mysql.rds.aliyuncs.com',
|
||||||
|
'dbname' => 'tuoke',
|
||||||
|
'username' => 'tuoke',
|
||||||
|
'password' => 'QXYxgg123!@#qq',
|
||||||
|
'port' => '3306',
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_general_ci',
|
||||||
|
);
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
-1 => array('name'=>'不合格', 'icon'=>'<i class="bx bxs-error text-error bx-sm"></i>'),
|
||||||
|
0 => array('name'=>'暂未评分', 'icon'=>'<i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i>'),
|
||||||
|
10 => array('name'=>'很差', 'icon'=>'<i class="bx bxs-star text-warning"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i>'),
|
||||||
|
30 => array('name'=>'较差', 'icon'=>'<i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i>'),
|
||||||
|
50 => array('name'=>'一般', 'icon'=>'<i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bx-star"></i><i class="bx bx-star"></i><i class="bx bx-star"></i>'),
|
||||||
|
60 => array('name'=>'较好', 'icon'=>'<i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bx-star"></i><i class="bx bx-star"></i>'),
|
||||||
|
80 => array('name'=>'很好', 'icon'=>'<i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bx-star"></i>'),
|
||||||
|
100 => array('name'=>'优质', 'icon'=>'<i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i><i class="bx bxs-star text-warning"></i>'),
|
||||||
|
);
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
20 => '#DT任务排队中...',
|
||||||
|
100 => '#DT【任务暂停】今日发布数已达上限或未到指定开始发布日期',
|
||||||
|
110 => '#DT【任务暂停】此任务暂无可执行的授权账号',
|
||||||
|
120 => '#DT【任务暂停】授权账号每日发布数已达上限#001',
|
||||||
|
130 => '#DT【任务暂停】授权账号每日发布数已达上限#002',
|
||||||
|
802 => '#DT【任务暂停】智能文库素材不存在或内容为空',
|
||||||
|
3201 => '#DT【任务暂停】D音精简版,无可使用素材',
|
||||||
|
82101 => '#DS【任务暂停】D音精简版,暂不可使用批量定时模式',
|
||||||
|
);
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
20 => '#DT任务排队中...',
|
||||||
|
100 => '#DT【任务暂停】今日发布数已达上限或未到指定开始发布日期',
|
||||||
|
110 => '#DT【任务暂停】此任务暂无可执行的授权账号',
|
||||||
|
120 => '#DT【任务暂停】授权账号每日发布数已达上限#001',
|
||||||
|
130 => '#DT【任务暂停】授权账号每日发布数已达上限#002',
|
||||||
|
802 => '#DT【任务暂停】智能文库素材不存在或内容为空',
|
||||||
|
3201 => '#DT【任务暂停】D音精简版,无可使用素材',
|
||||||
|
82101 => '#DS【任务暂停】D音精简版,暂不可使用批量定时模式',
|
||||||
|
);
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'userids' => array(),// 可使用D音新模式授权发布的 特殊账号id
|
||||||
|
'v_types' => array(),// 可使用D音新模式授权发布的 特殊等级id
|
||||||
|
'gfuserids' => array(3351,2914,3306,1924,2499,1088,2447,1320,3403),
|
||||||
|
'xnr_v_types_no' => array(120),// 不可使用虚拟形象的等级
|
||||||
|
);
|
||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
// 排名查询类型参数
|
||||||
|
'pm_type' => array(0=>'全部', 1=>'产品快照', 2=>'产品卡片', 3=>'产品列表', 4=>'公司卡片', 5=>'店铺快照'),
|
||||||
|
// 产品级别
|
||||||
|
'v_type' => array(3=>'企业版(十二个月)', 2=>'商务版(六个月)', 1=>'创业版(三个月)', 4=>'基础版(一个月)', 100=>'短视频版(一年)'),
|
||||||
|
// 可购买选择的i采购产品
|
||||||
|
'v_type_able' => array(4=>'基础版(一个月)', 1=>'创业版(三个月)', 2=>'商务版(六个月)', 3=>'企业版(十二个月)'),
|
||||||
|
);
|
||||||
Executable
+12
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
1 => '音色文件',
|
||||||
|
2 => '数字人文件',
|
||||||
|
3 => '切片项目',
|
||||||
|
4 => '系统自行缓存清理',
|
||||||
|
5 => '图片文件删除',
|
||||||
|
6 => '视频文件删除',
|
||||||
|
7 => '定时清除图片',
|
||||||
|
8 => '定时清除视频',
|
||||||
|
9 => '卡片预览',
|
||||||
|
);
|
||||||
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'zzqxyjxs' => array('name'=>'zzqxyjxs','nick'=>'字体圈欣意吉祥宋', 'ziti'=>'ZiTiQuanXinYiJiXiangSong-2.ttf', 'ziti_path'=>'../fonts/ZiTiQuanXinYiJiXiangSong-2.ttf'),
|
||||||
|
'pmzdzgkt' => array('name'=>'pmzdzgkt','nick'=>'庞门正道真贵楷体', 'ziti'=>'PangMenZhengDaoZhenGuiKaiTi-2.ttf', 'ziti_path'=>'../fonts/PangMenZhengDaoZhenGuiKaiTi-2.ttf'),
|
||||||
|
'ysqhk' => array('name'=>'ysqhk','nick'=>'演示秋鸿楷', 'ziti'=>'YanShiQiuHongKai-2.ttf', 'ziti_path'=>'../fonts/YanShiQiuHongKai-2.ttf'),
|
||||||
|
'ztqxyght' => array('name'=>'ztqxyght','nick'=>'字体圈欣意冠黑体', 'ziti'=>'ZiTiQuanXinYiGuanHeiTi4.0-2.ttf', 'ziti_path'=>'../fonts/ZiTiQuanXinYiGuanHeiTi4.0-2.ttf'),
|
||||||
|
'tpstbl' => array('name'=>'tpstbl','nick'=>'台北黑体 Beta Light', 'ziti'=>'Taipei-Sans-TC-Beta-Light-2.ttf', 'ziti_path'=>'../fonts/Taipei-Sans-TC-Beta-Light-2.ttf'),
|
||||||
|
'yrdzstm' => array('name'=>'yrdzstm','nick'=>'杨任东竹石体 Medium', 'ziti'=>'YangRenDongZhuShiTi-Medium-2.ttf', 'ziti_path'=>'../fonts/YangRenDongZhuShiTi-Medium-2.ttf'),
|
||||||
|
'feihuast' => array('name'=>'feihuast','nick'=>'飞花宋体', 'ziti'=>'FeiHuaSongTi-2.ttf', 'ziti_path'=>'../fonts/FeiHuaSongTi-2.ttf'),
|
||||||
|
'shsoldn' => array('name'=>'shsoldn','nick'=>'思源黑体旧字形 Normal', 'ziti'=>'SourceHanSansOLD-Normal-2.otf', 'ziti_path'=>'../fonts/SourceHanSansOLD-Normal-2.otf'),
|
||||||
|
'lmqylszrht' => array('name'=>'lmqylszrht','nick'=>'联盟起艺卢帅正锐黑体', 'ziti'=>'LianMengQiYiLuShuaiZhengRuiHeiTi-2.ttf', 'ziti_path'=>'../fonts/LianMengQiYiLuShuaiZhengRuiHeiTi-2.ttf'),
|
||||||
|
'hxbnsti' => array('name'=>'hxbnsti','nick'=>'胡晓波男神体', 'ziti'=>'HuXiaoBoNanShenTi-2.otf', 'ziti_path'=>'../fonts/HuXiaoBoNanShenTi-2.otf'),
|
||||||
|
'tbhtbbd' => array('name'=>'tbhtbbd','nick'=>'台北黑体 Beta Bold', 'ziti'=>'Taipei-Sans-TC-Beta-Bold-2.ttf', 'ziti_path'=>'../fonts/Taipei-Sans-TC-Beta-Bold-2.ttf'),
|
||||||
|
'pmzdbtt' => array('name'=>'pmzdbtt','nick'=>'庞门正道标题体', 'ziti'=>'PangMenZhengDaoBiaoTiTi-1.ttf', 'ziti_path'=>'../fonts/PangMenZhengDaoBiaoTiTi-1.ttf'),
|
||||||
|
'opposans' => array('name'=>'opposans','nick'=>'OPPOSans-B-黑体', 'ziti'=>'OPPOSans-B-2.ttf', 'ziti_path'=>'../fonts/OPPOSans-B-2.ttf'),
|
||||||
|
);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (6965);
|
||||||
Executable
+25
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
100 => '搜索图片',
|
||||||
|
101 => '推荐词工具',
|
||||||
|
102 => '拓词工具',
|
||||||
|
103 => '热门话题',
|
||||||
|
104 => '智能文库',
|
||||||
|
105 => '多音字设置',
|
||||||
|
106 => '背景音乐',
|
||||||
|
107 => '图片增强',
|
||||||
|
108 => '克隆音色',
|
||||||
|
109 => 'K手音乐',
|
||||||
|
110 => 'AI贴片',
|
||||||
|
111 => '在线预约',
|
||||||
|
112 => '合集管理',
|
||||||
|
113 => 'D音小黄车',
|
||||||
|
114 => '创意标题',
|
||||||
|
115 => 'AI助手',
|
||||||
|
116 => '数字人-产品智能创作',
|
||||||
|
117 => '数字人-产品AI托管',
|
||||||
|
118 => 'D音精准线索',
|
||||||
|
119 => '脚本步骤模式',
|
||||||
|
120 => '图生视频',
|
||||||
|
121 => '虚拟形象',
|
||||||
|
);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (12602,13873,8164,6766,9501,8497,7903,6794,8444,12283,8279,9465,13064,13063,7017,10426,14051,8965,10825,10849,12685,7021,6593,8351,12804,11065,10801,8170,13787,9242,9292,9293,9294,9295,12993,12994,13290,13291,13292,13293,13294,14047,10499,14076,12208,13848,12403,12404,13060,12967,12129,13116,8086,6803,14082,10880,13720,14088,7458,11843,11618,6511,8843,14143,13175,10632,12360,8091,7669,7599,6540,14156,8379,13399,13193,9398,8627,8266,10254,7479,7875,7787,12563,11943,10179,7581,10700,10364,13437,13066,12829,12704,12583,6510,12586,6892,6505,8798,11968,10548,9971,7322,13051,13283,13896,8735,13648,7272,11206,11709,6948,11201,11197,11933,11396,11930,12629,12629,9314,7380,9557,14220,7060,7253,13748,7081,10364,6516,12365,14268,8493,14276,7888,8026,9684,10988,11175,9160,9297,10716,12908,13197,7614,12364,14256,8459,9959,14294,7485,14301,12091,7958,12347,6725,10694,12134,11956,12924,11575,9940,12465,8953,14021,7885,11967,13210,8047,12294,13157,12239,10908,12702,8475,8824,8653,8432,14390,13309,9980,14306,13022,9680,10013,8642,14154,12343,7625,14431,8187,8135,8163,11948,12732,13591,12773,7080,7223,2225,3990,11948,7513,10878,7272,13374,13370,13371,13373,7966,13156,10938,7571,12276,7673,7436,11143,6539,13209,7383,9706,14527,12219,12379,11066,13599,8516,8103,8489,12701,13201,8071,9916,11244,13369,11238,13883,7781,9423,11611,13602,8317,11085,10102,13639,8576,9324,14649,13629,8195,12576,9445,11108,6697,11343,10708,11090,10973,7115,11548,10583,12636,10917,11007,14677,9208,10277,14444,14362,14363,14365,12279,11820,13934,13935,13936,14761,13753,6521,12028,13601,14785,8440,8222,7107,12893,14487,13525,14762,13615,14766,14756,14833,10747,9675,1270,11693,7887,13800,14853,14820,7507,8619,12597,14861,12886,8153,12758,13103,13104,14911,12891,14511,6884,13158,8191,10730,11706,9448,15031,8258,15068,15063,14855,11725,13377,7565,8862,10053,15120,14822,7866,7780,13648,10510,11211,6605,15186,6805,12726,15156,7294,13041,15160,12696,11152,15221,11934,15273,11596,15263,15313,10538,15320,15349,6706,14758,15360,14755,15357,11356,11346,9387,9386,14659,10749,9188,12536,8311,6539,15164,7317,9635,15473,12919,8964,11072,11071,14586,8442,9881,13114,15530,15543,15542,15570,11603,15571,10927,15604,12157,14526,13871,15689,9979,7156,14952,10181,15642,15641,15745,10965,8554,11132,7385,10927,15876,8326,15138,12580,6944,13248,15973,13207,12509,10054,14722,11219,8192,11061,11060,11062,11063,16124,12926,15288,15123,16153,16183 ,16182,16181,16180,16118,16227,16231,16221,15564,11224,10400,13117,16257,12677,16268,16277,16254,12814,6494,16329,16359,16334,12556,13011,16385,16295,14961,12792,12063,12707,15687,12359,16513,16584,16561,7795,11594,14539,16129,16683,16687,16138,6572,16720,12223,16333,16724,16626,13490,16676,12725,12441,12440,10289,8851,12347,16812,16813,14129,16230,9666,11171,13703,13552,15942,11219,16574,12287,16917,13368,15925,16936,9379,12830,13309,16964,16973,17008,7558,13363,7928,16945,10746,17103,13642,8300,12639,17171,11678);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (9434,7552,13777,12185,3025,2823,11031,5371,1820,13517,13786,2001,1650,4060,9530,1650,4060,2247,11996,5238,13824,10601,11465,6280,13822,6347,13829,10027,1162,3161,12933,12248,13521,2873,7772,3882,2247,7910,13383,7541,10245,5694,10701,8230,13131,12170,13862,13841,13622,13868,12772,13766,13040,13617,3578,10190,13860,13870,13838,9879,6211,2313,10820,3990,10270,1372,6050,1213,3301,8726,3711,9939,5179,13332,13849,12630,9754,5012,6851,12880,13669,13784,13052,2202,11718,10107,8479,4306,11573,9663,12771,10804,1635,1374,1935,12274,6840,4268,10446,3312,13717,14042,2610,1805,9473,1119,4845,3138,13903,12719,14111,10931,12270,14048,14152,12259,13476,10986,6696,3320,6113,14224,14071,14135,14243,11344,14262,3833,2037,1748,8492,6727);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (6965,3060,10710,15577,10844,14894);
|
||||||
Executable
+848
@@ -0,0 +1,848 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'_lang_cloud_video_' => 'Cloud video',
|
||||||
|
'_lang_shaking_cloud_video_' => 'Shaking cloud video',
|
||||||
|
'_lang_skip_version_' => 'Skip version',
|
||||||
|
'_lang_dedicated_customer_service_' => 'Dedicated customer service',
|
||||||
|
'_lang_wechat_notification_' => 'Wechat notification',
|
||||||
|
'_lang_my_home_page_' => 'My home page',
|
||||||
|
'_lang_authorized_account_' => 'Authorized account',
|
||||||
|
'_lang_publish_works_' => 'Publish works',
|
||||||
|
'_lang_material_template_' => 'Material template',
|
||||||
|
'_lang_timely_upot_material_tempteib_' => 'Timely update of the material template, the effect is better',
|
||||||
|
'_lang_video_template_' => 'Video template',
|
||||||
|
'_lang_hot_temp_up_in_rtta_' => 'Hot templates updated in real time, timely attention',
|
||||||
|
'_lang_issue_due_' => 'Issue due',
|
||||||
|
'_lang_publishing_exception_' => 'Publishing exception',
|
||||||
|
'_lang_data_expiration_' => 'Data expiration',
|
||||||
|
'_lang_account_anomaly_total_' => 'Account anomaly total',
|
||||||
|
'_lang_platform_management_' => 'Platform management',
|
||||||
|
'_lang_material_management_' => 'Material management',
|
||||||
|
'_lang_task_management_' => 'Task management',
|
||||||
|
'_lang_creative_workshop_' => 'Creative workshop',
|
||||||
|
'_lang_operational_data_' => 'Operational data',
|
||||||
|
'_lang_material_creation_' => 'Material creation',
|
||||||
|
'_lang_work_preview_' => 'Work preview',
|
||||||
|
'_lang_photo_gallery_' => 'Photo gallery',
|
||||||
|
'_lang_video_library_' => 'Video library',
|
||||||
|
'_lang_task_creation_' => 'Task creation',
|
||||||
|
'_lang_common_copy_' => 'Common copy',
|
||||||
|
'_lang_all_modules_' => 'All modules',
|
||||||
|
'_lang_platinum_member_' => 'Platinum member',
|
||||||
|
'_lang_account_running_normally_' => 'Account running normally',
|
||||||
|
'_lang_maturity_time_' => 'Maturity time',
|
||||||
|
'_lang_num_of_accounts_' => 'Number of accounts',
|
||||||
|
'_lang_release_task_' => 'Release task',
|
||||||
|
'_lang_auth_exception_' => 'Authorization exception',
|
||||||
|
'_lang_lead_business_opportunity_' => 'Lead business opportunity',
|
||||||
|
'_lang_view_more_abnormal_accounts_' => 'View more abnormal accounts',
|
||||||
|
'_lang_see_more_lead_opportunities_' => 'See more lead opportunities',
|
||||||
|
'_lang_ranking_report_' => 'Ranking report',
|
||||||
|
'_lang_account_grouping_' => 'Account grouping',
|
||||||
|
'_lang_agency_auth_' => 'Agency authorization',
|
||||||
|
'_lang_abnormal_state_' => 'Abnormal state',
|
||||||
|
'_lang_available_material_' => 'Available material',
|
||||||
|
'_lang_complete_paperwork_' => 'Complete paperwork',
|
||||||
|
'_lang_copywriting_type_' => 'Copywriting type',
|
||||||
|
'_lang_cover_music_' => 'Cover music',
|
||||||
|
'_lang_risk_control_client_' => 'Risk control client',
|
||||||
|
'_lang_click_to_download_' => 'Click to download',
|
||||||
|
'_lang_new_' => 'new',
|
||||||
|
'_lang_marketing_card_' => 'Marketing card',
|
||||||
|
'_lang_mass_messaging_' => 'Mass messaging',
|
||||||
|
'_lang_small_program_' => 'Small program',
|
||||||
|
'_lang_invite_for_a_job_' => 'Invite for a job',
|
||||||
|
'_lang_online_booking_' => 'Online booking',
|
||||||
|
'_lang_collection_management_' => 'Collection management',
|
||||||
|
'_lang_shake_the_code_' => 'Shake the code',
|
||||||
|
'_lang_intelligent_customer_service_' => 'Intelligent customer service',
|
||||||
|
'_lang_private_domain_delivery_' => 'Private domain delivery',
|
||||||
|
'_lang_d_little_y_car_' => 'D little yellow car',
|
||||||
|
'_lang_d_sound_sm_program_' => 'D sound small program',
|
||||||
|
'_lang_recruitment_component_' => 'Recruitment component',
|
||||||
|
'_lang_k_hand_applet_' => 'K hand applet',
|
||||||
|
'_lang_s_a_resident_area_' => 'Select a resident area',
|
||||||
|
'_lang_d_tone_account_author_' => 'D tone account authorization',
|
||||||
|
'_lang_s_city_' => 'Select city',
|
||||||
|
'_lang_mobile_phone_verification_' => 'Mobile phone verification',
|
||||||
|
'_lang_code_scanning_author_' => 'Code scanning authorization',
|
||||||
|
'_lang_pls_en_y_pn_' => 'Please enter your phone number',
|
||||||
|
'_lang_pls_en_the_mv_code_' => 'Please enter the mobile verification code',
|
||||||
|
'_lang_send_verification_code_' => 'Send verification code',
|
||||||
|
'_lang_confirm_submission_' => 'Confirm submission',
|
||||||
|
'_lang_depending_on_the_p_num_aa_' => 'Depending on the P number account authorization',
|
||||||
|
'_lang_get_qr_code_' => 'Get QR code',
|
||||||
|
'_lang_recover_' => 'recover',
|
||||||
|
'_lang_clue_' => 'Clue',
|
||||||
|
'_lang_complete_collection_' => 'Complete collection',
|
||||||
|
'_lang_to_be_released_' => 'To be released',
|
||||||
|
'_lang_released_for_review_' => 'Released for review',
|
||||||
|
'_lang_not_pass_' => 'Not pass',
|
||||||
|
'_lang_create_collection_' => 'Create collection',
|
||||||
|
'_lang_click_to_view_the_tutorial_' => 'Click to view the tutorial',
|
||||||
|
'_lang_ht_generate_d_tone_pri_mcard_' => 'How to generate D tone private message card?',
|
||||||
|
'_lang_click_to_view_the_tutorial_' => 'Click to view the tutorial',
|
||||||
|
'_lang_salutation_' => 'salutation',
|
||||||
|
'_lang_k_matching_' => 'Keyword matching',
|
||||||
|
'_lang_open_' => 'Open',
|
||||||
|
'_lang_found_' => 'found',
|
||||||
|
'_lang_normal_use_' => 'Normal use',
|
||||||
|
'_lang_normal_' => 'normal',
|
||||||
|
'_lang_account_running_normally_' => 'Account running normally',
|
||||||
|
'_lang_maturity_time_' => 'Maturity time',
|
||||||
|
'_lang_interesting_video_' => 'Interesting video',
|
||||||
|
'_lang_start_making_' => 'Start production',
|
||||||
|
'_lang_num_of_accounts_' => 'Number of accounts',
|
||||||
|
'_lang_publish_works_' => 'Publish works',
|
||||||
|
'_lang_authorized_account_' => 'Authorized account',
|
||||||
|
'_lang_release_task_' => 'Release task',
|
||||||
|
'_lang_issue_maturity_' => 'Issue maturity',
|
||||||
|
'_lang_data_maturity_' => 'Data maturity',
|
||||||
|
'_lang_num_of_published_except_' => 'Number of published exceptions',
|
||||||
|
'_lang_account_pending_total_' => 'Account pending total',
|
||||||
|
'_lang_material_template_' => 'Material template',
|
||||||
|
'_lang_video_template_' => 'Video template',
|
||||||
|
'_lang_auth_exception_' => 'Authorization exception',
|
||||||
|
'_lang_view_more_abnormal_acc_' => 'View more abnormal accounts',
|
||||||
|
'_lang_lead_business_opp_' => 'Lead business opportunity',
|
||||||
|
'_lang_see_more_lead_opp_' => 'See more lead opportunities',
|
||||||
|
'_lang_common_module_' => 'Common module',
|
||||||
|
'_lang_num_of_plays_' => 'Number of plays',
|
||||||
|
'_lang_num_of_likes_' => 'Number of Likes',
|
||||||
|
'_lang_activity_record_' => 'Activity record',
|
||||||
|
'_lang_activity_name_' => 'Activity name',
|
||||||
|
'_lang_mobile_pn_' => 'Mobile phone number',
|
||||||
|
'_lang_coupon_type_' => 'Coupon type',
|
||||||
|
'_lang_video_release_status_' => 'Video release status',
|
||||||
|
'_lang_use_condition_' => 'Use condition',
|
||||||
|
'_lang_update_time_' => 'Update time',
|
||||||
|
'_lang_controls_' => 'Controls',
|
||||||
|
'_lang_to_be_shared_' => 'To be shared',
|
||||||
|
'_lang_shared_' => 'Shared',
|
||||||
|
'_lang_not_in_use_' => 'Not In Use',
|
||||||
|
'_lang_have_been_used_' => 'Have been used',
|
||||||
|
'_lang_cancel_coupon_' => 'Cancel coupon',
|
||||||
|
'_lang_d_' => 'delete',
|
||||||
|
'_lang_no_data_available_' => 'No data available',
|
||||||
|
'_lang_are_you_sure_at_write-off_' => 'Are you sure about the write-off',
|
||||||
|
'_lang_definitive_deletion_' => 'Definitive deletion',
|
||||||
|
'_lang_the_record_' => 'The record?',
|
||||||
|
'_lang_welcome_to_login_system_' => 'Welcome to login system',
|
||||||
|
'_lang_the_account_cannot_be_empty_' => 'The account cannot be empty',
|
||||||
|
'_lang_the_pw_cannot_be_empty_' => 'The password cannot be empty',
|
||||||
|
'_lang_two_pws_do_not_match_' => 'Two passwords do not match',
|
||||||
|
'_lang_the_contact_cannot_be_empty_' => 'The contact cannot be empty',
|
||||||
|
'_lang_contacts_cannot_contain_nums_' => 'Contacts cannot contain numbers',
|
||||||
|
'_lang_the_pn_cannot_be_empty_' => 'The phone number cannot be empty',
|
||||||
|
'_lang_the_pn_format_is_incorrect_' => 'The phone number format is incorrect',
|
||||||
|
'_lang_log_in_to_ts_suc_' => 'Log in to the system successfully',
|
||||||
|
'_lang_pls_en_y_account_num_' => 'Please enter your account number',
|
||||||
|
'_lang_pls_en_pw_' => 'Please enter password',
|
||||||
|
'_lang_pls_en_y_confirmation_pw_' => 'Please enter your confirmation password',
|
||||||
|
'_lang_pls_en_contact_person_' => 'Please enter contact person',
|
||||||
|
'_lang_pls_en_y_pn_' => 'Please enter your phone number',
|
||||||
|
'_lang_pls_en_the_com_name_' => 'Please enter the company name',
|
||||||
|
'_lang_pls_en_the_code_' => 'Please enter the code',
|
||||||
|
'_lang_verification_code_' => 'Verification code',
|
||||||
|
'_lang_explanatory_book_' => 'Explanatory book',
|
||||||
|
'_lang_have_an_account_login_now_' => 'Have an account, login now',
|
||||||
|
'_lang_copyright_' => 'copyright',
|
||||||
|
'_lang_prompt_message_' => 'Prompt message',
|
||||||
|
'_lang_wto_douyin_cloud_video_' => 'Welcome to Douyin Cloud video',
|
||||||
|
'_lang_wto_the_user_cen_' => 'Welcome to the User Center',
|
||||||
|
'_lang_tusername_cannot_be_empty_' => 'The user name cannot be empty',
|
||||||
|
'_lang_log_in_using_wechat_' => 'Log in using wechat',
|
||||||
|
'_lang_user_account_' => 'User account',
|
||||||
|
'_lang_cipher_' => 'cipher',
|
||||||
|
'_lang_denlu_' => 'login',
|
||||||
|
'_lang_no_account_reg_now_' => 'No account, register now',
|
||||||
|
'_lang_shaking_cloud_video_' => 'Shaking cloud video',
|
||||||
|
'_lang_cloud_video_' => 'Cloud video',
|
||||||
|
'_lang_sheng_li_short_video_' => 'Sheng Li short video',
|
||||||
|
'_lang_nail_cloud_' => 'Nail cloud',
|
||||||
|
'_lang_north_shake_star_' => 'North Shake Star',
|
||||||
|
'_lang_big-faced_cat_' => 'Big-faced cat',
|
||||||
|
'_lang_my_info_' => 'My information',
|
||||||
|
'_lang_my_profile_settings_' => 'My profile Settings',
|
||||||
|
'_lang_pw_change_' => 'Password change',
|
||||||
|
'_lang_login_pw_setting_' => 'Login password setting',
|
||||||
|
'_lang_safe_exit_' => 'Safe exit',
|
||||||
|
'_lang_tik_ying_exclusive_cs_' => 'Tik Ying exclusive customer service',
|
||||||
|
'_lang_appellation_' => 'appellation',
|
||||||
|
'_lang_cell_phone_' => 'Cell phone',
|
||||||
|
'_lang_landline_' => 'landline',
|
||||||
|
'_lang_qq_' => 'QQ',
|
||||||
|
'_lang_wechat_' => 'wechat',
|
||||||
|
'_lang_there_is_no_d_cs_' => 'There is no dedicated customer service',
|
||||||
|
'_lang_wechat_notification_' => 'Wechat notification',
|
||||||
|
'_lang_ranking_report_' => 'Ranking report',
|
||||||
|
'_lang_historical_access_record_' => 'Historical access record',
|
||||||
|
'_lang_close_all_columns_' => 'Close all columns',
|
||||||
|
'_lang_close_other_columns_' => 'Close other columns',
|
||||||
|
'_lang_my_home_page_' => 'My home page',
|
||||||
|
'_lang_y_info_needs_to_be_com_' => 'Your information needs to be completed',
|
||||||
|
'_lang_to_perfect_' => 'To perfect',
|
||||||
|
'_lang_edit_coupon_' => 'Edit coupon',
|
||||||
|
'_lang_create_a_coupon_' => 'Create a coupon',
|
||||||
|
'_lang_coupon_name_' => 'Coupon name',
|
||||||
|
'_lang_pls_fit_coupon_name_' => 'Please fill in the coupon name',
|
||||||
|
'_lang_original_price_' => 'Original price',
|
||||||
|
'_lang_pls_fit_original_price_' => 'Please fill in the original price',
|
||||||
|
'_lang_current_price_' => 'Current price',
|
||||||
|
'_lang_pls_fit_current_price_' => 'Please fill in the current price',
|
||||||
|
'_lang_quantity_issued_' => 'Quantity issued',
|
||||||
|
'_lang_pls_fit_quantity_issued_' => 'Please fill in the quantity issued',
|
||||||
|
'_lang_start_time_' => 'Start time',
|
||||||
|
'_lang_set_the_start_time_' => 'Set the start time',
|
||||||
|
'_lang_end_time_' => 'End time',
|
||||||
|
'_lang_set_end_time_' => 'Set end time',
|
||||||
|
'_lang_rules_of_use_' => 'Rules of use',
|
||||||
|
'_lang_pls_fit_usage_rules_' => 'Please fill in the usage rules',
|
||||||
|
'_lang_coupon_management_' => 'Coupon management',
|
||||||
|
'_lang_type_' => 'type',
|
||||||
|
'_lang_effective_time_' => 'Effective time',
|
||||||
|
'_lang_creation_time_' => 'Creation time',
|
||||||
|
'_lang_full_subtraction_type_' => 'Full subtraction type',
|
||||||
|
'_lang_discount_type_' => 'Discount type',
|
||||||
|
'_lang_edit_' => 'edit',
|
||||||
|
'_lang_editorial_promotion_' => 'Editorial promotion',
|
||||||
|
'_lang_create_a_promotion_' => 'Create a promotion',
|
||||||
|
'_lang_pls_fit_activity_name_' => 'Please fill in the activity name',
|
||||||
|
'_lang_coupon_' => 'coupon',
|
||||||
|
'_lang_pls_s_coupon_' => 'Please select coupon',
|
||||||
|
'_lang_video_des_' => 'Video description',
|
||||||
|
'_lang_activity_content_' => 'Activity content',
|
||||||
|
'_lang_pls_en_the_activity_ch_' => 'Please enter the activity content here',
|
||||||
|
'_lang_video_cover_' => 'Video cover',
|
||||||
|
'_lang_cloud_spread_' => 'Cloud spread',
|
||||||
|
'_lang_scan_code_cloud_t_p_' => 'Scan code, cloud transfer, picture',
|
||||||
|
'_lang_activity_video_' => 'Activity video',
|
||||||
|
'_lang_scan_code_cloud_t_v_' => 'Scan code, cloud transfer, video',
|
||||||
|
'_lang_photo_gallery_' => 'Photo gallery',
|
||||||
|
'_lang_pic_classification_' => 'Picture classification',
|
||||||
|
'_lang_video_library_' => 'Video library',
|
||||||
|
'_lang_video_classification_' => 'Video classification',
|
||||||
|
'_lang_online_booking_' => 'Online booking',
|
||||||
|
'_lang_create_an_online_reservation_tool_' => 'Create an online reservation tool',
|
||||||
|
'_lang_reserved_user_' => 'Reserved user',
|
||||||
|
'_lang_data_loading_' => 'Data loading',
|
||||||
|
'_lang_pls_en_a_service_title_' => 'Please enter a service title',
|
||||||
|
'_lang_pls_fit_offer_' => 'Please fill in the offer',
|
||||||
|
'_lang_free_reservation_' => 'Free reservation',
|
||||||
|
'_lang_y_call_' => 'Your call',
|
||||||
|
'_lang_en_mobile_num_' => 'Enter mobile number',
|
||||||
|
'_lang_enprise_num_info_' => 'Enterprise number information',
|
||||||
|
'_lang_account_body_info_' => 'Account body information',
|
||||||
|
'_lang_pro_info_' => 'Product information',
|
||||||
|
'_lang_pro_introduction_' => 'Product introduction',
|
||||||
|
'_lang_pls_fit_pro_des_' => 'Please fill in the product description',
|
||||||
|
'_lang_pro_highlights_' => 'Product highlights',
|
||||||
|
'_lang_pls_fit_pro_highlights_' => 'Please fill in the product highlights',
|
||||||
|
'_lang_scope_of_a_' => 'Scope of application',
|
||||||
|
'_lang_pls_fit_scope_of_a_' => 'Please fill in the scope of application',
|
||||||
|
'_lang_com_profile_' => 'Company profile',
|
||||||
|
'_lang_pls_fit_com_profile_' => 'Please fill in the company profile',
|
||||||
|
'_lang_other_info_' => 'Other information',
|
||||||
|
'_lang_pls_fill_in_addinfo_' => 'Please fill in additional information',
|
||||||
|
'_lang_pic_details_' => 'Picture details',
|
||||||
|
'_lang_there_in_evaluation_for_this_pro_' => 'There is no evaluation for this product',
|
||||||
|
'_lang_there_in_review_of_the_business_' => 'There is no review of the business',
|
||||||
|
'_lang_consult_' => 'consult',
|
||||||
|
'_lang_connection_' => 'connection',
|
||||||
|
'_lang_book_now_' => 'Book now',
|
||||||
|
'_lang_edit_online_appointment_' => 'Edit online appointment',
|
||||||
|
'_lang_new_online_reservation_' => 'New online reservation',
|
||||||
|
'_lang_head_display_info_' => 'Head display information',
|
||||||
|
'_lang_commodity_map_' => 'Commodity map',
|
||||||
|
'_lang_tsoti_c_e_10mthe_f_is_porj_' => 'The size of the image cannot exceed 10M. The format is PNG or JPG',
|
||||||
|
'_lang_service_title_' => 'Service title',
|
||||||
|
'_lang_pls_fit_s_title_max_20_w_' => 'Please fill in the service title (maximum 20 words)',
|
||||||
|
'_lang_selling_price_' => 'Selling price',
|
||||||
|
'_lang_pls_fit_sales_price_' => 'Please fill in the sales price',
|
||||||
|
'_lang_yuan_' => 'yuan',
|
||||||
|
'_lang_info_that_c_want_to_know_' => 'Information that customers want to know',
|
||||||
|
'_lang_pls_en_the_pro_des_' => 'Please enter the product description',
|
||||||
|
'_lang_pls_en_pro_highlights_' => 'Please enter product highlights',
|
||||||
|
'_lang_pls_en_the_applicable_scope_' => 'Please enter the applicable scope',
|
||||||
|
'_lang_pls_en_com_profile_' => 'Please enter company profile',
|
||||||
|
'_lang_pls_en_additional_info_' => 'Please enter additional information',
|
||||||
|
'_lang_want_to_let_c_know_the_highlights_' => 'Want to let customers know the highlights',
|
||||||
|
'_lang_promotional_activity_' => 'Promotional activity',
|
||||||
|
'_lang_pic_details_' => 'Picture details',
|
||||||
|
'_lang_what_info_do_you_want_from_y_c_' => 'What information do you want from your customers',
|
||||||
|
'_lang_telephone_call_' => 'Telephone call',
|
||||||
|
'_lang_pls_fit_mobile_verification_code_' => 'Please fill in the mobile verification code',
|
||||||
|
'_lang_account_binding_' => 'Account binding',
|
||||||
|
'_lang_no_data_available_' => 'No data available',
|
||||||
|
'_lang_s_associated_video_' => 'Select associated video',
|
||||||
|
'_lang_tool_name_' => 'Tool name',
|
||||||
|
'_lang_load_more_' => 'Load more',
|
||||||
|
'_lang_pls_be_patient_while_p_' => 'Please be patient while processing',
|
||||||
|
'_lang_pic_library_' => 'Picture library',
|
||||||
|
'_lang_browse_gallery_' => 'Browse gallery',
|
||||||
|
'_lang_pls_s_a_pic_category_' => 'Please select a picture category',
|
||||||
|
'_lang_pls_en_a_pic_category_name_' => 'Please enter a picture category name',
|
||||||
|
'_lang_pack_up_' => 'Pack up',
|
||||||
|
'_lang_posture_library_' => 'Posture library',
|
||||||
|
'_lang_the_c_of_the_c_shown_is_for_r_only_' => 'The content of the copy shown is for reference only',
|
||||||
|
'_lang_pls_fit_account_num_num_' => 'Please fill in the account number (number)',
|
||||||
|
'_lang_pls_s_platform_' => 'Please select platform',
|
||||||
|
'_lang_pls_s_an_industry_category_' => 'Please select an industry category',
|
||||||
|
'_lang_inquire_' => 'inquire',
|
||||||
|
'_lang_data_auth_' => 'Data authorization',
|
||||||
|
'_lang_c_the_a_num_and_c_to_scan_the_code_' => 'Confirm the account number and click to scan the code',
|
||||||
|
'_lang_the_o_f_pls_c_the_p_box_and_try_again_' => 'The operation failed. Please close the pop-up box and try again',
|
||||||
|
'_lang_data_auth_normal_' => 'Data authorization normal',
|
||||||
|
'_lang_add_rules_k_matching_' => 'Add rules (Keyword matching)',
|
||||||
|
'_lang_rule_name_text_range_1~10_c_' => 'Rule name (Text range: 1~10 characters)',
|
||||||
|
'_lang_pls_en_a_rule_name_' => 'Please enter a rule name',
|
||||||
|
'_lang_kw_text_range_1~15_w_' => 'Keywords (Text range: 1~15 words)',
|
||||||
|
'_lang_pls_en_k_' => 'Please enter keyword',
|
||||||
|
'_lang_m_kw_multiple_kw_one_kw_per_line_' => 'Multiple keywords (multiple keywords one keyword per line)',
|
||||||
|
'_lang_k_one_k_per_line_' => 'Keyword One keyword per line',
|
||||||
|
'_lang_reply_content_text_range_1~300_w_' => 'Reply content (Text range: 1~300 words)',
|
||||||
|
'_lang_pls_en_the_reply_content_' => 'Please enter the reply content',
|
||||||
|
'_lang_account_auth_' => 'Account authorization',
|
||||||
|
'_lang_qr_code_is_invalid_[e2]_c_to_obtain_a_' => 'Qr code is invalid [E2], click to obtain again',
|
||||||
|
'_lang_be_being_sent_' => 'Be being sent',
|
||||||
|
'_lang_resend_' => 'resend',
|
||||||
|
'_lang_account_v_auth_suc_' => 'Account (verification) authorization succeeded',
|
||||||
|
'_lang_private_message_auth_' => 'Private message authorization',
|
||||||
|
'_lang_intelligent_customer_service_' => 'Intelligent customer service',
|
||||||
|
'_lang_account_auth_normal_' => 'Account authorization normal',
|
||||||
|
'_lang_pls_en_w_y_w_to_reply_to_' => 'Please enter what you want to reply to',
|
||||||
|
'_lang_t_f_is_not_a_for_this_account_' => 'This feature is not available for this account',
|
||||||
|
'_lang_are_you_sure_about_the_d_rule_' => 'Are you sure about the delete rule?',
|
||||||
|
'_lang_universal_reply_' => 'Universal reply',
|
||||||
|
'_lang_text_setting_' => 'Text setting',
|
||||||
|
'_lang_pic_setting_' => 'Picture setting',
|
||||||
|
'_lang_map_storage_' => 'Map storage',
|
||||||
|
'_lang_rule_name_' => 'Rule name',
|
||||||
|
'_lang_kw_line_by_line_' => 'Keywords line by line',
|
||||||
|
'_lang_digital_man_' => 'Digital man',
|
||||||
|
'_lang_dubbing_library_' => 'Dubbing library',
|
||||||
|
'_lang_all_' => 'All',
|
||||||
|
'_lang_be_common_' => 'Be common',
|
||||||
|
'_lang_customer_service_' => 'Customer service',
|
||||||
|
'_lang_read_' => 'read',
|
||||||
|
'_lang_childs_voice_' => 'Childs voice',
|
||||||
|
'_lang_dialect_' => 'dialect',
|
||||||
|
'_lang_live_broadcast_' => 'Live broadcast',
|
||||||
|
'_lang_news_' => 'news',
|
||||||
|
'_lang_dialogue_' => 'Dialogue',
|
||||||
|
'_lang_full_dubbing_' => 'Full dubbing',
|
||||||
|
'_lang_create_script_library_' => 'Create script library',
|
||||||
|
'_lang_pls_en_a_script_l_name_' => 'Please enter a script library name',
|
||||||
|
'_lang_dubbing_script_l_' => 'Dubbing script library',
|
||||||
|
'_lang_are_y_sure_to_d_the_d_script_l_' => 'Are you sure to delete the dubbing script library',
|
||||||
|
'_lang_dubbing_copy_' => 'Dubbing copy',
|
||||||
|
'_lang_speech_sp_allocation_' => 'Speech speed allocation',
|
||||||
|
'_lang_sp_test_' => 'Speed test',
|
||||||
|
'_lang_slow_sp_3_' => 'Slow Speed 3',
|
||||||
|
'_lang_slow_sp_2_' => 'Slow Speed 2',
|
||||||
|
'_lang_slow_sp_1_' => 'Slow Speed 1',
|
||||||
|
'_lang_quick_1_' => 'Quick 1',
|
||||||
|
'_lang_fast_2_' => 'Fast 2',
|
||||||
|
'_lang_fast_3_' => 'Fast 3',
|
||||||
|
'_lang_virtual_im_' => 'Virtual image',
|
||||||
|
'_lang_virtual_character_' => 'Virtual character',
|
||||||
|
'_lang_the_im_is_c_upda_and_open_' => 'The image is constantly updated and open',
|
||||||
|
'_lang_are_yst_set_this_im_' => 'Are you sure to set this image',
|
||||||
|
'_lang_are_yst_this_im_' => 'Are you sure to cancel this image',
|
||||||
|
'_lang_background_music_' => 'Background music',
|
||||||
|
'_lang_upload_music_' => 'Upload music',
|
||||||
|
'_lang_audition_' => 'audition',
|
||||||
|
'_lang_upload_successfully_' => 'Upload successfully',
|
||||||
|
'_lang_are_you_sure_to_d_it_' => 'Are you sure to delete it?',
|
||||||
|
'_lang_video_works_' => 'Video works',
|
||||||
|
'_lang_pls_s_publish_account_' => 'Please select Publish account',
|
||||||
|
'_lang_anomalous_work_' => 'Anomalous work',
|
||||||
|
'_lang_the_s_d_a_works_in_the_last_30_days_' => 'The system displays abnormal works in the last 30 days',
|
||||||
|
'_lang_failed_to_publish_the_s_u_' => 'Failed to publish the system upgrade',
|
||||||
|
'_lang_total_works_' => 'Total works',
|
||||||
|
'_lang_total_plays_' => 'Total plays',
|
||||||
|
'_lang_total_likes_' => 'Total likes',
|
||||||
|
'_lang_total_comments_' => 'Total comments',
|
||||||
|
'_lang_num_of_works_' => 'Number of works',
|
||||||
|
'_lang_num_of_comments_' => 'Number of comments',
|
||||||
|
'_lang_last_30_days_work_data_display_' => 'Last 30 days work data display',
|
||||||
|
'_lang_platform_account_' => 'Platform account',
|
||||||
|
'_lang_publish_configuration_' => 'Publish configuration',
|
||||||
|
'_lang_task_name_' => 'Task name',
|
||||||
|
'_lang_en_the_release_task_name_' => 'Enter the release task name',
|
||||||
|
'_lang_publishing_platform_' => 'Publishing platform',
|
||||||
|
'_lang_release_an_account_' => 'Release an account',
|
||||||
|
'_lang_no_sed_or_authorized_account_' => 'No selected or authorized account',
|
||||||
|
'_lang_pls_s_a_material_template_' => 'Please select a material template',
|
||||||
|
'_lang_ad_s_o_not_sed_as_the_d_settings_' => 'Advanced Settings (optional, not selected as the default Settings)',
|
||||||
|
'_lang_pls_s_advanced_settings_' => 'Please select Advanced Settings',
|
||||||
|
'_lang_release_date_' => 'Release date',
|
||||||
|
'_lang_set_a_release_date_' => 'Set a release date',
|
||||||
|
'_lang_release_time_' => 'Release time',
|
||||||
|
'_lang_set_time_range_' => 'Set time range',
|
||||||
|
'_lang_specified_point_in_time_' => 'Specified point in time',
|
||||||
|
'_lang_total_release_' => 'Total release',
|
||||||
|
'_lang_daily_release_' => 'Daily release',
|
||||||
|
'_lang_pls_fit_num_of_daily_posts_' => 'Please fill in the number of daily posts',
|
||||||
|
'_lang_submit_video_task_' => 'Submit video task',
|
||||||
|
'_lang_you_are_not_bound_to_the_wechat_public_account_' => 'You are not bound to the wechat public account',
|
||||||
|
'_lang_click_bind_experience_now!_' => 'Click Bind experience now!',
|
||||||
|
'_lang_pls_s_screen_type_horizontal_vertical_' => 'Please select Screen type (horizontal/vertical)',
|
||||||
|
'_lang_landscape_' => 'landscape',
|
||||||
|
'_lang_portrait_screen_' => 'Portrait screen',
|
||||||
|
'_lang_pls_s_a_material_type_' => 'Please select a material type',
|
||||||
|
'_lang_pic_' => 'picture',
|
||||||
|
'_lang_video_' => 'video',
|
||||||
|
'_lang_visual_mixing_' => 'Visual mixing',
|
||||||
|
'_lang_pic_material_' => 'Picture material',
|
||||||
|
'_lang_video_material_' => 'Video material',
|
||||||
|
'_lang_preview_' => 'Preview',
|
||||||
|
'_lang_video_preview_' => 'Video preview',
|
||||||
|
'_lang_preview_video_proion_progress_' => 'Preview video production progress',
|
||||||
|
'_lang_case_video_proion_progress_' => 'Case video production progress',
|
||||||
|
'_lang_short_video_extension_list_' => 'Short video extension list',
|
||||||
|
'_lang_k_setting_' => 'Keyword setting',
|
||||||
|
'_lang_k_' => 'keyword',
|
||||||
|
'_lang_to_be_processed_' => 'To be processed',
|
||||||
|
'_lang_processed_' => 'processed',
|
||||||
|
'_lang_search_' => 'search',
|
||||||
|
'_lang_short_video_num_' => 'Short video number',
|
||||||
|
'_lang_avatar_' => 'avatar',
|
||||||
|
'_lang_nickname_' => 'nickname',
|
||||||
|
'_lang_consultation_content_' => 'Consultation content',
|
||||||
|
'_lang_consultation_time_' => 'Consultation time',
|
||||||
|
'_lang_push_time_' => 'Push time',
|
||||||
|
'_lang_scan_the_code_for_private_messages_' => 'Scan the code for private messages',
|
||||||
|
'_lang_operating_state_' => 'Operating state',
|
||||||
|
'_lang_view_video_' => 'View video',
|
||||||
|
'_lang_reason_for_rejection_' => 'Reason for rejection',
|
||||||
|
'_lang_k_text_setting_range_2_10_' => 'Keyword text setting range (2~10)',
|
||||||
|
'_lang_pls_fill_in_it_c_and_cannot_be_c_after_a_' => 'Please fill in it carefully and cannot be changed after approval',
|
||||||
|
'_lang_b_music_setting_' => 'Background music setting',
|
||||||
|
'_lang_search_music_' => 'Search music',
|
||||||
|
'_lang_pls_s_a_video_category_' => 'Please select a video category',
|
||||||
|
'_lang_add_sort_' => 'Add sort',
|
||||||
|
'_lang_edit_class_name_' => 'Edit class name',
|
||||||
|
'_lang_clear_pic_' => 'Clear picture',
|
||||||
|
'_lang_pls_en_the_name_of_the_class_you_want_to_add_' => 'Please enter the name of the class you want to add',
|
||||||
|
'_lang_add_class_' => 'Add class',
|
||||||
|
'_lang_change_pw_' => 'Change password',
|
||||||
|
'_lang_current_pw_' => 'Current password',
|
||||||
|
'_lang_pls_en_y_current_pw_' => 'Please enter your current password',
|
||||||
|
'_lang_new_pw_' => 'New password',
|
||||||
|
'_lang_pls_en_a_new_pw_' => 'Please enter a new password',
|
||||||
|
'_lang_confirm_pw_' => 'Confirm password',
|
||||||
|
'_lang_k_mining_operation_' => 'Keyword mining operation',
|
||||||
|
'_lang_k_num_' => 'Keyword number',
|
||||||
|
'_lang_already_added_' => 'Already added',
|
||||||
|
'_lang_data_presentation_' => 'Data presentation',
|
||||||
|
'_lang_in_pro_o_the_k_setting_cannot_be_p_' => 'In product optimization, the keyword setting cannot be performed',
|
||||||
|
'_lang_clear_historical_ranking_data_' => 'Clear historical ranking data',
|
||||||
|
'_lang_ranking_data_is_being_updated_' => 'Ranking data is being updated',
|
||||||
|
'_lang_start_partition_' => 'Start partition',
|
||||||
|
'_lang_remove_designation_' => 'Remove designation',
|
||||||
|
'_lang_lexical_extension_tool_' => 'Lexical extension tool',
|
||||||
|
'_lang_combination_tool_' => 'Combination tool',
|
||||||
|
'_lang_combinatorial_term_' => 'Combinatorial term',
|
||||||
|
'_lang_query_' => 'query',
|
||||||
|
'_lang_subject_term_' => 'Subject term',
|
||||||
|
'_lang_suffix_' => 'suffix',
|
||||||
|
'_lang_middle_part_' => 'Middle part',
|
||||||
|
'_lang_tail_' => 'tail',
|
||||||
|
'_lang_set_position_' => 'Set position',
|
||||||
|
'_lang_video_copy_' => 'Video copy',
|
||||||
|
'_lang_cover_text_' => 'Cover text',
|
||||||
|
'_lang_acknowledge_generation_' => 'Acknowledge generation',
|
||||||
|
'_lang_video_library_' => 'Video library',
|
||||||
|
'_lang_browse_video_library_' => 'Browse video library',
|
||||||
|
'_lang_public_music_' => 'Public music',
|
||||||
|
'_lang_common_classification_' => 'Common classification',
|
||||||
|
'_lang_pls_s_category_' => 'Please select category',
|
||||||
|
'_lang_cover_template_' => 'Cover template',
|
||||||
|
'_lang_pic_cropping_' => 'Picture cropping',
|
||||||
|
'_lang_capture_the_width_of_the_graph_' => 'Capture the width of the graph',
|
||||||
|
'_lang_intercept_the_graph_height_' => 'Intercept the graph height',
|
||||||
|
'_lang_creative_tool_' => 'Creative tool',
|
||||||
|
'_lang_s_area_' => 'Select area',
|
||||||
|
'_lang_hot_topic_' => 'Hot topic',
|
||||||
|
'_lang_recommendation_word_tool_' => 'Recommendation word tool',
|
||||||
|
'_lang_matters_needing_attention_' => 'Matters needing attention',
|
||||||
|
'_lang_data_' => 'data',
|
||||||
|
'_lang_shake_the_code_' => 'Shake the code',
|
||||||
|
'_lang_card_icon_' => 'Card icon',
|
||||||
|
'_lang_pls_fit_card_title_' => 'Please fill in the card title',
|
||||||
|
'_lang_pls_fit_card_des_' => 'Please fill in the card description',
|
||||||
|
'_lang_pls_fit_card_title_' => 'Please fill in the card title',
|
||||||
|
'_lang_pls_fit_card_des_' => 'Please fill in the card description',
|
||||||
|
'_lang_press_and_hold_the_qr_code_to_identify_' => 'Press and hold the QR code to identify',
|
||||||
|
'_lang_card_setup_' => 'Card setup',
|
||||||
|
'_lang_icon_library_' => 'Icon library',
|
||||||
|
'_lang_card_title_' => 'Card title',
|
||||||
|
'_lang_you_can_set_a_maximum_of_20_characters_' => 'You can set a maximum of 20 characters',
|
||||||
|
'_lang_card_des_' => 'Card description',
|
||||||
|
'_lang_business_card_setup_' => 'Business card setup',
|
||||||
|
'_lang_business_card_avatar_' => 'Business card avatar',
|
||||||
|
'_lang_business_card_name_' => 'Business card name',
|
||||||
|
'_lang_business_card_des_' => 'Business card description',
|
||||||
|
'_lang_qr_code_setting_' => 'Qr code setting',
|
||||||
|
'_lang_up_to_10_settings_can_be_u_' => 'Up to 10 Settings can be uploaded',
|
||||||
|
'_lang_immediate_generation_' => 'Immediate generation',
|
||||||
|
'_lang_landing_page_preview_' => 'Landing page preview',
|
||||||
|
'_lang_scan_the_phone_to_p_the_landing_page_' => 'Scan the phone to preview the landing page',
|
||||||
|
'_lang_copy_link_' => 'Copy link',
|
||||||
|
'_lang_private_domain_delivery_' => 'Private domain delivery',
|
||||||
|
'_lang_data_analysis_' => 'Data analysis',
|
||||||
|
'_lang_drop_clue_' => 'Drop clue',
|
||||||
|
'_lang_s_' => 'Select',
|
||||||
|
'_lang_item_id_' => 'Item ID',
|
||||||
|
'_lang_advertiser_id_' => 'Advertiser ID',
|
||||||
|
'_lang_budget_type_' => 'Budget type',
|
||||||
|
'_lang_budget_' => 'budget',
|
||||||
|
'_lang_bid_' => 'bid',
|
||||||
|
'_lang_base_material_' => 'Base material',
|
||||||
|
'_lang_title_' => 'title',
|
||||||
|
'_lang_advertising_settings_' => 'Advertising Settings',
|
||||||
|
'_lang_source_' => 'source',
|
||||||
|
'_lang_brand_name_' => 'Brand name',
|
||||||
|
'_lang_massive_flow_' => 'Massive flow',
|
||||||
|
'_lang_item_list_' => 'Item list',
|
||||||
|
'_lang_plan_list_' => 'Plan list',
|
||||||
|
'_lang_create_a_plan_' => 'Create a plan',
|
||||||
|
'_lang_project_name_' => 'Project name',
|
||||||
|
'_lang_launch_an_account_' => 'Launch an account',
|
||||||
|
'_lang_pls_s_an_account_' => 'Please select an account',
|
||||||
|
'_lang_material_list_' => 'Material list',
|
||||||
|
'_lang_s_material_' => 'Select material',
|
||||||
|
'_lang_throw_title_' => 'Throw title',
|
||||||
|
'_lang_pls_en_the_launch_title_' => 'Please enter the launch title',
|
||||||
|
'_lang_add_title_' => 'Add title',
|
||||||
|
'_lang_d_title_' => 'Delete title',
|
||||||
|
'_lang_daily_budget_' => 'Daily budget',
|
||||||
|
'_lang_general_budget_' => 'General budget',
|
||||||
|
'_lang_budgeted_amount_' => 'Budgeted amount',
|
||||||
|
'_lang_target_conversion_bid_' => 'Target conversion bid',
|
||||||
|
'_lang_click/show_bid_' => 'Click/Show bid',
|
||||||
|
'_lang_deeply_optimized_bid_' => 'Deeply optimized bid',
|
||||||
|
'_lang_create_a_stream_plan_' => 'Create a stream plan',
|
||||||
|
'_lang_manual_drop_' => 'Manual drop',
|
||||||
|
'_lang_automatic_delivery_' => 'Automatic delivery',
|
||||||
|
'_lang_short_videos/pics_' => 'Short videos/pictures',
|
||||||
|
'_lang_channel_advertising_' => 'Channel advertising',
|
||||||
|
'_lang_search_advertising_' => 'Search advertising',
|
||||||
|
'_lang_douyin_homepage_' => 'Douyin homepage',
|
||||||
|
'_lang_landing_page_' => 'Landing page',
|
||||||
|
'_lang_conventional_delivery_' => 'Conventional delivery',
|
||||||
|
'_lang_periodic_stability_' => 'Periodic stability',
|
||||||
|
'_lang_long-term_release_from_today_' => 'Long-term release from today',
|
||||||
|
'_lang_set_the_start_and_end_dates_' => 'Set the start and end dates',
|
||||||
|
'_lang_batch_operation_' => 'Batch operation',
|
||||||
|
'_lang_periodic_system_cleanup_' => 'Periodic system cleanup',
|
||||||
|
'_lang_pls_download_the_video_in_time_' => 'Please download the video in time',
|
||||||
|
'_lang_you_also_have..' => 'You also have...',
|
||||||
|
'_lang_the_video_has_not_been_d_' => 'The video has not been downloaded',
|
||||||
|
'_lang_interesting_video_temp_name_' => 'Interesting video template name',
|
||||||
|
'_lang_set_parameters_1_' => 'Set parameters 1',
|
||||||
|
'_lang_set_parameters_2_' => 'Set parameters 2',
|
||||||
|
'_lang_interesting_video_use_steps_' => 'Interesting video use steps',
|
||||||
|
'_lang_first_step_' => 'First step',
|
||||||
|
'_lang_fun_template_' => 'Fun template',
|
||||||
|
'_lang_s_a_template_to_make_a_video_' => 'Select a template to make a video',
|
||||||
|
'_lang_massive_template_' => 'Massive template',
|
||||||
|
'_lang_the_second_step_' => 'The second step',
|
||||||
|
'_lang_task_queue_' => 'Task queue',
|
||||||
|
'_lang_video_creation_progress_view_' => 'Video creation progress view',
|
||||||
|
'_lang_proion_schedule_' => 'Production schedule',
|
||||||
|
'_lang_the_third_step_' => 'The third step',
|
||||||
|
'_lang_creative_video_download_' => 'Creative video download',
|
||||||
|
'_lang_video_download_' => 'Video download',
|
||||||
|
'_lang_account_configuration_' => 'Account configuration',
|
||||||
|
'_lang_authorized_account_' => 'Authorized account',
|
||||||
|
'_lang_intelligent_writing_' => 'Intelligent writing',
|
||||||
|
'_lang_remarks_name_' => 'Remarks name',
|
||||||
|
'_lang_key-key_' => 'key-key',
|
||||||
|
'_lang_account_status_' => 'Account status',
|
||||||
|
'_lang_auth_time_' => 'Authorization time',
|
||||||
|
'_lang_pls_en_a_note_name_' => 'Please enter a note name',
|
||||||
|
'_lang_additive_writing_' => 'Additive writing',
|
||||||
|
'_lang_library_ci_' => 'Library ci',
|
||||||
|
'_lang_copy_count_' => 'Copy count',
|
||||||
|
'_lang_writing_state_' => 'Writing state',
|
||||||
|
'_lang_account_' => 'account',
|
||||||
|
'_lang_library_setup_' => 'Library setup',
|
||||||
|
'_lang_keep_writing_' => 'Keep writing',
|
||||||
|
'_lang_view_copy_' => 'View copy',
|
||||||
|
'_lang_writing_deletion_' => 'Writing deletion',
|
||||||
|
'_lang_copywriting_' => 'copywriting',
|
||||||
|
'_lang_copywriting_content_' => 'Copywriting content',
|
||||||
|
'_lang_writing_list_' => 'Writing list',
|
||||||
|
'_lang_pro_management_' => 'Product management',
|
||||||
|
'_lang_id_' => 'ID',
|
||||||
|
'_lang_pro_name_' => 'Product name',
|
||||||
|
'_lang_affiliated_project_' => 'Affiliated project',
|
||||||
|
'_lang_copywriting_' => 'copywriting',
|
||||||
|
'_lang_finished_pro_' => 'Finished product',
|
||||||
|
'_lang_add_kw_' => 'Add keywords',
|
||||||
|
'_lang_add_title_' => 'Add title',
|
||||||
|
'_lang_add_video_' => 'Add video',
|
||||||
|
'_lang_add_pic_' => 'Add picture',
|
||||||
|
'_lang_add_copy_' => 'Add copy',
|
||||||
|
'_lang_editing_pro_' => 'Editing product',
|
||||||
|
'_lang_d_pro_' => 'Delete product',
|
||||||
|
'_lang_additive_pro_' => 'Additive product',
|
||||||
|
'_lang_pls_en_the_pro_name_' => 'Please enter the product name',
|
||||||
|
'_lang_pls_s_a_project_' => 'Please select a project',
|
||||||
|
'_lang_project_management_' => 'Project management',
|
||||||
|
'_lang_project_name_' => 'Project name',
|
||||||
|
'_lang_num_of_pros_' => 'Number of products',
|
||||||
|
'_lang_management_operation_' => 'Management operation',
|
||||||
|
'_lang_view_pros_' => 'View products',
|
||||||
|
'_lang_edit_item_' => 'Edit item',
|
||||||
|
'_lang_d_item_' => 'Delete item',
|
||||||
|
'_lang_add_item_' => 'Add item',
|
||||||
|
'_lang_pls_en_a_project_name_' => 'Please enter a project name',
|
||||||
|
'_lang_account_num_' => 'Account number',
|
||||||
|
'_lang_template_' => 'template',
|
||||||
|
'_lang_material_' => 'material',
|
||||||
|
'_lang_disposition_' => 'disposition',
|
||||||
|
'_lang_basic_data_' => 'Basic data',
|
||||||
|
'_lang_pls_fit_task_name_' => 'Please fill in the task name',
|
||||||
|
'_lang_com_name_' => 'Company name',
|
||||||
|
'_lang_contact_num_' => 'Contact number',
|
||||||
|
'_lang_creation_type_' => 'Creation type',
|
||||||
|
'_lang_normal_release_' => 'Normal release',
|
||||||
|
'_lang_work_preview_' => 'Work preview',
|
||||||
|
'_lang_source_sound_' => 'Source sound',
|
||||||
|
'_lang_unsound_' => 'unsound',
|
||||||
|
'_lang_preserve_the_original_sound_' => 'Preserve the original sound',
|
||||||
|
'_lang_batch_timing_' => 'Batch timing',
|
||||||
|
'_lang_single_real-time_' => 'Single real-time',
|
||||||
|
'_lang_topic_is_later_' => 'Topic is later',
|
||||||
|
'_lang_the_topic_is_first_' => 'The topic is first',
|
||||||
|
'_lang_random_topic_' => 'Random topic',
|
||||||
|
'_lang_d_tone_mounting_' => 'D tone mounting',
|
||||||
|
'_lang_poi_automatic_matching_' => 'POI automatically matches',
|
||||||
|
'_lang_add_tag_' => 'Add tag',
|
||||||
|
'_lang_poi_address_' => 'POI address',
|
||||||
|
'_lang_small_program_' => 'Small program',
|
||||||
|
'_lang_little_yellow_cart_' => 'Little yellow cart',
|
||||||
|
'_lang_s_the_applet_ywt_add_' => 'Select the applet you want to add',
|
||||||
|
'_lang_pls_s_the_item_ywt_mount_' => 'Please select the item you want to mount',
|
||||||
|
'_lang_k_manual_mounting_' => 'K Manual mounting',
|
||||||
|
'_lang_graphic_setup_' => 'Graphic setup',
|
||||||
|
'_lang_graphic_music_' => 'Graphic music',
|
||||||
|
'_lang_im_usage_' => 'Image usage',
|
||||||
|
'_lang_main_title_of_work_' => 'Main title of work',
|
||||||
|
'_lang_music_library_' => 'Music library',
|
||||||
|
'_lang_background_pic_' => 'Background picture',
|
||||||
|
'_lang_material_data_' => 'Material data',
|
||||||
|
'_lang_intelligent_library_' => 'Intelligent library',
|
||||||
|
'_lang_voice-over_audio_' => 'Voice-over audio',
|
||||||
|
'_lang_pls_s_smart_library_' => 'Please select Smart Library',
|
||||||
|
'_lang_pls_s_audio_' => 'Please select audio',
|
||||||
|
'_lang_material_setting_' => 'Material setting',
|
||||||
|
'_lang_video_duration_starting_' => 'Video duration (starting)',
|
||||||
|
'_lang_video_duration_end_' => 'Video duration (end)',
|
||||||
|
'_lang_k_hand_graphic_music_library_' => 'K hand graphic music library',
|
||||||
|
'_lang_task_management_' => 'Task management',
|
||||||
|
'_lang_create_task_' => 'Create task',
|
||||||
|
'_lang_cleaning_tool_' => 'Cleaning tool',
|
||||||
|
'_lang_pls_fit_task_num_num_' => 'Please fill in the task number (number)',
|
||||||
|
'_lang_pls_s_publication_status_' => 'Please select publication status',
|
||||||
|
'_lang_in_release_' => 'In release',
|
||||||
|
'_lang_timed_execution_' => 'Timed execution',
|
||||||
|
'_lang_release_complete_' => 'Release complete',
|
||||||
|
'_lang_task_execution_details_' => 'Task execution details',
|
||||||
|
'_lang_collection_management_' => 'Collection management',
|
||||||
|
'_lang_pls_s_an_authorized_account_' => 'Please select an authorized account',
|
||||||
|
'_lang_update_collection_' => 'Update collection',
|
||||||
|
'_lang_transition_effect_' => 'Transition effect',
|
||||||
|
'_lang_my_template_' => 'My template',
|
||||||
|
'_lang_common_template_' => 'Common template',
|
||||||
|
'_lang_pls_en_a_category_name_' => 'Please enter a category name',
|
||||||
|
'_lang_task_cleanup_tool_' => 'Task cleanup tool',
|
||||||
|
'_lang_pls_s_the_num_of_displays_per_page_' => 'Please select the number of displays per page',
|
||||||
|
'_lang_pls_s_a_start_date_' => 'Please select a start date',
|
||||||
|
'_lang_pls_s_a_deadline_' => 'Please select a deadline',
|
||||||
|
'_lang_session_management_' => 'Session management',
|
||||||
|
'_lang_lead_total_' => 'Lead total',
|
||||||
|
'_lang_real-time_update_' => 'Real-time update',
|
||||||
|
'_lang_interactive_consultation_' => 'Interactive consultation',
|
||||||
|
'_lang_a_private_inquiry_' => 'A private inquiry',
|
||||||
|
'_lang_monitor_account_' => 'Monitor account',
|
||||||
|
'_lang_pls_s_a_clue_type_' => 'Please select a clue type',
|
||||||
|
'_lang_whether_contact_info_is_included_' => 'Whether contact information is included',
|
||||||
|
'_lang_contain_contact_info_' => 'Contain contact information',
|
||||||
|
'_lang_do_not_contain_contact_info_' => 'No contact details',
|
||||||
|
'_lang_pls_s_the_info_type_' => 'Please select the information type',
|
||||||
|
'_lang_comment_info_' => 'Comment information',
|
||||||
|
'_lang_private_message_' => 'Private message',
|
||||||
|
'_lang_open_the_private_message_dialog_box_' => 'Open the private message dialog box',
|
||||||
|
'_lang_call_home_smart_phone_' => 'Call Home Smart Phone',
|
||||||
|
'_lang_s_authorized_account_' => 'Select authorized account',
|
||||||
|
'_lang_monitoring_kw_' => 'Monitoring keywords',
|
||||||
|
'_lang_create_kw_' => 'Create keywords',
|
||||||
|
'_lang_clue_list_' => 'Clue list',
|
||||||
|
'_lang_can_set_' => 'Can set',
|
||||||
|
'_lang_audit_status_' => 'Audit status',
|
||||||
|
'_lang_enable_or_not_' => 'Enable or not',
|
||||||
|
'_lang_video_source_' => 'Video source',
|
||||||
|
'_lang_scan_the_code_to_see_the_work_' => 'Scan the code to see the work',
|
||||||
|
'_lang_pls_en_y_reply_info_' => 'Please enter your reply information',
|
||||||
|
'_lang_precise_cue_' => 'Precise cue',
|
||||||
|
'_lang_industry_monitoring_' => 'Industry monitoring',
|
||||||
|
'_lang_trade_word_setting_' => 'Trade word setting',
|
||||||
|
'_lang_s_trade_w_' => 'Select trade words',
|
||||||
|
'_lang_push_type_' => 'Push type',
|
||||||
|
'_lang_pls_s_push_type_' => 'Please select Push type',
|
||||||
|
'_lang_comprehensive_query_' => 'Comprehensive query',
|
||||||
|
'_lang_maximum_likes_' => 'Maximum likes',
|
||||||
|
'_lang_latest_release_' => 'Latest release',
|
||||||
|
'_lang_push_date_' => 'Push date',
|
||||||
|
'_lang_pls_s_the_push_date_' => 'Please select the push date',
|
||||||
|
'_lang_unlimited_time_' => 'Unlimited time',
|
||||||
|
'_lang_the_last_day_' => 'The last day',
|
||||||
|
'_lang_last_week_' => 'Last week',
|
||||||
|
'_lang_last_half_year_' => 'Last half year',
|
||||||
|
'_lang_minimum_num_of_preferences_' => 'Minimum number of preferences',
|
||||||
|
'_lang_pls_fit_lowest_num_of_likes_' => 'Please fill in the lowest number of likes',
|
||||||
|
'_lang_minimum_comment_count_' => 'Minimum comment count',
|
||||||
|
'_lang_pls_fit_minimum_num_of_comments_' => 'Please fill in the minimum number of comments',
|
||||||
|
'_lang_title_inclusion_word_' => 'Title inclusion word',
|
||||||
|
'_lang_add_trade_w_' => 'Add trade words',
|
||||||
|
'_lang_editorial_terms_' => 'Editorial terms',
|
||||||
|
'_lang_new_lens_' => 'New lens',
|
||||||
|
'_lang_lens_name_' => 'Lens name',
|
||||||
|
'_lang_lens_position_' => 'Lens position',
|
||||||
|
'_lang_confirm_new_addition_' => 'Confirm new addition',
|
||||||
|
'_lang_camera_transition_' => 'Camera transition',
|
||||||
|
'_lang_writing_prompt_' => 'Writing prompt',
|
||||||
|
'_lang_des_title_' => 'Description (title)',
|
||||||
|
'_lang_key_w_topic_' => 'Key words (topic)',
|
||||||
|
'_lang_template_content_' => 'Template content',
|
||||||
|
'_lang_shot_editing_' => 'Shot editing',
|
||||||
|
'_lang_shot_material_' => 'Shot material',
|
||||||
|
'_lang_remove_start_time_seconds_' => 'Remove start time (seconds)',
|
||||||
|
'_lang_removal_end_time_seconds_' => 'Removal end time (seconds)',
|
||||||
|
'_lang_clip_duration_seconds_' => 'Clip duration (seconds)',
|
||||||
|
'_lang_num_of_shot_clips_' => 'Number of shot clips',
|
||||||
|
'_lang_shot_out_of_sequence_' => 'Shot out of sequence',
|
||||||
|
'_lang_sp_change_off_' => 'Speed change off',
|
||||||
|
'_lang_lens_shift_' => 'Lens shift',
|
||||||
|
'_lang_shift_time_' => 'Shift time',
|
||||||
|
'_lang_remove_lens_' => 'Remove lens',
|
||||||
|
'_lang_save_shot_' => 'Save shot',
|
||||||
|
'_lang_filter_setting_' => 'Filter setting',
|
||||||
|
'_lang_filter_style_' => 'Filter style',
|
||||||
|
'_lang_contrast_' => 'Contrast',
|
||||||
|
'_lang_luminance_' => 'luminance',
|
||||||
|
'_lang_saturation_' => 'Saturation',
|
||||||
|
'_lang_temperature_' => 'Temperature',
|
||||||
|
'_lang_filter_time_' => 'Filter time',
|
||||||
|
'_lang_data_setting_' => 'Data setting',
|
||||||
|
'_lang_de_con_serial_num_' => 'De-conventional serial number',
|
||||||
|
'_lang_out_of_order_' => 'out-of-order',
|
||||||
|
'_lang_duplicate_removal_' => 'duplicate removal',
|
||||||
|
'_lang_contraband_' => 'contraband',
|
||||||
|
'_lang_slice_material_' => 'Slice material',
|
||||||
|
'_lang_content_location_' => 'Content location',
|
||||||
|
'_lang_smart_slicing_' => 'Smart slicing',
|
||||||
|
'_lang_add_location_' => 'Add location',
|
||||||
|
'_lang_other_p_are_not_synchronized_' => 'Other platforms are not synchronized',
|
||||||
|
'_lang_sync_with_other_platforms_' => 'Sync with other platforms',
|
||||||
|
'_lang_template_name_' => 'Template name',
|
||||||
|
'_lang_usage_times_' => 'Usage times',
|
||||||
|
'_lang_material_type_' => 'Material type',
|
||||||
|
'_lang_screen_type_' => 'Screen type',
|
||||||
|
'_lang_edit_material_template_' => 'Edit material template',
|
||||||
|
'_lang_num_of_account_num_' => 'Number of account number',
|
||||||
|
'_lang_template_num_' => 'Template number',
|
||||||
|
'_lang_daily_posts_' => 'Daily posts',
|
||||||
|
'_lang_release_schedule_' => 'Release schedule',
|
||||||
|
'_lang_success_failure_' => 'Success/failure',
|
||||||
|
'_lang_time_period_' => 'Time period',
|
||||||
|
'_lang_add_time_' => 'Add time',
|
||||||
|
'_lang_video_title_' => 'Video title',
|
||||||
|
'_lang_num_of_likes_' => 'Number of Likes',
|
||||||
|
'_lang_num_of_plays_' => 'Number of plays',
|
||||||
|
'_lang_platform_' => 'platform',
|
||||||
|
'_lang_cover_' => 'cover',
|
||||||
|
'_lang_bind_to_wechat_' => 'Bind to wechat',
|
||||||
|
'_lang_no_comments_yet_' => 'No comments yet',
|
||||||
|
'_lang_comment_content_' => 'Comment content',
|
||||||
|
'_lang_num_of_comment_replies_' => 'Number of comment replies',
|
||||||
|
'_lang_comment_time_' => 'Comment time',
|
||||||
|
'_lang_crinkle_' => 'crinkle',
|
||||||
|
'_lang_wechat_nickname_' => 'Wechat nickname',
|
||||||
|
'_lang_wechat_qr_code_' => 'Wechat QR code',
|
||||||
|
'_lang_wechat_qr_code_info_' => 'Wechat QR code information',
|
||||||
|
'_lang_template_rule_' => 'Template rule',
|
||||||
|
'_lang_remove_label_' => 'Remove label',
|
||||||
|
'_lang_industry_label_' => 'Industry label',
|
||||||
|
'_lang_heading_rule_' => 'Heading rule',
|
||||||
|
'_lang_des_content_' => 'Description content',
|
||||||
|
'_lang_title_rule_setting_' => 'Title rule setting',
|
||||||
|
'_lang_title_setting_' => 'Title setting',
|
||||||
|
'_lang_label_format_' => 'Label format',
|
||||||
|
'_lang_do_not_add_topic_' => 'Do not add topic',
|
||||||
|
'_lang_topic_setting_' => 'Topic setting',
|
||||||
|
'_lang_num_of_bound_templates_' => 'Number of bound templates',
|
||||||
|
'_lang_polysyllabic_settings_' => 'Polysyllabic Settings',
|
||||||
|
'_lang_slice_item_' => 'Slice item',
|
||||||
|
'_lang_slice_template_' => 'Slice template',
|
||||||
|
'_lang_delivery_plan_' => 'Delivery plan',
|
||||||
|
'_lang_plan_management_' => 'Plan management',
|
||||||
|
'_lang_data_classification_' => 'Data classification',
|
||||||
|
'_lang_common_area_' => 'Common area',
|
||||||
|
'_lang_common_topic_' => 'Common topic',
|
||||||
|
'_lang_module_overview_' => 'Module overview',
|
||||||
|
'_lang_operational_data_' => 'Operational data',
|
||||||
|
'_lang_creative_inspiration_' => 'Creative inspiration',
|
||||||
|
'_lang_im_enhancement_' => 'Image enhancement',
|
||||||
|
'_lang_oral_broadcast_classification_' => 'Oral broadcast classification',
|
||||||
|
'_lang_create_category_' => 'Create category',
|
||||||
|
'_lang_audio_b_material_settings_' => 'Audio broadcast material Settings',
|
||||||
|
'_lang_browse_the_mouth_cast_library_' => 'Browse the mouth cast library',
|
||||||
|
'_lang_title_editing_' => 'Title editing',
|
||||||
|
'_lang_name_of_the_br_material_tag_' => 'Name of the broadcast material tag',
|
||||||
|
'_lang_add_with_caution_' => 'Add with caution',
|
||||||
|
'_lang_extended_word_' => 'Extended word',
|
||||||
|
'_lang_recommended_word_' => 'Recommended word',
|
||||||
|
'_lang_synchronous_des_' => 'Synchronous description',
|
||||||
|
'_lang_artwork_cover_' => 'Artwork cover',
|
||||||
|
'_lang_custom_parameter_' => 'Custom parameter',
|
||||||
|
'_lang_use_the_artworks_f_screen_' => 'Use the artworks first screen',
|
||||||
|
'_lang_cover_text_color_' => 'Cover text color',
|
||||||
|
'_lang_cover_text_base_color_' => 'Cover text base color',
|
||||||
|
'_lang_text_stroke_color_' => 'Text stroke color',
|
||||||
|
'_lang_cover_font_style_' => 'Cover font style',
|
||||||
|
'_lang_text_stroke_width_' => 'Text stroke width',
|
||||||
|
'_lang_cover_text_size_' => 'Cover text size',
|
||||||
|
'_lang_text_base_is_transparent_' => 'Text base is transparent',
|
||||||
|
'_lang_text_base_map_corners_' => 'Text base map corners',
|
||||||
|
'_lang_distance_btn_text_and_top_' => 'Distance between text and top',
|
||||||
|
'_lang_custom_cover_' => 'Custom cover',
|
||||||
|
'_lang_dubbing_commentary_' => 'Dubbing commentary',
|
||||||
|
'_lang_video_leaderboard_' => 'Video Leaderboard',
|
||||||
|
'_lang_topic_leaderboard_' => 'Topic Leaderboard',
|
||||||
|
'_lang_hot_w_' => 'Hot words',
|
||||||
|
'_lang_intelligent_template_' => 'Intelligent template',
|
||||||
|
'_lang_edit_content_library_' => 'Edit content library',
|
||||||
|
'_lang_content_library_name_' => 'Content library name',
|
||||||
|
'_lang_pls_en_a_clib_name_' => 'Please enter a content library name',
|
||||||
|
'_lang_editing_task_' => 'Editing task',
|
||||||
|
'_lang_content_library_' => 'Content library',
|
||||||
|
'_lang_one_click_to_m_a_piece_' => 'One click to make a piece',
|
||||||
|
'_lang_clip_mode_' => 'Clip mode',
|
||||||
|
'_lang_platform_release_' => 'Platform release',
|
||||||
|
'_lang_material_mode_' => 'Material mode',
|
||||||
|
'_lang_num_of_clips_' => 'Number of clips',
|
||||||
|
'_lang_grade_version_' => 'Grade version',
|
||||||
|
'_lang_login_ip_' => 'Login IP',
|
||||||
|
'_lang_get_local_ip_' => 'Get local IP',
|
||||||
|
'_lang_home_province_' => 'Home province',
|
||||||
|
'_lang_pls_s_y_province_' => 'Please select your province',
|
||||||
|
'_lang_home_city_' => 'Home city',
|
||||||
|
'_lang_application_class_' => 'Application class',
|
||||||
|
|
||||||
|
|
||||||
|
);
|
||||||
Executable
+847
@@ -0,0 +1,847 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'_lang_cloud_video_' => '云视频',
|
||||||
|
'_lang_shaking_cloud_video_' => '抖盈云视频',
|
||||||
|
'_lang_skip_version_' => '跳转版本',
|
||||||
|
'_lang_dedicated_customer_service_' => '专属客服',
|
||||||
|
'_lang_wechat_notification_' => '微信通知',
|
||||||
|
'_lang_my_home_page_' => '我的主页',
|
||||||
|
'_lang_authorized_account_' => '授权账号',
|
||||||
|
'_lang_publish_works_' => '发布作品',
|
||||||
|
'_lang_material_template_' => '素材模板',
|
||||||
|
'_lang_timely_upot_material_tempteib_' => '及时更新素材模板,效果更佳',
|
||||||
|
'_lang_video_template_' => '视频模板',
|
||||||
|
'_lang_hot_temp_up_in_rtta_' => '热门模板实时更新,及时关注',
|
||||||
|
'_lang_issue_due_' => '发布到期',
|
||||||
|
'_lang_publishing_exception_' => '发布异常',
|
||||||
|
'_lang_data_expiration_' => '数据到期',
|
||||||
|
'_lang_account_anomaly_total_' => '账号异常合计',
|
||||||
|
'_lang_platform_management_' => '平台管理',
|
||||||
|
'_lang_material_management_' => '素材管理',
|
||||||
|
'_lang_task_management_' => '任务管理',
|
||||||
|
'_lang_creative_workshop_' => '创意工坊',
|
||||||
|
'_lang_operational_data_' => '运营数据',
|
||||||
|
'_lang_material_creation_' => '素材创作',
|
||||||
|
'_lang_work_preview_' => '作品预览',
|
||||||
|
'_lang_photo_gallery_' => '图片库',
|
||||||
|
'_lang_video_library_' => '视频库',
|
||||||
|
'_lang_task_creation_' => '任务创作',
|
||||||
|
'_lang_common_copy_' => '常用文案',
|
||||||
|
'_lang_all_modules_' => '全部模块',
|
||||||
|
'_lang_platinum_member_' => '铂金会员',
|
||||||
|
'_lang_account_running_normally_' => '账号运行正常',
|
||||||
|
'_lang_maturity_time_' => '到期时间',
|
||||||
|
'_lang_num_of_accounts_' => '账户条数',
|
||||||
|
'_lang_release_task_' => '发布任务',
|
||||||
|
'_lang_auth_exception_' => '授权异常',
|
||||||
|
'_lang_lead_business_opportunity_' => '线索商机',
|
||||||
|
'_lang_view_more_abnormal_accounts_' => '查看更多异常账号',
|
||||||
|
'_lang_see_more_lead_opportunities_' => '查看更多线索商机',
|
||||||
|
'_lang_ranking_report_' => '排名报表',
|
||||||
|
'_lang_account_grouping_' => '账号分组',
|
||||||
|
'_lang_agency_auth_' => '机构授权',
|
||||||
|
'_lang_abnormal_state_' => '异常状态',
|
||||||
|
'_lang_available_material_' => '可用素材',
|
||||||
|
'_lang_complete_paperwork_' => '完善文案资料',
|
||||||
|
'_lang_copywriting_type_' => '文案类型',
|
||||||
|
'_lang_cover_music_' => '封面音乐',
|
||||||
|
'_lang_risk_control_client_' => '风控客户端',
|
||||||
|
'_lang_click_to_download_' => '点击下载',
|
||||||
|
'_lang_new_' => '新增',
|
||||||
|
'_lang_marketing_card_' => '营销卡片',
|
||||||
|
'_lang_mass_messaging_' => '群发消息',
|
||||||
|
'_lang_small_program_' => '小程序',
|
||||||
|
'_lang_invite_for_a_job_' => '招聘',
|
||||||
|
'_lang_online_booking_' => '在线预约',
|
||||||
|
'_lang_collection_management_' => '合集管理',
|
||||||
|
'_lang_shake_the_code_' => '抖盈神码',
|
||||||
|
'_lang_intelligent_customer_service_' => '智能客服',
|
||||||
|
'_lang_private_domain_delivery_' => '私域投放',
|
||||||
|
'_lang_d_little_y_car_' => 'D音小黄车',
|
||||||
|
'_lang_d_sound_sm_program_' => 'D音小程序',
|
||||||
|
'_lang_recruitment_component_' => '招聘组件',
|
||||||
|
'_lang_k_hand_applet_' => 'K手小程序',
|
||||||
|
'_lang_s_a_resident_area_' => '选择常驻地区',
|
||||||
|
'_lang_d_tone_account_author_' => 'D音账号授权',
|
||||||
|
'_lang_s_city_' => '选择城市',
|
||||||
|
'_lang_mobile_phone_verification_' => '手机验证',
|
||||||
|
'_lang_code_scanning_author_' => '扫码授权',
|
||||||
|
'_lang_pls_en_y_pn_' => '请输入手机号',
|
||||||
|
'_lang_pls_en_the_mv_code_' => '请输入手机验证码',
|
||||||
|
'_lang_send_verification_code_' => '发送验证码',
|
||||||
|
'_lang_confirm_submission_' => '确认提交',
|
||||||
|
'_lang_depending_on_the_p_num_aa_' => '视P号账号授权',
|
||||||
|
'_lang_get_qr_code_' => '获取二维码',
|
||||||
|
'_lang_recover_' => '回复',
|
||||||
|
'_lang_clue_' => '线索',
|
||||||
|
'_lang_complete_collection_' => '全部合集',
|
||||||
|
'_lang_to_be_released_' => '待发布',
|
||||||
|
'_lang_released_for_review_' => '已发布审核中',
|
||||||
|
'_lang_not_pass_' => '未通过',
|
||||||
|
'_lang_create_collection_' => '创建合集',
|
||||||
|
'_lang_click_to_view_the_tutorial_' => '点击查看教程',
|
||||||
|
'_lang_ht_generate_d_tone_pri_mcard_' => '如何生成D音私信卡片?',
|
||||||
|
'_lang_click_to_view_the_tutorial_' => '点击查看教程',
|
||||||
|
'_lang_salutation_' => '问候语',
|
||||||
|
'_lang_k_matching_' => '关键词匹配',
|
||||||
|
'_lang_open_' => '已开启',
|
||||||
|
'_lang_found_' => '创建',
|
||||||
|
'_lang_normal_use_' => '正常使用',
|
||||||
|
'_lang_normal_' => '正常',
|
||||||
|
'_lang_account_running_normally_' => '账号运行正常',
|
||||||
|
'_lang_maturity_time_' => '到期时间',
|
||||||
|
'_lang_interesting_video_' => '趣视频',
|
||||||
|
'_lang_start_making_' => '开始制作',
|
||||||
|
'_lang_num_of_accounts_' => '账户条数',
|
||||||
|
'_lang_publish_works_' => '发布作品',
|
||||||
|
'_lang_authorized_account_' => '授权账号',
|
||||||
|
'_lang_release_task_' => '发布任务',
|
||||||
|
'_lang_issue_maturity_' => '发布到期数',
|
||||||
|
'_lang_data_maturity_' => '数据到期数',
|
||||||
|
'_lang_num_of_published_except_' => '发布异常数',
|
||||||
|
'_lang_account_pending_total_' => '账号待处理总计',
|
||||||
|
'_lang_material_template_' => '素材模板',
|
||||||
|
'_lang_video_template_' => '视频模板',
|
||||||
|
'_lang_auth_exception_' => '授权异常',
|
||||||
|
'_lang_view_more_abnormal_acc_' => '查看更多异常账号',
|
||||||
|
'_lang_lead_business_opp_' => '线索商机',
|
||||||
|
'_lang_see_more_lead_opp_' => '查看更多线索商机',
|
||||||
|
'_lang_common_module_' => '常用模块',
|
||||||
|
'_lang_num_of_plays_' => '播放数',
|
||||||
|
'_lang_num_of_likes_' => '点赞数',
|
||||||
|
'_lang_activity_record_' => '活动记录',
|
||||||
|
'_lang_activity_name_' => '活动名称',
|
||||||
|
'_lang_mobile_pn_' => '手机号',
|
||||||
|
'_lang_coupon_type_' => '优惠券类型',
|
||||||
|
'_lang_video_release_status_' => '视频发布状态',
|
||||||
|
'_lang_use_condition_' => '使用状态',
|
||||||
|
'_lang_update_time_' => '更新时间',
|
||||||
|
'_lang_controls_' => '操作',
|
||||||
|
'_lang_to_be_shared_' => '待分享',
|
||||||
|
'_lang_shared_' => '已分享',
|
||||||
|
'_lang_not_in_use_' => '未使用',
|
||||||
|
'_lang_have_been_used_' => '已使用',
|
||||||
|
'_lang_cancel_coupon_' => '核销优惠券',
|
||||||
|
'_lang_d_' => '删除',
|
||||||
|
'_lang_no_data_available_' => '暂无数据',
|
||||||
|
'_lang_are_you_sure_at_write-off_' => '确定核销吗',
|
||||||
|
'_lang_definitive_deletion_' => '确定删除',
|
||||||
|
'_lang_the_record_' => '的记录吗?',
|
||||||
|
'_lang_welcome_to_login_system_' => '欢迎登录系统',
|
||||||
|
'_lang_the_account_cannot_be_empty_' => '账号不能为空',
|
||||||
|
'_lang_the_pw_cannot_be_empty_' => '密码不能为空',
|
||||||
|
'_lang_two_pws_do_not_match_' => '两次密码不一致',
|
||||||
|
'_lang_the_contact_cannot_be_empty_' => '联系人不能为空',
|
||||||
|
'_lang_contacts_cannot_contain_nums_' => '联系人不能存在数字',
|
||||||
|
'_lang_the_pn_cannot_be_empty_' => '手机号不能为空',
|
||||||
|
'_lang_the_pn_format_is_incorrect_' => '手机号格式错误',
|
||||||
|
'_lang_log_in_to_ts_suc_' => '注册成功,登录系统',
|
||||||
|
'_lang_pls_en_y_account_num_' => '请输入账号',
|
||||||
|
'_lang_pls_en_pw_' => '请输入密码',
|
||||||
|
'_lang_pls_en_y_confirmation_pw_' => '请输入确认密码',
|
||||||
|
'_lang_pls_en_contact_person_' => '请输入联系人',
|
||||||
|
'_lang_pls_en_y_pn_' => '请输入手机号',
|
||||||
|
'_lang_pls_en_the_com_name_' => '请输入公司名称',
|
||||||
|
'_lang_pls_en_the_code_' => '请输入开通码',
|
||||||
|
'_lang_verification_code_' => '验证码',
|
||||||
|
'_lang_explanatory_book_' => '注 册',
|
||||||
|
'_lang_have_an_account_login_now_' => '已有账号,立即登录',
|
||||||
|
'_lang_copyright_' => '版权',
|
||||||
|
'_lang_prompt_message_' => '提示信息',
|
||||||
|
'_lang_wto_douyin_cloud_video_' => '欢迎登录抖盈云视频',
|
||||||
|
'_lang_wto_the_user_cen_' => '欢迎登录用户中心',
|
||||||
|
'_lang_tusername_cannot_be_empty_' => '用户名不能为空',
|
||||||
|
'_lang_log_in_using_wechat_' => '使用微信登录',
|
||||||
|
'_lang_user_account_' => '用户账号',
|
||||||
|
'_lang_cipher_' => '密码',
|
||||||
|
'_lang_denlu_' => '登 录',
|
||||||
|
'_lang_no_account_reg_now_' => '没有账号,立即注册',
|
||||||
|
'_lang_shaking_cloud_video_' => '抖盈云视频',
|
||||||
|
'_lang_cloud_video_' => '云视频',
|
||||||
|
'_lang_sheng_li_short_video_' => '晟利短视频',
|
||||||
|
'_lang_nail_cloud_' => '钉子云',
|
||||||
|
'_lang_north_shake_star_' => '北抖星',
|
||||||
|
'_lang_big-faced_cat_' => '大脸猫',
|
||||||
|
'_lang_my_info_' => '我的资料',
|
||||||
|
'_lang_my_profile_settings_' => '我的资料设置',
|
||||||
|
'_lang_pw_change_' => '密码修改',
|
||||||
|
'_lang_login_pw_setting_' => '登录密码设置',
|
||||||
|
'_lang_safe_exit_' => '安全退出',
|
||||||
|
'_lang_tik_ying_exclusive_cs_' => '抖盈专属客服',
|
||||||
|
'_lang_appellation_' => '称呼',
|
||||||
|
'_lang_cell_phone_' => '手机',
|
||||||
|
'_lang_landline_' => '座机',
|
||||||
|
'_lang_qq_' => 'QQ',
|
||||||
|
'_lang_wechat_' => '微信',
|
||||||
|
'_lang_there_is_no_d_cs_' => '暂无专属客服',
|
||||||
|
'_lang_wechat_notification_' => '微信通知',
|
||||||
|
'_lang_ranking_report_' => '排名报表',
|
||||||
|
'_lang_historical_access_record_' => '历史访问记录',
|
||||||
|
'_lang_close_all_columns_' => '关闭全部栏目',
|
||||||
|
'_lang_close_other_columns_' => '关闭其他栏目',
|
||||||
|
'_lang_my_home_page_' => '我的主页',
|
||||||
|
'_lang_y_info_needs_to_be_com_' => '您的资料信息待完善',
|
||||||
|
'_lang_to_perfect_' => '去完善',
|
||||||
|
'_lang_edit_coupon_' => '编辑优惠券',
|
||||||
|
'_lang_create_a_coupon_' => '创建优惠券',
|
||||||
|
'_lang_coupon_name_' => '优惠券名称',
|
||||||
|
'_lang_pls_fit_coupon_name_' => '请填写优惠券名称',
|
||||||
|
'_lang_original_price_' => '原价',
|
||||||
|
'_lang_pls_fit_original_price_' => '请填写原价',
|
||||||
|
'_lang_current_price_' => '现价',
|
||||||
|
'_lang_pls_fit_current_price_' => '请填写现价',
|
||||||
|
'_lang_quantity_issued_' => '发放数量',
|
||||||
|
'_lang_pls_fit_quantity_issued_' => '请填写发放数量',
|
||||||
|
'_lang_start_time_' => '开始时间',
|
||||||
|
'_lang_set_the_start_time_' => '设置开始时间',
|
||||||
|
'_lang_end_time_' => '结束时间',
|
||||||
|
'_lang_set_end_time_' => '设置结束时间',
|
||||||
|
'_lang_rules_of_use_' => '使用规则',
|
||||||
|
'_lang_pls_fit_usage_rules_' => '请填写使用规则',
|
||||||
|
'_lang_coupon_management_' => '优惠券管理',
|
||||||
|
'_lang_type_' => '类型',
|
||||||
|
'_lang_effective_time_' => '有效时间',
|
||||||
|
'_lang_creation_time_' => '创建时间',
|
||||||
|
'_lang_full_subtraction_type_' => '满减类型',
|
||||||
|
'_lang_discount_type_' => '折扣类型',
|
||||||
|
'_lang_edit_' => '修改',
|
||||||
|
'_lang_editorial_promotion_' => '编辑推广活动',
|
||||||
|
'_lang_create_a_promotion_' => '创建推广活动',
|
||||||
|
'_lang_pls_fit_activity_name_' => '请填写活动名称',
|
||||||
|
'_lang_coupon_' => '优惠券',
|
||||||
|
'_lang_pls_s_coupon_' => '请选择优惠券',
|
||||||
|
'_lang_video_des_' => '视频描述',
|
||||||
|
'_lang_activity_content_' => '活动内容',
|
||||||
|
'_lang_pls_en_the_activity_ch_' => '请在此处输入活动内容',
|
||||||
|
'_lang_video_cover_' => '视频封面',
|
||||||
|
'_lang_cloud_spread_' => '云传',
|
||||||
|
'_lang_scan_code_cloud_t_p_' => '扫码·云传送·图片',
|
||||||
|
'_lang_activity_video_' => '活动视频',
|
||||||
|
'_lang_scan_code_cloud_t_v_' => '扫码·云传送·视频',
|
||||||
|
'_lang_photo_gallery_' => '图片库',
|
||||||
|
'_lang_pic_classification_' => '图片分类',
|
||||||
|
'_lang_video_library_' => '视频库',
|
||||||
|
'_lang_video_classification_' => '视频分类',
|
||||||
|
'_lang_online_booking_' => '在线预约',
|
||||||
|
'_lang_create_an_online_reservation_tool_' => '新建在线预约工具',
|
||||||
|
'_lang_reserved_user_' => '预约用户',
|
||||||
|
'_lang_data_loading_' => '数据加载中',
|
||||||
|
'_lang_pls_en_a_service_title_' => '请输入服务标题',
|
||||||
|
'_lang_pls_fit_offer_' => '请填写优惠活动',
|
||||||
|
'_lang_free_reservation_' => '免费预约',
|
||||||
|
'_lang_y_call_' => '您的电话',
|
||||||
|
'_lang_en_mobile_num_' => '输入手机号',
|
||||||
|
'_lang_enprise_num_info_' => '企业号信息',
|
||||||
|
'_lang_account_body_info_' => '账号主体信息',
|
||||||
|
'_lang_pro_info_' => '产品信息',
|
||||||
|
'_lang_pro_introduction_' => '产品简介',
|
||||||
|
'_lang_pls_fit_pro_des_' => '请填写产品简介',
|
||||||
|
'_lang_pro_highlights_' => '产品亮点',
|
||||||
|
'_lang_pls_fit_pro_highlights_' => '请填写产品亮点',
|
||||||
|
'_lang_scope_of_a_' => '适用范围',
|
||||||
|
'_lang_pls_fit_scope_of_a_' => '请填写适用范围',
|
||||||
|
'_lang_com_profile_' => '企业简介',
|
||||||
|
'_lang_pls_fit_com_profile_' => '请填写企业简介',
|
||||||
|
'_lang_other_info_' => '其他信息',
|
||||||
|
'_lang_pls_fill_in_addinfo_' => '请填写其他信息',
|
||||||
|
'_lang_pic_details_' => '图片详情',
|
||||||
|
'_lang_there_in_evaluation_for_this_pro_' => '该商品暂无评价',
|
||||||
|
'_lang_there_in_review_of_the_business_' => '该商家暂无评价',
|
||||||
|
'_lang_consult_' => '咨询',
|
||||||
|
'_lang_connection_' => '联系',
|
||||||
|
'_lang_book_now_' => '立即预约',
|
||||||
|
'_lang_edit_online_appointment_' => '编辑在线预约',
|
||||||
|
'_lang_new_online_reservation_' => '新建在线预约',
|
||||||
|
'_lang_head_display_info_' => '头部展示信息',
|
||||||
|
'_lang_commodity_map_' => '商品大图',
|
||||||
|
'_lang_tsoti_c_e_10mthe_f_is_porj_' => '图片大小不超过10M,格式为PNG、JPG',
|
||||||
|
'_lang_service_title_' => '服务标题',
|
||||||
|
'_lang_pls_fit_s_title_max_20_w_' => '请填写服务标题(最多可设置20字)',
|
||||||
|
'_lang_selling_price_' => '销售价格',
|
||||||
|
'_lang_pls_fit_sales_price_' => '请填写销售价格',
|
||||||
|
'_lang_yuan_' => '元',
|
||||||
|
'_lang_info_that_c_want_to_know_' => '客户想要了解的信息',
|
||||||
|
'_lang_pls_en_the_pro_des_' => '请输入产品简介',
|
||||||
|
'_lang_pls_en_pro_highlights_' => '请输入产品亮点',
|
||||||
|
'_lang_pls_en_the_applicable_scope_' => '请输入适用范围',
|
||||||
|
'_lang_pls_en_com_profile_' => '请输入企业简介',
|
||||||
|
'_lang_pls_en_additional_info_' => '请输入其他信息',
|
||||||
|
'_lang_want_to_let_c_know_the_highlights_' => '想让客户知道的亮点',
|
||||||
|
'_lang_promotional_activity_' => '优惠活动',
|
||||||
|
'_lang_pic_details_' => '图片详情',
|
||||||
|
'_lang_what_info_do_you_want_from_y_c_' => '想要获取客户什么信息',
|
||||||
|
'_lang_telephone_call_' => '电话拨打',
|
||||||
|
'_lang_pls_fit_mobile_verification_code_' => '请填写手机验证码',
|
||||||
|
'_lang_account_binding_' => '账号绑定',
|
||||||
|
'_lang_no_data_available_' => '暂无数据信息',
|
||||||
|
'_lang_s_associated_video_' => '选择关联视频',
|
||||||
|
'_lang_tool_name_' => '工具名称',
|
||||||
|
'_lang_load_more_' => '加载更多',
|
||||||
|
'_lang_pls_be_patient_while_p_' => '处理中,请您耐心等待',
|
||||||
|
'_lang_pic_library_' => '图片素材库',
|
||||||
|
'_lang_browse_gallery_' => '浏览图库',
|
||||||
|
'_lang_pls_s_a_pic_category_' => '请选择图片分类',
|
||||||
|
'_lang_pls_en_a_pic_category_name_' => '请输入图片分类名称',
|
||||||
|
'_lang_pack_up_' => '收起',
|
||||||
|
'_lang_posture_library_' => '姿势库',
|
||||||
|
'_lang_the_c_of_the_c_shown_is_for_r_only_' => '展示的文案内容仅作为参考',
|
||||||
|
'_lang_pls_fit_account_num_num_' => '请填写账号编号(数字)',
|
||||||
|
'_lang_pls_s_platform_' => '请选择平台',
|
||||||
|
'_lang_pls_s_an_industry_category_' => '请选择行业类目',
|
||||||
|
'_lang_inquire_' => '查询',
|
||||||
|
'_lang_data_auth_' => '数据授权',
|
||||||
|
'_lang_c_the_a_num_and_c_to_scan_the_code_' => '确认账号,点击扫码',
|
||||||
|
'_lang_the_o_f_pls_c_the_p_box_and_try_again_' => '操作失败,请关闭弹框重试',
|
||||||
|
'_lang_data_auth_normal_' => '数据授权正常',
|
||||||
|
'_lang_add_rules_k_matching_' => '添加规则(关键词匹配)',
|
||||||
|
'_lang_rule_name_text_range_1~10_c_' => '规则名称(文字范围:1~10个字)',
|
||||||
|
'_lang_pls_en_a_rule_name_' => '请输入规则名称',
|
||||||
|
'_lang_kw_text_range_1~15_w_' => '关键词(文字范围:1~15个字)',
|
||||||
|
'_lang_pls_en_k_' => '请输入关键词',
|
||||||
|
'_lang_m_kw_multiple_kw_one_kw_per_line_' => '多个关键词 (多个关键词每行一个关键词)',
|
||||||
|
'_lang_k_one_k_per_line_' => '关键词每行一个关键词',
|
||||||
|
'_lang_reply_content_text_range_1~300_w_' => '回复内容(文字范围:1~300个字)',
|
||||||
|
'_lang_pls_en_the_reply_content_' => '请输入回复内容',
|
||||||
|
'_lang_account_auth_' => '账号授权',
|
||||||
|
'_lang_qr_code_is_invalid_[e2]_c_to_obtain_a_' => '二维码失效[E2],点击重新获取',
|
||||||
|
'_lang_be_being_sent_' => '发送中',
|
||||||
|
'_lang_resend_' => '重新发送',
|
||||||
|
'_lang_account_v_auth_suc_' => '账号(验证)授权成功',
|
||||||
|
'_lang_private_message_auth_' => '私信授权',
|
||||||
|
'_lang_intelligent_customer_service_' => '智能客服',
|
||||||
|
'_lang_account_auth_normal_' => '账号授权正常',
|
||||||
|
'_lang_pls_en_w_y_w_to_reply_to_' => '请输入需要回复的内容',
|
||||||
|
'_lang_t_f_is_not_a_for_this_account_' => '此账号暂不可使用此功能',
|
||||||
|
'_lang_are_you_sure_about_the_d_rule_' => '确定删除规则吗?',
|
||||||
|
'_lang_universal_reply_' => '通用回复',
|
||||||
|
'_lang_text_setting_' => '文本设置',
|
||||||
|
'_lang_pic_setting_' => '图片设置',
|
||||||
|
'_lang_map_storage_' => '图库',
|
||||||
|
'_lang_rule_name_' => '规则名称',
|
||||||
|
'_lang_kw_line_by_line_' => '关键词一行一个',
|
||||||
|
'_lang_digital_man_' => '数字人',
|
||||||
|
'_lang_dubbing_library_' => '配音库',
|
||||||
|
'_lang_all_' => '全部',
|
||||||
|
'_lang_be_common_' => '通用',
|
||||||
|
'_lang_customer_service_' => '客服',
|
||||||
|
'_lang_read_' => '阅读',
|
||||||
|
'_lang_childs_voice_' => '童声',
|
||||||
|
'_lang_dialect_' => '方言',
|
||||||
|
'_lang_live_broadcast_' => '直播',
|
||||||
|
'_lang_news_' => '新闻',
|
||||||
|
'_lang_dialogue_' => '对话',
|
||||||
|
'_lang_full_dubbing_' => '全部配音',
|
||||||
|
'_lang_create_script_library_' => '创建脚本库',
|
||||||
|
'_lang_pls_en_a_script_l_name_' => '请输入脚本库名称',
|
||||||
|
'_lang_dubbing_script_l_' => '配音脚本库',
|
||||||
|
'_lang_are_y_sure_to_d_the_d_script_l_' => '确定删除配音脚本库吗',
|
||||||
|
'_lang_dubbing_copy_' => '配音文案',
|
||||||
|
'_lang_speech_sp_allocation_' => '语速配置',
|
||||||
|
'_lang_sp_test_' => '语速试听',
|
||||||
|
'_lang_slow_sp_3_' => '慢速3',
|
||||||
|
'_lang_slow_sp_2_' => '慢速2',
|
||||||
|
'_lang_slow_sp_1_' => '慢速1',
|
||||||
|
'_lang_quick_1_' => '快速1',
|
||||||
|
'_lang_fast_2_' => '快速2',
|
||||||
|
'_lang_fast_3_' => '快速3',
|
||||||
|
'_lang_virtual_im_' => '虚拟形象',
|
||||||
|
'_lang_virtual_character_' => '虚拟形象人物',
|
||||||
|
'_lang_the_im_is_c_upda_and_open_' => '形象持续更新开放',
|
||||||
|
'_lang_are_yst_set_this_im_' => '确定设置此形象吗',
|
||||||
|
'_lang_are_yst_this_im_' => '确定取消此形象吗',
|
||||||
|
'_lang_background_music_' => '背景音乐',
|
||||||
|
'_lang_upload_music_' => '上传音乐',
|
||||||
|
'_lang_audition_' => '试听',
|
||||||
|
'_lang_upload_successfully_' => '上传成功',
|
||||||
|
'_lang_are_you_sure_to_d_it_' => '确定删除吗',
|
||||||
|
'_lang_video_works_' => '视频作品',
|
||||||
|
'_lang_pls_s_publish_account_' => '请选择发布账户',
|
||||||
|
'_lang_anomalous_work_' => '异常作品',
|
||||||
|
'_lang_the_s_d_a_works_in_the_last_30_days_' => '系统展示近30天内的异常作品',
|
||||||
|
'_lang_failed_to_publish_the_s_u_' => '系统升级发布失败',
|
||||||
|
'_lang_total_works_' => '作品总数',
|
||||||
|
'_lang_total_plays_' => '播放总数',
|
||||||
|
'_lang_total_likes_' => '点赞总数',
|
||||||
|
'_lang_total_comments_' => '评论总数',
|
||||||
|
'_lang_num_of_works_' => '作品数',
|
||||||
|
'_lang_num_of_comments_' => '评论数',
|
||||||
|
'_lang_last_30_days_work_data_display_' => '最近30天作品数据展示',
|
||||||
|
'_lang_platform_account_' => '平台账号',
|
||||||
|
'_lang_publish_configuration_' => '发布配置',
|
||||||
|
'_lang_task_name_' => '任务名称',
|
||||||
|
'_lang_en_the_release_task_name_' => '请填写发布任务名称',
|
||||||
|
'_lang_publishing_platform_' => '发布平台',
|
||||||
|
'_lang_release_an_account_' => '发布账号',
|
||||||
|
'_lang_no_sed_or_authorized_account_' => '暂无选择或无授权账号',
|
||||||
|
'_lang_pls_s_a_material_template_' => '请选择素材模板',
|
||||||
|
'_lang_ad_s_o_not_sed_as_the_d_settings_' => '高级设置(可不选,不选为默认设置)',
|
||||||
|
'_lang_pls_s_advanced_settings_' => '请选择高级设置',
|
||||||
|
'_lang_release_date_' => '发布日期',
|
||||||
|
'_lang_set_a_release_date_' => '设置发布日期',
|
||||||
|
'_lang_release_time_' => '发布时间',
|
||||||
|
'_lang_set_time_range_' => '设置时间段',
|
||||||
|
'_lang_specified_point_in_time_' => '指定时间点',
|
||||||
|
'_lang_total_release_' => '发布总量',
|
||||||
|
'_lang_daily_release_' => '每日发布',
|
||||||
|
'_lang_pls_fit_num_of_daily_posts_' => '请填写每日发布数量',
|
||||||
|
'_lang_submit_video_task_' => '提交视频任务',
|
||||||
|
'_lang_you_are_not_bound_to_the_wechat_public_account_' => '您暂未绑定微信公众号',
|
||||||
|
'_lang_click_bind_experience_now!_' => '点击立即绑定体验吧!',
|
||||||
|
'_lang_pls_s_screen_type_horizontal_vertical_' => '请选择屏幕类型(横/竖)',
|
||||||
|
'_lang_landscape_' => '横屏',
|
||||||
|
'_lang_portrait_screen_' => '竖屏',
|
||||||
|
'_lang_pls_s_a_material_type_' => '请选择素材类型',
|
||||||
|
'_lang_pic_' => '图片',
|
||||||
|
'_lang_video_' => '视频',
|
||||||
|
'_lang_visual_mixing_' => '图视混合',
|
||||||
|
'_lang_pic_material_' => '图片素材',
|
||||||
|
'_lang_video_material_' => '视频素材',
|
||||||
|
'_lang_preview_' => '预览',
|
||||||
|
'_lang_video_preview_' => '视频预览',
|
||||||
|
'_lang_preview_video_proion_progress_' => '预览视频制作进度',
|
||||||
|
'_lang_case_video_proion_progress_' => '案例视频制作进度',
|
||||||
|
'_lang_short_video_extension_list_' => '短视频拓客列表',
|
||||||
|
'_lang_k_setting_' => '关键词设置',
|
||||||
|
'_lang_k_' => '关键词',
|
||||||
|
'_lang_to_be_processed_' => '待处理',
|
||||||
|
'_lang_processed_' => '已处理',
|
||||||
|
'_lang_search_' => '搜索',
|
||||||
|
'_lang_short_video_num_' => '短视频号',
|
||||||
|
'_lang_avatar_' => '头像',
|
||||||
|
'_lang_nickname_' => '昵称',
|
||||||
|
'_lang_consultation_content_' => '咨询内容',
|
||||||
|
'_lang_consultation_time_' => '咨询时间',
|
||||||
|
'_lang_push_time_' => '推送时间',
|
||||||
|
'_lang_scan_the_code_for_private_messages_' => '扫码私信',
|
||||||
|
'_lang_operating_state_' => '操作状态',
|
||||||
|
'_lang_view_video_' => '查看视频',
|
||||||
|
'_lang_reason_for_rejection_' => '拒审原因',
|
||||||
|
'_lang_k_text_setting_range_2_10_' => '关键词文字设置范围(2~10个)',
|
||||||
|
'_lang_pls_fill_in_it_c_and_cannot_be_c_after_a_' => '请认真填写提交审核通过后不可更改',
|
||||||
|
'_lang_b_music_setting_' => '背景音乐设置',
|
||||||
|
'_lang_search_music_' => '搜索音乐',
|
||||||
|
'_lang_pls_s_a_video_category_' => '请选择视频分类',
|
||||||
|
'_lang_add_sort_' => '添加分类',
|
||||||
|
'_lang_edit_class_name_' => '编辑类名',
|
||||||
|
'_lang_clear_pic_' => '清空图片',
|
||||||
|
'_lang_pls_en_the_name_of_the_class_you_want_to_add_' => '请输入需要添加的类名',
|
||||||
|
'_lang_add_class_' => '添加类',
|
||||||
|
'_lang_change_pw_' => '修改密码',
|
||||||
|
'_lang_current_pw_' => '当前密码',
|
||||||
|
'_lang_pls_en_y_current_pw_' => '请输入当前密码',
|
||||||
|
'_lang_new_pw_' => '新的密码',
|
||||||
|
'_lang_pls_en_a_new_pw_' => '请输入新的密码',
|
||||||
|
'_lang_confirm_pw_' => '确认密码',
|
||||||
|
'_lang_k_mining_operation_' => '关键词挖掘操作',
|
||||||
|
'_lang_k_num_' => '关键词数',
|
||||||
|
'_lang_already_added_' => '已经添加',
|
||||||
|
'_lang_data_presentation_' => '数据展示',
|
||||||
|
'_lang_in_pro_o_the_k_setting_cannot_be_p_' => '产品优化中,暂不能进行关键词设置',
|
||||||
|
'_lang_clear_historical_ranking_data_' => '清除历史排名数据',
|
||||||
|
'_lang_ranking_data_is_being_updated_' => '排名数据更新中',
|
||||||
|
'_lang_start_partition_' => '开始分割',
|
||||||
|
'_lang_remove_designation_' => '去除指定词',
|
||||||
|
'_lang_lexical_extension_tool_' => '拓词工具',
|
||||||
|
'_lang_combination_tool_' => '组合工具',
|
||||||
|
'_lang_combinatorial_term_' => '组合项',
|
||||||
|
'_lang_query_' => '疑问',
|
||||||
|
'_lang_subject_term_' => '主词',
|
||||||
|
'_lang_suffix_' => '尾词',
|
||||||
|
'_lang_middle_part_' => '中部',
|
||||||
|
'_lang_tail_' => '尾部',
|
||||||
|
'_lang_set_position_' => '设置位置',
|
||||||
|
'_lang_video_copy_' => '视频文案',
|
||||||
|
'_lang_cover_text_' => '封面文字',
|
||||||
|
'_lang_acknowledge_generation_' => '确认生成',
|
||||||
|
'_lang_video_library_' => '视频素材库',
|
||||||
|
'_lang_browse_video_library_' => '浏览视频库',
|
||||||
|
'_lang_public_music_' => '公共音乐',
|
||||||
|
'_lang_common_classification_' => '常用分类',
|
||||||
|
'_lang_pls_s_category_' => '请选择分类',
|
||||||
|
'_lang_cover_template_' => '封面模板',
|
||||||
|
'_lang_pic_cropping_' => '图片裁剪',
|
||||||
|
'_lang_capture_the_width_of_the_graph_' => '截取图宽',
|
||||||
|
'_lang_intercept_the_graph_height_' => '截取图高',
|
||||||
|
'_lang_creative_tool_' => '创意工具',
|
||||||
|
'_lang_s_area_' => '选择地区',
|
||||||
|
'_lang_hot_topic_' => '热门话题',
|
||||||
|
'_lang_recommendation_word_tool_' => '推荐词工具',
|
||||||
|
'_lang_matters_needing_attention_' => '注意事项',
|
||||||
|
'_lang_data_' => '数据',
|
||||||
|
'_lang_shake_the_code_' => '抖盈神码',
|
||||||
|
'_lang_card_icon_' => '卡片图标',
|
||||||
|
'_lang_pls_fit_card_title_' => '请填写卡片标题',
|
||||||
|
'_lang_pls_fit_card_des_' => '请填写卡片描述',
|
||||||
|
'_lang_pls_fit_card_title_' => '请填写名片标题',
|
||||||
|
'_lang_pls_fit_card_des_' => '请填写名片描述',
|
||||||
|
'_lang_press_and_hold_the_qr_code_to_identify_' => '长按二维码识别',
|
||||||
|
'_lang_card_setup_' => '卡片设置',
|
||||||
|
'_lang_icon_library_' => '图标库',
|
||||||
|
'_lang_card_title_' => '卡片标题',
|
||||||
|
'_lang_you_can_set_a_maximum_of_20_characters_' => '最多可设置20字',
|
||||||
|
'_lang_card_des_' => '卡片描述',
|
||||||
|
'_lang_business_card_setup_' => '名片设置',
|
||||||
|
'_lang_business_card_avatar_' => '名片头像',
|
||||||
|
'_lang_business_card_name_' => '名片名称',
|
||||||
|
'_lang_business_card_des_' => '名片描述',
|
||||||
|
'_lang_qr_code_setting_' => '二维码设置',
|
||||||
|
'_lang_up_to_10_settings_can_be_u_' => '最多可上传设置10张',
|
||||||
|
'_lang_immediate_generation_' => '立即生成',
|
||||||
|
'_lang_landing_page_preview_' => '落地页预览',
|
||||||
|
'_lang_scan_the_phone_to_p_the_landing_page_' => '手机扫一扫预览落地页',
|
||||||
|
'_lang_copy_link_' => '复制链接',
|
||||||
|
'_lang_private_domain_delivery_' => '私域投放',
|
||||||
|
'_lang_data_analysis_' => '数据分析',
|
||||||
|
'_lang_drop_clue_' => '投放线索',
|
||||||
|
'_lang_s_' => '选择',
|
||||||
|
'_lang_item_id_' => '项目ID',
|
||||||
|
'_lang_advertiser_id_' => '广告主ID',
|
||||||
|
'_lang_budget_type_' => '预算类型',
|
||||||
|
'_lang_budget_' => '预算',
|
||||||
|
'_lang_bid_' => '出价',
|
||||||
|
'_lang_base_material_' => '基础素材',
|
||||||
|
'_lang_title_' => '标题',
|
||||||
|
'_lang_advertising_settings_' => '广告设置',
|
||||||
|
'_lang_source_' => '来源',
|
||||||
|
'_lang_brand_name_' => '品牌名称',
|
||||||
|
'_lang_massive_flow_' => '巨量投流',
|
||||||
|
'_lang_item_list_' => '项目列表',
|
||||||
|
'_lang_plan_list_' => '计划列表',
|
||||||
|
'_lang_create_a_plan_' => '创建计划',
|
||||||
|
'_lang_project_name_' => '计划名称',
|
||||||
|
'_lang_launch_an_account_' => '投放账号',
|
||||||
|
'_lang_pls_s_an_account_' => '请选择账号',
|
||||||
|
'_lang_material_list_' => '素材列表',
|
||||||
|
'_lang_s_material_' => '选择素材',
|
||||||
|
'_lang_throw_title_' => '投放标题',
|
||||||
|
'_lang_pls_en_the_launch_title_' => '请输入投放标题',
|
||||||
|
'_lang_add_title_' => '增加标题',
|
||||||
|
'_lang_d_title_' => '删除标题',
|
||||||
|
'_lang_daily_budget_' => '日预算',
|
||||||
|
'_lang_general_budget_' => '总预算',
|
||||||
|
'_lang_budgeted_amount_' => '预算金额',
|
||||||
|
'_lang_target_conversion_bid_' => '目标转化出价',
|
||||||
|
'_lang_click/show_bid_' => '点击/展示出价',
|
||||||
|
'_lang_deeply_optimized_bid_' => '深度优化出价',
|
||||||
|
'_lang_create_a_stream_plan_' => '创建投流计划',
|
||||||
|
'_lang_manual_drop_' => '手动投放',
|
||||||
|
'_lang_automatic_delivery_' => '自动投放',
|
||||||
|
'_lang_short_videos/pics_' => '短视频/图片',
|
||||||
|
'_lang_channel_advertising_' => '通投广告',
|
||||||
|
'_lang_search_advertising_' => '搜索广告',
|
||||||
|
'_lang_douyin_homepage_' => '抖音主页',
|
||||||
|
'_lang_landing_page_' => '落地页',
|
||||||
|
'_lang_conventional_delivery_' => '常规投放',
|
||||||
|
'_lang_periodic_stability_' => '周期稳投',
|
||||||
|
'_lang_long-term_release_from_today_' => '从今天起长期投放',
|
||||||
|
'_lang_set_the_start_and_end_dates_' => '设置开始和结束日期',
|
||||||
|
'_lang_batch_operation_' => '批量操作',
|
||||||
|
'_lang_periodic_system_cleanup_' => '系统定时清理',
|
||||||
|
'_lang_pls_download_the_video_in_time_' => '视频请及时下载',
|
||||||
|
'_lang_you_also_have..' => '您还有',
|
||||||
|
'_lang_the_video_has_not_been_d_' => '个视频暂未下载',
|
||||||
|
'_lang_interesting_video_temp_name_' => '趣视频模板名称',
|
||||||
|
'_lang_set_parameters_1_' => '设置参数1',
|
||||||
|
'_lang_set_parameters_2_' => '设置参数2',
|
||||||
|
'_lang_interesting_video_use_steps_' => '趣视频使用步骤',
|
||||||
|
'_lang_first_step_' => '第一步',
|
||||||
|
'_lang_fun_template_' => '趣模板',
|
||||||
|
'_lang_s_a_template_to_make_a_video_' => '选择模板制作视频',
|
||||||
|
'_lang_massive_template_' => '海量模板',
|
||||||
|
'_lang_the_second_step_' => '第二步',
|
||||||
|
'_lang_task_queue_' => '任务队列',
|
||||||
|
'_lang_video_creation_progress_view_' => '视频创作进度查看',
|
||||||
|
'_lang_proion_schedule_' => '制作进度',
|
||||||
|
'_lang_the_third_step_' => '第三步',
|
||||||
|
'_lang_creative_video_download_' => '创作视频下载',
|
||||||
|
'_lang_video_download_' => '视频下载',
|
||||||
|
'_lang_account_configuration_' => '账户配置',
|
||||||
|
'_lang_authorized_account_' => '授权账户',
|
||||||
|
'_lang_intelligent_writing_' => '智能写作',
|
||||||
|
'_lang_remarks_name_' => '备注名称',
|
||||||
|
'_lang_key-key_' => '密钥-Key',
|
||||||
|
'_lang_account_status_' => '账户状态',
|
||||||
|
'_lang_auth_time_' => '授权时间',
|
||||||
|
'_lang_pls_en_a_note_name_' => '请输入备注名称',
|
||||||
|
'_lang_additive_writing_' => '添加写作',
|
||||||
|
'_lang_library_ci_' => '文库词',
|
||||||
|
'_lang_copy_count_' => '文案数',
|
||||||
|
'_lang_writing_state_' => '写作状态',
|
||||||
|
'_lang_account_' => '账户',
|
||||||
|
'_lang_library_setup_' => '文库设置',
|
||||||
|
'_lang_keep_writing_' => '继续写作',
|
||||||
|
'_lang_view_copy_' => '查看文案',
|
||||||
|
'_lang_writing_deletion_' => '写作删除',
|
||||||
|
'_lang_copywriting_' => '写作文案数',
|
||||||
|
'_lang_copywriting_content_' => '文案内容',
|
||||||
|
'_lang_writing_list_' => '写作列表',
|
||||||
|
'_lang_pro_management_' => '产品管理',
|
||||||
|
'_lang_id_' => '编号',
|
||||||
|
'_lang_pro_name_' => '产品名称',
|
||||||
|
'_lang_affiliated_project_' => '所属项目',
|
||||||
|
'_lang_copywriting_' => '文案',
|
||||||
|
'_lang_finished_pro_' => '成品',
|
||||||
|
'_lang_add_kw_' => '添加关键词',
|
||||||
|
'_lang_add_title_' => '添加标题',
|
||||||
|
'_lang_add_video_' => '添加视频',
|
||||||
|
'_lang_add_pic_' => '添加图片',
|
||||||
|
'_lang_add_copy_' => '添加文案',
|
||||||
|
'_lang_editing_pro_' => '编辑产品',
|
||||||
|
'_lang_d_pro_' => '删除产品',
|
||||||
|
'_lang_additive_pro_' => '添加产品',
|
||||||
|
'_lang_pls_en_the_pro_name_' => '请输入产品名称',
|
||||||
|
'_lang_pls_s_a_project_' => '请选择所属项目',
|
||||||
|
'_lang_project_management_' => '项目管理',
|
||||||
|
'_lang_project_name_' => '项目名称',
|
||||||
|
'_lang_num_of_pros_' => '产品数',
|
||||||
|
'_lang_management_operation_' => '管理操作',
|
||||||
|
'_lang_view_pros_' => '查看产品',
|
||||||
|
'_lang_edit_item_' => '编辑项目',
|
||||||
|
'_lang_d_item_' => '删除项目',
|
||||||
|
'_lang_add_item_' => '添加项目',
|
||||||
|
'_lang_pls_en_a_project_name_' => '请输入项目名称',
|
||||||
|
'_lang_account_num_' => '账号',
|
||||||
|
'_lang_template_' => '模板',
|
||||||
|
'_lang_material_' => '素材',
|
||||||
|
'_lang_disposition_' => '配置',
|
||||||
|
'_lang_basic_data_' => '基本资料',
|
||||||
|
'_lang_pls_fit_task_name_' => '请填写任务名称',
|
||||||
|
'_lang_com_name_' => '公司名称',
|
||||||
|
'_lang_contact_num_' => '联系电话',
|
||||||
|
'_lang_creation_type_' => '创作类型',
|
||||||
|
'_lang_normal_release_' => '正常发布',
|
||||||
|
'_lang_work_preview_' => '作品预览',
|
||||||
|
'_lang_source_sound_' => '素材原音',
|
||||||
|
'_lang_unsound_' => '消除原音',
|
||||||
|
'_lang_preserve_the_original_sound_' => '保留原音',
|
||||||
|
'_lang_batch_timing_' => '批量定时',
|
||||||
|
'_lang_single_real-time_' => '单条实时',
|
||||||
|
'_lang_topic_is_later_' => '话题在后',
|
||||||
|
'_lang_the_topic_is_first_' => '话题在前',
|
||||||
|
'_lang_random_topic_' => '话题随机',
|
||||||
|
'_lang_d_tone_mounting_' => 'D音挂载',
|
||||||
|
'_lang_poi_automatic_matching_' => 'POI自动匹配',
|
||||||
|
'_lang_add_tag_' => '添加标签',
|
||||||
|
'_lang_poi_address_' => 'POI地址',
|
||||||
|
'_lang_small_program_' => '小程序',
|
||||||
|
'_lang_little_yellow_cart_' => '小黄车',
|
||||||
|
'_lang_s_the_applet_ywt_add_' => '请选择需要添加的小程序',
|
||||||
|
'_lang_pls_s_the_item_ywt_mount_' => '请选择需要挂载的商品',
|
||||||
|
'_lang_k_manual_mounting_' => 'K手挂载',
|
||||||
|
'_lang_graphic_setup_' => '图文设置',
|
||||||
|
'_lang_graphic_music_' => '图文音乐',
|
||||||
|
'_lang_im_usage_' => '图片使用数',
|
||||||
|
'_lang_main_title_of_work_' => '作品主标题',
|
||||||
|
'_lang_music_library_' => '音乐库',
|
||||||
|
'_lang_background_pic_' => '背景图片',
|
||||||
|
'_lang_material_data_' => '素材资料',
|
||||||
|
'_lang_intelligent_library_' => '智能文库',
|
||||||
|
'_lang_voice-over_audio_' => '口播音频',
|
||||||
|
'_lang_pls_s_smart_library_' => '请选择智能文库',
|
||||||
|
'_lang_pls_s_audio_' => '请选择口播音频',
|
||||||
|
'_lang_material_setting_' => '素材设置',
|
||||||
|
'_lang_video_duration_starting_' => '视频时长(起)',
|
||||||
|
'_lang_video_duration_end_' => '视频时长(止)',
|
||||||
|
'_lang_k_hand_graphic_music_library_' => 'K手图文音乐库',
|
||||||
|
'_lang_task_management_' => '任务管理',
|
||||||
|
'_lang_create_task_' => '创建任务',
|
||||||
|
'_lang_cleaning_tool_' => '清理工具',
|
||||||
|
'_lang_pls_fit_task_num_num_' => '请填写任务编号(数字)',
|
||||||
|
'_lang_pls_s_publication_status_' => '请选择发布状态',
|
||||||
|
'_lang_in_release_' => '发布中',
|
||||||
|
'_lang_timed_execution_' => '定时执行',
|
||||||
|
'_lang_release_complete_' => '发布完成',
|
||||||
|
'_lang_task_execution_details_' => '任务执行详情',
|
||||||
|
'_lang_collection_management_' => '合集管理',
|
||||||
|
'_lang_pls_s_an_authorized_account_' => '请选择授权账号',
|
||||||
|
'_lang_update_collection_' => '更新合集',
|
||||||
|
'_lang_transition_effect_' => '转场特效',
|
||||||
|
'_lang_my_template_' => '我的模板',
|
||||||
|
'_lang_common_template_' => '公共模板',
|
||||||
|
'_lang_pls_en_a_category_name_' => '请输入分类名称',
|
||||||
|
'_lang_task_cleanup_tool_' => '任务清理工具',
|
||||||
|
'_lang_pls_s_the_num_of_displays_per_page_' => '请选择每页展示条数',
|
||||||
|
'_lang_pls_s_a_start_date_' => '请选择起始日期',
|
||||||
|
'_lang_pls_s_a_deadline_' => '请选择截止日期',
|
||||||
|
'_lang_session_management_' => '会话管理',
|
||||||
|
'_lang_lead_total_' => '线索总计',
|
||||||
|
'_lang_real-time_update_' => '实时更新',
|
||||||
|
'_lang_interactive_consultation_' => '互动咨询',
|
||||||
|
'_lang_a_private_inquiry_' => '私信询盘',
|
||||||
|
'_lang_monitor_account_' => '监控账号',
|
||||||
|
'_lang_pls_s_a_clue_type_' => '请选择线索类型',
|
||||||
|
'_lang_whether_contact_info_is_included_' => '是否含联系方式',
|
||||||
|
'_lang_contain_contact_info_' => '含有联系方式',
|
||||||
|
'_lang_do_not_contain_contact_info_' => '不含联系方式',
|
||||||
|
'_lang_pls_s_the_info_type_' => '请选择信息类型',
|
||||||
|
'_lang_comment_info_' => '评论信息',
|
||||||
|
'_lang_private_message_' => '私信信息',
|
||||||
|
'_lang_open_the_private_message_dialog_box_' => '打开私信对话框',
|
||||||
|
'_lang_call_home_smart_phone_' => '拨打主页智能电话',
|
||||||
|
'_lang_s_authorized_account_' => '选择授权账号',
|
||||||
|
'_lang_monitoring_kw_' => '监控关键词',
|
||||||
|
'_lang_create_kw_' => '创建关键词',
|
||||||
|
'_lang_clue_list_' => '线索列表',
|
||||||
|
'_lang_can_set_' => '可设置',
|
||||||
|
'_lang_audit_status_' => '审核状态',
|
||||||
|
'_lang_enable_or_not_' => '是否启用',
|
||||||
|
'_lang_video_source_' => '视频来源',
|
||||||
|
'_lang_scan_the_code_to_see_the_work_' => '扫码查看作品',
|
||||||
|
'_lang_pls_en_y_reply_info_' => '请您输入回复信息',
|
||||||
|
'_lang_precise_cue_' => '精准线索',
|
||||||
|
'_lang_industry_monitoring_' => '行业监控',
|
||||||
|
'_lang_trade_word_setting_' => '行业词设置',
|
||||||
|
'_lang_s_trade_w_' => '选择行业词',
|
||||||
|
'_lang_push_type_' => '推送类型',
|
||||||
|
'_lang_pls_s_push_type_' => '请选择推送类型',
|
||||||
|
'_lang_comprehensive_query_' => '综合查询',
|
||||||
|
'_lang_maximum_likes_' => '最多点赞',
|
||||||
|
'_lang_latest_release_' => '最新发布',
|
||||||
|
'_lang_push_date_' => '推送日期',
|
||||||
|
'_lang_pls_s_the_push_date_' => '请选择推送日期',
|
||||||
|
'_lang_unlimited_time_' => '不限时间',
|
||||||
|
'_lang_the_last_day_' => '最近一天',
|
||||||
|
'_lang_last_week_' => '最近一周',
|
||||||
|
'_lang_last_half_year_' => '最近半年',
|
||||||
|
'_lang_minimum_num_of_preferences_' => '最低点赞数',
|
||||||
|
'_lang_pls_fit_lowest_num_of_likes_' => '请填写最低点赞数',
|
||||||
|
'_lang_minimum_comment_count_' => '最低评论数',
|
||||||
|
'_lang_pls_fit_minimum_num_of_comments_' => '请填写最低评论数',
|
||||||
|
'_lang_title_inclusion_word_' => '标题包含词',
|
||||||
|
'_lang_add_trade_w_' => '添加行业词',
|
||||||
|
'_lang_editorial_terms_' => '编辑行业词',
|
||||||
|
'_lang_new_lens_' => '新增镜头',
|
||||||
|
'_lang_lens_name_' => '镜头名称',
|
||||||
|
'_lang_lens_position_' => '镜头位置',
|
||||||
|
'_lang_confirm_new_addition_' => '确认新增',
|
||||||
|
'_lang_camera_transition_' => '镜头转场',
|
||||||
|
'_lang_writing_prompt_' => '写作提示语',
|
||||||
|
'_lang_des_title_' => '描述(标题)',
|
||||||
|
'_lang_key_w_topic_' => '关键词(话题)',
|
||||||
|
'_lang_template_content_' => '模板内容',
|
||||||
|
'_lang_shot_editing_' => '镜头剪辑',
|
||||||
|
'_lang_shot_material_' => '镜头素材',
|
||||||
|
'_lang_remove_start_time_seconds_' => '去除开头时长(秒)',
|
||||||
|
'_lang_removal_end_time_seconds_' => '去除结尾时长(秒)',
|
||||||
|
'_lang_clip_duration_seconds_' => '镜头剪辑时长(秒)',
|
||||||
|
'_lang_num_of_shot_clips_' => '镜头剪辑个数',
|
||||||
|
'_lang_shot_out_of_sequence_' => '镜头乱序',
|
||||||
|
'_lang_sp_change_off_' => '变速已关闭',
|
||||||
|
'_lang_lens_shift_' => '镜头变速',
|
||||||
|
'_lang_shift_time_' => '变速时间',
|
||||||
|
'_lang_remove_lens_' => '移除镜头',
|
||||||
|
'_lang_save_shot_' => '保存镜头',
|
||||||
|
'_lang_filter_setting_' => '滤镜设置',
|
||||||
|
'_lang_filter_style_' => '滤镜样式',
|
||||||
|
'_lang_contrast_' => '对比度',
|
||||||
|
'_lang_luminance_' => '亮度',
|
||||||
|
'_lang_saturation_' => '饱和度',
|
||||||
|
'_lang_temperature_' => '色温',
|
||||||
|
'_lang_filter_time_' => '滤镜时间',
|
||||||
|
'_lang_data_setting_' => '资料设置',
|
||||||
|
'_lang_de_con_serial_num_' => '去常规序列号',
|
||||||
|
'_lang_out_of_order_' => '乱序',
|
||||||
|
'_lang_duplicate_removal_' => '去重',
|
||||||
|
'_lang_contraband_' => '违禁',
|
||||||
|
'_lang_slice_material_' => '切片素材',
|
||||||
|
'_lang_content_location_' => '内容位置',
|
||||||
|
'_lang_smart_slicing_' => '智能切片',
|
||||||
|
'_lang_add_location_' => '添加位置',
|
||||||
|
'_lang_other_p_are_not_synchronized_' => '不同步其他平台',
|
||||||
|
'_lang_sync_with_other_platforms_' => '同步其他平台',
|
||||||
|
'_lang_template_name_' => '模板名称',
|
||||||
|
'_lang_usage_times_' => '使用次数',
|
||||||
|
'_lang_material_type_' => '素材类型',
|
||||||
|
'_lang_screen_type_' => '屏幕类型',
|
||||||
|
'_lang_edit_material_template_' => '编辑素材模板',
|
||||||
|
'_lang_num_of_account_num_' => '账号数',
|
||||||
|
'_lang_template_num_' => '模板数',
|
||||||
|
'_lang_daily_posts_' => '每日发布数',
|
||||||
|
'_lang_release_schedule_' => '发布进度',
|
||||||
|
'_lang_success_failure_' => '成功/失败',
|
||||||
|
'_lang_time_period_' => '时间段',
|
||||||
|
'_lang_add_time_' => '添加时间',
|
||||||
|
'_lang_video_title_' => '视频标题',
|
||||||
|
'_lang_num_of_likes_' => '点赞数',
|
||||||
|
'_lang_num_of_plays_' => '播放数',
|
||||||
|
'_lang_platform_' => '平台',
|
||||||
|
'_lang_cover_' => '封面',
|
||||||
|
'_lang_bind_to_wechat_' => '绑定微信',
|
||||||
|
'_lang_no_comments_yet_' => '暂无评论',
|
||||||
|
'_lang_comment_content_' => '评论内容',
|
||||||
|
'_lang_num_of_comment_replies_' => '评论回复数',
|
||||||
|
'_lang_comment_time_' => '评论时间',
|
||||||
|
'_lang_crinkle_' => '抖转微',
|
||||||
|
'_lang_wechat_nickname_' => '微信昵称',
|
||||||
|
'_lang_wechat_qr_code_' => '微信二维码',
|
||||||
|
'_lang_wechat_qr_code_info_' => '微信二维码资料',
|
||||||
|
'_lang_template_rule_' => '模板规则',
|
||||||
|
'_lang_remove_label_' => '删除标签',
|
||||||
|
'_lang_industry_label_' => '行业标签',
|
||||||
|
'_lang_heading_rule_' => '标题规则',
|
||||||
|
'_lang_des_content_' => '描述内容',
|
||||||
|
'_lang_title_rule_setting_' => '标题规则设置',
|
||||||
|
'_lang_title_setting_' => '标题设置',
|
||||||
|
'_lang_label_format_' => '标签格式',
|
||||||
|
'_lang_do_not_add_topic_' => '不添加话题',
|
||||||
|
'_lang_topic_setting_' => '话题设置',
|
||||||
|
'_lang_num_of_bound_templates_' => '绑定模板数',
|
||||||
|
'_lang_polysyllabic_settings_' => '多音字设置',
|
||||||
|
'_lang_slice_item_' => '切片项目',
|
||||||
|
'_lang_slice_template_' => '切片模板',
|
||||||
|
'_lang_delivery_plan_' => '投放计划',
|
||||||
|
'_lang_plan_management_' => '计划管理',
|
||||||
|
'_lang_data_classification_' => '资料分类',
|
||||||
|
'_lang_common_area_' => '常用地区',
|
||||||
|
'_lang_common_topic_' => '常用话题',
|
||||||
|
'_lang_module_overview_' => '模块概述',
|
||||||
|
'_lang_operational_data_' => '运营数据',
|
||||||
|
'_lang_creative_inspiration_' => '创作灵感',
|
||||||
|
'_lang_im_enhancement_' => '图片增强',
|
||||||
|
'_lang_oral_broadcast_classification_' => '口播分类',
|
||||||
|
'_lang_create_category_' => '创建分类',
|
||||||
|
'_lang_audio_b_material_settings_' => '口播素材设置',
|
||||||
|
'_lang_browse_the_mouth_cast_library_' => '口播库浏览',
|
||||||
|
'_lang_title_editing_' => '字幕编辑',
|
||||||
|
'_lang_name_of_the_br_material_tag_' => '口播素材标记名称',
|
||||||
|
'_lang_add_with_caution_' => '谨慎添加',
|
||||||
|
'_lang_extended_word_' => '拓词',
|
||||||
|
'_lang_recommended_word_' => '推荐词',
|
||||||
|
'_lang_synchronous_des_' => '同步描述',
|
||||||
|
'_lang_artwork_cover_' => '作品封面',
|
||||||
|
'_lang_custom_parameter_' => '自定义参数',
|
||||||
|
'_lang_use_the_artworks_f_screen_' => '使用作品首屏',
|
||||||
|
'_lang_cover_text_color_' => '封面文字颜色',
|
||||||
|
'_lang_cover_text_base_color_' => '封面文字底色',
|
||||||
|
'_lang_text_stroke_color_' => '文字描边颜色',
|
||||||
|
'_lang_cover_font_style_' => '封面字体样式',
|
||||||
|
'_lang_text_stroke_width_' => '文字描边宽度',
|
||||||
|
'_lang_cover_text_size_' => '封面文字大小',
|
||||||
|
'_lang_text_base_is_transparent_' => '文字底图透明',
|
||||||
|
'_lang_text_base_map_corners_' => '文字底图边角',
|
||||||
|
'_lang_distance_btn_text_and_top_' => '文字距顶距离',
|
||||||
|
'_lang_custom_cover_' => '自定义封面',
|
||||||
|
'_lang_dubbing_commentary_' => '配音解说',
|
||||||
|
'_lang_video_leaderboard_' => '视频榜',
|
||||||
|
'_lang_topic_leaderboard_' => '话题榜',
|
||||||
|
'_lang_hot_w_' => '热点词',
|
||||||
|
'_lang_intelligent_template_' => '智能模板',
|
||||||
|
'_lang_edit_content_library_' => '编辑内容库',
|
||||||
|
'_lang_content_library_name_' => '内容库名称',
|
||||||
|
'_lang_pls_en_a_clib_name_' => '请输入内容库名称',
|
||||||
|
'_lang_editing_task_' => '剪辑任务',
|
||||||
|
'_lang_content_library_' => '内容库',
|
||||||
|
'_lang_one_click_to_m_a_piece_' => '一键成片',
|
||||||
|
'_lang_clip_mode_' => '剪辑模式',
|
||||||
|
'_lang_platform_release_' => '平台发布',
|
||||||
|
'_lang_material_mode_' => '素材模式',
|
||||||
|
'_lang_num_of_clips_' => '剪辑数量',
|
||||||
|
'_lang_grade_version_' => '等级版本',
|
||||||
|
'_lang_login_ip_' => '登录IP',
|
||||||
|
'_lang_get_local_ip_' => '获取本机IP',
|
||||||
|
'_lang_home_province_' => '所属省份',
|
||||||
|
'_lang_pls_s_y_province_' => '请选择所属省份',
|
||||||
|
'_lang_home_city_' => '所属城市',
|
||||||
|
'_lang_application_class_' => '应用类',
|
||||||
|
|
||||||
|
);
|
||||||
Executable
+75
@@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
1162,
|
||||||
|
2262,
|
||||||
|
1569,
|
||||||
|
2394,
|
||||||
|
1476,
|
||||||
|
1493,
|
||||||
|
2070,
|
||||||
|
2407,
|
||||||
|
1901,
|
||||||
|
1776,
|
||||||
|
2379,
|
||||||
|
2254,
|
||||||
|
2596,
|
||||||
|
2532,
|
||||||
|
2570,
|
||||||
|
2002,
|
||||||
|
1770,
|
||||||
|
1535,
|
||||||
|
1753,
|
||||||
|
2037,
|
||||||
|
2202,
|
||||||
|
1583,
|
||||||
|
1870,
|
||||||
|
2132,
|
||||||
|
1725,
|
||||||
|
1432,
|
||||||
|
1648,
|
||||||
|
1676,
|
||||||
|
1757,
|
||||||
|
1523,
|
||||||
|
1226,
|
||||||
|
1276,
|
||||||
|
1162,
|
||||||
|
1601,
|
||||||
|
1696,
|
||||||
|
1621,
|
||||||
|
1696,
|
||||||
|
1239,
|
||||||
|
1801,
|
||||||
|
2379,
|
||||||
|
1686,
|
||||||
|
1269,
|
||||||
|
1712,
|
||||||
|
1835,
|
||||||
|
1733,
|
||||||
|
1899,
|
||||||
|
1880,
|
||||||
|
1258,
|
||||||
|
1922,
|
||||||
|
1620,
|
||||||
|
1912,
|
||||||
|
1974,
|
||||||
|
2095,
|
||||||
|
1569,
|
||||||
|
1475,
|
||||||
|
2254,
|
||||||
|
2070,
|
||||||
|
2292,
|
||||||
|
2327,
|
||||||
|
2173,
|
||||||
|
2173,
|
||||||
|
1970,
|
||||||
|
2262,
|
||||||
|
2057,
|
||||||
|
2182,
|
||||||
|
2001,
|
||||||
|
1476,
|
||||||
|
1493,
|
||||||
|
2318,
|
||||||
|
1953,
|
||||||
|
2394,
|
||||||
|
2016
|
||||||
|
);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (1139,8370,8679,9303,1643,8177,5407,4188,6465,3062,8005,8651,8683,1986,3833,8534,8973,9078,1961,2037,4359,6965,9642,9157,9644,9720,8174,8716,7381,8359,6628,9733,9324,3703,5729,3703,5729,9688,7052,1186,2207,4060,1650,8445,6507,8170,8379,2239,1728,8971,2039,9658,7081,8353,1446,8368,9827,4786,8673,3680,8409,8408,7128,7456,8789,8440,3403,9314,9236,7328,4337,8247,7322,3103,7565,8288,8384,8192,8501,9077,9076,8062,4879,9069,9069,7748,6619,8439,7120,9872,8931,4879,2451,6114,8516,1548,9637,9852,9853,6763,4398,1901,6860,1787,8258,3698,8191,9867,8245,9640,6771,6071,8704,8245,8888,9902,9835,4807,5753,6493,8955,9862,9717,9577,2838,8880,8954,7438,6454,1751,7290,8158);
|
||||||
Executable
+298
@@ -0,0 +1,298 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'stella' => 1,
|
||||||
|
'xiaoyun' => 1,
|
||||||
|
'xiaogang' => 0,
|
||||||
|
'ruoxi' => 1,
|
||||||
|
'siqi' => 1,
|
||||||
|
'sijia' => 1,
|
||||||
|
'sicheng' => 0,
|
||||||
|
'aiqi' => 1,
|
||||||
|
'aijia' => 1,
|
||||||
|
'aicheng' => 0,
|
||||||
|
'aida' => 0,
|
||||||
|
'ninger' => 1,
|
||||||
|
'ruilin' => 1,
|
||||||
|
'siyue' => 1,
|
||||||
|
'aiya' => 1,
|
||||||
|
'aixia' => 1,
|
||||||
|
'aimei' => 1,
|
||||||
|
'aiyu' => 1,
|
||||||
|
'aiyue' => 1,
|
||||||
|
'aijing' => 1,
|
||||||
|
'xiaomei' => 1,
|
||||||
|
'aina' => 1,
|
||||||
|
'yina' => 1,
|
||||||
|
'sijing' => 1,
|
||||||
|
'xiaobei' => 1,
|
||||||
|
'aiwei' => 1,
|
||||||
|
'aibao' => 1,
|
||||||
|
'shanshan' => 1,
|
||||||
|
'aishuo' => 0,
|
||||||
|
'guijie' => 1,
|
||||||
|
'stanley' => 0,
|
||||||
|
'rosa' => 1,
|
||||||
|
'xiaoxian' => 1,
|
||||||
|
'maoxiaomei' => 1,
|
||||||
|
'aifei' => 0,
|
||||||
|
'yaqun' => 0,
|
||||||
|
'qiaowei' => 1,
|
||||||
|
'dahu' => 0,
|
||||||
|
'ailun' => 0,
|
||||||
|
'laotie' => 0,
|
||||||
|
'laomei' => 1,
|
||||||
|
'aikan' => 0,
|
||||||
|
'101033' => 1,
|
||||||
|
'101040' => 1,
|
||||||
|
'101012' => 1,
|
||||||
|
'101032' => 1,
|
||||||
|
'101020' => 0,
|
||||||
|
'101024' => 0,
|
||||||
|
'101022' => 1,
|
||||||
|
'101010' => 0,
|
||||||
|
'101013' => 0,
|
||||||
|
'101028' => 1,
|
||||||
|
'101018' => 0,
|
||||||
|
'101029' => 0,
|
||||||
|
'101030' => 0,
|
||||||
|
'101031' => 0,
|
||||||
|
'101005' => 1,
|
||||||
|
'101034' => 1,
|
||||||
|
'101002' => 1,
|
||||||
|
'101027' => 1,
|
||||||
|
'101003' => 1,
|
||||||
|
'101007' => 1,
|
||||||
|
'101014' => 0,
|
||||||
|
'101008' => 1,
|
||||||
|
'101017' => 1,
|
||||||
|
'101021' => 0,
|
||||||
|
'101019' => 1,
|
||||||
|
'101025' => 1,
|
||||||
|
'101026' => 1,
|
||||||
|
'100510000' => 0,
|
||||||
|
'101023' => 1,
|
||||||
|
'101006' => 1,
|
||||||
|
'101011' => 1,
|
||||||
|
'101035' => 1,
|
||||||
|
'101001' => 1,
|
||||||
|
'101004' => 0,
|
||||||
|
'101009' => 1,
|
||||||
|
'yunlong-pro' => 0,
|
||||||
|
'yunyi-pro' => 0,
|
||||||
|
'chenfeng-pro' => 0,
|
||||||
|
'xiyue-pro' => 1,
|
||||||
|
'shuochangge-pro' => 0,
|
||||||
|
'hanmaige-pro' => 0,
|
||||||
|
'ruize-pro' => 0,
|
||||||
|
'kangge-pro' => 0,
|
||||||
|
'kangdi-pro' => 0,
|
||||||
|
'yaxin-pro' => 1,
|
||||||
|
'wenya-pro' => 1,
|
||||||
|
'jinghui-pro' => 0,
|
||||||
|
'lvxiaoyou-pro' => 1,
|
||||||
|
'guishu-pro' => 0,
|
||||||
|
'mengxuan-pro' => 1,
|
||||||
|
'yudaliang-pro' => 0,
|
||||||
|
'jiarui-pro' => 0,
|
||||||
|
'amu_substitute-pro' => 0,
|
||||||
|
'ahua-pro' => 0,
|
||||||
|
'zilongnew-pro' => 0,
|
||||||
|
'lvxiaoran-pro' => 0,
|
||||||
|
'tielingqin-pro' => 1,
|
||||||
|
'changhai-pro' => 0,
|
||||||
|
'dongbei_female-pro' => 1,
|
||||||
|
'yulaotie-pro' => 0,
|
||||||
|
'shixiaoman-pro' => 1,
|
||||||
|
'cangli-pro' => 0,
|
||||||
|
'fengtian-pro' => 0,
|
||||||
|
'beixuan-pro' => 0,
|
||||||
|
'donghu-pro' => 0,
|
||||||
|
'chengjun-pro' => 0,
|
||||||
|
'jingyang-pro' => 0,
|
||||||
|
'jialin-pro' => 0,
|
||||||
|
'direnjie-pro' => 0,
|
||||||
|
'hubei_female-pro' => 1,
|
||||||
|
'qingfeng-pro' => 0,
|
||||||
|
'chengyi-pro' => 0,
|
||||||
|
'daji-pro' => 1,
|
||||||
|
'jingchao-pro' => 0,
|
||||||
|
'guixiaoling-pro' => 1,
|
||||||
|
'dulinglong-pro' => 1,
|
||||||
|
'wanqing-pro' => 1,
|
||||||
|
'chudai-pro' => 1,
|
||||||
|
'linglan-pro' => 1,
|
||||||
|
'henan_female-pro' => 1,
|
||||||
|
'jiaze-pro' => 0,
|
||||||
|
'junchen-pro' => 0,
|
||||||
|
'haoquan-pro' => 0,
|
||||||
|
'jingarye-pro' => 0,
|
||||||
|
'nangupopo-pro' => 1,
|
||||||
|
'nanxi-pro' => 1,
|
||||||
|
'axing-pro' => 0,
|
||||||
|
'shixiaomei-pro' => 1,
|
||||||
|
'jiugongzi-pro' => 0,
|
||||||
|
'luyun-pro' => 1,
|
||||||
|
'guangpu_male-pro' => 0,
|
||||||
|
'ruyun-pro' => 1,
|
||||||
|
'sailiya-pro' => 1,
|
||||||
|
'meiqing-pro' => 1,
|
||||||
|
'sisi-pro' => 1,
|
||||||
|
'meishu-pro' => 1,
|
||||||
|
'libai-pro' => 0,
|
||||||
|
'rumeng-pro' => 1,
|
||||||
|
'feifei-pro' => 1,
|
||||||
|
'qianqian-pro' => 1,
|
||||||
|
'sichuan_female-pro' => 1,
|
||||||
|
'shuaishuai-pro' => 1,
|
||||||
|
'shujing-pro' => 1,
|
||||||
|
'xialuo-pro' => 0,
|
||||||
|
'shixiaochu-pro' => 0,
|
||||||
|
'haoxuan-pro' => 0,
|
||||||
|
'qiuyuebai-pro' => 1,
|
||||||
|
'shuxian-pro' => 1,
|
||||||
|
'wenjing-pro' => 1,
|
||||||
|
'xiaojin-pro' => 1,
|
||||||
|
'shanxi_male-pro' => 0,
|
||||||
|
'xiaoxiongxiong-pro' => 0,
|
||||||
|
'yanxiaolan-pro' => 1,
|
||||||
|
'taipu_female-pro' => 1,
|
||||||
|
'wanting-pro' => 1,
|
||||||
|
'yunlan-pro' => 1,
|
||||||
|
'xiongda-pro' => 0,
|
||||||
|
'yanxiaoqing-pro' => 1,
|
||||||
|
'duqingfeng-pro' => 0,
|
||||||
|
'jingdongshu-pro' => 0,
|
||||||
|
'yuxinxin-pro' => 1,
|
||||||
|
'zhaoyun-pro' => 0,
|
||||||
|
'zhimo-pro' => 1,
|
||||||
|
'yuhaimian-pro' => 0,
|
||||||
|
'zihang-pro' => 0,
|
||||||
|
'yushuangge-pro' => 0,
|
||||||
|
'zipei-pro' => 0,
|
||||||
|
'shuxin-pro' => 1,
|
||||||
|
'saihongsheng-pro' => 0,
|
||||||
|
'shejianjie-pro' => 1,
|
||||||
|
'zhiyuan-pro' => 0,
|
||||||
|
'zhugeliang-pro' => 0,
|
||||||
|
'yuehao-pro' => 0,
|
||||||
|
'shidaxiong-pro' => 0,
|
||||||
|
'yuelin-pro' => 1,
|
||||||
|
'shejiange-pro' => 0,
|
||||||
|
'sailuoluo-pro' => 0,
|
||||||
|
'zhimo-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'zhimo-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'zhimo-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'zhimo-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'zhimo-pro-fgf-zh-jnh-Hans-CN' => 1,
|
||||||
|
'zhimo-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'chengyi-pro-fgf-zh-dbh-Hans-CN' => 0,
|
||||||
|
'chengyi-pro-fgf-zh-sxh-Hans-CN' => 0,
|
||||||
|
'chengyi-pro-fgf-zh-sch-Hans-CN' => 0,
|
||||||
|
'chengyi-pro-fgf-zh-whh-Hans-CN' => 0,
|
||||||
|
'chengyi-pro-fgf-zh-tjh-Hans-CN' => 0,
|
||||||
|
'chudai-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'chudai-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'chudai-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'chudai-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'chudai-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'direnjie-pro-fgf-zh-dbh-Hans-CN' => 0,
|
||||||
|
'direnjie-pro-fgf-zh-sxh-Hans-CN' => 0,
|
||||||
|
'direnjie-pro-fgf-zh-sch-Hans-CN' => 0,
|
||||||
|
'feifei-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'feifei-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'feifei-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'feifei-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'feifei-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'haoquan-pro-fgf-zh-dbh-Hans-CN' => 0,
|
||||||
|
'haoquan-pro-fgf-zh-sxh-Hans-CN' => 0,
|
||||||
|
'haoquan-pro-fgf-zh-sch-Hans-CN' => 0,
|
||||||
|
'haoquan-pro-fgf-zh-whh-Hans-CN' => 0,
|
||||||
|
'haoquan-pro-fgf-zh-tjh-Hans-CN' => 0,
|
||||||
|
'junchen-pro-fgf-zh-dbh-Hans-CN' => 0,
|
||||||
|
'junchen-pro-fgf-zh-sxh-Hans-CN' => 0,
|
||||||
|
'junchen-pro-fgf-zh-sch-Hans-CN' => 0,
|
||||||
|
'junchen-pro-fgf-zh-whh-Hans-CN' => 0,
|
||||||
|
'junchen-pro-fgf-zh-tjh-Hans-CN' => 0,
|
||||||
|
'mengxuan-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'mengxuan-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'mengxuan-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'mengxuan-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'mengxuan-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'mengxuan-pro-fgf-zh-jnh-Hans-CN' => 1,
|
||||||
|
'nanxi-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'nanxi-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'nanxi-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'nanxi-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'nanxi-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'qianqian-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'qianqian-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'qianqian-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'qianqian-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'qianqian-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'qiuyuebai-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'qiuyuebai-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'qiuyuebai-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'qiuyuebai-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'qiuyuebai-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'rumeng-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'rumeng-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'rumeng-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'rumeng-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'rumeng-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'shuxian-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'shuxian-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'shuxian-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'shuxian-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'shuxian-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'xialuo-pro-fgf-zh-dbh-Hans-CN' => 0,
|
||||||
|
'xialuo-pro-fgf-zh-sxh-Hans-CN' => 0,
|
||||||
|
'xialuo-pro-fgf-zh-sch-Hans-CN' => 0,
|
||||||
|
'xialuo-pro-fgf-zh-whh-Hans-CN' => 0,
|
||||||
|
'xialuo-pro-fgf-zh-tjh-Hans-CN' => 0,
|
||||||
|
'yunlan-pro-fgf-zh-dbh-Hans-CN' => 1,
|
||||||
|
'yunlan-pro-fgf-zh-sxh-Hans-CN' => 1,
|
||||||
|
'yunlan-pro-fgf-zh-sch-Hans-CN' => 1,
|
||||||
|
'yunlan-pro-fgf-zh-whh-Hans-CN' => 1,
|
||||||
|
'yunlan-pro-fgf-zh-tjh-Hans-CN' => 1,
|
||||||
|
'zhaoyun-pro-fgf-zh-dbh-Hans-CN' => 0,
|
||||||
|
'zhaoyun-pro-fgf-zh-sxh-Hans-CN' => 0,
|
||||||
|
'zhaoyun-pro-fgf-zh-sch-Hans-CN' => 0,
|
||||||
|
'zhugeliang-pro-fgf-zh-dbh-Hans-CN' => 0,
|
||||||
|
'zhugeliang-pro-fgf-zh-sxh-Hans-CN' => 0,
|
||||||
|
'zhugeliang-pro-fgf-zh-sch-Hans-CN' => 0,
|
||||||
|
'zipei-pro-fgf-zh-dbh-Hans-CN' => 0,
|
||||||
|
'zipei-pro-fgf-zh-sxh-Hans-CN' => 0,
|
||||||
|
'zipei-pro-fgf-zh-sch-Hans-CN' => 0,
|
||||||
|
'zh-CN-XiaoxiaoNeural' => 1,
|
||||||
|
'zh-CN-YunyangNeural' => 0,
|
||||||
|
'zh-CN-XiaochenNeural' => 1,
|
||||||
|
'zh-CN-XiaohanNeural' => 1,
|
||||||
|
'zh-CN-XiaomoNeural' => 1,
|
||||||
|
'zh-CN-XiaoqiuNeural' => 1,
|
||||||
|
'zh-CN-XiaoruiNeural' => 1,
|
||||||
|
'zh-CN-XiaoshuangNeural' => 1,
|
||||||
|
'zh-CN-XiaoxuanNeural' => 1,
|
||||||
|
'zh-CN-XiaoyanNeural' => 1,
|
||||||
|
'zh-CN-XiaoyouNeural' => 1,
|
||||||
|
'zh-CN-YunxiNeural' => 0,
|
||||||
|
'zh-CN-YunyeNeural' => 0,
|
||||||
|
'zh-CN-XiaomengNeural' => 1,
|
||||||
|
'zh-CN-XiaoyiNeural' => 1,
|
||||||
|
'zh-CN-XiaozhenNeural' => 1,
|
||||||
|
'zh-CN-YunfengNeural' => 0,
|
||||||
|
'zh-CN-YunhaoNeural' => 0,
|
||||||
|
'zh-CN-YunjianNeural' => 0,
|
||||||
|
'zh-CN-YunxiaNeural' => 0,
|
||||||
|
'zh-CN-YunzeNeural' => 0,
|
||||||
|
'zh-CN-henan-YundengNeural' => 0,
|
||||||
|
'zh-CN-liaoning-XiaobeiNeural' => 1,
|
||||||
|
'zh-CN-shaanxi-XiaoniNeural' => 1,
|
||||||
|
'zh-CN-shandong-YunxiangNeural' => 0,
|
||||||
|
'zh-CN-sichuan-YunxiNeural' => 0,
|
||||||
|
'zh-HK-HiuMaanNeural' => 1,
|
||||||
|
'zh-HK-HiuGaaiNeural' => 1,
|
||||||
|
'zh-HK-WanLungNeural' => 0,
|
||||||
|
'zh-TW-HsiaoChenNeural' => 1,
|
||||||
|
'zh-TW-HsiaoYuNeural' => 1,
|
||||||
|
'zh-TW-YunJheNeural' => 0,
|
||||||
|
);
|
||||||
Executable
+50
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
'siqi' => '思琪-温柔女声',
|
||||||
|
'sicheng' => '思诚-标准男声',
|
||||||
|
'aiqi' => '艾琪-温柔女声',
|
||||||
|
'aijia' => '艾佳-标准女声',
|
||||||
|
'aicheng' => '艾诚-标准男声',
|
||||||
|
'aida' => '艾达-标准男声',
|
||||||
|
'aiya' => '艾雅-严厉女声',
|
||||||
|
'aixia' => '艾夏-亲和女声',
|
||||||
|
'aimei' => '艾美-甜美女声',
|
||||||
|
'aiyu' => '艾雨-自然女声',
|
||||||
|
'aiyue' => '艾悦-温柔女声',
|
||||||
|
'aijing' => '艾婧-严厉女声',
|
||||||
|
'aina' => '艾娜-浙普女声',
|
||||||
|
'aibao' => '艾宝-萝莉女声',
|
||||||
|
'aishuo' => '艾硕-自然男声',
|
||||||
|
'guijie' => '柜姐-亲切女声',
|
||||||
|
'stella' => 'Stella-知性女声',
|
||||||
|
'stanley' => 'Stanley-沉稳男声',
|
||||||
|
'rosa' => 'Rosa-自然女声',
|
||||||
|
'mashu' => '马树-儿童剧男声',
|
||||||
|
'xiaoxian' => '小仙-亲切女声',
|
||||||
|
'yuer' => '悦儿-儿童剧女声',
|
||||||
|
'maoxiaomei' => '猫小美-活力女声',
|
||||||
|
'aifei' => '艾飞-激昂解说',
|
||||||
|
'yaqun' => '亚群-卖场广播',
|
||||||
|
'qiaowei' => '巧薇-卖场广播',
|
||||||
|
'dahu' => '大虎-东北话男声',
|
||||||
|
'ailun' => '艾伦-悬疑解说',
|
||||||
|
'jielidou' => '杰力豆-治愈童声',
|
||||||
|
'laotie' => '老铁-东北老铁',
|
||||||
|
'laomei' => '老妹-吆喝女声',
|
||||||
|
'aikan' => '艾侃-天津话男声',
|
||||||
|
'xiaoyun' => '小云-标准女声',
|
||||||
|
'xiaogang' => '小刚-标准男声',
|
||||||
|
'ruoxi' => '若兮-温柔女声',
|
||||||
|
'sijia' => '思佳-标准女声',
|
||||||
|
'ninger' => '宁儿-标准女声',
|
||||||
|
'ruilin' => '瑞琳-标准女声',
|
||||||
|
'siyue' => '思悦-温柔女声',
|
||||||
|
'xiaomei' => '小美-甜美女声',
|
||||||
|
'yina' => '伊娜-浙普女声',
|
||||||
|
'sijing' => '思婧-严厉女声',
|
||||||
|
'sitong' => '思彤-儿童音',
|
||||||
|
'xiaobei' => '小北-萝莉女声',
|
||||||
|
'aitong' => '艾彤-儿童音',
|
||||||
|
'aiwei' => '艾薇-萝莉女声',
|
||||||
|
'shanshan' => '姗姗-粤语女声',
|
||||||
|
);
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 => 'D音',
|
||||||
|
1 => 'K手',
|
||||||
|
2 => 'B家号',
|
||||||
|
3 => '小红薯',
|
||||||
|
4 => '视P号',
|
||||||
|
5 => 'B哩哔哩',
|
||||||
|
6 => '公Z号',
|
||||||
|
10 => 'TiTk',
|
||||||
|
);
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 => 'douyin',
|
||||||
|
1 => 'kuaishou',
|
||||||
|
2 => 'baijiahao',
|
||||||
|
3 => 'xiaohongshu',
|
||||||
|
4 => 'shipinhao',
|
||||||
|
5 => 'bilibili',
|
||||||
|
6 => 'gongzhonghao',
|
||||||
|
10 => 'tiktok',
|
||||||
|
);
|
||||||
Executable
+339
@@ -0,0 +1,339 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
4 =>
|
||||||
|
array (
|
||||||
|
'id' => '1',
|
||||||
|
'name' => '(i采购)基础版(1个月)',
|
||||||
|
'nameu' => '基础版',
|
||||||
|
'v_type' => '4',
|
||||||
|
's_type' => '0',
|
||||||
|
'sort' => '1',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '0',
|
||||||
|
'nickname' => 'icaigou',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '30',
|
||||||
|
'video_num' => '0',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '',
|
||||||
|
's_num' => '0',
|
||||||
|
'e_num' => '0',
|
||||||
|
'platforms' => '',
|
||||||
|
'vtpl_num' => '0',
|
||||||
|
'account_num' => '0',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '0',
|
||||||
|
),
|
||||||
|
3 =>
|
||||||
|
array (
|
||||||
|
'id' => '2',
|
||||||
|
'name' => '(i采购)企业版(1年)',
|
||||||
|
'nameu' => '企业版',
|
||||||
|
'v_type' => '3',
|
||||||
|
's_type' => '0',
|
||||||
|
'sort' => '4',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '0',
|
||||||
|
'nickname' => 'icaigou',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '365',
|
||||||
|
'video_num' => '0',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '',
|
||||||
|
's_num' => '0',
|
||||||
|
'e_num' => '0',
|
||||||
|
'platforms' => '',
|
||||||
|
'vtpl_num' => '0',
|
||||||
|
'account_num' => '0',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '0',
|
||||||
|
),
|
||||||
|
2 =>
|
||||||
|
array (
|
||||||
|
'id' => '3',
|
||||||
|
'name' => '(i采购)商务版(半年)',
|
||||||
|
'nameu' => '商务版',
|
||||||
|
'v_type' => '2',
|
||||||
|
's_type' => '0',
|
||||||
|
'sort' => '3',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '0',
|
||||||
|
'nickname' => 'icaigou',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '180',
|
||||||
|
'video_num' => '0',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '',
|
||||||
|
's_num' => '0',
|
||||||
|
'e_num' => '0',
|
||||||
|
'platforms' => '',
|
||||||
|
'vtpl_num' => '0',
|
||||||
|
'account_num' => '0',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '0',
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
'id' => '4',
|
||||||
|
'name' => '(i采购)创业版(3个月)',
|
||||||
|
'nameu' => '创业版',
|
||||||
|
'v_type' => '1',
|
||||||
|
's_type' => '0',
|
||||||
|
'sort' => '2',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '0',
|
||||||
|
'nickname' => 'icaigou',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '90',
|
||||||
|
'video_num' => '0',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '',
|
||||||
|
's_num' => '0',
|
||||||
|
'e_num' => '0',
|
||||||
|
'platforms' => '',
|
||||||
|
'vtpl_num' => '0',
|
||||||
|
'account_num' => '0',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '0',
|
||||||
|
),
|
||||||
|
100 =>
|
||||||
|
array (
|
||||||
|
'id' => '5',
|
||||||
|
'name' => '短视频-运营版(1年)',
|
||||||
|
'nameu' => '运营版',
|
||||||
|
'v_type' => '100',
|
||||||
|
's_type' => '1',
|
||||||
|
'sort' => '125',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'video',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '365',
|
||||||
|
'video_num' => '1000',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => ',0,1,2,',
|
||||||
|
'vtpl_num' => '-1',
|
||||||
|
'account_num' => '5',
|
||||||
|
'kword_num' => '5',
|
||||||
|
'mrfb_num' => '100',
|
||||||
|
),
|
||||||
|
245 =>
|
||||||
|
array (
|
||||||
|
'id' => '6',
|
||||||
|
'name' => '试用版-巨量拓客(7天)',
|
||||||
|
'nameu' => '试用版',
|
||||||
|
'v_type' => '245',
|
||||||
|
's_type' => '0',
|
||||||
|
'sort' => '6',
|
||||||
|
'disabled' => '1',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'juliang',
|
||||||
|
'xgg_groupid' => '245',
|
||||||
|
'tian' => '7',
|
||||||
|
'video_num' => '0',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => NULL,
|
||||||
|
'vtpl_num' => '0',
|
||||||
|
'account_num' => '0',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '0',
|
||||||
|
),
|
||||||
|
241 =>
|
||||||
|
array (
|
||||||
|
'id' => '7',
|
||||||
|
'name' => '营销版-巨量拓客(1年)',
|
||||||
|
'nameu' => '营销版',
|
||||||
|
'v_type' => '241',
|
||||||
|
's_type' => '0',
|
||||||
|
'sort' => '7',
|
||||||
|
'disabled' => '1',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'juliang',
|
||||||
|
'xgg_groupid' => '241',
|
||||||
|
'tian' => '365',
|
||||||
|
'video_num' => '0',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => '',
|
||||||
|
'vtpl_num' => '0',
|
||||||
|
'account_num' => '0',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '0',
|
||||||
|
),
|
||||||
|
10001 =>
|
||||||
|
array (
|
||||||
|
'id' => '8',
|
||||||
|
'name' => '巨量拓客-小程序版(1年)',
|
||||||
|
'nameu' => '小程序版',
|
||||||
|
'v_type' => '10001',
|
||||||
|
's_type' => '0',
|
||||||
|
'sort' => '8',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'juliang',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '365',
|
||||||
|
'video_num' => '0',
|
||||||
|
'tuoke_group_id' => '2',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => '',
|
||||||
|
'vtpl_num' => '0',
|
||||||
|
'account_num' => '0',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '0',
|
||||||
|
),
|
||||||
|
101 =>
|
||||||
|
array (
|
||||||
|
'id' => '9',
|
||||||
|
'name' => '短视频-条数版(1年)',
|
||||||
|
'nameu' => '条数版',
|
||||||
|
'v_type' => '101',
|
||||||
|
's_type' => '1',
|
||||||
|
'sort' => '100',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'video',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '365',
|
||||||
|
'video_num' => '1',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '条',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '1000',
|
||||||
|
'platforms' => ',0,1,',
|
||||||
|
'vtpl_num' => '20',
|
||||||
|
'account_num' => '5',
|
||||||
|
'kword_num' => '3',
|
||||||
|
'mrfb_num' => '10',
|
||||||
|
),
|
||||||
|
102 =>
|
||||||
|
array (
|
||||||
|
'id' => '10',
|
||||||
|
'name' => '短视频-入门版(3个月)',
|
||||||
|
'nameu' => '入门版',
|
||||||
|
'v_type' => '102',
|
||||||
|
's_type' => '1',
|
||||||
|
'sort' => '110',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'video',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '90',
|
||||||
|
'video_num' => '200',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => ',0,',
|
||||||
|
'vtpl_num' => '20',
|
||||||
|
'account_num' => '5',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '10',
|
||||||
|
),
|
||||||
|
103 =>
|
||||||
|
array (
|
||||||
|
'id' => '11',
|
||||||
|
'name' => '短视频-黄金版(1年)',
|
||||||
|
'nameu' => '黄金版',
|
||||||
|
'v_type' => '103',
|
||||||
|
's_type' => '1',
|
||||||
|
'sort' => '120',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'video',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '365',
|
||||||
|
'video_num' => '-1',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => ',0,',
|
||||||
|
'vtpl_num' => '30',
|
||||||
|
'account_num' => '1',
|
||||||
|
'kword_num' => '3',
|
||||||
|
'mrfb_num' => '10',
|
||||||
|
),
|
||||||
|
104 =>
|
||||||
|
array (
|
||||||
|
'id' => '12',
|
||||||
|
'name' => '短视频-至尊版(1年)',
|
||||||
|
'nameu' => '至尊版',
|
||||||
|
'v_type' => '104',
|
||||||
|
's_type' => '1',
|
||||||
|
'sort' => '130',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'video',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '365',
|
||||||
|
'video_num' => '-1',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => ',0,1,2,',
|
||||||
|
'vtpl_num' => '-1',
|
||||||
|
'account_num' => '5',
|
||||||
|
'kword_num' => '10',
|
||||||
|
'mrfb_num' => '-1',
|
||||||
|
),
|
||||||
|
105 =>
|
||||||
|
array (
|
||||||
|
'id' => '13',
|
||||||
|
'name' => '短视频-普惠版(2个月)',
|
||||||
|
'nameu' => '普惠版',
|
||||||
|
'v_type' => '105',
|
||||||
|
's_type' => '1',
|
||||||
|
'sort' => '140',
|
||||||
|
'disabled' => '0',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'video',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '60',
|
||||||
|
'video_num' => '300',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '1',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => ',0,',
|
||||||
|
'vtpl_num' => '10',
|
||||||
|
'account_num' => '1',
|
||||||
|
'kword_num' => '0',
|
||||||
|
'mrfb_num' => '5',
|
||||||
|
),
|
||||||
|
106 =>
|
||||||
|
array (
|
||||||
|
'id' => '14',
|
||||||
|
'name' => '短视频-钻石版(1年)',
|
||||||
|
'nameu' => '',
|
||||||
|
'v_type' => '106',
|
||||||
|
's_type' => '1',
|
||||||
|
'sort' => '0',
|
||||||
|
'disabled' => '1',
|
||||||
|
'is_store' => '1',
|
||||||
|
'nickname' => 'video',
|
||||||
|
'xgg_groupid' => '0',
|
||||||
|
'tian' => '365',
|
||||||
|
'video_num' => '-1',
|
||||||
|
'tuoke_group_id' => '0',
|
||||||
|
'danwei' => '个',
|
||||||
|
's_num' => '0',
|
||||||
|
'e_num' => '10',
|
||||||
|
'platforms' => ',0,1,',
|
||||||
|
'vtpl_num' => '57',
|
||||||
|
'account_num' => '1',
|
||||||
|
'kword_num' => '3',
|
||||||
|
'mrfb_num' => '0',
|
||||||
|
),
|
||||||
|
);
|
||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
// 图文软件使用的版本等级参数
|
||||||
|
return array (
|
||||||
|
144 => '短视频-云图文(1年)',
|
||||||
|
145 => '短视频-云图文(1月)',
|
||||||
|
146 => '云图文普惠版(1月)',
|
||||||
|
147 => '云图文星辰版(1年)',
|
||||||
|
156 => '云图文翡翠版(1年)',
|
||||||
|
);
|
||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
// 禁止每日领取Sora2-IP集合
|
||||||
|
return array (
|
||||||
|
'119.189.101.47',
|
||||||
|
);
|
||||||
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
// 性别
|
||||||
|
'sex' => ['woman','man'],
|
||||||
|
'sexb' => ['woman'=>'女性','man'=>'男性'],
|
||||||
|
// 女士着装
|
||||||
|
'woman_zhuang' => ['黑色西装外套 + 白色衬衫 + 黑色直筒西装裤 + 黑色高跟鞋','藏青色西装套装 + 白色衬衫 + 黑色中跟皮鞋','深灰色西装外套 + 浅蓝色衬衫 + 深灰色 A 字半身裙 + 裸色高跟鞋','深蓝色单排扣西装 + 白色真丝衬衫 + 黑色微喇西装裤 + 棕色皮鞋','黑色西装连衣裙 + 黑色小香风外套 + 黑色高跟鞋','深灰色西裤套装 + 白色高领毛衣 + 黑色短靴','藏青色西装 + 条纹衬衫 + 黑色包臀裙 + 黑色中跟鞋','黑色双排扣西装 + 白色雪纺衬衫 + 黑色西裤 + 黑色皮带 + 黑色皮鞋','深棕色风衣 + 白色衬衫 + 黑色直筒裤 + 棕色短靴','黑色西装外套 + 灰色针织背心 + 白色衬衫 + 黑色阔腿裤 + 乐福鞋','藏青色西装裙 + 白色衬衫 + 红色丝巾 + 黑色高跟鞋','深灰色西装套装 + 淡粉色衬衫 + 黑色高跟鞋','白色西装外套 + 黑色内搭 + 黑色直筒西裤 + 黑色高跟鞋','黑色羊毛大衣 + 黑色高领毛衣 + 深灰色直筒裤 + 黑色长靴','深蓝色西装外套 + 白色蕾丝衬衫 + 黑色铅笔裙 + 黑色高跟鞋','深灰色西装 + 黑色雪纺衬衫 + 黑色西裤 + 黑色皮鞋','藏青色西装 + 黑色吊带衫 + 黑色阔腿裤 + 裸色高跟鞋','黑色小香风外套 + 白色衬衫 + 黑色直筒裙 + 黑色高跟鞋','深蓝色风衣 + 白色针织衫 + 黑色直筒裤 + 黑色短靴','深灰色西装外套 + 浅灰色毛衣 + 黑色半身裙 + 黑色中跟鞋'],
|
||||||
|
// 男士着装
|
||||||
|
'man_zhuang' => ['白色高支棉衬衫 + 黑色西装裤 + 黑牛津鞋,搭黑色西装 + 藏青领带','浅蓝衬衫 + 深灰西裤 + 棕德比鞋,配浅灰西装 + 银灰领带','白色衬衫 + 藏青西裤 + 黑皮鞋,外搭藏青西装 + 酒红领带','浅粉衬衫 + 深灰西裤 + 棕牛津鞋,搭浅灰西装 + 深粉条纹领带','白色衬衫 + 黑色西裤 + 黑皮鞋,配黑色西装 + 白色口袋巾','浅蓝条纹衬衫 + 藏青西裤 + 黑德比鞋,外搭藏青西装 + 深蓝领带','白色衬衫 + 深灰西裤 + 棕皮鞋,搭深灰西装 + 浅灰领带','浅紫衬衫 + 黑色西裤 + 黑皮鞋,配黑色西装 + 浅紫暗纹领带','白色衬衫 + 藏青西裤 + 黑牛津鞋,外搭藏青西装 + 银灰口袋巾','浅蓝衬衫 + 深灰西裤 + 棕皮鞋,搭深灰西装 + 深蓝条纹领带','白色衬衫 + 黑色西裤 + 黑皮鞋,配黑色西装 + 藏青领带 + 金属袖扣','浅粉衬衫 + 藏青西裤 + 黑德比鞋,外搭藏青西装 + 深粉领带','白色衬衫 + 深灰西裤 + 棕牛津鞋,搭浅灰西装 + 酒红口袋巾','浅蓝条纹衬衫 + 黑色西裤 + 黑皮鞋,配黑色西装 + 浅蓝领带','白色衬衫 + 藏青西裤 + 黑皮鞋,外搭藏青西装 + 深灰领带','浅紫衬衫 + 深灰西裤 + 棕皮鞋,搭深灰西装 + 浅紫领带','白色衬衫 + 黑色西裤 + 黑牛津鞋,配黑色西装 + 深蓝口袋巾','浅蓝衬衫 + 藏青西裤 + 棕德比鞋,外搭藏青西装 + 浅灰领带','白色衬衫 + 深灰西裤 + 黑皮鞋,搭深灰西装 + 藏青条纹领带','浅粉衬衫 + 黑色西裤 + 黑皮鞋,配黑色西装 + 浅粉口袋巾'],
|
||||||
|
// 女士不同年龄段
|
||||||
|
'woman_age' => ['20-25岁青春朝气型', '26-35岁从容成长型', '20多岁东方清纯少女形象'],
|
||||||
|
// 男士不同年龄段
|
||||||
|
'man_age' => ['20-25岁活力清爽型', '26-35岁干练成长型', '20多岁东方美男形象'],
|
||||||
|
// 讲解姿势
|
||||||
|
'pub_zishi' => ['站姿', '互动姿势'],
|
||||||
|
);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array(1155, 1130, 1174, 1143, 1191, 1197, 1203, 1328, 1519);
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
return array (7903,8444,8445,8442,6697,8510,8159,8438,8239,8122,8443,7038,8548,8516,8164,8165,8554,7385,8074,8128,8261,8335,7565,8317,7836,8316,6730,7045,8161,6706,7959,8631,8113,6533,6619,6541,6641,7079,8671,8038,6510,7017,6593,8351,8336,8258,8068,8736,8735,8482,8763,8832,8831,8861,8888,8891,7067,8909,8919,8939,8905,6563,7507,8962,8964,8967,7140,8981,8985,6944,9002,9003,9009,7327,8990,9065,7831,9074,9078,9088,9107,9120,7057,9153,7060,8615,8896,9217,9228,9242,8475,8062,8368,8408,8409,6532,9304,8143,7581,9024,9331,9312,6646,9296,9064,9380,9398,9411,9379,9423,7223,9445,9257,9448,7610,9465,9486,8649,9573,9621,9635,9625,7294,7122,8110,9688,9689,9684,9685,9686,9694,7582,6549,9730,9735,9756,9831,9832,7559,9881,9704,7511,9911,9867,6511,9933,8360,9994,10013,10023,10033,10053,10049,10097,10091,8242,10137,9627,10131,10151,10153,10154,10170,6871,10218,10224,10285,10306,9288,6858,10202,10336,8493,10364,9934,10411,10414,10408,7080,7880,10451,10496,10510,7178,9706,10311,10543,9890,8103,10578,10585,8389,10664,10683,10686,10690,10096,8856,10706,10708,7515,10716,8082,10722,10747,10749,10179,7887,7540,7544,10769,10629,10767,10782,6948,10730,10054,10785,9736,10818,10838,10678,10864,10865,7875,10404,10913,7532,8279,8584,10938,11011,11007,10972,7885,11049,9471,11071,11084,11072,6516,8373,11088,11060,11061,11062,11063,10823,7253,11040,11132,11103,11149,8248,11181,11188,11209,11233,7884,11321,11323,11354,11451,11551,11599,11609,9367,11630,11629,11603,11048,11194,11678,11284,11697,11445,11709,11725,11758,11065,11820,11822,11602,11825,11838,11843,11841,7381,8621,11108,11930,8499,11973,11978,11982,11984,11175,8379,12023,12034,11575,12063,12067,9666,8300,12079,12032,12062,9173,12155,12167,12178,12128,12129,12208,9300,12223,12234,12209,12283,12299,8063,12295,12276,12355,12359,12365,8191,12363,12378,9902,12369,9525,12411,12228,12448,12497,9932,12498,8035,12539,12545,12552,8163,12591,12597,12614,8953,12635,12039,12639,12623,12674,9322,12701,9314,12713,12714,12554,12732,12742,6766,12768,12559,12782,12851,12858,12874,12601,11052,12886,12888,12672,12907,12804,12956,12972,12977,12758,12347,13051,13103,13104,13116,13112,13107,13119,12830,13145,13141,13140,7514,10745,13175,13180,7436,6547,13057,13193,13230,13229,13210,13283,13202,8153,7585,13369,13370,13372,13371,13373,13374,13366,13368,13399,13407,13485,6884,13525,13554,13602,13587,13363,13308,13628,10857,13648,13653,13660,13654,13624,13309,13703,13739,13748,13805,13819,7052,13818,10254,13842,13843,13844,11214,13825,13867,13872,13886,13895,13985,13999,13994,14027,12219,14047,13896,14088,14118,7436,14154,14222,14244,14256,12937,14268,7673,14301,14372,9980,14443,14498,14511,14702,14677,14741,6521,14766,14857,14921,14931,14934,14944,12602,14952,15068,15063,15156,13041,15221,15349,15401,15263,15543,11126,15634,15627,15752,10965,15792,15840,15839,9114,12629,15951,15981,11219,16028,12279,13800,16104,16177,15834,8504,16210,15564,13597,16260,16274,12722,16298,16330,16331,15579,13977,16525,16574,16584,16597,16683,16685,16812,6575,16930,7272,7458,17096,17103,17116,17113,17212,17207,17215,11644,14823);
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user