更新开源5.0.0版本

This commit is contained in:
evoxwht 2023-06-12 14:41:51 +08:00
parent bb3dc075e2
commit 36ce0fef97
2761 changed files with 98320 additions and 30718 deletions

View File

@ -1,5 +1,5 @@
version=CRMEB-KY v4.7.1
version_code=471
version=CRMEB-KY v5.0.0
version_code=500
platform=github
app_id=ze7x9rxsv09l6pvsyo
app_key=fuF7U9zaybLa5gageVQzxtxQMFnvU2OI

View File

@ -78,6 +78,7 @@ class Request extends \think\Request
$farr = [
"/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU",
"/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",
'/phar/is',
"/select|join|where|drop|like|modify|rename|insert|update|table|database|alter|truncate|\'|\/\*|\.\.\/|\.\/|union|into|load_file|outfile/is"
];
if (is_array($str)) {

View File

@ -45,26 +45,30 @@ class AdminApiExceptionHandle extends Handle
public function report(Throwable $exception): void
{
if (!$this->isIgnoreReport($exception)) {
$data = [
'file' => $exception->getFile(),
'line' => $exception->getLine(),
'message' => $this->getMessage($exception),
'code' => $this->getCode($exception),
];
try {
$data = [
'file' => $exception->getFile(),
'line' => $exception->getLine(),
'message' => $this->getMessage($exception),
'code' => $this->getCode($exception),
];
//日志内容
$log = [
request()->adminId(), //管理员ID
request()->ip(), //客户ip
ceil(msectime() - (request()->time(true) * 1000)), //耗时(毫秒)
request()->rule()->getMethod(), //请求类型
str_replace("/", "", request()->rootUrl()), //应用
request()->baseUrl(), //路由
json_encode(request()->param(), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),//请求参数
json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), //报错数据
//日志内容
$log = [
request()->adminId(), //管理员ID
request()->ip(), //客户ip
ceil(msectime() - (request()->time(true) * 1000)), //耗时(毫秒)
request()->rule()->getMethod(), //请求类型
str_replace("/", "", request()->rootUrl()), //应用
request()->baseUrl(), //路由
json_encode(request()->param(), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),//请求参数
json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), //报错数据
];
Log::write(implode("|", $log), "error");
];
Log::write(implode("|", $log), "error");
} catch (\Throwable $e) {
Log::write($e->getMessage(), "error");
}
}
}

View File

@ -235,28 +235,28 @@ class Common extends AuthController
if ($data['ordernum'] != 0) {
$value[] = [
'title' => "您有$data[ordernum]个待发货的订单",
'type' => 'bulb',
'type' => 1,
'url' => '/admin/order/list?status=1'
];
}
if ($data['inventory'] != 0) {
$value[] = [
'title' => "您有$data[inventory]个商品库存预警",
'type' => 'information',
'type' => 2,
'url' => '/admin/product/product_list?type=5',
];
}
if ($data['commentnum'] != 0) {
$value[] = [
'title' => "您有$data[commentnum]条评论待回复",
'type' => 'bulb',
'type' => 3,
'url' => '/admin/product/product_reply?is_reply=0'
];
}
if ($data['reflectnum'] != 0) {
$value[] = [
'title' => "您有$data[reflectnum]个提现申请待审核",
'type' => 'bulb',
'type' => 4,
'url' => '/admin/finance/user_extract/index?status=0',
];
}
@ -402,6 +402,7 @@ class Common extends AuthController
'info' => ''
]);
}
$services->cacheDriver()->clear();
return app('json')->success(100000);
}

View File

@ -101,10 +101,14 @@ class Login extends AuthController
}
}
if (strlen(trim($password)) < 6 || strlen(trim($password)) > 32) {
return app('json')->fail(400762);
}
$this->validate(['account' => $account, 'pwd' => $password], \app\adminapi\validate\setting\SystemAdminValidata::class, 'get');
$result = $this->services->login($account, $password, 'admin', $key);
if (!$result) {
$num = CacheService::get('login_captcha',1);
$num = CacheService::get('login_captcha', 1);
if ($num > 1) {
return app('json')->fail(400140, ['login_captcha' => 1]);
}

File diff suppressed because one or more lines are too long

View File

@ -60,7 +60,7 @@ class AgentManage extends AuthController
public function get_badge()
{
$where = $this->request->getMore([
['data', ''],
['data', '', '', 'time'],
['nickname', ''],
]);
return app('json')->success(['res' => $this->services->getSpreadBadge($where)]);

View File

@ -121,19 +121,24 @@ class Division extends AuthController
* 保存代理商
* @param UserServices $userServices
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function divisionAgentSave(UserServices $userServices)
{
$data = $this->request->postMore([
['division_id', 0],
['uid', 0],
['division_percent', 0],
['division_end_time', ''],
['division_status', 1],
['edit', 0],
]);
$userInfo = $userServices->get((int)$data['uid']);
$userInfo = $userServices->count(['uid' => (int)$data['uid']]);
if (!$userInfo) throw new AdminException(100100);
$data['division_id'] = $this->adminInfo['division_id'];
$divisionUserInfo = $userServices->count(['uid' => (int)$data['division_id'], 'is_division' => 1, 'division_id' => $data['division_id']]);
if (!$divisionUserInfo) throw new AdminException(100100);
$this->services->divisionAgentSave($data);
return app('json')->success(100000);
}

View File

@ -10,9 +10,9 @@
// +----------------------------------------------------------------------
namespace app\adminapi\controller\v1\notification\sms;
use app\services\system\config\SystemConfigServices;
use app\services\yihaotong\SmsAdminServices;
use app\services\serve\ServeServices;
use crmeb\services\CacheService;
use app\adminapi\controller\AuthController;
use think\facade\App;
@ -64,7 +64,8 @@ class SmsConfig extends AuthController
*/
public function is_login(ServeServices $services)
{
$sms_info = CacheService::get('sms_account');
$configServices = app()->make(SystemConfigServices::class);
$sms_info = $configServices->cacheDriver()->get('sms_account');
$data = ['status' => false, 'info' => ''];
if ($sms_info) {
try {
@ -80,14 +81,14 @@ class SmsConfig extends AuthController
}
return app('json')->success($data);
} else {
CacheService::clear();
$configServices->cacheDriver()->clear();
$account = sys_config('sms_account');
$password = sys_config('sms_token');
//没有退出登录 清空这两个数据 自动登录
if ($account && $password) {
$res = $services->user()->login($account, $password);
if ($res) {
CacheService::set('sms_account', $account);
$configServices->cacheDriver()->set('sms_account', $account);
$data['status'] = true;
$data['info'] = $account;
}
@ -103,9 +104,10 @@ class SmsConfig extends AuthController
*/
public function logout()
{
CacheService::delete('sms_account');
$configServices = app()->make(SystemConfigServices::class);
$configServices->cacheDriver()->delete('sms_account');
$this->services->updateSmsConfig('', '');
CacheService::clear();
$configServices->cacheDriver()->clear();
return app('json')->success(100042);
}

View File

@ -254,8 +254,7 @@ class StoreOrder extends AuthController
['fictitious_content', '']//虚拟发货内容
]);
$services->delivery((int)$id, $data);
return app('json')->success(100010);
return app('json')->success(100010, $services->delivery((int)$id, $data));
}
/**
@ -763,8 +762,45 @@ class StoreOrder extends AuthController
*/
public function order_dump($order_id, StoreOrderDeliveryServices $storeOrderDeliveryServices)
{
return app('json')->success($storeOrderDeliveryServices->orderDump($order_id));
$storeOrderDeliveryServices->orderDump($order_id);
return app('json')->success(400121);
}
/**
* 获取快递信息
* @param ServeServices $services
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/5/15
*/
public function getKuaidiComs(ServeServices $services)
{
return app('json')->success($services->express()->getKuaidiComs());
}
/**
* 取消商家寄件
* @param $id
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/5/15
*/
public function shipmentCancelOrder($id)
{
if (!$id) {
return app('json')->fail('缺少参数');
}
$msg = $this->request->post('msg', '');
if (!$msg) {
return app('json')->fail('请填写取消寄件原因');
}
if ($this->services->shipmentCancelOrder((int)$id, $msg)) {
return app('json')->success('取消成功');
} else {
return app('json')->fail('取消失败');
}
}
}

View File

@ -80,4 +80,21 @@ class Export extends AuthController
}
return app('json')->success(['isOpen' => $res]);
}
/**
* @param ServeServices $services
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/5/15
*/
public function getShipmentOrderList(ServeServices $services)
{
$where = $this->request->getMore([
['page', 1],
['limit', 10],
]);
return app('json')->success($services->express()->getShipmentOrderList($where));
}
}

View File

@ -133,11 +133,24 @@ class SystemCity extends AuthController
*/
public function clean_cache()
{
$res = CacheService::delete('CITY_LIST');
if ($res) {
$res1 = CacheService::delete('CITY_LIST');
$res2 = CacheService::delete('CITY_FULL_LIST');
if ($res1 && $res2) {
return app('json')->success(400185);
} else {
return app('json')->fail(400186);
}
}
/**
* 获取城市数据完整列表
* @return \think\Response
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/10
*/
public function fullList()
{
return app('json')->success($this->services->fullList('parent_id,name as label,city_id as value'));
}
}

View File

@ -12,9 +12,9 @@ namespace app\adminapi\controller\v1\setting;
use app\adminapi\controller\AuthController;
use app\Request;
use app\services\order\StoreOrderServices;
use app\services\system\config\SystemConfigServices;
use app\services\system\config\SystemConfigTabServices;
use crmeb\services\easywechat\orderShipping\MiniOrderService;
use think\facade\App;
/**
@ -38,8 +38,10 @@ class SystemConfig extends AuthController
/**
* 显示资源列表
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function index()
{
@ -58,8 +60,11 @@ class SystemConfig extends AuthController
/**
* 显示创建资源表单页.
* @param $type
* @return \think\Response
* @throws \FormBuilder\Exception\FormBuilderException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function create()
{
@ -72,7 +77,6 @@ class SystemConfig extends AuthController
/**
* 保存新建的资源
*
* @return \think\Response
*/
public function save()
@ -120,7 +124,7 @@ class SystemConfig extends AuthController
} else {
$this->services->save($data);
}
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(400284);
}
@ -186,13 +190,12 @@ class SystemConfig extends AuthController
}
$data['value'] = json_encode($data['value']);
$this->services->update($id, $data);
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(100001);
}
/**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
@ -201,7 +204,7 @@ class SystemConfig extends AuthController
if (!$this->services->delete($id))
return app('json')->fail(100008);
else {
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(100002);
}
}
@ -218,7 +221,7 @@ class SystemConfig extends AuthController
return app('json')->fail(100100);
}
$this->services->update($id, ['status' => $status]);
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(100014);
}
@ -311,15 +314,6 @@ class SystemConfig extends AuthController
return app('json')->fail(500029);
}
//支付接口类型选择,如果有订单就不能再进行切换
// if (isset($post['pay_wechat_type'])) {
// /** @var StoreOrderServices $orderServices */
// $orderServices = app()->make(StoreOrderServices::class);
// if ($post['pay_wechat_type'] != -1 && $orderServices->count()) {
// return app('json')->fail('支付接口类型已经选择,不能再次进行切换,切换后会导致无法退款等问题。');
// }
// }
if (isset($post['weixin_ckeck_file'])) {
$from = public_path() . $post['weixin_ckeck_file'];
$to = public_path() . array_reverse(explode('/', $post['weixin_ckeck_file']))[0];
@ -334,9 +328,13 @@ class SystemConfig extends AuthController
@copy($from, $toHome);
@copy($from, $toPublic);
}
if(isset($post['reward_integral']) || isset($post['reward_money'])) {
if($post['reward_integral'] < 0 || $post['reward_money'] < 0) return app('json')->fail(400558);
if (isset($post['reward_integral']) || isset($post['reward_money'])) {
if ($post['reward_integral'] < 0 || $post['reward_money'] < 0) return app('json')->fail(400558);
}
// if (isset($post['order_shipping_open']) && $post['order_shipping_open'] == 1 && isset($post['order_shipping_url'])) {
// MiniOrderService::setMesJumpPathAndCheck($post['order_shipping_url']);
// }
foreach ($post as $k => $v) {
$config_one = $this->services->getOne(['menu_name' => $k]);
if ($config_one) {
@ -345,7 +343,7 @@ class SystemConfig extends AuthController
$this->services->update($k, ['value' => json_encode($v)], 'menu_name');
}
}
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(100001);
}

View File

@ -0,0 +1,675 @@
<?php
/**
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* | Author: CRMEB Team <admin@crmeb.com>
* +----------------------------------------------------------------------
*/
namespace app\adminapi\controller\v1\setting;
use app\adminapi\controller\AuthController;
use app\Request;
use app\services\system\log\SystemFileServices;
use app\services\system\SystemCrudServices;
use app\services\system\SystemMenusServices;
use crmeb\services\CacheService;
use crmeb\services\crud\Make;
use crmeb\services\FileService;
use crmeb\utils\Terminal;
use think\facade\App;
use think\helper\Str;
use think\Response;
/**
* Class SystemCrud
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
* @package app\adminapi\controller\v1\setting
*/
class SystemCrud extends AuthController
{
/**
* SystemCrud constructor.
* @param App $app
* @param SystemCrudServices $services
*/
public function __construct(App $app, SystemCrudServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/11
*/
public function index()
{
return app('json')->success($this->services->getList());
}
/**
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/11
*/
public function save($id = 0)
{
$data = $this->request->postMore([
['pid', 0],//上级菜单id
['menuName', ''],//菜单名
['tableName', ''],//表名
['modelName', ''],//模块名称
['tableComment', ''],//表备注
['tableField', []],//表字段
['tableIndex', []],//索引
['filePath', []],//生成文件位置
['isTable', 0],//是否生成表
['deleteField', []],//删除的表字段
]);
$fromField = $columnField = [];
foreach ($data['tableField'] as $item) {
//判断字段长度
if (in_array($item['field_type'], ['datetime', 'timestamp', 'time', 'date', 'year']) && $item['limit'] > 6) {
return app('json')->fail('字段' . $item['field'] . '长度不能大于6');
}
//收集列表展示数据
if ($item['is_table'] && !in_array($item['field_type'], ['primaryKey', 'addSoftDelete', 'addSoftDelete'])) {
if (isset($item['primaryKey']) && !$item['primaryKey']) {
$columnField[] = [
'field' => $item['field'],
'name' => $item['table_name'],
'type' => $item['from_type'],
];
}
}
//收集表单展示数据
if ($item['from_type']) {
$name = $item['table_name'] ?: $item['comment'];
$option = $item['options'] ?? [];
if (!$name) {
return app('json')->fail(500048, [], ['field' => $item['field']]);
}
if (!$option && in_array($item['from_type'], ['radio', 'select'])) {
return app('json')->fail('表单类型为radio或select时,options字段不能为空');
}
$fromField[] = [
'field' => $item['field'],
'type' => $item['from_type'],
'name' => $name,
'required' => $item['required'],
'option' => $option,
];
}
}
if (!$fromField) {
return app('json')->fail(500046);
}
if (!$columnField) {
return app('json')->fail(500047);
}
$data['fromField'] = $fromField;
$data['columnField'] = $columnField;
if (!$data['tableName']) {
return app('json')->fail(500042);
}
$this->services->createCrud($id, $data);
return app('json')->success(500043);
}
/**
* 获取创建文件的目录存放位置
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/11
*/
public function getFilePath()
{
[$tableName] = $this->request->postMore([
['tableName', ''],
], true);
if (!$tableName) {
return app('json')->fail(500042);
}
if (in_array($tableName, SystemCrudServices::NOT_CRUD_TABANAME)) {
return app('json')->fail(500041);
}
$routeName = 'crud/' . Str::snake($tableName);
$key = 'id';
$tableField = [];
$field = $this->services->getColumnNamesList($tableName);
foreach ($field as $item) {
if ($item['primaryKey']) {
$key = $item['name'];
}
$tableField[] = [
'field' => $item['name'],
'field_type' => $item['type'],
'primaryKey' => (bool)$item['primaryKey'],
'default' => $item['default'],
'limit' => $item['limit'],
'comment' => $item['comment'],
'required' => false,
'is_table' => false,
'table_name' => '',
'from_type' => '',
];
}
$make = $this->services->makeFile($tableName, $routeName, false, [
'menuName' => '',
'key' => $key,
'fromField' => [],
'columnField' => [],
]);
$makePath = [];
foreach ($make as $k => $item) {
$makePath[$k] = $item['path'];
}
return app('json')->success(compact('makePath', 'tableField'));
}
/**
* @param $id
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/12
*/
public function read($id)
{
if (!$id) {
return app('json')->fail(500035);
}
$info = $this->services->get($id);
if (!$info) {
return app('json')->fail(100026);
}
$routeName = 'crud/' . Str::snake($info->table_name);
$column = $this->services->getColumnNamesList($info->table_name);
$key = 'id';
foreach ($column as $value) {
if ($value['primaryKey']) {
$key = $value['name'];
break;
}
}
$softDelete = false;
foreach ((array)$info->field['tableField'] as $item) {
if (isset($item['field_type']) && $item['field_type'] === 'addSoftDelete') {
$softDelete = true;
break;
}
}
$make = $this->services->makeFile($info->table_name, $routeName, false, [
'menuName' => $info->name,
'modelName' => $info->model_name,
'key' => $key,
'softDelete' => $softDelete,
'fromField' => $info->field['fromField'] ?? [],
'columnField' => $info->field['columnField'] ?? [],
]);
$data = [];
foreach ($make as $key => $item) {
if (in_array($key, ['pages', 'router', 'api'])) {
$path = Make::adminTemplatePath() . $item['path'];
} else {
$path = app()->getRootPath() . $item['path'];
}
$item['name'] = $item['path'];
try {
$item['content'] = file_get_contents($path, LOCK_EX);
$data[$key] = $item;
} catch (\Throwable $e) {
}
}
//调整排序
$makeData = [];
$names = [
'controller' => '控制器',
'validate' => '验证器',
'service' => '逻辑层',
'dao' => '数据库操作',
'model' => '模型层',
'route' => '后端路由',
'router' => '前端路由',
'api' => '前端接口',
'pages' => '前端页面'
];
foreach ($names as $name => $value) {
if (isset($data[$name])) {
$data[$name]['file_name'] = $value;
$makeData[] = $data[$name];
}
}
$data = $makeData;
$info = $info->toArray();
//记录没有修改之前的数据
foreach ((array)$info['field']['tableField'] as $key => $item) {
$item['default_field'] = $item['field'];
$item['default_limit'] = $item['limit'];
$item['default_field_type'] = $item['field_type'];
$item['default_comment'] = $item['comment'];
$item['default_default'] = $item['default'];
$item['is_table'] = !!$item['is_table'];
$item['required'] = !!$item['required'];
$item['primaryKey'] = isset($item['primaryKey']) ? (int)$item['primaryKey'] : 0;
$info['field']['tableField'][$key] = $item;
}
//对比数据库,是否有新增字段
$newColumn = [];
$fieldAll = array_column($info['field']['tableField'], 'field');
foreach ($column as $value) {
if (!in_array($value['name'], $fieldAll)) {
$newColumn[] = [
'field' => $value['name'],
'field_type' => $value['type'],
'primaryKey' => $value['primaryKey'] ? 1 : 0,
'default' => $value['default'],
'limit' => $value['limit'],
'comment' => $value['comment'],
'required' => '',
'is_table' => '',
'table_name' => '',
'from_type' => '',
'default_field' => $value['name'],
'default_limit' => $value['limit'],
'default_field_type' => $value['type'],
'default_comment' => $value['comment'],
'default_default' => $value['default'],
];
}
}
if ($newColumn) {
$info['field']['tableField'] = array_merge($newColumn, $info['field']['tableField']);
}
$keyInfo = $deleteInfo = $createInfo = $updateInfo = [];
$tableField = [];
foreach ($info['field']['tableField'] as $item) {
if ($item['primaryKey']) {
$keyInfo = $item;
continue;
}
if ($item['field_type'] == 'timestamp' && $item['field'] === 'delete_time') {
$deleteInfo = $item;
continue;
}
if ($item['field_type'] == 'timestamp' && $item['field'] === 'create_time') {
$createInfo = $item;
continue;
}
if ($item['field_type'] == 'timestamp' && $item['field'] === 'update_time') {
$updateInfo = $item;
continue;
}
$tableField[] = $item;
}
if ($keyInfo) {
array_unshift($tableField, $keyInfo);
}
if ($createInfo) {
array_push($tableField, $createInfo);
}
if ($updateInfo) {
array_push($tableField, $updateInfo);
}
if ($deleteInfo) {
array_push($tableField, $deleteInfo);
}
$info['field']['tableField'] = $tableField;
$info['field']['pid'] = (int)$info['field']['pid'];
return app('json')->success(['file' => $data, 'crudInfo' => $info]);
}
/**
* @param Request $request
* @param SystemFileServices $service
* @param $id
* @return Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/24
*/
public function savefile(Request $request, SystemFileServices $service, $id)
{
$comment = $request->param('comment');
$filepath = $request->param('filepath');
$pwd = $request->param('pwd');
if ($pwd == '') {
return app('json')->fail('请输入文件管理密码');
}
if (config('filesystem.password') != $pwd) {
return app('json')->fail('文件管理密码错误');
}
if (empty($filepath) || !$id) {
return app('json')->fail(410087);
}
$crudInfo = $this->services->get($id, ['make_path']);
if (!$crudInfo) {
return app('json')->fail('修改的CRUD文件不存在');
}
$makeFilepath = '';
foreach ($crudInfo->make_path as $key => $item) {
$path = $item;
if (in_array($key, ['pages', 'router', 'api'])) {
$item = Make::adminTemplatePath() . $item;
} else {
$item = app()->getRootPath() . $item;
}
if ($filepath == $path) {
$makeFilepath = $item;
break;
}
}
if (!$makeFilepath || !in_array($filepath, $crudInfo->make_path)) {
return app('json')->fail('您没有权限修改此文件');
}
$res = $service->savefile($makeFilepath, $comment);
if ($res) {
return app('json')->success(100000);
} else {
return app('json')->fail(100006);
}
}
/**
* 获取tree菜单
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/11
*/
public function getMenus()
{
return app('json')->success(app()->make(SystemMenusServices::class)
->getList(['auth_type' => 1, 'is_show' => 1], ['auth_type', 'pid', 'id', 'menu_name as label', 'id as value']));
}
/**
* 获取创建表数据类型
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/11
*/
public function columnType()
{
return app('json')->success($this->services->getTabelRule());
}
/**
* @param SystemMenusServices $services
* @param $id
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/11
*/
public function delete(SystemMenusServices $services, $id)
{
if (!$id) {
return app('json')->fail(500035);
}
$info = $this->services->get($id);
if (!$info) {
return app('json')->fail(100026);
}
$services->transaction(function () use ($services, $info) {
if ($info->menu_ids) {
$services->deleteMenus($info->menu_ids);
}
$info->delete();
});
if ($info->make_path) {
$errorFile = [];
foreach ($info->make_path as $key => $item) {
if (in_array($key, ['pages', 'router', 'api'])) {
$item = Make::adminTemplatePath() . $item;
} else {
$item = app()->getRootPath() . $item;
}
try {
unlink($item);
} catch (\Throwable $e) {
$errorFile[] = $item;
}
}
if ($errorFile) {
return app('json')->success(500040, [], [
'message' => '文件:' . implode("\n", $errorFile) . ';无法被删除!'
]);
}
}
return app('json')->success(100002);
}
/**
* 下载文件
* @param $id
* @return Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/15
*/
public function download($id)
{
if (!$id) {
return app('json')->fail(500035);
}
$info = $this->services->get($id);
if (!$info) {
return app('json')->fail(100026);
}
$zipPath = app()->getRootPath() . 'backup' . DS . Str::camel($info->table_name);
$zipName = app()->getRootPath() . 'backup' . DS . Str::camel($info->table_name) . '.zip';
if (is_file($zipName)) {
unlink($zipName);
}
$makePath = $info->make_path ?? [];
foreach ($makePath as $key => $item) {
if (in_array($key, ['pages', 'router', 'api'])) {
$item = $zipPath . str_replace(dirname(app()->getRootPath()), '', Make::adminTemplatePath()) . $item;
} else {
$item = $zipPath . DS . $item;
}
$makePath[$key] = $item;
}
$routeName = 'crud/' . Str::snake($info->table_name);
$column = $this->services->getColumnNamesList($info->table_name);
$key = 'id';
foreach ($column as $value) {
if ($value['primaryKey']) {
$key = $value['name'];
break;
}
}
$softDelete = false;
foreach ((array)$info->field['tableField'] as $item) {
if (isset($item['field_type']) && $item['field_type'] === 'addSoftDelete') {
$softDelete = true;
break;
}
}
$this->services->makeFile($info->table_name, $routeName, true, [
'menuName' => $info->name,
'key' => $key,
'softDelete' => $softDelete,
'fromField' => $info->field['fromField'] ?? [],
'columnField' => $info->field['columnField'] ?? [],
], $makePath, $zipPath);
if (!extension_loaded('zip')) {
return app('json')->fail(500039);
}
$fileService = new FileService();
$fileService->addZip($zipPath, $zipName, app()->getRootPath() . 'backup');
$key = md5($zipName);
CacheService::set($key, [
'path' => $zipName,
'fileName' => Str::camel($info->table_name) . '.zip',
], 300);
return app('json')->success(['download_url' => sys_config('site_url') . '/adminapi/download/' . $key]);
}
/**
* 获取权限路由
* @param $tableName
* @return Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/20
*/
public function getRouteList($tableName)
{
$info = $this->services->get(['table_name' => $tableName]);
if (!$info) {
return app('json')->fail('crud详情查询失败');
}
$routeList = app()->make(SystemMenusServices::class)->getColumn([
['id', 'in', $info->menu_ids],
['auth_type', '=', 2]
], 'methods,api_url');
$newRoute = [];
foreach ($routeList as $item) {
if ($item['methods'] == 'GET') {
if (strstr($item['api_url'], 'create')) {
$newRoute['create'] = $item['api_url'];
} else if (strstr($item['api_url'], 'edit')) {
$newRoute['edit'] = $item['api_url'];
} else {
$newRoute['index'] = $item['api_url'];
}
} else if ($item['methods'] == 'DELETE') {
$newRoute['delete'] = $item['api_url'];
}
}
$column = $this->services->getColumnNamesList($info->table_name);
$key = 'id';
foreach ($column as $value) {
if ($value['primaryKey']) {
$key = $value['name'];
break;
}
}
$columns = [
[
'title' => 'ID',
'key' => $key,
'from_type' => '',
]
];
foreach ((array)$info->field['tableField'] as $item) {
if (isset($item['primaryKey']) && $item['primaryKey']) {
continue;
}
if (isset($item['is_table']) && $item['is_table']) {
if (in_array($item['from_type'], ['frameImageOne', 'frameImages'])) {
$keyName = 'slot';
} else {
$keyName = 'key';
}
$columns[] = [
'title' => $item['table_name'] ?: $item['comment'],
$keyName => $item['field'],
'from_type' => $item['from_type'],
];
}
}
$route = $newRoute;
return app('json')->success(compact('key', 'route', 'columns'));
}
/**
* @return string
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/14
*/
public function npm()
{
$terminal = new Terminal();
$adminPath = $terminal->adminTemplatePath();
$adminPath = dirname($adminPath);
try {
$dir = $adminPath . DS . 'node_modules';
if (!is_dir($dir)) {
// $terminal->run('npm-install');
}
// $res = $terminal->run('npm-build');
} catch (\Throwable $e) {
$terminal->echoOutputFlag($e->getMessage());
}
if (!is_dir($adminPath . DS . 'dist')) {
echo Response::create([
'message' => '打包失败',
], 'json')->getContent();
}
$build = public_path() . config('app.admin_prefix');
// $this->app->make(FileService::class)->copyDir($adminPath . DS . 'dist', $build);
// echo $res;
}
}

View File

@ -13,6 +13,8 @@ namespace app\adminapi\controller\v1\setting;
use app\adminapi\controller\AuthController;
use app\services\system\SystemMenusServices;
use app\services\system\SystemRouteCateServices;
use app\services\system\SystemRouteServices;
use think\facade\App;
use think\facade\Route;
@ -38,16 +40,39 @@ class SystemMenus extends AuthController
/**
* 菜单展示列表
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/05/06
*/
public function index()
{
$where = $this->request->getMore([
['is_show', ''],
['keyword', ''],
['auth_type', ''],
]);
return app('json')->success($this->services->getList($where));
}
/**
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/14
*/
public function unique()
{
$adminInfo = $this->request->adminInfo();
[$menus, $uniqueAuth] = app()->make(SystemMenusServices::class)->getMenusList($adminInfo['roles'], (int)$adminInfo['level']);
return app('json')->success(compact('menus', 'uniqueAuth'));
}
/**
* 显示创建资源表单页.
*
@ -97,6 +122,73 @@ class SystemMenus extends AuthController
}
}
/**
* 批量保存权限
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/11
*/
public function batchSave()
{
$menus = $this->request->post('menus', []);
if (!$menus) {
return app('json')->fail(100026);
}
$data = [];
$uniqueAuthAll = $this->services->getColumn(['is_del' => 0, 'is_show' => 1], 'unique_auth');
$uniqueAuthAll = array_filter($uniqueAuthAll, function ($item) {
return !!$item;
});
$uniqueAuthAll = array_unique($uniqueAuthAll);
$uniqueFn = function ($path) use ($uniqueAuthAll) {
$attPath = explode('/', $path);
$uniqueAuth = '';
if ($attPath) {
$pathData = [];
foreach ($attPath as $vv) {
if (strstr($vv, '<') === false) {
$pathData[] = $vv;
}
}
$uniqueAuth = implode('-', $pathData);
}
if (in_array($uniqueAuth, $uniqueAuthAll)) {
$uniqueAuth .= '-' . uniqid();
}
array_push($uniqueAuthAll, $uniqueAuth);
return $uniqueAuth;
};
foreach ($menus as $menu) {
if (empty($menu['menu_name'])) {
return app('json')->fail(400198);
}
if (isset($menu['unique_auth']) && $menu['unique_auth']) {
$menu['unique_auth'] = explode('/', $menu['api_url']);
}
$data[] = [
'methods' => $menu['method'],
'menu_name' => $menu['menu_name'],
'unique_auth' => !empty($menu['unique_auth']) ? $menu['unique_auth'] : $uniqueFn($menu['api_url']),
'api_url' => $menu['api_url'],
'pid' => $menu['path'],
'auth_type' => 2,
'is_show' => 1,
'is_show_path' => 1,
];
}
$this->services->saveAll($data);
return app('json')->success(100021);
}
/**
* 获取一条菜单权限信息
* @param int $id
@ -183,7 +275,7 @@ class SystemMenus extends AuthController
}
/**
* 显示和隐藏
* 权限的开启和关闭,显示和隐藏
* @param $id
* @return mixed
*/
@ -193,9 +285,14 @@ class SystemMenus extends AuthController
return app('json')->fail(100100);
}
[$show] = $this->request->postMore([['is_show', 0]], true);
[$isShow, $isShowPath] = $this->request->postMore([['is_show', 0], ['is_show_path', 0]], true);
if ($isShow == -1) {
$res = $this->services->update($id, ['is_show_path' => $isShowPath]);
} else {
$res = $this->services->update($id, ['is_show' => $isShow, 'is_show_path' => $isShow]);
}
if ($this->services->update($id, ['is_show' => $show])) {
if ($res) {
return app('json')->success(100001);
} else {
return app('json')->fail(100007);
@ -215,26 +312,28 @@ class SystemMenus extends AuthController
return app('json')->success(['menus' => $menus, 'unique' => $unique]);
}
/**
* 获取路由分类
* @param SystemRouteCateServices $service
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/25
*/
public function ruleCate(SystemRouteCateServices $service)
{
return app('json')->success($service->getAllList('adminapi'));
}
/**
* 获取接口列表
* @return array
*/
public function ruleList()
public function ruleList(SystemRouteServices $services)
{
$cateId = request()->get('cate_id', 0);
//获取所有的路由
$ruleList = Route::getRuleList();
$menuApiList = $this->services->getColumn(['auth_type' => 2, 'is_del' => 0], "concat(`api_url`,'_',lower(`methods`)) as rule");
if ($menuApiList) $menuApiList = array_column($menuApiList, 'rule');
$list = [];
foreach ($ruleList as $item) {
$item['rule'] = str_replace('adminapi/', '', $item['rule']);
if (!in_array($item['rule'] . '_' . $item['method'], $menuApiList)) {
$item['real_name'] = $item['option']['real_name'] ?? '';
unset($item['option']);
$item['method'] = strtoupper($item['method']);
$list[] = $item;
}
}
return app('json')->success($list);
$ruleList = $services->selectList(['cate_id' => $cateId, 'app_name' => 'adminapi'])->toArray();
return app('json')->success($ruleList);
}
}

View File

@ -77,6 +77,7 @@ class SystemRole extends AuthController
if (!$data['role_name']) return app('json')->fail(400220);
if (!is_array($data['rules']) || !count($data['rules']))
return app('json')->fail(400221);
$data['rules'] = implode(',', $data['rules']);
if ($id) {
if (!$this->services->update($id, $data)) return app('json')->fail(100007);

View File

@ -0,0 +1,167 @@
<?php
/**
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* | Author: CRMEB Team <admin@crmeb.com>
* +----------------------------------------------------------------------
*/
namespace app\adminapi\controller\v1\setting;
use app\adminapi\controller\AuthController;
use app\services\system\SystemRouteServices;
use think\facade\App;
/**
* Class SystemRoute
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
* @package app\adminapi\controller\v1\setting
*/
class SystemRoute extends AuthController
{
/**
* SystemRoute constructor.
* @param App $app
* @param SystemRouteServices $services
*/
public function __construct(App $app, SystemRouteServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* 同步路由权限
* @param string $appName
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
public function syncRoute(string $appName = 'adminapi')
{
$this->services->syncRoute($appName);
return app('json')->success(100038);
}
/**
* 列表数据
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/7
*/
public function index()
{
$where = $this->request->getMore([
['name_like', ''],
['app_name', 'adminapi']
]);
return app('json')->success($this->services->getList($where));
}
/**
* tree数据
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/7
*/
public function tree()
{
[$name, $appName] = $this->request->getMore([
['name_like', ''],
['app_name', 'adminapi']
], true);
return app('json')->success($this->services->getTreeList($appName, $name));
}
/**
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/7
*/
public function save($id = 0)
{
$data = $this->request->postMore([
['cate_id', 0],
['name', ''],
['path', ''],
['method', ''],
['type', 0],
['app_name', ''],
['request', []],
['response', []],
['request_example', []],
['response_example', []],
['describe', ''],
]);
if (!$data['name']) {
return app('json')->fail(500031);
}
if (!$data['path']) {
return app('json')->fail(500032);
}
if (!$data['method']) {
return app('json')->fail(500033);
}
if (!$data['app_name']) {
return app('json')->fail(500034);
}
if ($id) {
$this->services->update($id, $data);
} else {
$data['add_time'] = date('Y-m-d H:i:s');
$this->services->save($data);
}
return app('json')->success($id ? 100001 : 100021);
}
/**
* @param $id
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/7
*/
public function read($id)
{
return app('json')->success($this->services->getInfo((int)$id));
}
/**
* @param $id
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/7
*/
public function delete($id)
{
if (!$id) {
return app('json')->fail(500035);
}
$this->services->destroy($id);
return app('json')->success(100002);
}
}

View File

@ -0,0 +1,156 @@
<?php
/**
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* | Author: CRMEB Team <admin@crmeb.com>
* +----------------------------------------------------------------------
*/
namespace app\adminapi\controller\v1\setting;
use app\adminapi\controller\AuthController;
use app\services\system\SystemRouteCateServices;
use app\services\system\SystemRouteServices;
use think\facade\App;
use think\Request;
/**
* Class SystemRouteCate
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
* @package app\adminapi\controller\v1\setting
*/
class SystemRouteCate extends AuthController
{
/**
* SystemRouteCate constructor.
* @param App $app
* @param SystemRouteCateServices $services
*/
public function __construct(App $app, SystemRouteCateServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
public function index()
{
return app('json')->success($this->services->getAllList());
}
/**
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
public function create()
{
return app('json')->success($this->services->getFrom(0, $this->request->get('app_name', 'adminapi')));
}
/**
* @param Request $request
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
public function save(Request $request)
{
$data = $request->postMore([
['path', []],
['name', ''],
['sort', 0],
['app_name', ''],
]);
if (!$data['name']) {
return app('json')->fail(500037);
}
$data['add_time'] = time();
$data['pid'] = $data['path'][count($data['path']) - 1] ?? 0;
$this->services->save($data);
return app('json')->success(100000);
}
/**
* @param $id
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
public function edit($id)
{
return app('json')->success($this->services->getFrom($id, $this->request->get('app_name', 'adminapi')));
}
/**
* @param Request $request
* @param $id
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
public function update(Request $request, $id)
{
$data = $request->postMore([
['path', []],
['name', ''],
['sort', 0],
['app_name', ''],
]);
if (!$data['name']) {
return app('json')->fail(500037);
}
$data['pid'] = $data['path'][count($data['path']) - 1] ?? 0;
$this->services->update($id, $data);
return app('json')->success(100001);
}
/**
* @param SystemRouteServices $service
* @param $id
* @return \think\Response
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
public function delete(SystemRouteServices $service, $id)
{
if (!$id) {
return app('json')->fail(500035);
}
if ($service->count(['cate_id' => $id])) {
return app('json')->fail(500038);
}
$this->services->delete($id);
return app('json')->success(100002);
}
}

View File

@ -0,0 +1,72 @@
<?php
namespace app\adminapi\controller\v1\statistic;
use app\adminapi\controller\AuthController;
use app\services\user\UserMoneyServices;
use think\facade\App;
class BalanceStatistic extends AuthController
{
/**
* @param App $app
* @param UserMoneyServices $services
*/
public function __construct(App $app, UserMoneyServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* 余额统计基础信息
* @return mixed
*/
public function getBasic()
{
$where = $this->request->getMore([
['time', '']
]);
$data = $this->services->getBasic($where);
return app('json')->success($data);
}
/**
* 余额统计趋势图
* @return mixed
*/
public function getTrend()
{
$where = $this->request->getMore([
['time', '']
]);
$data = $this->services->getTrend($where);
return app('json')->success($data);
}
/**
* 余额来源
* @return mixed
*/
public function getChannel()
{
$where = $this->request->getMore([
['time', '']
]);
$data = $this->services->getChannel($where);
return app('json')->success($data);
}
/**
* 余额类型
* @return mixed
*/
public function getType()
{
$where = $this->request->getMore([
['time', '']
]);
$data = $this->services->getType($where);
return app('json')->success($data);
}
}

View File

@ -0,0 +1,68 @@
<?php
namespace app\adminapi\controller\v1\statistic;
use app\adminapi\controller\AuthController;
use app\services\statistic\OrderStatisticServices;
use think\facade\App;
class OrderStatistic extends AuthController
{
public function __construct(App $app, OrderStatisticServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* 订单统计基础信息
* @return mixed
*/
public function getBasic()
{
$where = $this->request->getMore([
['time', '']
]);
$data = $this->services->getBasic($where);
return app('json')->success($data);
}
/**
* 订单统计趋势图
* @return mixed
*/
public function getTrend()
{
$where = $this->request->getMore([
['time', '']
]);
$data = $this->services->getTrend($where);
return app('json')->success($data);
}
/**
* 订单来源
* @return mixed
*/
public function getChannel()
{
$where = $this->request->getMore([
['time', '']
]);
$data = $this->services->getChannel($where);
return app('json')->success($data);
}
/**
* 订单类型
* @return mixed
*/
public function getType()
{
$where = $this->request->getMore([
['time', '']
]);
$data = $this->services->getType($where);
return app('json')->success($data);
}
}

View File

@ -0,0 +1,106 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\adminapi\controller\v1\statistic;
use app\adminapi\controller\AuthController;
use app\services\statistic\ProductStatisticServices;
use think\facade\App;
/**
* Class ProductStatistic
* @package app\adminapi\controller\v1\statistic
*/
class ProductStatistic extends AuthController
{
/**
* ProductStatistic constructor.
* @param App $app
* @param ProductStatisticServices $services
*/
public function __construct(App $app, ProductStatisticServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* 商品基础
* @return mixed
*/
public function getBasic()
{
$where = $this->request->getMore([
['data', '', '', 'time']
]);
return app('json')->success($this->services->getBasic($where));
}
/**
* 商品趋势
* @return mixed
*/
public function getTrend()
{
$where = $this->request->getMore([
['data', '', '', 'time']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getTrend($where));
}
/**
* 商品排行
* @return mixed
*/
public function getProductRanking()
{
$where = $this->request->getMore([
['data', '', '', 'time'],
['sort', '']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getProductRanking($where));
}
/**
* 导出
* @return mixed
*/
public function getExcel()
{
$where = $this->request->getMore([
['data', '', '', 'time']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getTrend($where, true));
}
/**
* 格式化时间
* @param $time
* @return string
*/
public function getDay($time)
{
if (strstr($time, '-') !== false) {
[$startTime, $endTime] = explode('-', $time);
if (!$startTime || !$endTime) {
return date("Y/m/d 00:00:00", strtotime("-30 days", time())) . '-' . date("Y/m/d 23:59:59", time());
} else {
return date('Y/m/d 00:00:00', strtotime($startTime)).'-'.date('Y/m/d 23:59:59', strtotime($endTime));
}
} else {
return date("Y/m/d 00:00:00", strtotime("-30 days", time())) . '-' . date("Y/m/d 23:59:59", time());
}
}
}

View File

@ -0,0 +1,74 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\adminapi\controller\v1\statistic;
use app\adminapi\controller\AuthController;
use app\services\statistic\TradeStatisticServices;
use think\facade\App;
/**
* Class TradeStatistic
* @package app\controller\admin\v1\statistic
*/
class TradeStatistic extends AuthController
{
/**
* TradeStatistic constructor.
* @param App $app
* @param TradeStatisticServices $services
*/
public function __construct(App $app, TradeStatisticServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* 顶部数据
* @return mixed
*/
public function topTrade()
{
$leftToday = $this->services->getTopLeftTrade(['time' => 'today']);
$leftyestoday = $this->services->getTopLeftTrade(['time' => 'yestoday']);
$rightOne = $this->services->getTopRightOneTrade();
$rightTwo = $this->services->getTopRightTwoTrade();
$right = ['today' => $rightOne, 'month' => $rightTwo];
$totalleft = [$leftToday, $leftyestoday];
$left = [];
foreach ($totalleft as $k => $v) {
$left['name'] = "当日订单金额";
$left['x'] = $v['curve']['x'];
$left['series'][$k]['money'] = round($v['total_money'], 2);
$left['series'][$k]['value'] = array_values($v['curve']['y']);
}
$data['left'] = $left;
$data['right'] = $right;
return app('json')->success($data);
}
/**
* 底部数据
* @return mixed
*/
public function bottomTrade()
{
$day = $this->request->getMore([
['data', ""],
]);
$bottom = $this->services->getBottomTrade($day);
return app('json')->success($bottom);
}
}

View File

@ -0,0 +1,152 @@
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\adminapi\controller\v1\statistic;
use app\adminapi\controller\AuthController;
use app\services\statistic\UserStatisticServices;
use think\facade\App;
/**
* Class UserStatistic
* @package app\adminapi\controller\v1\statistic
*/
class UserStatistic extends AuthController
{
/**
* UserStatistic constructor.
* @param App $app
* @param UserStatisticServices $services
*/
public function __construct(App $app, UserStatisticServices $services)
{
parent::__construct($app);
$this->services = $services;
}
/**
* 用户基础信息
* @return mixed
*/
public function getBasic()
{
$where = $this->request->getMore([
['channel_type', ''],
['data', '', '', 'time']
]);
return app('json')->success($this->services->getBasic($where));
}
/**
* 用户趋势
* @return mixed
*/
public function getTrend()
{
$where = $this->request->getMore([
['channel_type', ''],
['data', '', '', 'time']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getTrend($where));
}
/**
* 微信用户信息
* @return mixed
*/
public function getWechat()
{
$where = $this->request->getMore([
['channel_type', ''],
['data', '', '', 'time']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getWechat($where));
}
/**
* 微信用户趋势
* @return mixed
*/
public function getWechatTrend()
{
$where = $this->request->getMore([
['channel_type', ''],
['data', '', '', 'time']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getWechatTrend($where));
}
/**
* 用户地域
* @return mixed
*/
public function getRegion()
{
$where = $this->request->getMore([
['channel_type', ''],
['data', '', '', 'time'],
['sort', 'allNum']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getRegion($where));
}
/**
* 用户性别
* @return mixed
*/
public function getSex()
{
$where = $this->request->getMore([
['channel_type', ''],
['data', '', '', 'time']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getSex($where));
}
/**
* 用户统计导出
* @return mixed
*/
public function getExcel()
{
$where = $this->request->getMore([
['channel_type', ''],
['data', '', '', 'time']
]);
$where['time'] = $this->getDay($where['time']);
return app('json')->success($this->services->getTrend($where, true));
}
/**
* 格式化时间
* @param $time
* @return string
*/
public function getDay($time)
{
if (strstr($time, '-') !== false) {
[$startTime, $endTime] = explode('-', $time);
if (!$startTime || !$endTime) {
return date("Y/m/d 00:00:00", strtotime("-30 days", time())) . '-' . date("Y/m/d 23:59:59", time());
} else {
return date('Y/m/d 00:00:00', strtotime($startTime)).'-'.date('Y/m/d 23:59:59', strtotime($endTime));
}
} else {
return date("Y/m/d 00:00:00", strtotime("-30 days", time())) . '-' . date("Y/m/d 23:59:59", time());
}
}
}

View File

@ -11,6 +11,7 @@
namespace app\adminapi\controller\v1\system;
use think\facade\App;
use think\facade\Db;
use think\facade\Session;
use app\adminapi\controller\AuthController;
use app\services\system\SystemDatabackupServices;
@ -53,6 +54,31 @@ class SystemDatabackup extends AuthController
return app('json')->success($this->services->getRead($tablename));
}
/**
* 更新数据表或者表字段备注
* @return \think\Response
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/11
*/
public function updateMark()
{
[$table, $field, $type, $mark, $is_field] = $this->request->postMore([
['table', ''],
['field', ''],
['type', ''],
['mark', ''],
['is_field', 0],
], true);
if ($is_field == 0) {
$sql = "ALTER TABLE $table COMMENT '$mark'";
} else {
$sql = "ALTER TABLE $table MODIFY COLUMN $field $type COMMENT '$mark'";
}
Db::execute($sql);
return app('json')->success(100024);
}
/**
* 优化表
*/

View File

@ -69,7 +69,36 @@ class SystemFile extends AuthController
//打开目录
public function opendir()
{
return app('json')->success($this->services->opendir());
[$dir, $fileDir, $superior] = $this->request->getMore([
['dir', ''],
['filedir', ''],
['superior', ''],
], true);
return app('json')->success($this->services->opendir($dir, $fileDir, $superior));
}
//文件备注
public function fileMark()
{
[$path, $fileToken] = $this->request->postMore([
['path', ''],
['fileToken', ''],
], true);
if ($path == '') return app('json')->fail(100100);
return app('json')->success($this->services->markForm($path, $fileToken));
}
//文件备注保存
public function fileMarkSave()
{
[$full_path, $mark] = $this->request->postMore([
['full_path', ''],
['mark', ''],
], true);
$full_path = $this->request->param('full_path');
if ($full_path == '') return app('json')->fail(100100);
$this->services->fileMarkSave($full_path, $mark);
return app('json')->success(100000);
}
//读取文件

View File

@ -25,21 +25,34 @@ use crmeb\services\CacheService;
*/
class AdminAuthTokenMiddleware implements MiddlewareInterface
{
/**
* @param Request $request
* @param \Closure $next
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/07
*/
public function handle(Request $request, \Closure $next)
{
$authInfo = null;
$token = trim(ltrim($request->header(Config::get('cookie.token_name', 'Authori-zation')), 'Bearer'));
if (!$token) {
$token = trim(ltrim($request->get('token')));
}
/** @var AdminAuthServices $service */
$service = app()->make(AdminAuthServices::class);
$adminInfo = $service->parseToken($token);
Request::macro('isAdminLogin', function () use (&$adminInfo) {
$request->macro('isAdminLogin', function () use (&$adminInfo) {
return !is_null($adminInfo);
});
Request::macro('adminId', function () use (&$adminInfo) {
$request->macro('adminId', function () use (&$adminInfo) {
return $adminInfo['id'];
});
Request::macro('adminInfo', function () use (&$adminInfo) {
$request->macro('adminInfo', function () use (&$adminInfo) {
return $adminInfo;
});

View File

@ -14,66 +14,92 @@ use think\facade\Route;
* 分销管理 相关路由
*/
Route::group('agent', function () {
//推销员列表
Route::get('index', 'v1.agent.AgentManage/index')->option(['real_name' => '分销员列表']);
//修改上级推广人
Route::put('spread', 'v1.agent.AgentManage/editSpread')->option(['real_name' => '修改上级推广人']);
//头部统计
Route::get('statistics', 'v1.agent.AgentManage/get_badge')->option(['real_name' => '分销员列表头部统计']);
//推广人列表
Route::get('stair', 'v1.agent.AgentManage/get_stair_list')->option(['real_name' => '推广人列表']);
//推广人头部统计
// Route::get('stair/statistics', 'v1.agent.AgentManage/get_stair_badge')->option(['real_name' => '推广人头部统计']);
//统计推广订单列表
Route::get('stair/order', 'v1.agent.AgentManage/get_stair_order_list')->option(['real_name' => '推广订单列表']);
//统计推广订单列表头部
// Route::get('stair/order/statistics', 'v1.agent.AgentManage/get_stair_order_badge')->option(['real_name' => '推广订单列表头部']);
//清除上级推广人
Route::put('stair/delete_spread/:uid', 'v1.agent.AgentManage/delete_spread')->option(['real_name' => '清除上级推广人']);
//取消推广资格
Route::put('stair/delete_system_spread/:uid', 'v1.agent.AgentManage/delete_system_spread')->option(['real_name' => '取消推广资格']);
//查看公众号推广二维码
Route::get('look_code', 'v1.agent.AgentManage/look_code')->option(['real_name' => '查看公众号推广二维码']);
//查看小程序推广二维码
Route::get('look_xcx_code', 'v1.agent.AgentManage/look_xcx_code')->option(['real_name' => '查看小程序推广二维码']);
//查看H5推广二维码
Route::get('look_h5_code', 'v1.agent.AgentManage/look_h5_code')->option(['real_name' => '查看H5推广二维码']);
//积分配置编辑表单
Route::get('config/edit_basics', 'v1.setting.SystemConfig/edit_basics')->option(['real_name' => '积分配置编辑表单']);
//积分配置保存数据
Route::post('config/save_basics', 'v1.setting.SystemConfig/save_basics')->option(['real_name' => '积分配置保存数据']);
//分销员等级资源路由
Route::resource('level', 'v1.agent.AgentLevel')->name('AgentLevelResource')->option(['real_name' => '分销员等级']);
//修改分销等级状态
Route::put('level/set_status/:id/:status', 'v1.agent.AgentLevel/set_status')->name('levelSetStatus')->option(['real_name' => '修改分销等级状态']);
//分销员等级任务资源路由
Route::resource('level_task', 'v1.agent.AgentLevelTask')->name('AgentLevelTaskResource')->option(['real_name' => '分销员等级任务']);
//修改分销任务状态
Route::put('level_task/set_status/:id/:status', 'v1.agent.AgentLevelTask/set_status')->name('levelTaskSetStatus')->option(['real_name' => '修改分销等级任务状态']);
//获取赠送分销等级表单
Route::get('get_level_form', 'v1.agent.AgentManage/getLevelForm')->name('getLevelForm')->option(['real_name' => '获取赠送分销等级表单']);
//赠送分销等级
Route::post('give_level', 'v1.agent.AgentManage/giveAgentLevel')->name('giveAgentLevel')->option(['real_name' => '赠送分销等级']);
/** 分销员管理 */
Route::group(function () {
//推销员列表
Route::get('index', 'v1.agent.AgentManage/index')->option(['real_name' => '分销员列表']);
//修改上级推广人
Route::put('spread', 'v1.agent.AgentManage/editSpread')->option(['real_name' => '修改上级推广人']);
//头部统计
Route::get('statistics', 'v1.agent.AgentManage/get_badge')->option(['real_name' => '分销员列表头部统计']);
//推广人列表
Route::get('stair', 'v1.agent.AgentManage/get_stair_list')->option(['real_name' => '推广人列表']);
//统计推广订单列表
Route::get('stair/order', 'v1.agent.AgentManage/get_stair_order_list')->option(['real_name' => '推广订单列表']);
//清除上级推广人
Route::put('stair/delete_spread/:uid', 'v1.agent.AgentManage/delete_spread')->option(['real_name' => '清除上级推广人']);
//取消推广资格
Route::put('stair/delete_system_spread/:uid', 'v1.agent.AgentManage/delete_system_spread')->option(['real_name' => '取消推广资格']);
//查看公众号推广二维码
Route::get('look_code', 'v1.agent.AgentManage/look_code')->option(['real_name' => '查看公众号推广二维码']);
//查看小程序推广二维码
Route::get('look_xcx_code', 'v1.agent.AgentManage/look_xcx_code')->option(['real_name' => '查看小程序推广二维码']);
//查看H5推广二维码
Route::get('look_h5_code', 'v1.agent.AgentManage/look_h5_code')->option(['real_name' => '查看H5推广二维码']);
})->option(['parent' => 'agent', 'cate_name' => '分销员管理']);
/** 分销设置 */
Route::group(function () {
//分销配置编辑表单
Route::get('config/edit_basics', 'v1.setting.SystemConfig/edit_basics')->option(['real_name' => '积分配置编辑表单']);
//分销配置保存数据
Route::post('config/save_basics', 'v1.setting.SystemConfig/save_basics')->option(['real_name' => '积分配置保存数据']);
})->option(['parent' => 'agent', 'cate_name' => '分销设置']);
/** 分销等级 */
Route::group(function () {
//分销员等级资源路由
Route::resource('level', 'v1.agent.AgentLevel')->except(['read'])->name('AgentLevel')->option([
'real_name' => [
'index' => '获取分销员等级列表',
'create' => '获取分销员等级表单',
'save' => '保存分销员等级',
'edit' => '获取修改分销员等级表单',
'update' => '修改分销员等级',
'delete' => '删除分销员等级'
]
]);
//修改分销等级状态
Route::put('level/set_status/:id/:status', 'v1.agent.AgentLevel/set_status')->name('levelSetStatus')->option(['real_name' => '修改分销等级状态']);
//分销员等级任务资源路由
Route::resource('level_task', 'v1.agent.AgentLevelTask')->except(['read'])->option([
'real_name' => [
'index' => '获取分销员等级任务列表',
'create' => '获取分销员等级任务表单',
'save' => '保存分销员等级任务',
'edit' => '获取修改分销员等级任务表单',
'update' => '修改分销员等级任务',
'delete' => '删除分销员等级任务'
]
]);
//修改分销任务状态
Route::put('level_task/set_status/:id/:status', 'v1.agent.AgentLevelTask/set_status')->name('levelTaskSetStatus')->option(['real_name' => '修改分销等级任务状态']);
//获取赠送分销等级表单
Route::get('get_level_form', 'v1.agent.AgentManage/getLevelForm')->name('getLevelForm')->option(['real_name' => '获取赠送分销等级表单']);
//赠送分销等级
Route::post('give_level', 'v1.agent.AgentManage/giveAgentLevel')->name('giveAgentLevel')->option(['real_name' => '赠送分销等级']);
})->option(['parent' => 'agent', 'cate_name' => '分销等级']);
/** 事业部 */
Route::get('division/list', 'v1.agent.Division/divisionList')->name('divisionList')->option(['real_name' => '事业部列表']);//事业部/代理商/员工列表
Route::get('division/down_list', 'v1.agent.Division/divisionDownList')->name('divisionDownList')->option(['real_name' => '下级列表']);//下级列表
Route::get('division/create/:uid', 'v1.agent.Division/divisionCreate')->name('divisionCreate')->option(['real_name' => '添加事业部']);//添加事业部
Route::post('division/save', 'v1.agent.Division/divisionSave')->name('divisionSave')->option(['real_name' => '事业部保存']);//事业部保存
Route::get('division/agent/create/:uid', 'v1.agent.Division/divisionAgentCreate')->name('divisionAgentCreate')->option(['real_name' => '添加事业部']);//添加代理商
Route::post('division/agent/save', 'v1.agent.Division/divisionAgentSave')->name('divisionAgentSave')->option(['real_name' => '事业部保存']);//代理商保存
Route::put('division/set_status/:status/:uid', 'v1.agent.Division/setDivisionStatus')->name('setDivisionStatus')->option(['real_name' => '状态切换']);//状态切换
Route::delete('division/del/:type/:uid', 'v1.agent.Division/delDivision')->name('delDivision')->option(['real_name' => '删除代理商']);//状态切换
Route::get('division/agent_apply/list','v1.agent.Division/AdminApplyList')->name('AdminApplyList')->option(['real_name'=>'代理商申请列表']);//代理商申请列表
Route::get('division/examine_apply/:id/:type','v1.agent.Division/examineApply')->name('examineApply')->option(['real_name'=>'审核表单']);//审核表单
Route::post('division/apply_agent/save','v1.agent.Division/applyAgentSave')->name('applyAgentSave')->option(['real_name'=>'提交审核']);//提交审核
Route::delete('division/del_apply/:id','v1.agent.Division/delApply')->name('delApply')->option(['real_name'=>'删除审核']);//删除审核
Route::group(function () {
Route::get('division/list', 'v1.agent.Division/divisionList')->name('divisionList')->option(['real_name' => '事业部列表']);//事业部/代理商/员工列表
Route::get('division/down_list', 'v1.agent.Division/divisionDownList')->name('divisionDownList')->option(['real_name' => '下级列表']);//下级列表
Route::get('division/create/:uid', 'v1.agent.Division/divisionCreate')->name('divisionCreate')->option(['real_name' => '添加事业部']);//添加事业部
Route::post('division/save', 'v1.agent.Division/divisionSave')->name('divisionSave')->option(['real_name' => '事业部保存']);//事业部保存
Route::get('division/agent/create/:uid', 'v1.agent.Division/divisionAgentCreate')->name('divisionAgentCreate')->option(['real_name' => '添加事业部']);//添加代理商
Route::post('division/agent/save', 'v1.agent.Division/divisionAgentSave')->name('divisionAgentSave')->option(['real_name' => '事业部保存']);//代理商保存
Route::put('division/set_status/:status/:uid', 'v1.agent.Division/setDivisionStatus')->name('setDivisionStatus')->option(['real_name' => '状态切换']);//状态切换
Route::delete('division/del/:type/:uid', 'v1.agent.Division/delDivision')->name('delDivision')->option(['real_name' => '删除代理商']);//状态切换
Route::get('division/agent_apply/list', 'v1.agent.Division/AdminApplyList')->name('AdminApplyList')->option(['real_name' => '代理商申请列表']);//代理商申请列表
Route::get('division/examine_apply/:id/:type', 'v1.agent.Division/examineApply')->name('examineApply')->option(['real_name' => '审核表单']);//审核表单
Route::post('division/apply_agent/save', 'v1.agent.Division/applyAgentSave')->name('applyAgentSave')->option(['real_name' => '提交审核']);//提交审核
Route::delete('division/del_apply/:id', 'v1.agent.Division/delApply')->name('delApply')->option(['real_name' => '删除审核']);//删除审核
})->option(['parent' => 'agent', 'cate_name' => '事业部']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'agent', 'mark_name' => '分销模块']);

View File

@ -14,101 +14,126 @@ use think\facade\Route;
* 应用模块 相关路由
*/
Route::group('app', function () {
//小程序模板资源路由
Route::resource('routine', 'v1.application.routine.RoutineTemplate')->name('RoutineResource')->option(['real_name' => '小程序订阅消息']);
//一键同步订阅消息
Route::get('routine/syncSubscribe', 'v1.application.routine.RoutineTemplate/syncSubscribe')->name('syncSubscribe')->option(['real_name' => '一键同步订阅消息']);
//一键同步微信模版消息消息
Route::get('wechat/syncSubscribe', 'v1.application.wechat.WechatTemplate/syncSubscribe')->name('syncSubscribe')->option(['real_name' => '一键同步模版消息']);
//修改状态
Route::put('routine/set_status/:id/:status', 'v1.application.routine.RoutineTemplate/set_status')->name('RoutineSetStatus')->option(['real_name' => '修改订阅消息状态']);
//菜单值
Route::get('wechat/menu', 'v1.application.wechat.menus/index')->option(['real_name' => '微信公众号菜单列表']);
//保存菜单
Route::post('wechat/menu', 'v1.application.wechat.menus/save')->option(['real_name' => '保存微信公众号菜单']);
//微信模板消息资源路由
Route::resource('wechat/template', 'v1.application.wechat.WechatTemplate')->name('WechatTemplateResource')->option(['real_name' => '公众号模版消息']);
//微信模板消息修改状态
Route::put('wechat/template/set_status/:id/:status', 'v1.application.wechat.WechatTemplate/set_status')->name('WechatTemplateSetStatus')->option(['real_name' => '修改关键字回复状态']);
//关注回复
Route::get('wechat/reply', 'v1.application.wechat.Reply/reply')->option(['real_name' => '关注回复']);
//获取关注回复二维码
Route::get('wechat/code_reply/:id', 'v1.application.wechat.Reply/code_reply')->option(['real_name' => '获取关注回复二维码']);
//关键字回复列表
Route::get('wechat/keyword', 'v1.application.wechat.Reply/index')->option(['real_name' => '关键字回复列表']);
//关键字详情
Route::get('wechat/keyword/:id', 'v1.application.wechat.Reply/read')->option(['real_name' => '关键字回复详情']);
//保存关键字修改
Route::post('wechat/keyword/:id', 'v1.application.wechat.Reply/save')->option(['real_name' => '保存关键字回复']);
//删除关键字
Route::delete('wechat/keyword/:id', 'v1.application.wechat.Reply/delete')->option(['real_name' => '删除关键字回复']);
//修改关键字状态
Route::put('wechat/keyword/set_status/:id/:status', 'v1.application.wechat.Reply/set_status')->option(['real_name' => '修改关键字回复状态']);
//图文列表
Route::get('wechat/news', 'v1.application.wechat.WechatNewsCategory/index')->option(['real_name' => '图文列表']);
//详情
Route::get('wechat/news/:id', 'v1.application.wechat.WechatNewsCategory/read')->option(['real_name' => '图文详情']);
//保存图文
Route::post('wechat/news', 'v1.application.wechat.WechatNewsCategory/save')->option(['real_name' => '保存图文']);
//删除图文
Route::delete('wechat/news/:id', 'v1.application.wechat.WechatNewsCategory/delete')->option(['real_name' => '删除图文']);
//发送图文消息
Route::post('wechat/push', 'v1.application.wechat.WechatNewsCategory/push')->option(['real_name' => '发送图文消息']);
//用户行为列表
Route::get('wechat/action', 'v1.application.wechat.WechatMessage/index')->option(['real_name' => '用户行为列表']);
//用户行为列表操作名称列表
Route::get('wechat/action/operate', 'v1.application.wechat.WechatMessage/operate')->option(['real_name' => '用户行为列表操作名称列表']);
//下载小程序模版页面数据
Route::get('routine/info', 'v1.application.routine.RoutineTemplate/getDownloadInfo')->option(['real_name' => '下载小程序页面数据']);
//下载小程序模版
Route::post('routine/download', 'v1.application.routine.RoutineTemplate/downloadTemp')->option(['real_name' => '下载小程序模版']);
/** 公众号 */
Route::group(function () {
//菜单值
Route::get('wechat/menu', 'v1.application.wechat.menus/index')->option(['real_name' => '微信公众号菜单列表']);
//保存菜单
Route::post('wechat/menu', 'v1.application.wechat.menus/save')->option(['real_name' => '保存微信公众号菜单']);
//图文列表
Route::get('wechat/news', 'v1.application.wechat.WechatNewsCategory/index')->option(['real_name' => '图文列表']);
//详情
Route::get('wechat/news/:id', 'v1.application.wechat.WechatNewsCategory/read')->option(['real_name' => '图文详情']);
//保存图文
Route::post('wechat/news', 'v1.application.wechat.WechatNewsCategory/save')->option(['real_name' => '保存图文']);
//删除图文
Route::delete('wechat/news/:id', 'v1.application.wechat.WechatNewsCategory/delete')->option(['real_name' => '删除图文']);
//发送图文消息
Route::post('wechat/push', 'v1.application.wechat.WechatNewsCategory/push')->option(['real_name' => '发送图文消息']);
//关注回复
Route::get('wechat/reply', 'v1.application.wechat.Reply/reply')->option(['real_name' => '关注回复']);
//获取关注回复二维码
Route::get('wechat/code_reply/:id', 'v1.application.wechat.Reply/code_reply')->option(['real_name' => '获取关注回复二维码']);
//关键字回复列表
Route::get('wechat/keyword', 'v1.application.wechat.Reply/index')->option(['real_name' => '关键字回复列表']);
//关键字详情
Route::get('wechat/keyword/:id', 'v1.application.wechat.Reply/read')->option(['real_name' => '关键字回复详情']);
//保存关键字修改
Route::post('wechat/keyword/:id', 'v1.application.wechat.Reply/save')->option(['real_name' => '保存关键字回复']);
//删除关键字
Route::delete('wechat/keyword/:id', 'v1.application.wechat.Reply/delete')->option(['real_name' => '删除关键字回复']);
//修改关键字状态
Route::put('wechat/keyword/set_status/:id/:status', 'v1.application.wechat.Reply/set_status')->option(['real_name' => '修改关键字回复状态']);
//一键同步微信模版消息消息
Route::get('wechat/syncSubscribe', 'v1.application.wechat.WechatTemplate/syncSubscribe')->name('syncSubscribe')->option(['real_name' => '一键同步模版消息']);
})->option(['parent' => 'app', 'cate_name' => '公众号']);
/** 小程序 */
Route::group(function () {
//一键同步订阅消息
Route::get('routine/syncSubscribe', 'v1.application.routine.RoutineTemplate/syncSubscribe')->name('syncSubscribe')->option(['real_name' => '一键同步订阅消息']);
//下载小程序模版页面数据
Route::get('routine/info', 'v1.application.routine.RoutineTemplate/getDownloadInfo')->option(['real_name' => '下载小程序页面数据']);
//下载小程序模版
Route::post('routine/download', 'v1.application.routine.RoutineTemplate/downloadTemp')->option(['real_name' => '下载小程序模版']);
})->option(['parent' => 'app', 'cate_name' => '小程序']);
/** 公众号渠道码 */
Route::get('wechat_qrcode/cate/list', 'v1.application.wechat.WechatQrcode/getCateList')->option(['real_name' => '渠道码分类列表']);
Route::get('wechat_qrcode/cate/create/:id', 'v1.application.wechat.WechatQrcode/createForm')->option(['real_name' => '渠道码分类添加编辑表单']);
Route::post('wechat_qrcode/cate/save', 'v1.application.wechat.WechatQrcode/saveCate')->option(['real_name' => '渠道码分类保存']);
Route::delete('wechat_qrcode/cate/del/:id', 'v1.application.wechat.WechatQrcode/delCate')->option(['real_name' => '渠道码分类删除']);
Route::post('wechat_qrcode/save/:id', 'v1.application.wechat.WechatQrcode/saveQrcode')->option(['real_name' => '保存渠道码']);
Route::get('wechat_qrcode/info/:id', 'v1.application.wechat.WechatQrcode/qrcodeInfo')->option(['real_name' => '渠道码详情']);
Route::get('wechat_qrcode/list', 'v1.application.wechat.WechatQrcode/qrcodeList')->option(['real_name' => '渠道码列表']);
Route::delete('wechat_qrcode/del/:id', 'v1.application.wechat.WechatQrcode/delQrcode')->option(['real_name' => '删除渠道码']);
Route::put('wechat_qrcode/set_status/:id/:status', 'v1.application.wechat.WechatQrcode/setStatus')->option(['real_name' => '切换渠道码状态']);
Route::get('wechat_qrcode/user_list/:qid', 'v1.application.wechat.WechatQrcode/userList')->option(['real_name' => '渠道码用户列表']);
Route::get('wechat_qrcode/statistic/:qid', 'v1.application.wechat.WechatQrcode/qrcodeStatistic')->option(['real_name' => '渠道码统计']);
Route::group(function () {
Route::get('wechat_qrcode/cate/list', 'v1.application.wechat.WechatQrcode/getCateList')->option(['real_name' => '渠道码分类列表']);
Route::get('wechat_qrcode/cate/create/:id', 'v1.application.wechat.WechatQrcode/createForm')->option(['real_name' => '渠道码分类添加编辑表单']);
Route::post('wechat_qrcode/cate/save', 'v1.application.wechat.WechatQrcode/saveCate')->option(['real_name' => '渠道码分类保存']);
Route::delete('wechat_qrcode/cate/del/:id', 'v1.application.wechat.WechatQrcode/delCate')->option(['real_name' => '渠道码分类删除']);
Route::post('wechat_qrcode/save/:id', 'v1.application.wechat.WechatQrcode/saveQrcode')->option(['real_name' => '保存渠道码']);
Route::get('wechat_qrcode/info/:id', 'v1.application.wechat.WechatQrcode/qrcodeInfo')->option(['real_name' => '渠道码详情']);
Route::get('wechat_qrcode/list', 'v1.application.wechat.WechatQrcode/qrcodeList')->option(['real_name' => '渠道码列表']);
Route::delete('wechat_qrcode/del/:id', 'v1.application.wechat.WechatQrcode/delQrcode')->option(['real_name' => '删除渠道码']);
Route::put('wechat_qrcode/set_status/:id/:status', 'v1.application.wechat.WechatQrcode/setStatus')->option(['real_name' => '切换渠道码状态']);
Route::get('wechat_qrcode/user_list/:qid', 'v1.application.wechat.WechatQrcode/userList')->option(['real_name' => '渠道码用户列表']);
Route::get('wechat_qrcode/statistic/:qid', 'v1.application.wechat.WechatQrcode/qrcodeStatistic')->option(['real_name' => '渠道码统计']);
})->option(['parent' => 'app', 'cate_name' => '公众号渠道码']);
/** 客服相关 */
//客服反馈接口
Route::resource('feedback', 'v1.kefu.StoreServiceFeedback')->only(['index', 'delete', 'update', 'edit'])->option(['real_name' => '用户反馈']);
//话术接口
Route::resource('wechat/speechcraft', 'v1.kefu.StoreServiceSpeechcraft')->option(['real_name' => '客服话术']);
//话术分类接口
Route::resource('wechat/speechcraftcate', 'v1.kefu.StoreServiceSpeechcraftCate')->option(['real_name' => '客服话术分类']);
//客服列表
Route::get('wechat/kefu', 'v1.kefu.StoreService/index')->option(['real_name' => '客服列表']);
//客服登录
Route::get('wechat/kefu/login/:id', 'v1.kefu.StoreService/keufLogin')->option(['real_name' => '客服登录']);
//新增客服选择用户列表
Route::get('wechat/kefu/create', 'v1.kefu.StoreService/create')->option(['real_name' => '新增客服选择用户列表']);
//新增客服表单
Route::get('wechat/kefu/add', 'v1.kefu.StoreService/add')->option(['real_name' => '添加客服表单']);
//保存新建的数据
Route::post('wechat/kefu', 'v1.kefu.StoreService/save')->option(['real_name' => '添加客服']);
//编辑客服表单
Route::get('wechat/kefu/:id/edit', 'v1.kefu.StoreService/edit')->option(['real_name' => '修改客服表单']);
//保存编辑的数据
Route::put('wechat/kefu/:id', 'v1.kefu.StoreService/update')->option(['real_name' => '修改客服']);
//删除
Route::delete('wechat/kefu/:id', 'v1.kefu.StoreService/delete')->option(['real_name' => '删除客服']);
//修改状态
Route::put('wechat/kefu/set_status/:id/:status', 'v1.kefu.StoreService/set_status')->option(['real_name' => '修改客服状态']);
//聊天记录
Route::get('wechat/kefu/record/:id', 'v1.kefu.StoreService/chat_user')->option(['real_name' => '聊天记录']);
//查看对话
Route::get('wechat/kefu/chat_list', 'v1.kefu.StoreService/chat_list')->option(['real_name' => '查看对话']);
Route::group(function () {
//客服反馈接口
Route::resource('feedback', 'v1.kefu.StoreServiceFeedback')->only(['index', 'delete', 'update', 'edit'])->option([
'real_name' => [
'index' => '获取用户反馈列表',
'edit' => '获取修改用户反馈表单',
'update' => '修改用户反馈',
'delete' => '删除用户反馈'
]
]);
//话术接口
Route::resource('wechat/speechcraft', 'v1.kefu.StoreServiceSpeechcraft')->except(['read'])->option([
'real_name' => [
'index' => '获取客服话术列表',
'create' => '获取客服话术表单',
'save' => '保存客服话术',
'edit' => '获取修改客服话术表单',
'update' => '修改客服话术',
'delete' => '删除客服话术'
]
]);
//话术分类接口
Route::resource('wechat/speechcraftcate', 'v1.kefu.StoreServiceSpeechcraftCate')->except(['read'])->option([
'real_name' => [
'index' => '获取客服话术分类列表',
'create' => '获取客服话术分类表单',
'save' => '保存客服话术分类',
'edit' => '获取修改客服话术分类表单',
'update' => '修改客服话术分类',
'delete' => '删除客服话术分类'
]
]);
//客服列表
Route::get('wechat/kefu', 'v1.kefu.StoreService/index')->option(['real_name' => '客服列表']);
//客服登录
Route::get('wechat/kefu/login/:id', 'v1.kefu.StoreService/keufLogin')->option(['real_name' => '客服登录']);
//新增客服选择用户列表
Route::get('wechat/kefu/create', 'v1.kefu.StoreService/create')->option(['real_name' => '新增客服选择用户列表']);
//新增客服表单
Route::get('wechat/kefu/add', 'v1.kefu.StoreService/add')->option(['real_name' => '添加客服表单']);
//保存新建的数据
Route::post('wechat/kefu', 'v1.kefu.StoreService/save')->option(['real_name' => '添加客服']);
//编辑客服表单
Route::get('wechat/kefu/:id/edit', 'v1.kefu.StoreService/edit')->option(['real_name' => '修改客服表单']);
//保存编辑的数据
Route::put('wechat/kefu/:id', 'v1.kefu.StoreService/update')->option(['real_name' => '修改客服']);
//删除
Route::delete('wechat/kefu/:id', 'v1.kefu.StoreService/delete')->option(['real_name' => '删除客服']);
//修改状态
Route::put('wechat/kefu/set_status/:id/:status', 'v1.kefu.StoreService/set_status')->option(['real_name' => '修改客服状态']);
//聊天记录
Route::get('wechat/kefu/record/:id', 'v1.kefu.StoreService/chat_user')->option(['real_name' => '聊天记录']);
//查看对话
Route::get('wechat/kefu/chat_list', 'v1.kefu.StoreService/chat_list')->option(['real_name' => '查看对话']);
})->option(['parent' => 'app', 'cate_name' => '客服相关']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'app', 'mark_name' => '应用模块']);

View File

@ -14,23 +14,51 @@ use think\facade\Route;
* 文章管理 相关路由
*/
Route::group('cms', function () {
//文章资源路由
Route::resource('cms', 'v1.cms.Article')->name('ArticleResource')->option(['real_name' => '文章']);
//关联商品
Route::put('cms/relation/:id', 'v1.cms.Article/relation')->name('Relation')->option(['real_name' => '文章关联商品']);
//取消关联
Route::put('cms/unrelation/:id', 'v1.cms.Article/unrelation')->name('UnRelation')->option(['real_name' => '取消文章关联商品']);
//文章分类资源路由
Route::resource('category', 'v1.cms.ArticleCategory')->name('ArticleCategoryResource')->option(['real_name' => '文章分类']);
//修改状态
Route::put('category/set_status/:id/:status', 'v1.cms.ArticleCategory/set_status')->name('CategoryStatus')->option(['real_name' => '修改文章分类状态']);
//分类列表
Route::get('category_list', 'v1.cms.ArticleCategory/categoryList')->name('categoryList')->option(['real_name' => '分类列表']);
//分类树形列表
Route::get('category_tree_list', 'v1.cms.ArticleCategory/getTreeList')->name('getTreeList')->option(['real_name' => '分类树形列表']);
/** 文章 */
Route::group(function () {
//文章资源路由
Route::resource('cms', 'v1.cms.Article')->option([
'real_name' => [
'index' => '获取文章列表',
'create' => '获取文章表单',
'read' => '获取文章详细信息',
'save' => '保存文章',
'edit' => '获取修改文章表单',
'update' => '修改文章',
'delete' => '删除文章'
]
]);
//关联商品
Route::put('cms/relation/:id', 'v1.cms.Article/relation')->name('Relation')->option(['real_name' => '文章关联商品']);
//取消关联
Route::put('cms/unrelation/:id', 'v1.cms.Article/unrelation')->name('UnRelation')->option(['real_name' => '取消文章关联商品']);
})->option(['parent' => 'cms', 'cate_name' => '文章管理']);
/** 文章分类 */
Route::group(function () {
//文章分类资源路由
Route::resource('category', 'v1.cms.ArticleCategory')->except(['read'])->option([
'real_name' => [
'index' => '获取文章分类列表',
'create' => '获取文章分类表单',
'save' => '保存文章分类',
'edit' => '获取修改文章分类表单',
'update' => '修改文章分类',
'delete' => '删除文章分类'
]
]);
//修改状态
Route::put('category/set_status/:id/:status', 'v1.cms.ArticleCategory/set_status')->name('CategoryStatus')->option(['real_name' => '修改文章分类状态']);
//分类列表
Route::get('category_list', 'v1.cms.ArticleCategory/categoryList')->name('categoryList')->option(['real_name' => '分类列表']);
//分类树形列表
Route::get('category_tree_list', 'v1.cms.ArticleCategory/getTreeList')->name('getTreeList')->option(['real_name' => '分类树形列表']);
})->option(['parent' => 'cms', 'cate_name' => '文章分类']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'cms', 'mark_name' => '文章模块']);

View File

@ -14,7 +14,6 @@ use think\facade\Route;
* 文件下载、导出相关路由
*/
Route::group(function () {
//下载备份记录表
Route::get('backup/download', 'v1.system.SystemDatabackup/downloadFile')->option(['real_name' => '下载表备份记录']);
//首页统计数据
@ -23,9 +22,9 @@ Route::group(function () {
Route::get('home/order', 'Common/orderChart')->option(['real_name' => '首页订单图表']);
//首页用户图表
Route::get('home/user', 'Common/userChart')->option(['real_name' => '首页用户图表']);
//
//首页交易额排行
Route::get('home/rank', 'Common/purchaseRanking')->option(['real_name' => '首页交易额排行']);
// 消息提醒
//消息提醒
Route::get('jnotice', 'Common/jnotice')->option(['real_name' => '消息提醒']);
//验证授权
Route::get('check_auth', 'Common/auth')->option(['real_name' => '验证授权']);
@ -48,5 +47,5 @@ Route::group(function () {
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'common', 'mark_name' => '系统数据']);

View File

@ -0,0 +1,35 @@
<?php
/**
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* | Author: CRMEB Team <admin@crmeb.com>
* +----------------------------------------------------------------------
*/
use think\facade\Route;
/**
* crud 自动加载路由
* 自动加载crud目录下的所有路由文件
*/
Route::group(function () {
$path = $this->app->getRootPath() . 'app' . DS . 'adminapi' . DS . 'route' . DS . 'crud';
if (is_dir($path)) {
$files = scandir($path);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
include $path . DS . $file;
}
}
}
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
])->option(['mark' => 'crud', 'mark_name' => '代码生成']);

View File

@ -64,7 +64,6 @@ Route::group('diy', function () {
Route::post('member_save', 'v1.diy.Diy/memberSaveData')->option(['real_name' => '个人中心保存']);
//获取diy小程序二维码
Route::get('get_routine_code/:id', 'v1.diy.Diy/getRoutineCode')->option(['real_name' => 'diy小程序预览码']);
//开屏广告
Route::get('open_adv/info', 'v1.diy.Diy/getOpenAdv')->option(['real_name' => '获取开屏广告']);
Route::post('open_adv/add', 'v1.diy.Diy/openAdvAdd')->option(['real_name' => '保存开屏广告']);
@ -74,4 +73,4 @@ Route::group('diy', function () {
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'diy', 'mark_name' => '页面装修']);

View File

@ -28,7 +28,8 @@ Route::group('export', function () {
Route::get('seckill_list', 'v1.export.ExportExcel/seckillList')->option(['real_name' => '秒杀商品列表导出']);
//导出会员卡
Route::get('member_card/:id', 'v1.export.ExportExcel/memberCardList')->option(['real_name' => '会员卡导出']);
//分销用户推广列表
Route::get('userAgent', 'v1.export.ExportExcel/userAgent')->option(['real_name' => '分销员推广列表导出']);
//用户资金监控
Route::get('userFinance', 'v1.export.ExportExcel/userFinance')->option(['real_name' => '用户资金导出']);
//用户佣金
@ -37,27 +38,9 @@ Route::group('export', function () {
Route::get('userPoint', 'v1.export.ExportExcel/userPoint')->option(['real_name' => '用户积分导出']);
//用户充值
Route::get('userRecharge', 'v1.export.ExportExcel/userRecharge')->option(['real_name' => '用户充值导出']);
//分销用户推广列表
Route::get('userAgent', 'v1.export.ExportExcel/userAgent')->option(['real_name' => '分销员推广列表导出']);
//微信用户
Route::get('wechatUser', 'v1.export.ExportExcel/wechatUser')->option(['real_name' => '微信用户导出']);
//商铺砍价活动
Route::get('storeBargain', 'v1.export.ExportExcel/storeBargain')->option(['real_name' => '砍价商品导出']);
//商铺拼团
Route::get('storeCombination', 'v1.export.ExportExcel/storeCombination')->option(['real_name' => '拼团商品导出']);
//商铺秒杀
Route::get('storeSeckill', 'v1.export.ExportExcel/storeSeckill')->option(['real_name' => '秒杀商品导出']);
//商铺产品
Route::get('storeProduct', 'v1.export.ExportExcel/storeProduct')->option(['real_name' => '商品导出']);
//商铺订单
Route::get('storeOrder', 'v1.export.ExportExcel/storeOrder')->option(['real_name' => '订单导出']);
//商铺提货点
Route::get('storeMerchant', 'v1.export.ExportExcel/storeMerchant')->option(['real_name' => '提货点导出']);
//导出会员卡
Route::get('memberCard/:id', 'v1.export.ExportExcel/memberCard')->option(['real_name' => '会员卡导出']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'export', 'mark_name' => '数据导出']);

View File

@ -27,7 +27,17 @@ Route::group('file', function () {
//上传图片
Route::post('upload/[:upload_type]', 'v1.file.SystemAttachment/upload')->option(['real_name' => '上传图片']);
//附件分类管理资源路由
Route::resource('category', 'v1.file.SystemAttachmentCategory')->option(['real_name' => '附件分类管理']);
Route::resource('category', 'v1.file.SystemAttachmentCategory')->except(['read'])->option([
'real_name' => [
'index' => '获取附件分类管理列表',
'create' => '获取附件分类管理表单',
'save' => '保存附件分类管理',
'edit' => '获取修改附件分类管理表单',
'update' => '修改附件分类管理',
'delete' => '删除附件分类管理'
],
]);
//获取上传类型
Route::get('upload_type', 'v1.file.SystemAttachment/uploadType')->option(['real_name' => '上传类型']);
//分片上传本地视频
@ -37,4 +47,4 @@ Route::group('file', function () {
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'file', 'mark_name' => '素材管理']);

View File

@ -14,44 +14,56 @@ use think\facade\Route;
* 财务模块 相关路由
*/
Route::group('finance', function () {
//筛选类型
Route::get('finance/bill_type', 'v1.finance.Finance/bill_type')->option(['real_name' => '资金记录类型']);
//资金记录
Route::get('finance/list', 'v1.finance.Finance/list')->option(['real_name' => '资金记录列表']);
//佣金记录
Route::get('finance/commission_list', 'v1.finance.Finance/get_commission_list')->option(['real_name' => '佣金记录列表']);
//佣金详情用户信息
Route::get('finance/user_info/:id', 'v1.finance.Finance/user_info')->option(['real_name' => '佣金详情用户信息']);
//佣金提现记录个人列表
Route::get('finance/extract_list/:id', 'v1.finance.Finance/get_extract_list')->option(['real_name' => '佣金提现记录个人列表']);
//申请列表
Route::get('extract', 'v1.finance.UserExtract/index')->option(['real_name' => '提现申请列表']);
//编辑表单
Route::get('extract/:id/edit', 'v1.finance.UserExtract/edit')->option(['real_name' => '提现记录修改表单']);
//保存修改
Route::put('extract/:id', 'v1.finance.UserExtract/update')->option(['real_name' => '提现记录修改']);
//拒绝申请
Route::put('extract/refuse/:id', 'v1.finance.UserExtract/refuse')->option(['real_name' => '拒绝提现申请']);
//通过申请
Route::put('extract/adopt/:id', 'v1.finance.UserExtract/adopt')->option(['real_name' => '通过提现申请']);
//充值记录列表
Route::get('recharge', 'v1.finance.UserRecharge/index')->option(['real_name' => '充值记录列表']);
//删除记录
Route::delete('recharge/:id', 'v1.finance.UserRecharge/delete')->option(['real_name' => '删除充值记录']);
//获取用户充值数据
Route::get('recharge/user_recharge', 'v1.finance.UserRecharge/user_recharge')->option(['real_name' => '获取用户充值数据']);
//退款表单
Route::get('recharge/:id/refund_edit', 'v1.finance.UserRecharge/refund_edit')->option(['real_name' => '充值退款表单']);
//退款
Route::put('recharge/:id', 'v1.finance.UserRecharge/refund_update')->option(['real_name' => '充值退款']);
/** 余额记录 */
Route::get('balance/list', 'v1.finance.UserBalance/balanceList')->option(['real_name' => '余额记录列表']);
Route::post('balance/set_mark/:id', 'v1.finance.UserBalance/balanceRecordRemark')->option(['real_name' => '余额记录备注']);
/** 提现 */
Route::group(function () {
//申请列表
Route::get('extract', 'v1.finance.UserExtract/index')->option(['real_name' => '提现申请列表']);
//编辑表单
Route::get('extract/:id/edit', 'v1.finance.UserExtract/edit')->option(['real_name' => '提现记录修改表单']);
//保存修改
Route::put('extract/:id', 'v1.finance.UserExtract/update')->option(['real_name' => '提现记录修改']);
//拒绝申请
Route::put('extract/refuse/:id', 'v1.finance.UserExtract/refuse')->option(['real_name' => '拒绝提现申请']);
//通过申请
Route::put('extract/adopt/:id', 'v1.finance.UserExtract/adopt')->option(['real_name' => '通过提现申请']);
})->option(['parent' => 'finance', 'cate_name' => '提现']);
/** 资金记录 */
Route::group(function () {
//筛选类型
Route::get('finance/bill_type', 'v1.finance.Finance/bill_type')->option(['real_name' => '资金记录类型']);
//资金记录
Route::get('finance/list', 'v1.finance.Finance/list')->option(['real_name' => '资金记录列表']);
//佣金记录
Route::get('finance/commission_list', 'v1.finance.Finance/get_commission_list')->option(['real_name' => '佣金记录列表']);
//佣金详情用户信息
Route::get('finance/user_info/:id', 'v1.finance.Finance/user_info')->option(['real_name' => '佣金详情用户信息']);
//佣金提现记录个人列表
Route::get('finance/extract_list/:id', 'v1.finance.Finance/get_extract_list')->option(['real_name' => '佣金提现记录个人列表']);
/** 余额记录 */
Route::get('balance/list', 'v1.finance.UserBalance/balanceList')->option(['real_name' => '余额记录列表']);
Route::post('balance/set_mark/:id', 'v1.finance.UserBalance/balanceRecordRemark')->option(['real_name' => '余额记录备注']);
})->option(['parent' => 'finance', 'cate_name' => '资金记录']);
/** 充值 */
Route::group(function () {
//充值记录列表
Route::get('recharge', 'v1.finance.UserRecharge/index')->option(['real_name' => '充值记录列表']);
//删除记录
Route::delete('recharge/:id', 'v1.finance.UserRecharge/delete')->option(['real_name' => '删除充值记录']);
//获取用户充值数据
Route::get('recharge/user_recharge', 'v1.finance.UserRecharge/user_recharge')->option(['real_name' => '获取用户充值数据']);
//退款表单
Route::get('recharge/:id/refund_edit', 'v1.finance.UserRecharge/refund_edit')->option(['real_name' => '充值退款表单']);
//退款
Route::put('recharge/:id', 'v1.finance.UserRecharge/refund_update')->option(['real_name' => '充值退款']);
})->option(['parent' => 'finance', 'cate_name' => '充值']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'finance', 'mark_name' => '财务管理']);

View File

@ -15,7 +15,16 @@ use think\facade\Route;
*/
Route::group('freight', function () {
//物流公司资源路由
Route::resource('express', 'v1.freight.Express')->name('ExpressResource')->option(['real_name' => '物流公司']);
Route::resource('express', 'v1.freight.Express')->except(['read'])->name('ExpressResource')->option([
'real_name' => [
'index' => '获取物流公司列表',
'create' => '获取物流公司表单',
'save' => '保存物流公司',
'edit' => '获取修改物流公司表单',
'update' => '修改物流公司',
'delete' => '删除物流公司'
],
]);
//修改状态
Route::put('express/set_status/:id/:status', 'v1.freight.Express/set_status')->option(['real_name' => '修改物流公司状态']);
//同步物流快递公司
@ -30,4 +39,4 @@ Route::group('freight', function () {
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'freight', 'mark_name' => '物流管理']);

View File

@ -16,56 +16,63 @@ use think\facade\Route;
*/
Route::group('live', function () {
//主播列表
Route::get('anchor/list', 'v1.marketing.live.LiveAnchor/list')->option(['real_name' => '主播列表']);
//添加修改主播表单
Route::get('anchor/add/:id', 'v1.marketing.live.LiveAnchor/add')->option(['real_name' => '添加修改主播表单']);
//保存主播数据
Route::post('anchor/save', 'v1.marketing.live.LiveAnchor/save')->option(['real_name' => '保存主播数据']);
//删除主播
Route::delete('anchor/del/:id', 'v1.marketing.live.LiveAnchor/delete')->option(['real_name' => '删除主播']);
//设置是否显示
Route::get('anchor/set_show/:id/:is_show', 'v1.marketing.live.LiveAnchor/setShow')->option(['real_name' => '设置主播是否显示']);
//同步主播
Route::get('anchor/syncAnchor', 'v1.marketing.live.LiveAnchor/syncAnchor')->option(['real_name' => '同步主播']);
/** 主播 */
Route::group(function () {
//主播列表
Route::get('anchor/list', 'v1.marketing.live.LiveAnchor/list')->option(['real_name' => '主播列表']);
//添加修改主播表单
Route::get('anchor/add/:id', 'v1.marketing.live.LiveAnchor/add')->option(['real_name' => '添加修改主播表单']);
//保存主播数据
Route::post('anchor/save', 'v1.marketing.live.LiveAnchor/save')->option(['real_name' => '保存主播数据']);
//删除主播
Route::delete('anchor/del/:id', 'v1.marketing.live.LiveAnchor/delete')->option(['real_name' => '删除主播']);
//设置是否显示
Route::get('anchor/set_show/:id/:is_show', 'v1.marketing.live.LiveAnchor/setShow')->option(['real_name' => '设置主播是否显示']);
})->option(['parent' => 'live', 'cate_name' => '主播']);
//直播商品列表
Route::get('goods/list', 'v1.marketing.live.LiveGoods/list')->option(['real_name' => '直播商品列表']);
//生成直播商品
Route::post('goods/create', 'v1.marketing.live.LiveGoods/create')->option(['real_name' => '生成直播商品']);
//添加修改商品
Route::post('goods/add', 'v1.marketing.live.LiveGoods/add')->option(['real_name' => '添加修改直播商品']);
//商品详情
Route::get('goods/detail/:id', 'v1.marketing.live.LiveGoods/detail')->option(['real_name' => '直播商品详情']);
//商品重新审核
Route::get('goods/audit/:id', 'v1.marketing.live.LiveGoods/audit')->option(['real_name' => '直播商品重新审核']);
//商品撤回审核
Route::get('goods/resestAudit/:id', 'v1.marketing.live.LiveGoods/resetAudit')->option(['real_name' => '直播商品撤回审核']);
//删除商品
Route::delete('goods/del/:id', 'v1.marketing.live.LiveGoods/delete')->option(['real_name' => '删除直播商品']);
//设置是否显示
Route::get('goods/set_show/:id/:is_show', 'v1.marketing.live.liveGoods/setShow')->option(['real_name' => '设置直播商品是否显示']);
//同步直播商品状态
Route::get('goods/syncGoods', 'v1.marketing.live.liveGoods/syncGoods')->option(['real_name' => '同步直播商品状态']);
/** 直播商品 */
Route::group(function () {
//直播商品列表
Route::get('goods/list', 'v1.marketing.live.LiveGoods/list')->option(['real_name' => '直播商品列表']);
//生成直播商品
Route::post('goods/create', 'v1.marketing.live.LiveGoods/create')->option(['real_name' => '生成直播商品']);
//添加修改商品
Route::post('goods/add', 'v1.marketing.live.LiveGoods/add')->option(['real_name' => '添加修改直播商品']);
//商品详情
Route::get('goods/detail/:id', 'v1.marketing.live.LiveGoods/detail')->option(['real_name' => '直播商品详情']);
//商品重新审核
Route::get('goods/audit/:id', 'v1.marketing.live.LiveGoods/audit')->option(['real_name' => '直播商品重新审核']);
//商品撤回审核
Route::get('goods/resestAudit/:id', 'v1.marketing.live.LiveGoods/resetAudit')->option(['real_name' => '直播商品撤回审核']);
//删除商品
Route::delete('goods/del/:id', 'v1.marketing.live.LiveGoods/delete')->option(['real_name' => '删除直播商品']);
//设置是否显示
Route::get('goods/set_show/:id/:is_show', 'v1.marketing.live.liveGoods/setShow')->option(['real_name' => '设置直播商品是否显示']);
//同步直播商品状态
Route::get('goods/syncGoods', 'v1.marketing.live.liveGoods/syncGoods')->option(['real_name' => '同步直播商品状态']);
})->option(['parent' => 'live', 'cate_name' => '直播商品']);
//直播间列表
Route::get('room/list', 'v1.marketing.live.LiveRoom/list')->option(['real_name' => '直播间列表']);
//直播间添加
Route::post('room/add', 'v1.marketing.live.LiveRoom/add')->option(['real_name' => '直播间添加']);
//直播间详情
Route::get('room/detail/:id', 'v1.marketing.live.LiveRoom/detail')->option(['real_name' => '直播间详情']);
//直播间添加商品
Route::post('room/add_goods', 'v1.marketing.live.LiveRoom/addGoods')->option(['real_name' => '直播间添加商品']);
//删除直播
Route::delete('room/del/:id', 'v1.marketing.live.LiveRoom/delete')->option(['real_name' => '删除直播间']);
//设置是否显示
Route::get('room/set_show/:id/:is_show', 'v1.marketing.live.LiveRoom/setShow')->option(['real_name' => '设置直播间是否显示']);
//同步直播间状态
Route::get('room/syncRoom', 'v1.marketing.live.LiveRoom/syncRoom')->option(['real_name' => '同步直播间状态']);
/** 主播间 */
Route::group(function () {
//直播间列表
Route::get('room/list', 'v1.marketing.live.LiveRoom/list')->option(['real_name' => '直播间列表']);
//直播间添加
Route::post('room/add', 'v1.marketing.live.LiveRoom/add')->option(['real_name' => '直播间添加']);
//直播间详情
Route::get('room/detail/:id', 'v1.marketing.live.LiveRoom/detail')->option(['real_name' => '直播间详情']);
//直播间添加商品
Route::post('room/add_goods', 'v1.marketing.live.LiveRoom/addGoods')->option(['real_name' => '直播间添加商品']);
//删除直播
Route::delete('room/del/:id', 'v1.marketing.live.LiveRoom/delete')->option(['real_name' => '删除直播间']);
//设置是否显示
Route::get('room/set_show/:id/:is_show', 'v1.marketing.live.LiveRoom/setShow')->option(['real_name' => '设置直播间是否显示']);
//同步直播间状态
Route::get('room/syncRoom', 'v1.marketing.live.LiveRoom/syncRoom')->option(['real_name' => '同步直播间状态']);
})->option(['parent' => 'live', 'cate_name' => '直播间']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'live', 'mark_name' => '直播管理']);

View File

@ -14,184 +14,193 @@ use think\facade\Route;
* 优惠卷,砍价,拼团,秒杀 路由
*/
Route::group('marketing', function () {
//已发布优惠券列表
Route::get('coupon/released', 'v1.marketing.StoreCouponIssue/index')->option(['real_name' => '已发布优惠券列表']);
//添加优惠券
Route::post('coupon/save_coupon', 'v1.marketing.StoreCouponIssue/saveCoupon')->option(['real_name' => '添加优惠券']);
//修改优惠券状态
Route::get('coupon/status/:id/:status', 'v1.marketing.StoreCouponIssue/status')->option(['real_name' => '修改优惠券状态']);
//一键复制优惠券
Route::get('coupon/copy/:id', 'v1.marketing.StoreCouponIssue/copy')->option(['real_name' => '一键复制优惠券']);
//发送优惠券列表
Route::get('coupon/grant', 'v1.marketing.StoreCouponIssue/index')->option(['real_name' => '发送优惠券列表']);
//已发布优惠券删除
Route::delete('coupon/released/:id', 'v1.marketing.StoreCouponIssue/delete')->option(['real_name' => '已发布优惠券删除']);
//已发布优惠券修改状态表单
Route::get('coupon/released/:id/status', 'v1.marketing.StoreCouponIssue/edit')->option(['real_name' => '已发布优惠券修改状态表单']);
//已发布优惠券修改状态
Route::put('coupon/released/status/:id', 'v1.marketing.StoreCouponIssue/status')->option(['real_name' => '已发布优惠券修改状态']);
//已发布优惠券领取记录
Route::get('coupon/released/issue_log/:id', 'v1.marketing.StoreCouponIssue/issue_log')->option(['real_name' => '已发布优惠券领取记录']);
//会员领取记录
Route::get('coupon/user', 'v1.marketing.StoreCouponUser/index')->option(['real_name' => '会员领取记录']);
//发送优惠券
Route::post('coupon/user/grant', 'v1.marketing.StoreCouponUser/grant')->option(['real_name' => '发送优惠券']);
//砍价商品列表
Route::get('bargain', 'v1.marketing.StoreBargain/index')->option(['real_name' => '砍价商品列表']);
//砍价详情
Route::get('bargain/:id', 'v1.marketing.StoreBargain/read')->option(['real_name' => '砍价商品详情']);
//保存新增或编辑砍价
Route::post('bargain/:id', 'v1.marketing.StoreBargain/save')->option(['real_name' => '新增或编辑砍价商品']);
//删除砍价
Route::delete('bargain/:id', 'v1.marketing.StoreBargain/delete')->option(['real_name' => '删除砍价商品']);
//修改砍价状态
Route::put('bargain/set_status/:id/:status', 'v1.marketing.StoreBargain/set_status')->option(['real_name' => '修改砍价商品状态']);
//砍价列表
Route::get('bargain_list', 'v1.marketing.StoreBargain/bargainList')->option(['real_name' => '参与砍价列表']);
//砍价人列表
Route::get('bargain_list_info/:id', 'v1.marketing.StoreBargain/bargainListInfo')->option(['real_name' => '砍价人列表']);
//砍价统计
Route::get('bargain/statistics/head/:id', 'v1.marketing.StoreBargain/bargainStatistics')->option(['real_name' => '砍价统计']);
//砍价列表
Route::get('bargain/statistics/list/:id', 'v1.marketing.StoreBargain/bargainStatisticsList')->option(['real_name' => '砍价统计列表']);
//砍价订单
Route::get('bargain/statistics/order/:id', 'v1.marketing.StoreBargain/bargainStatisticsOrder')->option(['real_name' => '砍价统计订单']);
/** 优惠券 */
Route::group(function () {
//已发布优惠券列表
Route::get('coupon/released', 'v1.marketing.StoreCouponIssue/index')->option(['real_name' => '已发布优惠券列表']);
//添加优惠券
Route::post('coupon/save_coupon', 'v1.marketing.StoreCouponIssue/saveCoupon')->option(['real_name' => '添加优惠券']);
//修改优惠券状态
Route::get('coupon/status/:id/:status', 'v1.marketing.StoreCouponIssue/status')->option(['real_name' => '修改优惠券状态']);
//一键复制优惠券
Route::get('coupon/copy/:id', 'v1.marketing.StoreCouponIssue/copy')->option(['real_name' => '一键复制优惠券']);
//发送优惠券列表
Route::get('coupon/grant', 'v1.marketing.StoreCouponIssue/index')->option(['real_name' => '发送优惠券列表']);
//已发布优惠券删除
Route::delete('coupon/released/:id', 'v1.marketing.StoreCouponIssue/delete')->option(['real_name' => '已发布优惠券删除']);
//已发布优惠券修改状态表单
Route::get('coupon/released/:id/status', 'v1.marketing.StoreCouponIssue/edit')->option(['real_name' => '已发布优惠券修改状态表单']);
//已发布优惠券修改状态
Route::put('coupon/released/status/:id', 'v1.marketing.StoreCouponIssue/status')->option(['real_name' => '已发布优惠券修改状态']);
//已发布优惠券领取记录
Route::get('coupon/released/issue_log/:id', 'v1.marketing.StoreCouponIssue/issue_log')->option(['real_name' => '已发布优惠券领取记录']);
//会员领取记录
Route::get('coupon/user', 'v1.marketing.StoreCouponUser/index')->option(['real_name' => '会员领取记录']);
//发送优惠券
Route::post('coupon/user/grant', 'v1.marketing.StoreCouponUser/grant')->option(['real_name' => '发送优惠券']);
})->option(['parent' => 'marketing', 'cate_name' => '优惠券']);
//拼团商品列表
Route::get('combination', 'v1.marketing.StoreCombination/index')->option(['real_name' => '拼团商品列表']);
//拼团统计
Route::get('combination/statistics', 'v1.marketing.StoreCombination/statistics')->option(['real_name' => '拼团商品统计']);
//拼团商品详情
Route::get('combination/:id', 'v1.marketing.StoreCombination/read')->option(['real_name' => '拼团商品详情']);
//保存新疆或编辑
Route::post('combination/:id', 'v1.marketing.StoreCombination/save')->option(['real_name' => '新增或编辑拼团商品']);
//删除
Route::delete('combination/:id', 'v1.marketing.StoreCombination/delete')->option(['real_name' => '删除拼团商品']);
//修改拼团状态
Route::put('combination/set_status/:id/:status', 'v1.marketing.StoreCombination/set_status')->option(['real_name' => '修改拼团商品状态']);
//拼团列表
Route::get('combination/combine/list', 'v1.marketing.StoreCombination/combine_list')->option(['real_name' => '参与拼团列表']);
//拼团人列表
Route::get('combination/order_pink/:id', 'v1.marketing.StoreCombination/order_pink')->option(['real_name' => '拼团人列表']);
//拼团统计
Route::get('combination/statistics/head/:id', 'v1.marketing.StoreCombination/combinationStatistics')->option(['real_name' => '拼团统计']);
//拼团列表
Route::get('combination/statistics/list/:id', 'v1.marketing.StoreCombination/combinationStatisticsList')->option(['real_name' => '拼团统计列表']);
//拼团订单
Route::get('combination/statistics/order/:id', 'v1.marketing.StoreCombination/combinationStatisticsOrder')->option(['real_name' => '拼团统计订单']);
/** 砍价活动 */
Route::group(function () {
//砍价商品列表
Route::get('bargain', 'v1.marketing.StoreBargain/index')->option(['real_name' => '砍价商品列表']);
//砍价详情
Route::get('bargain/:id', 'v1.marketing.StoreBargain/read')->option(['real_name' => '砍价商品详情']);
//保存新增或编辑砍价
Route::post('bargain/:id', 'v1.marketing.StoreBargain/save')->option(['real_name' => '新增或编辑砍价商品']);
//删除砍价
Route::delete('bargain/:id', 'v1.marketing.StoreBargain/delete')->option(['real_name' => '删除砍价商品']);
//修改砍价状态
Route::put('bargain/set_status/:id/:status', 'v1.marketing.StoreBargain/set_status')->option(['real_name' => '修改砍价商品状态']);
//砍价列表
Route::get('bargain_list', 'v1.marketing.StoreBargain/bargainList')->option(['real_name' => '参与砍价列表']);
//砍价人列表
Route::get('bargain_list_info/:id', 'v1.marketing.StoreBargain/bargainListInfo')->option(['real_name' => '砍价人列表']);
//砍价统计
Route::get('bargain/statistics/head/:id', 'v1.marketing.StoreBargain/bargainStatistics')->option(['real_name' => '砍价统计']);
//砍价列表
Route::get('bargain/statistics/list/:id', 'v1.marketing.StoreBargain/bargainStatisticsList')->option(['real_name' => '砍价统计列表']);
//砍价订单
Route::get('bargain/statistics/order/:id', 'v1.marketing.StoreBargain/bargainStatisticsOrder')->option(['real_name' => '砍价统计订单']);
})->option(['parent' => 'marketing', 'cate_name' => '砍价活动']);
/** 拼团活动 */
Route::group(function () {
//拼团商品列表
Route::get('combination', 'v1.marketing.StoreCombination/index')->option(['real_name' => '拼团商品列表']);
//拼团统计
Route::get('combination/statistics', 'v1.marketing.StoreCombination/statistics')->option(['real_name' => '拼团商品统计']);
//拼团商品详情
Route::get('combination/:id', 'v1.marketing.StoreCombination/read')->option(['real_name' => '拼团商品详情']);
//保存新疆或编辑
Route::post('combination/:id', 'v1.marketing.StoreCombination/save')->option(['real_name' => '新增或编辑拼团商品']);
//删除
Route::delete('combination/:id', 'v1.marketing.StoreCombination/delete')->option(['real_name' => '删除拼团商品']);
//修改拼团状态
Route::put('combination/set_status/:id/:status', 'v1.marketing.StoreCombination/set_status')->option(['real_name' => '修改拼团商品状态']);
//拼团列表
Route::get('combination/combine/list', 'v1.marketing.StoreCombination/combine_list')->option(['real_name' => '参与拼团列表']);
//拼团人列表
Route::get('combination/order_pink/:id', 'v1.marketing.StoreCombination/order_pink')->option(['real_name' => '拼团人列表']);
//拼团统计
Route::get('combination/statistics/head/:id', 'v1.marketing.StoreCombination/combinationStatistics')->option(['real_name' => '拼团统计']);
//拼团列表
Route::get('combination/statistics/list/:id', 'v1.marketing.StoreCombination/combinationStatisticsList')->option(['real_name' => '拼团统计列表']);
//拼团订单
Route::get('combination/statistics/order/:id', 'v1.marketing.StoreCombination/combinationStatisticsOrder')->option(['real_name' => '拼团统计订单']);
})->option(['parent' => 'marketing', 'cate_name' => '拼团活动']);
//秒杀列表
Route::get('seckill', 'v1.marketing.StoreSeckill/index')->option(['real_name' => '秒杀商品列表']);
//秒杀时间段列表
Route::get('seckill/time_list', 'v1.marketing.StoreSeckill/time_list')->option(['real_name' => '秒杀时间段列表']);
//秒杀详情
Route::get('seckill/:id', 'v1.marketing.StoreSeckill/read')->option(['real_name' => '秒杀商品详情']);
//秒杀保存新增或编辑
Route::post('seckill/:id', 'v1.marketing.StoreSeckill/save')->option(['real_name' => '新增或编辑秒杀商品']);
//秒杀删除
Route::delete('seckill/:id', 'v1.marketing.StoreSeckill/delete')->option(['real_name' => '删除秒杀商品']);
//修改秒杀状态
Route::put('seckill/set_status/:id/:status', 'v1.marketing.StoreSeckill/set_status')->option(['real_name' => '修改秒杀商品状态']);
//秒杀统计
Route::get('seckill/statistics/head/:id', 'v1.marketing.StoreSeckill/seckillStatistics')->option(['real_name' => '秒杀统计']);
//参与活动人员
Route::get('seckill/statistics/people/:id','v1.marketing.StoreSeckill/seckillPeople')->option(['real_name' => '秒杀参与人']);
//秒杀订单
Route::get('seckill/statistics/order/:id','v1.marketing.StoreSeckill/seckillOrder')->option(['real_name' => '秒杀参与人']);
/** 秒杀活动 */
Route::group(function () {
//秒杀列表
Route::get('seckill', 'v1.marketing.StoreSeckill/index')->option(['real_name' => '秒杀商品列表']);
//秒杀时间段列表
Route::get('seckill/time_list', 'v1.marketing.StoreSeckill/time_list')->option(['real_name' => '秒杀时间段列表']);
//秒杀详情
Route::get('seckill/:id', 'v1.marketing.StoreSeckill/read')->option(['real_name' => '秒杀商品详情']);
//秒杀保存新增或编辑
Route::post('seckill/:id', 'v1.marketing.StoreSeckill/save')->option(['real_name' => '新增或编辑秒杀商品']);
//秒杀删除
Route::delete('seckill/:id', 'v1.marketing.StoreSeckill/delete')->option(['real_name' => '删除秒杀商品']);
//修改秒杀状态
Route::put('seckill/set_status/:id/:status', 'v1.marketing.StoreSeckill/set_status')->option(['real_name' => '修改秒杀商品状态']);
//秒杀统计
Route::get('seckill/statistics/head/:id', 'v1.marketing.StoreSeckill/seckillStatistics')->option(['real_name' => '秒杀统计']);
//参与活动人员
Route::get('seckill/statistics/people/:id', 'v1.marketing.StoreSeckill/seckillPeople')->option(['real_name' => '秒杀参与人']);
//秒杀订单
Route::get('seckill/statistics/order/:id', 'v1.marketing.StoreSeckill/seckillOrder')->option(['real_name' => '秒杀参与人']);
})->option(['parent' => 'marketing', 'cate_name' => '秒杀活动']);
//积分日志列表
Route::get('integral', 'v1.marketing.UserPoint/index')->option(['real_name' => '积分日志列表']);
//积分日志头部数据
Route::get('integral/statistics', 'v1.marketing.UserPoint/integral_statistics')->option(['real_name' => '积分日志头部数据']);
//积分配置编辑表单
Route::get('integral_config/edit_basics', 'v1.setting.SystemConfig/edit_basics')->option(['real_name' => '积分配置编辑表单']);
//积分配置保存数据
Route::post('integral_config/save_basics', 'v1.setting.SystemConfig/save_basics')->option(['real_name' => '积分配置保存数据']);
/** 积分活动 */
Route::group(function () {
//积分日志列表
Route::get('integral', 'v1.marketing.UserPoint/index')->option(['real_name' => '积分日志列表']);
//积分日志头部数据
Route::get('integral/statistics', 'v1.marketing.UserPoint/integral_statistics')->option(['real_name' => '积分日志头部数据']);
//积分配置编辑表单
Route::get('integral_config/edit_basics', 'v1.setting.SystemConfig/edit_basics')->option(['real_name' => '积分配置编辑表单']);
//积分配置保存数据
Route::post('integral_config/save_basics', 'v1.setting.SystemConfig/save_basics')->option(['real_name' => '积分配置保存数据']);
//积分商品列表
Route::get('integral_product', 'v1.marketing.integral.StoreIntegral/index')->option(['real_name' => '积分商品列表']);
//积分商品新增或编辑
Route::post('integral/:id', 'v1.marketing.integral.StoreIntegral/save')->option(['real_name' => '积分商品新增或编辑']);
//积分商品详情
Route::get('integral/:id', 'v1.marketing.integral.StoreIntegral/read')->option(['real_name' => '积分商品详情']);
//积分商品删除
Route::delete('integral/:id', 'v1.marketing.integral.StoreIntegral/delete')->option(['real_name' => '积分商品删除']);
//修改积分商品状态
Route::put('integral/set_show/:id/:is_show', 'v1.marketing.integral.StoreIntegral/set_show')->option(['real_name' => '修改积分商品状态']);
//积分商城订单列表
Route::get('integral/order/list', 'v1.marketing.integral.StoreIntegralOrder/lst')->option(['real_name' => '积分商城订单列表']);
//积分商城订单数据
Route::get('integral/order/chart', 'v1.marketing.integral.StoreIntegralOrder/chart')->option(['real_name' => '积分商城订单数据']);
//积分商城订单详情数据
Route::get('integral/order/info/:id', 'v1.marketing.integral.StoreIntegralOrder/order_info')->option(['real_name' => '积分商城订单详情数据']);
//修改积分商品订单备注信息
Route::put('integral/order/remark/:id', 'v1.marketing.integral.StoreIntegralOrder/remark')->option(['real_name' => '修改积分商品订单备注信息']);
//获取积分订单状态
Route::get('integral/order/status/:id', 'v1.marketing.integral.StoreIntegralOrder/status')->option(['real_name' => '获取积分订单状态']);
//删除积分订单
Route::delete('integral/order/del/:id', 'v1.marketing.integral.StoreIntegralOrder/del')->option(['real_name' => '删除积分订单']);
//积分订单发送货
Route::put('integral/order/delivery/:id', 'v1.marketing.integral.StoreIntegralOrder/update_delivery')->option(['real_name' => '积分订单发送货']);
//获取积分订单配送信息表单
Route::get('integral/order/distribution/:id', 'v1.marketing.integral.StoreIntegralOrder/distribution')->option(['real_name' => '获取积分订单配送信息表单']);
//修改积分订单配送信息
Route::put('integral/order/distribution/:id', 'v1.marketing.integral.StoreIntegralOrder/update_distribution')->option(['real_name' => '修改积分订单配送信息']);
//积分订单确认收货
Route::put('integral/order/take/:id', 'v1.marketing.integral.StoreIntegralOrder/take_delivery')->option(['real_name' => '积分订单确认收货']);
//积分订单获取物流公司
Route::get('integral/order/express_list', 'v1.marketing.integral.StoreIntegralOrder/express')->option(['real_name' => '积分订单获取物流公司']);
//积分订单快递公司电子面单模版
Route::get('integral/order/express/temp', 'v1.marketing.integral.StoreIntegralOrder/express_temp')->option(['real_name' => '积分订单快递公司电子面单模版']);
//积分订单获取物流信息
Route::get('integral/order/express/:id', 'v1.marketing.integral.StoreIntegralOrder/get_express')->option(['real_name' => '积分订单获取物流信息']);
//打印积分订单
Route::get('integral/order/print/:id', 'v1.marketing.integral.StoreIntegralOrder/order_print')->option(['real_name' => '打印积分订单']);
//积分订单列表获取配送员
Route::get('integral/order/delivery/list', 'v1.order.DeliveryService/get_delivery_list')->option(['real_name' => '积分订单列表获取配送员']);
//积分订单获取面单默认配置信息
Route::get('integral/order/sheet_info', 'v1.marketing.integral.StoreIntegralOrder/getDeliveryInfo')->option(['real_name' => '积分订单获取面单默认配置信息']);
//积分记录
Route::get('point_record', 'v1.marketing.integral.StorePointRecord/pointRecord')->option(['real_name' => '积分记录列表']);
Route::post('point_record/remark/:id', 'v1.marketing.integral.StorePointRecord/pointRecordRemark')->option(['real_name' => '积分记录列表备注']);
Route::get('point/get_basic', 'v1.marketing.integral.StorePointRecord/getBasic')->option(['real_name' => '积分统计基本信息']);
Route::get('point/get_trend', 'v1.marketing.integral.StorePointRecord/getTrend')->option(['real_name' => '积分统计趋势图']);
//积分来源统计
Route::get('point/get_channel', 'v1.marketing.integral.StorePointRecord/getChannel')->option(['real_name' => '积分来源统计']);
//积分消耗统计
Route::get('point/get_type', 'v1.marketing.integral.StorePointRecord/getType')->option(['real_name' => '积分消耗统计']);
})->option(['parent' => 'marketing', 'cate_name' => '积分活动']);
//预售列表
Route::get('advance/index', 'v1.marketing.StoreAdvance/index')->option(['real_name' => '预售商品列表']);
Route::get('advance/info/:id', 'v1.marketing.StoreAdvance/info')->option(['real_name' => '预售商品详情']);
Route::post('advance/save/:id', 'v1.marketing.StoreAdvance/save')->option(['real_name' => '保存预售商品']);
Route::delete('advance/:id', 'v1.marketing.StoreAdvance/del')->option(['real_name' => '删除预售商品']);
Route::put('advance/set_status/:id/:status', 'v1.marketing.StoreAdvance/setStatus')->option(['real_name' => '上下架预售商品']);
//积分商城
//积分商品列表
Route::get('integral_product', 'v1.marketing.integral.StoreIntegral/index')->option(['real_name' => '积分商品列表']);
//积分商品新增或编辑
Route::post('integral/:id', 'v1.marketing.integral.StoreIntegral/save')->option(['real_name' => '积分商品新增或编辑']);
//积分商品详情
Route::get('integral/:id', 'v1.marketing.integral.StoreIntegral/read')->option(['real_name' => '积分商品详情']);
//积分商品删除
Route::delete('integral/:id', 'v1.marketing.integral.StoreIntegral/delete')->option(['real_name' => '积分商品删除']);
//修改积分商品状态
Route::put('integral/set_show/:id/:is_show', 'v1.marketing.integral.StoreIntegral/set_show')->option(['real_name' => '修改积分商品状态']);
//积分商城订单列表
Route::get('integral/order/list', 'v1.marketing.integral.StoreIntegralOrder/lst')->option(['real_name' => '积分商城订单列表']);
//积分商城订单数据
Route::get('integral/order/chart', 'v1.marketing.integral.StoreIntegralOrder/chart')->option(['real_name' => '积分商城订单数据']);
//积分商城订单详情数据
Route::get('integral/order/info/:id', 'v1.marketing.integral.StoreIntegralOrder/order_info')->option(['real_name' => '积分商城订单详情数据']);
//修改积分商品订单备注信息
Route::put('integral/order/remark/:id', 'v1.marketing.integral.StoreIntegralOrder/remark')->option(['real_name' => '修改积分商品订单备注信息']);
//获取积分订单状态
Route::get('integral/order/status/:id', 'v1.marketing.integral.StoreIntegralOrder/status')->option(['real_name' => '获取积分订单状态']);
//删除积分订单
Route::delete('integral/order/del/:id', 'v1.marketing.integral.StoreIntegralOrder/del')->option(['real_name' => '删除积分订单']);
//积分订单发送货
Route::put('integral/order/delivery/:id', 'v1.marketing.integral.StoreIntegralOrder/update_delivery')->option(['real_name' => '积分订单发送货']);
//获取积分订单配送信息表单
Route::get('integral/order/distribution/:id', 'v1.marketing.integral.StoreIntegralOrder/distribution')->option(['real_name' => '获取积分订单配送信息表单']);
//修改积分订单配送信息
Route::put('integral/order/distribution/:id', 'v1.marketing.integral.StoreIntegralOrder/update_distribution')->option(['real_name' => '修改积分订单配送信息']);
//积分订单确认收货
Route::put('integral/order/take/:id', 'v1.marketing.integral.StoreIntegralOrder/take_delivery')->option(['real_name' => '积分订单确认收货']);
//积分订单获取物流公司
Route::get('integral/order/express_list', 'v1.marketing.integral.StoreIntegralOrder/express')->option(['real_name' => '积分订单获取物流公司']);
//积分订单快递公司电子面单模版
Route::get('integral/order/express/temp', 'v1.marketing.integral.StoreIntegralOrder/express_temp')->option(['real_name' => '积分订单快递公司电子面单模版']);
//积分订单获取物流信息
Route::get('integral/order/express/:id', 'v1.marketing.integral.StoreIntegralOrder/get_express')->option(['real_name' => '积分订单获取物流信息']);
//打印积分订单
Route::get('integral/order/print/:id', 'v1.marketing.integral.StoreIntegralOrder/order_print')->option(['real_name' => '打印积分订单']);
//积分订单列表获取配送员
Route::get('integral/order/delivery/list', 'v1.order.DeliveryService/get_delivery_list')->option(['real_name' => '积分订单列表获取配送员']);
//积分订单获取面单默认配置信息
Route::get('integral/order/sheet_info', 'v1.marketing.integral.StoreIntegralOrder/getDeliveryInfo')->option(['real_name' => '积分订单获取面单默认配置信息']);
//九宫格抽奖
//抽奖活动列表
Route::get('lottery/list', 'v1.marketing.lottery.LuckLottery/index')->option(['real_name' => '抽奖活动列表']);
//抽奖活动详情
Route::get('lottery/detail/:id', 'v1.marketing.lottery.LuckLottery/detail')->option(['real_name' => '抽奖活动详情']);
//抽奖活动详情
Route::get('lottery/factor_info/:factor', 'v1.marketing.lottery.LuckLottery/factorInfo')->option(['real_name' => '抽奖活动详情']);
//添加抽奖活动
Route::post('lottery/add', 'v1.marketing.lottery.LuckLottery/add')->option(['real_name' => '添加抽奖活动']);
//修改抽奖活动数据
Route::put('lottery/edit/:id', 'v1.marketing.lottery.LuckLottery/edit')->option(['real_name' => '修改抽奖活动数据']);
//删除抽奖活动
Route::delete('lottery/del/:id', 'v1.marketing.lottery.LuckLottery/delete')->option(['real_name' => '删除抽奖活动']);
//设置抽奖活动是否显示
Route::post('lottery/set_status/:id/:status', 'v1.marketing.lottery.LuckLottery/setStatus')->option(['real_name' => '设置抽奖活动是否显示']);
//抽奖记录列表
Route::get('lottery/record/list', 'v1.marketing.lottery.LuckLotteryRecord/index')->option(['real_name' => '抽奖记录列表']);
//抽奖中奖发货、备注处理
Route::post('lottery/record/deliver', 'v1.marketing.lottery.LuckLotteryRecord/deliver')->option(['real_name' => '抽奖中奖发货、备注处理']);
//积分记录
Route::get('point_record', 'v1.marketing.integral.StorePointRecord/pointRecord')->option(['read_name' => '积分记录列表']);
Route::post('point_record/remark/:id', 'v1.marketing.integral.StorePointRecord/pointRecordRemark')->option(['read_name' => '积分记录列表备注']);
Route::get('point/get_basic', 'v1.marketing.integral.StorePointRecord/getBasic')->option(['read_name' => '积分统计基本信息']);
Route::get('point/get_trend', 'v1.marketing.integral.StorePointRecord/getTrend')->option(['read_name' => '积分统计趋势图']);
Route::get('point/get_channel', 'v1.marketing.integral.StorePointRecord/getChannel')->option(['read_name' => '积分来源统计']);
Route::get('point/get_type', 'v1.marketing.integral.StorePointRecord/getType')->option(['read_name' => '积分消耗统计']);
/** 抽奖活动 */
Route::group(function () {
//抽奖活动列表
Route::get('lottery/list', 'v1.marketing.lottery.LuckLottery/index')->option(['real_name' => '抽奖活动列表']);
//抽奖活动详情
Route::get('lottery/detail/:id', 'v1.marketing.lottery.LuckLottery/detail')->option(['real_name' => '抽奖活动详情']);
//抽奖活动详情
Route::get('lottery/factor_info/:factor', 'v1.marketing.lottery.LuckLottery/factorInfo')->option(['real_name' => '抽奖活动详情']);
//添加抽奖活动
Route::post('lottery/add', 'v1.marketing.lottery.LuckLottery/add')->option(['real_name' => '添加抽奖活动']);
//修改抽奖活动数据
Route::put('lottery/edit/:id', 'v1.marketing.lottery.LuckLottery/edit')->option(['real_name' => '修改抽奖活动数据']);
//删除抽奖活动
Route::delete('lottery/del/:id', 'v1.marketing.lottery.LuckLottery/delete')->option(['real_name' => '删除抽奖活动']);
//设置抽奖活动是否显示
Route::post('lottery/set_status/:id/:status', 'v1.marketing.lottery.LuckLottery/setStatus')->option(['real_name' => '设置抽奖活动是否显示']);
//抽奖记录列表
Route::get('lottery/record/list', 'v1.marketing.lottery.LuckLotteryRecord/index')->option(['real_name' => '抽奖记录列表']);
//抽奖中奖发货、备注处理
Route::post('lottery/record/deliver', 'v1.marketing.lottery.LuckLotteryRecord/deliver')->option(['real_name' => '抽奖中奖发货、备注处理']);
})->option(['parent' => 'marketing', 'cate_name' => '抽奖活动']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'marketing', 'mark_name' => '营销活动']);

View File

@ -14,43 +14,56 @@ use think\facade\Route;
* 运费模板 相关路由
*/
Route::group('merchant', function () {
//门店设置详情
Route::get('store', 'v1.merchant.SystemStore/index')->option(['real_name' => '门店列表']);
//门店列表数量
Route::get('store/get_header', 'v1.merchant.SystemStore/get_header')->option(['real_name' => '门店列表头部数据']);
//门店列表数量
Route::put('store/set_show/:id/:is_show', 'v1.merchant.SystemStore/set_show')->option(['real_name' => '门店上下架']);
//门店列表数量
Route::delete('store/del/:id', 'v1.merchant.SystemStore/delete')->option(['real_name' => '门店删除']);
//位置选择
Route::get('store/address', 'v1.merchant.SystemStore/select_address')->option(['real_name' => '门店位置选择']);
//门店设置详情
Route::get('store/get_info/:id', 'v1.merchant.SystemStore/get_info')->option(['real_name' => '门店详情']);
//保存修改门店信息
Route::post('store/:id', 'v1.merchant.SystemStore/save')->option(['real_name' => '保存修改门店信息']);
//获取店员列表
Route::get('store_staff', 'v1.merchant.SystemStoreStaff/index')->option(['real_name' => '获取门店店员列表']);
//添加店员表单
Route::get('store_staff/create', 'v1.merchant.SystemStoreStaff/create')->option(['real_name' => '添加门店店员表单']);
//门店搜索列表
Route::get('store_list', 'v1.merchant.SystemStoreStaff/store_list')->option(['real_name' => '门店搜索列表']);
//修改店员状态
Route::put('store_staff/set_show/:id/:is_show', 'v1.merchant.SystemStoreStaff/set_show')->option(['real_name' => '修改店员状态']);
//修改店员表单
Route::get('store_staff/:id/edit', 'v1.merchant.SystemStoreStaff/edit')->option(['real_name' => '修改店员表单']);
//保存店员
Route::post('store_staff/save/:id', 'v1.merchant.SystemStoreStaff/save')->option(['real_name' => '保存店员']);
//删除店员
Route::delete('store_staff/del/:id', 'v1.merchant.SystemStoreStaff/delete')->option(['real_name' => '删除店员']);
//获取核销订单列表
Route::get('verify_order', 'v1.merchant.SystemVerifyOrder/list')->option(['real_name' => '获取核销订单列表']);
//获取核销订单头部
Route::get('verify_badge', 'v1.merchant.SystemVerifyOrder/getVerifyBadge')->option(['real_name' => '获取核销订单头部']);
//获取核销订单头部
Route::get('verify/spread_info/:uid', 'v1.merchant.SystemVerifyOrder/order_spread_user')->option(['real_name' => '核销订单推荐人信息']);
/** 门店 */
Route::group(function () {
//门店设置详情
Route::get('store', 'v1.merchant.SystemStore/index')->option(['real_name' => '门店列表']);
//门店列表数量
Route::get('store/get_header', 'v1.merchant.SystemStore/get_header')->option(['real_name' => '门店列表头部数据']);
//门店列表数量
Route::put('store/set_show/:id/:is_show', 'v1.merchant.SystemStore/set_show')->option(['real_name' => '门店上下架']);
//门店列表数量
Route::delete('store/del/:id', 'v1.merchant.SystemStore/delete')->option(['real_name' => '门店删除']);
//位置选择
Route::get('store/address', 'v1.merchant.SystemStore/select_address')->option(['real_name' => '门店位置选择']);
//门店设置详情
Route::get('store/get_info/:id', 'v1.merchant.SystemStore/get_info')->option(['real_name' => '门店详情']);
//保存修改门店信息
Route::post('store/:id', 'v1.merchant.SystemStore/save')->option(['real_name' => '保存修改门店信息']);
})->option(['parent' => 'merchant', 'cate_name' => '门店']);
/** 店员 */
Route::group(function () {
//获取店员列表
Route::get('store_staff', 'v1.merchant.SystemStoreStaff/index')->option(['real_name' => '获取门店店员列表']);
//添加店员表单
Route::get('store_staff/create', 'v1.merchant.SystemStoreStaff/create')->option(['real_name' => '添加门店店员表单']);
//门店搜索列表
Route::get('store_list', 'v1.merchant.SystemStoreStaff/store_list')->option(['real_name' => '门店搜索列表']);
//修改店员状态
Route::put('store_staff/set_show/:id/:is_show', 'v1.merchant.SystemStoreStaff/set_show')->option(['real_name' => '修改店员状态']);
//修改店员表单
Route::get('store_staff/:id/edit', 'v1.merchant.SystemStoreStaff/edit')->option(['real_name' => '修改店员表单']);
//保存店员
Route::post('store_staff/save/:id', 'v1.merchant.SystemStoreStaff/save')->option(['real_name' => '保存店员']);
//删除店员
Route::delete('store_staff/del/:id', 'v1.merchant.SystemStoreStaff/delete')->option(['real_name' => '删除店员']);
})->option(['parent' => 'merchant', 'cate_name' => '店员']);
/** 核销订单 */
Route::group(function () {
//获取核销订单列表
Route::get('verify_order', 'v1.merchant.SystemVerifyOrder/list')->option(['real_name' => '获取核销订单列表']);
//获取核销订单头部
Route::get('verify_badge', 'v1.merchant.SystemVerifyOrder/getVerifyBadge')->option(['real_name' => '获取核销订单头部']);
//获取核销订单头部
Route::get('verify/spread_info/:uid', 'v1.merchant.SystemVerifyOrder/order_spread_user')->option(['real_name' => '核销订单推荐人信息']);
})->option(['parent' => 'merchant', 'cate_name' => '核销订单']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'merchant', 'mark_name' => '门店核销']);

View File

@ -48,4 +48,4 @@ Route::group('notify', function () {
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'notify', 'mark_name' => '消息通知']);

View File

@ -14,6 +14,10 @@ use think\facade\Route;
* 订单路由
*/
Route::group('order', function () {
//获取快递信息
Route::get('kuaidi_coms', 'v1.order.StoreOrder/getKuaidiComs')->option(['real_name' => '获取快递信息']);
//取消商家寄件
Route::post('shipment_cancel_order/:id', 'v1.order.StoreOrder/shipmentCancelOrder')->option(['real_name' => '取消商家寄件']);
//打印订单
Route::get('print/:id', 'v1.order.StoreOrder/order_print')->name('StoreOrderPrint')->option(['real_name' => '打印订单']);
//订单列表
@ -42,6 +46,8 @@ Route::group('order', function () {
Route::get('refund/:id', 'v1.order.StoreOrder/refund')->name('StoreOrderRefund')->option(['real_name' => '订单退款表单']);
//订单退款
Route::put('refund/:id', 'v1.order.StoreOrder/update_refund')->name('StoreOrderUpdateRefund')->option(['real_name' => '订单退款']);
//获取电子面单模版
Route::get('express/temp', 'v1.order.StoreOrder/express_temp')->option(['real_name' => '快递公司电子面单模版']);
//获取物流信息
Route::get('express/:id', 'v1.order.StoreOrder/get_express')->name('StoreOrderUpdateExpress')->option(['real_name' => '获取物流信息']);
//获取物流公司
@ -72,7 +78,6 @@ Route::group('order', function () {
Route::post('dels', 'v1.order.StoreOrder/del_orders')->name('StoreOrderorDels')->option(['real_name' => '批量删除订单']);
//面单默认配置信息
Route::get('sheet_info', 'v1.order.StoreOrder/getDeliveryInfo')->option(['real_name' => '面单默认配置信息']);
//获取线下付款二维码
Route::get('offline_scan', 'v1.order.OtherOrder/offline_scan')->name('OfflineScan')->option(['real_name' => '获取线下付款二维码']);
//线下收银列表
@ -103,7 +108,7 @@ Route::group('order', function () {
Route::get('delivery/list', 'v1.order.DeliveryService/get_delivery_list')->option(['real_name' => '订单列表获取配送员']);
//电子面单模板列表
Route::get('expr/temp', 'v1.order.StoreOrder/expr_temp')->option(['real_name' => '电子面单模板列表']);
Route::get('express/temp', 'v1.order.StoreOrder/express_temp')->option(['real_name' => '快递公司电子面单模版']);
//更多操作打印电子面单
Route::get('order_dump/:order_id', 'v1.order.StoreOrder/order_dump')->option(['real_name' => '更多操作打印电子面单']);
})->middleware([
@ -111,7 +116,7 @@ Route::group('order', function () {
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'order', 'mark_name' => '订单管理']);
/**
* 售后 相关路由
@ -138,4 +143,4 @@ Route::group('refund', function () {
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'refund', 'mark_name' => '退款订单']);

View File

@ -12,95 +12,110 @@ use think\facade\Route;
Route::group('product', function () {
Route::get('category', 'v1.product.StoreCategory/index')->option(['real_name' => '商品分类列表']);
//商品树形列表
Route::get('category/tree/:type', 'v1.product.StoreCategory/tree_list')->option(['real_name' => '商品分类树形列表']);
//商品分类新增表单
Route::get('category/create', 'v1.product.StoreCategory/create')->option(['real_name' => '商品分类新增表单']);
//商品分类新增
Route::post('category', 'v1.product.StoreCategory/save')->option(['real_name' => '商品分类新增']);
//商品分类编辑表单
Route::get('category/:id', 'v1.product.StoreCategory/edit')->option(['real_name' => '商品分类编辑表单']);
//商品分类编辑
Route::put('category/:id', 'v1.product.StoreCategory/update')->option(['real_name' => '商品分类编辑']);
//删除商品分类
Route::delete('category/:id', 'v1.product.StoreCategory/delete')->option(['real_name' => '删除商品分类']);
//商品分类修改状态
Route::put('category/set_show/:id/:is_show', 'v1.product.StoreCategory/set_show')->option(['real_name' => '商品分类修改状态']);
//商品分类快捷编辑
Route::put('category/set_category/:id', 'v1.product.StoreCategory/set_category')->option(['real_name' => '商品分类快捷编辑']);
//商品列表
Route::get('product', 'v1.product.StoreProduct/index')->option(['real_name' => '商品列表']);
//获取退出未保存的数据
Route::get('cache', 'v1.product.StoreProduct/getCacheData')->option(['real_name' => '获取退出未保存的数据']);
//1分钟保存一次数据
Route::post('cache', 'v1.product.StoreProduct/saveCacheData')->option(['real_name' => '保存还未提交数据']);
//获取所有商品列表
Route::get('product/list', 'v1.product.StoreProduct/search_list')->option(['real_name' => '获取所有商品列表']);
//获取商品规格
Route::get('product/attrs/:id/:type', 'v1.product.StoreProduct/get_attrs')->option(['real_name' => '获取商品规格']);
//商品列表头
Route::get('product/type_header', 'v1.product.StoreProduct/type_header')->option(['real_name' => '商品列表头部数据']);
//商品详情
Route::get('product/:id', 'v1.product.StoreProduct/get_product_info')->option(['real_name' => '商品详情']);
//加入回收站
Route::delete('product/:id', 'v1.product.StoreProduct/delete')->option(['real_name' => '商品放入回收站']);
//保存新建或保存
Route::post('product/:id', 'v1.product.StoreProduct/save')->option(['real_name' => '新建或修改商品']);
//修改商品状态
Route::put('product/set_show/:id/:is_show', 'v1.product.StoreProduct/set_show')->option(['real_name' => '修改商品状态']);
//商品快速编辑
Route::put('product/set_product/:id', 'v1.product.StoreProduct/set_product')->option(['real_name' => '商品快速编辑']);
//设置批量商品上架
Route::put('product/product_show', 'v1.product.StoreProduct/product_show')->option(['real_name' => '设置批量商品上架']);
//设置批量商品下架
Route::put('product/product_unshow', 'v1.product.StoreProduct/product_unshow')->option(['real_name' => '设置批量商品下架']);
//规则列表
Route::get('product/rule', 'v1.product.StoreProductRule/index')->option(['real_name' => '商品规则列表']);
//规则 保存新建或编辑
Route::post('product/rule/:id', 'v1.product.StoreProductRule/save')->option(['real_name' => '新建或编辑商品规则']);
//规则详情
Route::get('product/rule/:id', 'v1.product.StoreProductRule/read')->option(['real_name' => '商品规则详情']);
//删除属性规则
Route::delete('product/rule/delete', 'v1.product.StoreProductRule/delete')->option(['real_name' => '删除商品规则']);
//生成属性
Route::post('generate_attr/:id/:type', 'v1.product.StoreProduct/is_format_attr')->option(['real_name' => '生成商品规格列表']);
//评论列表
Route::get('reply', 'v1.product.StoreProductReply/index')->option(['real_name' => '商品评论列表']);
//回复评论
Route::put('reply/set_reply/:id', 'v1.product.StoreProductReply/set_reply')->option(['real_name' => '商品回复评论']);
//删除评论
Route::delete('reply/:id', 'v1.product.StoreProductReply/delete')->option(['real_name' => '删除商品评论']);
//获取商品数据
Route::post('crawl', 'v1.product.CopyTaobao/get_request_contents')->option(['real_name' => '获取采集商品数据']);
//获取复制商品配置
Route::get('copy_config', 'v1.product.CopyTaobao/getConfig')->option(['real_name' => '获取复制商品配置']);
//复制其他平台商品
Route::post('copy', 'v1.product.CopyTaobao/copyProduct')->option(['real_name' => '复制其他平台商品']);
//保存商品数据
Route::post('crawl/save', 'v1.product.CopyTaobao/save_product')->option(['real_name' => '保存采集商品数据']);
//调起虚拟评论表单
Route::get('reply/fictitious_reply/:product_id', 'v1.product.StoreProductReply/fictitious_reply')->option(['real_name' => '虚拟评论表单']);
//保存虚拟评论
Route::post('reply/save_fictitious_reply', 'v1.product.StoreProductReply/save_fictitious_reply')->option(['real_name' => '保存虚拟评论']);
//获取规则属性模板
Route::get('product/get_rule', 'v1.product.StoreProduct/get_rule')->option(['real_name' => '获取商品规则属性模板']);
//获取运费模板
Route::get('product/get_template', 'v1.product.StoreProduct/get_template')->option(['real_name' => '获取运费模板']);
//上传视频密钥接口
Route::get('product/get_temp_keys', 'v1.product.StoreProduct/getTempKeys')->option(['real_name' => '上传视频密钥接口']);
//检测是否有活动开启
Route::get('product/check_activity/:id', 'v1.product.StoreProduct/check_activity')->option(['real_name' => '检测是商品否有活动开启']);
//导入虚拟商品卡密
Route::get('product/import_card', 'v1.product.StoreProduct/import_card')->option(['real_name' => '导入虚拟商品卡密']);
/** 商品分类 */
Route::group(function () {
Route::get('category', 'v1.product.StoreCategory/index')->option(['real_name' => '商品分类列表']);
//商品树形列表
Route::get('category/tree/:type', 'v1.product.StoreCategory/tree_list')->option(['real_name' => '商品分类树形列表']);
//商品分类树形列表
Route::get('category/cascader/:type', 'v1.product.StoreCategory/cascader_list')->option(['real_name' => '商品分类树形列表']);
//商品分类新增表单
Route::get('category/create', 'v1.product.StoreCategory/create')->option(['real_name' => '商品分类新增表单']);
//商品分类新增
Route::post('category', 'v1.product.StoreCategory/save')->option(['real_name' => '商品分类新增']);
//商品分类编辑表单
Route::get('category/:id', 'v1.product.StoreCategory/edit')->option(['real_name' => '商品分类编辑表单']);
//商品分类编辑
Route::put('category/:id', 'v1.product.StoreCategory/update')->option(['real_name' => '商品分类编辑']);
//删除商品分类
Route::delete('category/:id', 'v1.product.StoreCategory/delete')->option(['real_name' => '删除商品分类']);
//商品分类修改状态
Route::put('category/set_show/:id/:is_show', 'v1.product.StoreCategory/set_show')->option(['real_name' => '商品分类修改状态']);
//商品分类快捷编辑
Route::put('category/set_category/:id', 'v1.product.StoreCategory/set_category')->option(['real_name' => '商品分类快捷编辑']);
})->option(['parent' => 'product', 'cate_name' => '商品分类']);
/** 商品批量操作 */
Route::post('batch/setting', 'v1.product.StoreProduct/batchSetting')->option(['real_name' => '商品批量设置']);
/** 商品 */
Route::group(function () {
//商品列表
Route::get('product', 'v1.product.StoreProduct/index')->option(['real_name' => '商品列表']);
//获取退出未保存的数据
Route::get('cache', 'v1.product.StoreProduct/getCacheData')->option(['real_name' => '获取退出未保存的数据']);
//1分钟保存一次数据
Route::post('cache', 'v1.product.StoreProduct/saveCacheData')->option(['real_name' => '保存还未提交数据']);
//获取所有商品列表
Route::get('product/list', 'v1.product.StoreProduct/search_list')->option(['real_name' => '获取所有商品列表']);
//获取商品规格
Route::get('product/attrs/:id/:type', 'v1.product.StoreProduct/get_attrs')->option(['real_name' => '获取商品规格']);
//商品列表头
Route::get('product/type_header', 'v1.product.StoreProduct/type_header')->option(['real_name' => '商品列表头部数据']);
//修改商品状态
Route::put('product/set_show/:id/:is_show', 'v1.product.StoreProduct/set_show')->option(['real_name' => '修改商品状态']);
//商品快速编辑
Route::put('product/set_product/:id', 'v1.product.StoreProduct/set_product')->option(['real_name' => '商品快速编辑']);
//设置批量商品上架
Route::put('product/product_show', 'v1.product.StoreProduct/product_show')->option(['real_name' => '设置批量商品上架']);
//设置批量商品下架
Route::put('product/product_unshow', 'v1.product.StoreProduct/product_unshow')->option(['real_name' => '设置批量商品下架']);
//规则列表
Route::get('product/rule', 'v1.product.StoreProductRule/index')->option(['real_name' => '商品规则列表']);
//规则 保存新建或编辑
Route::post('product/rule/:id', 'v1.product.StoreProductRule/save')->option(['real_name' => '新建或编辑商品规则']);
//规则详情
Route::get('product/rule/:id', 'v1.product.StoreProductRule/read')->option(['real_name' => '商品规则详情']);
//删除属性规则
Route::delete('product/rule/delete', 'v1.product.StoreProductRule/delete')->option(['real_name' => '删除商品规则']);
//获取规则属性模板
Route::get('product/get_rule', 'v1.product.StoreProduct/get_rule')->option(['real_name' => '获取商品规则属性模板']);
//获取运费模板
Route::get('product/get_template', 'v1.product.StoreProduct/get_template')->option(['real_name' => '获取运费模板']);
//上传视频密钥接口
Route::get('product/get_temp_keys', 'v1.product.StoreProduct/getTempKeys')->option(['real_name' => '上传视频密钥接口']);
//检测是否有活动开启
Route::get('product/check_activity/:id', 'v1.product.StoreProduct/check_activity')->option(['real_name' => '检测是商品否有活动开启']);
//导入虚拟商品卡密
Route::get('product/import_card', 'v1.product.StoreProduct/import_card')->option(['real_name' => '导入虚拟商品卡密']);
//商品详情
Route::get('product/:id', 'v1.product.StoreProduct/get_product_info')->option(['real_name' => '商品详情']);
//加入回收站
Route::delete('product/:id', 'v1.product.StoreProduct/delete')->option(['real_name' => '商品放入回收站']);
//保存新建或保存
Route::post('product/:id', 'v1.product.StoreProduct/save')->option(['real_name' => '新建或修改商品']);
//生成属性
Route::post('generate_attr/:id/:type', 'v1.product.StoreProduct/is_format_attr')->option(['real_name' => '生成商品规格列表']);
//商品批量操作
Route::post('batch/setting', 'v1.product.StoreProduct/batchSetting')->option(['real_name' => '商品批量设置']);
})->option(['parent' => 'product', 'cate_name' => '商品']);
/** 商品评论 */
Route::group(function () {
//评论列表
Route::get('reply', 'v1.product.StoreProductReply/index')->option(['real_name' => '商品评论列表']);
//回复评论
Route::put('reply/set_reply/:id', 'v1.product.StoreProductReply/set_reply')->option(['real_name' => '商品回复评论']);
//删除评论
Route::delete('reply/:id', 'v1.product.StoreProductReply/delete')->option(['real_name' => '删除商品评论']);
//调起虚拟评论表单
Route::get('reply/fictitious_reply/:product_id', 'v1.product.StoreProductReply/fictitious_reply')->option(['real_name' => '虚拟评论表单']);
//保存虚拟评论
Route::post('reply/save_fictitious_reply', 'v1.product.StoreProductReply/save_fictitious_reply')->option(['real_name' => '保存虚拟评论']);
})->option(['parent' => 'product', 'cate_name' => '商品评论']);
/** 商品采集 */
Route::group(function () {
//获取商品数据
Route::post('crawl', 'v1.product.CopyTaobao/get_request_contents')->option(['real_name' => '获取采集商品数据']);
//获取复制商品配置
Route::get('copy_config', 'v1.product.CopyTaobao/getConfig')->option(['real_name' => '获取复制商品配置']);
//复制其他平台商品
Route::post('copy', 'v1.product.CopyTaobao/copyProduct')->option(['real_name' => '复制其他平台商品']);
//保存商品数据
Route::post('crawl/save', 'v1.product.CopyTaobao/save_product')->option(['real_name' => '保存采集商品数据']);
})->option(['parent' => 'product', 'cate_name' => '商品采集']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'product', 'mark_name' => '商品管理']);

View File

@ -25,7 +25,7 @@ Route::group(function () {
//后台登录页面数据
Route::get('login/info', 'Login/info')->option(['real_name' => '登录信息']);
//下载文件
Route::get('download', 'PublicController/download')->option(['real_name' => '下载文件']);
Route::get('download/:key', 'PublicController/download')->option(['real_name' => '下载文件']);
//验证码
Route::get('captcha_pro', 'Login/captcha')->name('')->option(['real_name' => '获取验证码']);
//获取验证码
@ -36,7 +36,7 @@ Route::group(function () {
Route::get('get_workerman_url', 'PublicController/getWorkerManUrl')->option(['real_name' => '获取客服数据']);
//测试
Route::get('index', 'Test/index')->option(['real_name' => '测试地址']);
})->middleware(AllowOriginMiddleware::class);
})->middleware(AllowOriginMiddleware::class)->option(['mark' => 'login', 'mark_name' => '登录相关']);
/**
* miss 路由

View File

@ -65,4 +65,4 @@ Route::group('serve', function () {
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'serve', 'mark_name' => '一号通']);

View File

@ -15,207 +15,352 @@ use think\facade\Route;
*/
Route::group('setting', function () {
//管理员资源路由
Route::resource('admin', 'v1.setting.SystemAdmin')->except(['read'])->option(['real_name' => '管理员']);
//退出登陆
Route::get('admin/logout', 'v1.setting.SystemAdmin/logout')->name('SystemAdminLogout')->option(['real_name' => '退出登陆']);
//修改状态
Route::put('set_status/:id/:status', 'v1.setting.SystemAdmin/set_status')->name('SystemAdminSetStatus')->option(['real_name' => '修改管理员状态']);
//获取当前管理员信息
Route::get('info', 'v1.setting.SystemAdmin/info')->name('SystemAdminInfo')->option(['real_name' => '获取当前管理员信息']);
//修改当前管理员信息
Route::put('update_admin', 'v1.setting.SystemAdmin/update_admin')->name('SystemAdminUpdateAdmin')->option(['real_name' => '修改当前管理员信息']);
//设置文件管理密码
Route::put('set_file_password', 'v1.setting.SystemAdmin/set_file_password')->name('SystemAdminSetFilePassword')->option(['real_name' => '设置当前文件管理密码']);
//权限菜单资源路由
Route::resource('menus', 'v1.setting.SystemMenus')->option(['real_name' => '权限菜单']);
//未添加的权限规则列表
Route::get('ruleList', 'v1.setting.SystemMenus/ruleList')->option(['real_name' => '未添加的权限规则列表']);
//修改显示
Route::put('menus/show/:id', 'v1.setting.SystemMenus/show')->name('SystemMenusShow')->option(['real_name' => '修改权限规格显示状态']);
//身份列表
Route::get('role', 'v1.setting.SystemRole/index')->option(['real_name' => '管理员身份列表']);
//身份权限列表
Route::get('role/create', 'v1.setting.SystemRole/create')->option(['real_name' => '管理员身份权限列表']);
//编辑详情
Route::get('role/:id/edit', 'v1.setting.SystemRole/edit')->option(['real_name' => '编辑管理员详情']);
//保存新建或编辑
Route::post('role/:id', 'v1.setting.SystemRole/save')->option(['real_name' => '新建或编辑管理员']);
//修改身份状态
Route::put('role/set_status/:id/:status', 'v1.setting.SystemRole/set_status')->option(['real_name' => '修改管理员身份状态']);
//删除身份
Route::delete('role/:id', 'v1.setting.SystemRole/delete')->option(['real_name' => '删除管理员身份']);
//配置分类资源路由
Route::resource('config_class', 'v1.setting.SystemConfigTab')->option(['real_name' => '系统配置分类']);
//修改配置分类状态
Route::put('config_class/set_status/:id/:status', 'v1.setting.SystemConfigTab/set_status')->option(['real_name' => '修改配置分类状态']);
//配置资源路由
Route::resource('config', 'v1.setting.SystemConfig')->option(['real_name' => '系统配置']);
//修改配置状态
Route::put('config/set_status/:id/:status', 'v1.setting.SystemConfig/set_status')->option(['real_name' => '修改配置状态']);
//基本配置编辑表单
Route::get('config/header_basics', 'v1.setting.SystemConfig/header_basics')->option(['real_name' => '基本配置编辑头部数据']);
//基本配置编辑表单
Route::get('config/edit_basics', 'v1.setting.SystemConfig/edit_basics')->option(['real_name' => '基本配置编辑表单']);
//基本配置保存数据
Route::post('config/save_basics', 'v1.setting.SystemConfig/save_basics')->option(['real_name' => '基本配置保存数据']);
//基本配置上传文件
Route::post('config/upload', 'v1.setting.SystemConfig/file_upload')->option(['real_name' => '基本配置上传文件']);
//获取单个配置值
Route::get('config/get_system/:name', 'v1.setting.SystemConfig/get_system')->option(['real_name' => '基本配置编辑表单']);
//获取某个分类下的所有配置信息
Route::get('config_list/:tabId', 'v1.setting.SystemConfig/get_config_list')->option(['real_name' => '获取某个分类下的所有配置信息']);
//组合数据资源路由
Route::resource('group', 'v1.setting.SystemGroup')->option(['real_name' => '组合数据']);
//组合数据全部
Route::get('group_all', 'v1.setting.SystemGroup/getGroup')->option(['real_name' => '组合数据全部']);
//组合数据子数据资源路由
Route::resource('group_data', 'v1.setting.SystemGroupData')->option(['real_name' => '组合数据子数据']);
//修改数据状态
Route::get('group_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '组合数据头部']);
//修改数据状态
Route::put('group_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '修改组合数据状态']);
//数据配置保存
Route::post('group_data/save_all', 'v1.setting.SystemGroupData/saveAll')->option(['real_name' => '提交数据配置']);
//获取城市数据列表
Route::get('city/list/:parent_id', 'v1.setting.SystemCity/index')->option(['real_name' => '获取城市数据列表']);
//添加城市数据表单
Route::get('city/add/:parent_id', 'v1.setting.SystemCity/add')->option(['real_name' => '添加城市数据表单']);
//修改城市数据表单
Route::get('city/:id/edit', 'v1.setting.SystemCity/edit')->option(['real_name' => '修改城市数据表单']);
//新增/修改城市数据
Route::post('city/save', 'v1.setting.SystemCity/save')->option(['real_name' => '新增/修改城市数据']);
//修改城市数据表单
Route::delete('city/del/:city_id', 'v1.setting.SystemCity/delete')->option(['real_name' => '删除城市数据']);
//清除城市数据缓存
Route::get('city/clean_cache', 'v1.setting.SystemCity/clean_cache')->option(['real_name' => '清除城市数据缓存']);
//运费模板列表
Route::get('shipping_templates/list', 'v1.setting.ShippingTemplates/temp_list')->option(['real_name' => '运费模板列表']);
//修改运费模板数据
Route::get('shipping_templates/:id/edit', 'v1.setting.ShippingTemplates/edit')->option(['real_name' => '修改运费模板数据']);
//保存新增修改
Route::post('shipping_templates/save/:id', 'v1.setting.ShippingTemplates/save')->option(['real_name' => '新增或修改运费模版']);
//删除运费模板
Route::delete('shipping_templates/del/:id', 'v1.setting.ShippingTemplates/delete')->option(['real_name' => '删除运费模板']);
//城市数据接口
Route::get('shipping_templates/city_list', 'v1.setting.ShippingTemplates/city_list')->option(['real_name' => '城市数据接口']);
//获取客服广告
Route::get('get_kf_adv', 'v1.setting.SystemGroupData/getKfAdv')->option(['real_name' => '获取客服广告']);
//设置客服广告
Route::post('set_kf_adv', 'v1.setting.SystemGroupData/setKfAdv')->option(['real_name' => '设置客服广告']);
/** 管理员 */
Route::group(function () {
//管理员资源路由
Route::resource('admin', 'v1.setting.SystemAdmin')->except(['read'])->option([
'real_name' => [
'index' => '获取管理员列表',
'create' => '获取管理员表单',
'save' => '保存管理员',
'edit' => '获取修改管理员表单',
'update' => '修改管理员',
'delete' => '删除管理员'
]
]);
//退出登陆
Route::get('admin/logout', 'v1.setting.SystemAdmin/logout')->name('SystemAdminLogout')->option(['real_name' => '退出登陆']);
//修改状态
Route::put('set_status/:id/:status', 'v1.setting.SystemAdmin/set_status')->name('SystemAdminSetStatus')->option(['real_name' => '修改管理员状态']);
//获取当前管理员信息
Route::get('info', 'v1.setting.SystemAdmin/info')->name('SystemAdminInfo')->option(['real_name' => '获取当前管理员信息']);
//修改当前管理员信息
Route::put('update_admin', 'v1.setting.SystemAdmin/update_admin')->name('SystemAdminUpdateAdmin')->option(['real_name' => '修改当前管理员信息']);
//设置文件管理密码
Route::put('set_file_password', 'v1.setting.SystemAdmin/set_file_password')->name('SystemAdminSetFilePassword')->option(['real_name' => '设置当前文件管理密码']);
})->option(['parent' => 'setting', 'cate_name' => '管理员']);
/** 权限菜单 */
Route::group(function () {
//获取菜单权限和权限标识
Route::get('menus/unique', 'v1.setting.SystemMenus/unique')->name('SystemMenusUnique')->option(['real_name' => '获取菜单权限和权限标识']);
//批量保存权限
Route::post('menus/batch', 'v1.setting.SystemMenus/batchSave')->name('SystemMenusBatchSave')->option(['real_name' => '批量保存权限']);
//权限菜单资源路由
Route::resource('menus', 'v1.setting.SystemMenus')->option([
'real_name' => [
'index' => '获取权限菜单列表',
'create' => '获取权限菜单表单',
'save' => '保存权限菜单',
'edit' => '获取修改权限菜单表单',
'read' => '查看权限菜单信息',
'update' => '修改权限菜单',
'delete' => '删除权限菜单'
],
]);
//未添加的权限规则列表
Route::get('ruleList', 'v1.setting.SystemMenus/ruleList')->option(['real_name' => '权限规则列表']);
//权限规则分类
Route::get('rule_cate', 'v1.setting.SystemMenus/ruleCate')->option(['real_name' => '权限规则分类']);
//修改显示
Route::put('menus/show/:id', 'v1.setting.SystemMenus/show')->name('SystemMenusShow')->option(['real_name' => '修改权限规格显示状态']);
})->option(['parent' => 'setting', 'cate_name' => '权限菜单']);
/** 管理员身份 */
Route::group(function () {
//身份列表
Route::get('role', 'v1.setting.SystemRole/index')->option(['real_name' => '管理员身份列表']);
//身份权限列表
Route::get('role/create', 'v1.setting.SystemRole/create')->option(['real_name' => '管理员身份权限列表']);
//编辑详情
Route::get('role/:id/edit', 'v1.setting.SystemRole/edit')->option(['real_name' => '编辑管理员详情']);
//保存新建或编辑
Route::post('role/:id', 'v1.setting.SystemRole/save')->option(['real_name' => '新建或编辑管理员']);
//修改身份状态
Route::put('role/set_status/:id/:status', 'v1.setting.SystemRole/set_status')->option(['real_name' => '修改管理员身份状态']);
//删除身份
Route::delete('role/:id', 'v1.setting.SystemRole/delete')->option(['real_name' => '删除管理员身份']);
})->option(['parent' => 'setting', 'cate_name' => '管理员身份']);
/** 系统配置 */
Route::group(function () {
//配置分类资源路由
Route::resource('config_class', 'v1.setting.SystemConfigTab')->except(['read'])->option([
'real_name' => [
'index' => '获取系统配置分类列表',
'create' => '获取系统配置分类表单',
'save' => '保存系统配置分类',
'edit' => '获取修改系统配置分类表单',
'update' => '修改系统配置分类',
'delete' => '删除系统配置分类'
],
]);
//修改配置分类状态
Route::put('config_class/set_status/:id/:status', 'v1.setting.SystemConfigTab/set_status')->option(['real_name' => '修改配置分类状态']);
//配置资源路由
Route::resource('config', 'v1.setting.SystemConfig')->except(['read'])->option([
'real_name' => [
'index' => '获取系统配置列表',
'create' => '获取系统配置表单',
'save' => '保存系统配置',
'edit' => '获取修改系统配置表单',
'update' => '修改系统配置',
'delete' => '删除系统配置'
]
]);
//修改配置状态
Route::put('config/set_status/:id/:status', 'v1.setting.SystemConfig/set_status')->option(['real_name' => '修改配置状态']);
//基本配置编辑表单
Route::get('config/header_basics', 'v1.setting.SystemConfig/header_basics')->option(['real_name' => '基本配置编辑头部数据']);
//基本配置编辑表单
Route::get('config/edit_basics', 'v1.setting.SystemConfig/edit_basics')->option(['real_name' => '基本配置编辑表单']);
//基本配置保存数据
Route::post('config/save_basics', 'v1.setting.SystemConfig/save_basics')->option(['real_name' => '基本配置保存数据']);
//基本配置上传文件
Route::post('config/upload', 'v1.setting.SystemConfig/file_upload')->option(['real_name' => '基本配置上传文件']);
//获取单个配置值
Route::get('config/get_system/:name', 'v1.setting.SystemConfig/get_system')->option(['real_name' => '基本配置编辑表单']);
//获取某个分类下的所有配置信息
Route::get('config_list/:tabId', 'v1.setting.SystemConfig/get_config_list')->option(['real_name' => '获取某个分类下的所有配置信息']);
})->option(['parent' => 'setting', 'cate_name' => '系统配置']);
/** 组合数据 */
Route::group(function () {
//组合数据资源路由
Route::resource('group', 'v1.setting.SystemGroup')->option([
'real_name' => [
'index' => '获取组合数据列表',
'create' => '获取组合数据表单',
'save' => '保存组合数据',
'edit' => '获取修改组合数据表单',
'update' => '修改组合数据',
'delete' => '删除组合数据'
]
]);
//组合数据全部
Route::get('group_all', 'v1.setting.SystemGroup/getGroup')->option(['real_name' => '组合数据全部']);
//组合数据子数据资源路由
Route::resource('group_data', 'v1.setting.SystemGroupData')->except(['read'])->option([
'real_name' => [
'index' => '获取组合数据子数据列表',
'create' => '获取组合数据子数据表单',
'save' => '保存组合数据子数据',
'edit' => '获取修改组合数据子数据表单',
'update' => '修改组合数据子数据',
'delete' => '删除组合数据子数据'
]
]);
//修改数据状态
Route::get('group_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '组合数据头部']);
//修改数据状态
Route::put('group_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '修改组合数据状态']);
//数据配置保存
Route::post('group_data/save_all', 'v1.setting.SystemGroupData/saveAll')->option(['real_name' => '提交数据配置']);
//获取客服广告
Route::get('get_kf_adv', 'v1.setting.SystemGroupData/getKfAdv')->option(['real_name' => '获取客服广告']);
//设置客服广告
Route::post('set_kf_adv', 'v1.setting.SystemGroupData/setKfAdv')->option(['real_name' => '设置客服广告']);
//签到天数配置资源
Route::resource('sign_data', 'v1.setting.SystemGroupData')->except(['read'])->option([
'real_name' => [
'index' => '获取签到天数配置列表',
'create' => '获取签到天数配置表单',
'save' => '保存签到天数配置',
'edit' => '获取修改签到天数配置表单',
'update' => '修改签到天数配置',
'delete' => '删除签到天数配置'
]
]);
//签到数据字段
Route::get('sign_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '签到数据头部']);
//修改签到数据状态
Route::put('sign_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '修改签到数据状态']);
//订单详情动态图配置资源
Route::resource('order_data', 'v1.setting.SystemGroupData')->except(['read'])->option([
'real_name' => [
'index' => '获取订单详情动态图列表',
'create' => '获取订单详情动态图表单',
'save' => '保存订单详情动态图',
'edit' => '获取修改订单详情动态图表单',
'update' => '修改订单详情动态图',
'delete' => '删除订单详情动态图'
]
]);
//订单数据字段
Route::get('order_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '订单数据字段']);
//订单数据状态
Route::put('order_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '订单数据状态']);
//个人中心菜单配置资源
Route::resource('usermenu_data', 'v1.setting.SystemGroupData')->except(['read'])->option([
'real_name' => [
'index' => '获取个人中心菜单列表',
'create' => '获取个人中心菜单表单',
'save' => '保存个人中心菜单',
'edit' => '获取修改个人中心菜单表单',
'update' => '修改个人中心菜单',
'delete' => '删除个人中心菜单'
]
]);
//个人中心菜单数据字段
Route::get('usermenu_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '个人中心菜单数据字段']);
//个人中心菜单数据状态
Route::put('usermenu_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '个人中心菜单数据状态']);
//分享海报配置资源
Route::resource('poster_data', 'v1.setting.SystemGroupData')->except(['read'])->option([
'real_name' => [
'index' => '获取分享海报列表',
'create' => '获取分享海报表单',
'save' => '保存分享海报',
'edit' => '获取修改分享海报表单',
'update' => '修改分享海报',
'delete' => '删除分享海报'
]
]);
//分享海报数据字段
Route::get('poster_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '分享海报数据字段']);
//分享海报数据状态
Route::put('poster_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '分享海报数据状态']);
//秒杀配置资源
Route::resource('seckill_data', 'v1.setting.SystemGroupData')->except(['read'])->option([
'real_name' => [
'index' => '获取分秒杀配置列表',
'create' => '获取秒杀配置表单',
'save' => '保存秒杀配置',
'edit' => '获取修改秒杀配置表单',
'update' => '修改秒杀配置',
'delete' => '删除秒杀配置'
]
]);
//秒杀数据字段
Route::get('seckill_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '秒杀数据字段']);
//秒杀数据状态
Route::put('seckill_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '秒杀数据状态']);
//获取隐私协议
Route::get('get_user_agreement', 'v1.setting.SystemGroupData/getUserAgreement')->option(['real_name' => '获取隐私协议']);
//设置隐私协议
Route::post('set_user_agreement', 'v1.setting.SystemGroupData/setUserAgreement')->option(['real_name' => '设置隐私协议']);
})->option(['parent' => 'setting', 'cate_name' => '组合数据']);
/** 城市数据 */
Route::group(function () {
//获取城市数据完整列表
Route::get('city/full_list', 'v1.setting.SystemCity/fullList')->option(['real_name' => '获取城市数据完整列表']);
//获取城市数据列表
Route::get('city/list/:parent_id', 'v1.setting.SystemCity/index')->option(['real_name' => '获取城市数据列表']);
//添加城市数据表单
Route::get('city/add/:parent_id', 'v1.setting.SystemCity/add')->option(['real_name' => '添加城市数据表单']);
//修改城市数据表单
Route::get('city/:id/edit', 'v1.setting.SystemCity/edit')->option(['real_name' => '修改城市数据表单']);
//新增/修改城市数据
Route::post('city/save', 'v1.setting.SystemCity/save')->option(['real_name' => '新增/修改城市数据']);
//修改城市数据表单
Route::delete('city/del/:city_id', 'v1.setting.SystemCity/delete')->option(['real_name' => '删除城市数据']);
//清除城市数据缓存
Route::get('city/clean_cache', 'v1.setting.SystemCity/clean_cache')->option(['real_name' => '清除城市数据缓存']);
})->option(['parent' => 'setting', 'cate_name' => '城市数据']);
/** 运费模版 */
Route::group(function () {
//运费模板列表
Route::get('shipping_templates/list', 'v1.setting.ShippingTemplates/temp_list')->option(['real_name' => '运费模板列表']);
//修改运费模板数据
Route::get('shipping_templates/:id/edit', 'v1.setting.ShippingTemplates/edit')->option(['real_name' => '修改运费模板数据']);
//保存新增修改
Route::post('shipping_templates/save/:id', 'v1.setting.ShippingTemplates/save')->option(['real_name' => '新增或修改运费模版']);
//删除运费模板
Route::delete('shipping_templates/del/:id', 'v1.setting.ShippingTemplates/delete')->option(['real_name' => '删除运费模板']);
//城市数据接口
Route::get('shipping_templates/city_list', 'v1.setting.ShippingTemplates/city_list')->option(['real_name' => '城市数据接口']);
})->option(['parent' => 'setting', 'cate_name' => '运费模版']);
//签到天数配置资源
Route::resource('sign_data', 'v1.setting.SystemGroupData')->option(['real_name' => '签到天数配置']);
//签到数据字段
Route::get('sign_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '签到数据头部']);
//修改签到数据状态
Route::put('sign_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '修改签到数据状态']);
//订单详情动态图配置资源
Route::resource('order_data', 'v1.setting.SystemGroupData')->option(['real_name' => '订单详情动态图配置资源']);
//订单数据字段
Route::get('order_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '订单数据字段']);
//订单数据状态
Route::put('order_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '订单数据状态']);
//个人中心菜单配置资源
Route::resource('usermenu_data', 'v1.setting.SystemGroupData')->option(['real_name' => '个人中心菜单']);
//个人中心菜单数据字段
Route::get('usermenu_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '个人中心菜单数据字段']);
//个人中心菜单数据状态
Route::put('usermenu_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '个人中心菜单数据状态']);
//分享海报配置资源
Route::resource('poster_data', 'v1.setting.SystemGroupData')->option(['real_name' => '分享海报']);
//分享海报数据字段
Route::get('poster_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '分享海报数据字段']);
//分享海报数据状态
Route::put('poster_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '分享海报数据状态']);
//秒杀配置资源
Route::resource('seckill_data', 'v1.setting.SystemGroupData')->option(['real_name' => '秒杀配置']);
//秒杀数据字段
Route::get('seckill_data/header', 'v1.setting.SystemGroupData/header')->option(['real_name' => '秒杀数据字段']);
//秒杀数据状态
Route::put('seckill_data/set_status/:id/:status', 'v1.setting.SystemGroupData/set_status')->option(['real_name' => '秒杀数据状态']);
//获取隐私协议
Route::get('get_user_agreement', 'v1.setting.SystemGroupData/getUserAgreement')->option(['real_name' => '获取隐私协议']);
//设置隐私协议
Route::post('set_user_agreement', 'v1.setting.SystemGroupData/setUserAgreement')->option(['real_name' => '设置隐私协议']);
/** 系统通知 */
Route::group(function () {
//系统通知列表
Route::get('notification/index', 'v1.setting.SystemNotification/index')->option(['real_name' => '系统通知列表']);
//获取单条数据
Route::get('notification/info', 'v1.setting.SystemNotification/info')->option(['real_name' => '获取单条通知数据']);
//保存通知设置
Route::post('notification/save', 'v1.setting.SystemNotification/save')->option(['real_name' => '保存通知设置']);
//修改消息状态
Route::put('notification/set_status/:type/:status/:id', 'v1.setting.SystemNotification/set_status')->option(['real_name' => '修改消息状态']);
})->option(['parent' => 'setting', 'cate_name' => '系统通知']);
//系统通知
//系统通知列表
Route::get('notification/index', 'v1.setting.SystemNotification/index')->option(['real_name' => '系统通知列表']);
//获取单条数据
Route::get('notification/info', 'v1.setting.SystemNotification/info')->option(['real_name' => '获取单条通知数据']);
//保存通知设置
Route::post('notification/save', 'v1.setting.SystemNotification/save')->option(['real_name' => '保存通知设置']);
//修改消息状态
Route::put('notification/set_status/:type/:status/:id', 'v1.setting.SystemNotification/set_status')->option(['real_name' => '修改消息状态']);
/** 协议版权 */
Route::group(function () {
//协议设置
Route::get('get_agreement/:type', 'v1.setting.SystemAgreement/getAgreement')->option(['real_name' => '获取协议内容']);
Route::post('save_agreement', 'v1.setting.SystemAgreement/saveAgreement')->option(['real_name' => '设置协议内容']);
//获取版权信息
Route::get('get_version', 'v1.setting.SystemConfig/getVersion')->option(['real_name' => '获取版权信息']);
})->option(['parent' => 'setting', 'cate_name' => '协议版权']);
//协议设置
Route::get('get_agreement/:type', 'v1.setting.SystemAgreement/getAgreement')->option(['real_name' => '获取协议内容']);
Route::post('save_agreement', 'v1.setting.SystemAgreement/saveAgreement')->option(['real_name' => '设置协议内容']);
//获取版权信息
Route::get('get_version', 'v1.setting.SystemConfig/getVersion')->option(['real_name' => '获取版权信息']);
/** 对外接口 */
Route::group(function () {
//对外接口账号信息
Route::get('system_out_account/index', 'v1.setting.SystemOutAccount/index')->option(['real_name' => '对外接口账号信息']);
//对外接口账号添加
Route::post('system_out_account/save', 'v1.setting.SystemOutAccount/save')->option(['real_name' => '对外接口账号添加']);
//对外接口账号修改
Route::post('system_out_account/update/:id', 'v1.setting.SystemOutAccount/update')->option(['real_name' => '对外接口账号修改']);
//设置账号是否禁用
Route::put('system_out_account/set_status/:id/:status', 'v1.setting.SystemOutAccount/set_status')->option(['real_name' => '设置账号是否禁用']);
//设置账号推送接口
Route::put('system_out_account/set_up/:id', 'v1.setting.SystemOutAccount/outSetUpSave')->option(['real_name' => '设置账号推送接口']);
//删除账号
Route::delete('system_out_account/:id', 'v1.setting.SystemOutAccount/delete')->option(['real_name' => '删除账号']);
//测试获取token接口
Route::post('system_out_account/text_out_url', 'v1.setting.SystemOutAccount/textOutUrl')->option(['real_name' => '测试获取token接口']);
//对外接口账号信息
Route::get('system_out_account/index', 'v1.setting.SystemOutAccount/index')->option(['real_name' => '对外接口账号信息']);
//对外接口账号添加
Route::post('system_out_account/save', 'v1.setting.SystemOutAccount/save')->option(['real_name' => '对外接口账号添加']);
//对外接口账号修改
Route::post('system_out_account/update/:id', 'v1.setting.SystemOutAccount/update')->option(['real_name' => '对外接口账号修改']);
//设置账号是否禁用
Route::put('system_out_account/set_status/:id/:status', 'v1.setting.SystemOutAccount/set_status')->option(['real_name' => '设置账号是否禁用']);
//设置账号推送接口
Route::put('system_out_account/set_up/:id', 'v1.setting.SystemOutAccount/outSetUpSave')->option(['real_name' => '设置账号推送接口']);
//删除账号
Route::delete('system_out_account/:id', 'v1.setting.SystemOutAccount/delete')->option(['real_name' => '删除账号']);
//测试获取token接口
Route::post('system_out_account/text_out_url', 'v1.setting.SystemOutAccount/textOutUrl')->option(['real_name' => '测试获取token接口']);
//对外接口列表
Route::get('system_out_interface/list', 'v1.setting.SystemOutAccount/outInterfaceList')->option(['real_name' => '对外接口列表']);
//新增修改对外接口
Route::post('system_out_interface/save/:id', 'v1.setting.SystemOutAccount/saveInterface')->option(['real_name' => '新增修改对外接口']);
//对外接口信息
Route::get('system_out_interface/info/:id', 'v1.setting.SystemOutAccount/interfaceInfo')->option(['real_name' => '对外接口信息']);
//修改接口名称
Route::put('system_out_interface/edit_name', 'v1.setting.SystemOutAccount/editInterfaceName')->option(['real_name' => '修改接口名称']);
//删除接口
Route::delete('system_out_interface/del/:id', 'v1.setting.SystemOutAccount/delInterface')->option(['real_name' => '删除接口']);
//对外接口列表
Route::get('system_out_interface/list', 'v1.setting.SystemOutAccount/outInterfaceList')->option(['real_name' => '对外接口列表']);
//新增修改对外接口
Route::post('system_out_interface/save/:id', 'v1.setting.SystemOutAccount/saveInterface')->option(['real_name' => '新增修改对外接口']);
//对外接口信息
Route::get('system_out_interface/info/:id', 'v1.setting.SystemOutAccount/interfaceInfo')->option(['real_name' => '对外接口信息']);
//修改接口名称
Route::put('system_out_interface/edit_name', 'v1.setting.SystemOutAccount/editInterfaceName')->option(['real_name' => '修改接口名称']);
//删除接口
Route::delete('system_out_interface/del/:id', 'v1.setting.SystemOutAccount/delInterface')->option(['real_name' => '删除接口']);
})->option(['parent' => 'setting', 'cate_name' => '对外接口']);
/** 多语言 */
//语言国家列表
Route::get('lang_country/list', 'v1.setting.LangCountry/langCountryList')->option(['real_name' => '语言国家列表']);
//添加语言地区表单
Route::get('lang_country/form/:id', 'v1.setting.LangCountry/langCountryForm')->option(['real_name' => '添加语言地区表单']);
//保存语言地区
Route::post('lang_country/save/:id', 'v1.setting.LangCountry/langCountrySave')->option(['real_name' => '保存语言地区']);
//删除语言地区
Route::delete('lang_country/del/:id', 'v1.setting.LangCountry/langCountryDel')->option(['real_name' => '删除语言地区']);
//语言类型列表
Route::get('lang_type/list', 'v1.setting.LangType/langTypeList')->option(['real_name' => '语言类型列表']);
//新增修改语言类型表单
Route::get('lang_type/form/:id', 'v1.setting.LangType/langTypeForm')->option(['real_name' => '新增修改语言类型表单']);
//保存新增修改语言
Route::post('lang_type/save/:id', 'v1.setting.LangType/langTypeSave')->option(['real_name' => '保存新增修改语言']);
//删除语言
Route::delete('lang_type/del/:id', 'v1.setting.LangType/langTypeDel')->option(['real_name' => '删除语言']);
//修改语言类型状态
Route::put('lang_type/status/:id/:status', 'v1.setting.LangType/langTypeStatus')->option(['real_name' => '修改语言类型状态']);
//获取语言列表
Route::get('lang_code/list', 'v1.setting.LangCode/langCodeList')->option(['real_name' => '语言列表']);
//获取语言信息
Route::get('lang_code/info', 'v1.setting.LangCode/langCodeInfo')->option(['real_name' => '语言详情']);
//保存修改语言
Route::post('lang_code/save', 'v1.setting.LangCode/langCodeSave')->option(['real_name' => '保存修改语言']);
//删除语言
Route::delete('lang_code/del/:id', 'v1.setting.LangCode/langCodeDel')->option(['real_name' => '删除语言']);
//机器翻译
Route::post('lang_code/translate', 'v1.setting.LangCode/langCodeTranslate')->option(['real_name' => '机器翻译']);
Route::group(function () {
//语言国家列表
Route::get('lang_country/list', 'v1.setting.LangCountry/langCountryList')->option(['real_name' => '语言国家列表']);
//添加语言地区表单
Route::get('lang_country/form/:id', 'v1.setting.LangCountry/langCountryForm')->option(['real_name' => '添加语言地区表单']);
//保存语言地区
Route::post('lang_country/save/:id', 'v1.setting.LangCountry/langCountrySave')->option(['real_name' => '保存语言地区']);
//删除语言地区
Route::delete('lang_country/del/:id', 'v1.setting.LangCountry/langCountryDel')->option(['real_name' => '删除语言地区']);
//语言类型列表
Route::get('lang_type/list', 'v1.setting.LangType/langTypeList')->option(['real_name' => '语言类型列表']);
//新增修改语言类型表单
Route::get('lang_type/form/:id', 'v1.setting.LangType/langTypeForm')->option(['real_name' => '新增修改语言类型表单']);
//保存新增修改语言
Route::post('lang_type/save/:id', 'v1.setting.LangType/langTypeSave')->option(['real_name' => '保存新增修改语言']);
//删除语言
Route::delete('lang_type/del/:id', 'v1.setting.LangType/langTypeDel')->option(['real_name' => '删除语言']);
//修改语言类型状态
Route::put('lang_type/status/:id/:status', 'v1.setting.LangType/langTypeStatus')->option(['real_name' => '修改语言类型状态']);
//获取语言列表
Route::get('lang_code/list', 'v1.setting.LangCode/langCodeList')->option(['real_name' => '语言列表']);
//获取语言信息
Route::get('lang_code/info', 'v1.setting.LangCode/langCodeInfo')->option(['real_name' => '语言详情']);
//保存修改语言
Route::post('lang_code/save', 'v1.setting.LangCode/langCodeSave')->option(['real_name' => '保存修改语言']);
//删除语言
Route::delete('lang_code/del/:id', 'v1.setting.LangCode/langCodeDel')->option(['real_name' => '删除语言']);
//机器翻译
Route::post('lang_code/translate', 'v1.setting.LangCode/langCodeTranslate')->option(['real_name' => '机器翻译']);
})->option(['parent' => 'setting', 'cate_name' => '多语言']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'setting', 'mark_name' => '系统设置']);

View File

@ -15,65 +15,78 @@ use think\facade\Route;
* 分销管理 相关路由
*/
Route::group('statistic', function () {
/** 用户统计 */
//用户基础
Route::get('user/get_basic', 'v1.statistic.UserStatistic/getBasic')->option(['real_name' => '用户基础统计']);
//用户增长趋势
Route::get('user/get_trend', 'v1.statistic.UserStatistic/getTrend')->option(['real_name' => '用户增长趋势']);
//微信用户
Route::get('user/get_wechat', 'v1.statistic.UserStatistic/getWechat')->option(['real_name' => '微信用户统计']);
//微信用户成长趋势
Route::get('user/get_wechat_trend', 'v1.statistic.UserStatistic/getWechatTrend')->option(['real_name' => '微信用户成长趋势']);
//用户地域排行
Route::get('user/get_region', 'v1.statistic.UserStatistic/getRegion')->option(['real_name' => '用户地域排行']);
//用户性别
Route::get('user/get_sex', 'v1.statistic.UserStatistic/getSex')->option(['real_name' => '用户性别分布']);
//商品数据导出
Route::get('user/get_excel', 'v1.statistic.UserStatistic/getExcel')->option(['real_name' => '用户数据导出']);
Route::group(function () {
//用户基础
Route::get('user/get_basic', 'v1.statistic.UserStatistic/getBasic')->option(['real_name' => '用户基础统计']);
//用户增长趋势
Route::get('user/get_trend', 'v1.statistic.UserStatistic/getTrend')->option(['real_name' => '用户增长趋势']);
//微信用户
Route::get('user/get_wechat', 'v1.statistic.UserStatistic/getWechat')->option(['real_name' => '微信用户统计']);
//微信用户成长趋势
Route::get('user/get_wechat_trend', 'v1.statistic.UserStatistic/getWechatTrend')->option(['real_name' => '微信用户成长趋势']);
//用户地域排行
Route::get('user/get_region', 'v1.statistic.UserStatistic/getRegion')->option(['real_name' => '用户地域排行']);
//用户性别
Route::get('user/get_sex', 'v1.statistic.UserStatistic/getSex')->option(['real_name' => '用户性别分布']);
//商品数据导出
Route::get('user/get_excel', 'v1.statistic.UserStatistic/getExcel')->option(['real_name' => '用户数据导出']);
})->option(['parent' => 'statistic', 'cate_name' => '用户统计']);
/** 商品统计 */
//商品基础
Route::get('product/get_basic', 'v1.statistic.ProductStatistic/getBasic')->option(['real_name' => '商品基础统计']);
//商品趋势
Route::get('product/get_trend', 'v1.statistic.ProductStatistic/getTrend')->option(['real_name' => '商品趋势']);
//商品排行
Route::get('product/get_product_ranking', 'v1.statistic.ProductStatistic/getProductRanking')->option(['real_name' => '商品排行']);
//商品数据导出
Route::get('product/get_excel', 'v1.statistic.ProductStatistic/getExcel')->option(['real_name' => '商品数据导出']);
Route::group(function () {
//商品基础
Route::get('product/get_basic', 'v1.statistic.ProductStatistic/getBasic')->option(['real_name' => '商品基础统计']);
//商品趋势
Route::get('product/get_trend', 'v1.statistic.ProductStatistic/getTrend')->option(['real_name' => '商品趋势']);
//商品排行
Route::get('product/get_product_ranking', 'v1.statistic.ProductStatistic/getProductRanking')->option(['real_name' => '商品排行']);
//商品数据导出
Route::get('product/get_excel', 'v1.statistic.ProductStatistic/getExcel')->option(['real_name' => '商品数据导出']);
})->option(['parent' => 'statistic', 'cate_name' => '商品统计']);
/** 交易统计 */
//今日营业额统计
Route::get('trade/top_trade', 'v1.statistic.TradeStatistic/topTrade')->option(['real_name' => '今日营业额统计']);
Route::get('trade/bottom_trade', 'v1.statistic.TradeStatistic/bottomTrade')->option(['real_name' => '交易统计底部数据']);
Route::group(function () {
//今日营业额统计
Route::get('trade/top_trade', 'v1.statistic.TradeStatistic/topTrade')->option(['real_name' => '今日营业额统计']);
Route::get('trade/bottom_trade', 'v1.statistic.TradeStatistic/bottomTrade')->option(['real_name' => '交易统计底部数据']);
})->option(['parent' => 'statistic', 'cate_name' => '交易统计']);
/** 订单统计 */
//订单基础
Route::get('order/get_basic', 'v1.statistic.OrderStatistic/getBasic')->option(['real_name' => '订单基础统计']);
//订单趋势
Route::get('order/get_trend', 'v1.statistic.OrderStatistic/getTrend')->option(['real_name' => '订单趋势']);
//订单来源
Route::get('order/get_channel', 'v1.statistic.OrderStatistic/getChannel')->option(['real_name' => '订单来源']);
//订单类型
Route::get('order/get_type', 'v1.statistic.OrderStatistic/getType')->option(['real_name' => '订单类型']);
Route::group(function () {
//订单基础
Route::get('order/get_basic', 'v1.statistic.OrderStatistic/getBasic')->option(['real_name' => '订单基础统计']);
//订单趋势
Route::get('order/get_trend', 'v1.statistic.OrderStatistic/getTrend')->option(['real_name' => '订单趋势']);
//订单来源
Route::get('order/get_channel', 'v1.statistic.OrderStatistic/getChannel')->option(['real_name' => '订单来源']);
//订单类型
Route::get('order/get_type', 'v1.statistic.OrderStatistic/getType')->option(['real_name' => '订单类型']);
})->option(['parent' => 'statistic', 'cate_name' => '订单统计']);
/** 资金流水 */
Route::get('flow/get_list', 'v1.statistic.FlowStatistic/getFlowList')->option(['real_name' => '资金流水']);
Route::post('flow/set_mark/:id', 'v1.statistic.FlowStatistic/setMark')->option(['real_name' => '设置备注']);
Route::get('flow/get_record', 'v1.statistic.FlowStatistic/getFlowRecord')->option(['real_name' => '账单记录']);
Route::group(function () {
Route::get('flow/get_list', 'v1.statistic.FlowStatistic/getFlowList')->option(['real_name' => '资金流水']);
Route::post('flow/set_mark/:id', 'v1.statistic.FlowStatistic/setMark')->option(['real_name' => '设置备注']);
Route::get('flow/get_record', 'v1.statistic.FlowStatistic/getFlowRecord')->option(['real_name' => '账单记录']);
})->option(['parent' => 'statistic', 'cate_name' => '资金流水']);
/** 余额统计 */
//余额基础统计
Route::get('balance/get_basic', 'v1.statistic.BalanceStatistic/getBasic')->option(['real_name' => '余额基础统计']);
//余额趋势
Route::get('balance/get_trend', 'v1.statistic.BalanceStatistic/getTrend')->option(['real_name' => '余额趋势']);
//余额来源
Route::get('balance/get_channel', 'v1.statistic.BalanceStatistic/getChannel')->option(['real_name' => '余额来源']);
//余额消耗
Route::get('balance/get_type', 'v1.statistic.BalanceStatistic/getType')->option(['real_name' => '余额消耗']);
Route::group(function () {
//余额基础统计
Route::get('balance/get_basic', 'v1.statistic.BalanceStatistic/getBasic')->option(['real_name' => '余额基础统计']);
//余额趋势
Route::get('balance/get_trend', 'v1.statistic.BalanceStatistic/getTrend')->option(['real_name' => '余额趋势']);
//余额来源
Route::get('balance/get_channel', 'v1.statistic.BalanceStatistic/getChannel')->option(['real_name' => '余额来源']);
//余额消耗
Route::get('balance/get_type', 'v1.statistic.BalanceStatistic/getType')->option(['real_name' => '余额消耗']);
})->option(['parent' => 'statistic', 'cate_name' => '余额统计']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'statistic', 'mark_name' => '程序统计']);

View File

@ -8,115 +8,188 @@
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
use think\facade\Route;
use think\facade\Route;
/**
* 维护 相关路由
*/
Route::group('system', function () {
//云存储列表
Route::get('config/storage/save_type/:type', 'v1.setting.SystemStorage/uploadType')->name('SystemStorageUploadType')->option(['real_name' => '选择存储方式']);
//云存储列表
Route::get('config/storage', 'v1.setting.SystemStorage/index')->name('SystemStorageIndex')->option(['real_name' => '云存储列表']);
//获取云存储创建表单
Route::get('config/storage/create/:type', 'v1.setting.SystemStorage/create')->name('SystemStorageCreate')->option(['real_name' => '获取云存储创建表单']);
//获取云存储配置表单
Route::get('config/storage/form/:type', 'v1.setting.SystemStorage/getConfigForm')->name('getConfigForm')->option(['real_name' => '获取云存储配置表单']);
//获取云存储配置
Route::get('config/storage/config', 'v1.setting.SystemStorage/getConfig')->name('SystemStorageConfig')->option(['real_name' => '获取云存储配置']);
//保存云存储配置
Route::post('config/storage/config', 'v1.setting.SystemStorage/saveConfig')->name('SystemStorageSaveConfig')->option(['real_name' => '保存云存储配置']);
//同步云存储列表
Route::put('config/storage/synch/:type', 'v1.setting.SystemStorage/synch')->name('SystemStorageSynch')->option(['real_name' => '同步云存储列表']);
//获取修改云存储域名表单
Route::get('config/storage/domain/:id', 'v1.setting.SystemStorage/getUpdateDomainForm')->name('getUpdateDomainForm')->option(['real_name' => '获取修改云存储域名表单']);
//修改云存储域名
Route::post('config/storage/domain/:id', 'v1.setting.SystemStorage/updateDomain')->name('updateDomain')->option(['real_name' => '修改云存储域名']);
//保存云存储数据
Route::post('config/storage/:type', 'v1.setting.SystemStorage/save')->name('SystemStorageSave')->option(['real_name' => '保存云存储数据']);
//删除云存储
Route::delete('config/storage/:id', 'v1.setting.SystemStorage/delete')->name('SystemStorageDelete')->option(['real_name' => '删除云存储']);
//修改云存储状态
Route::put('config/storage/status/:id', 'v1.setting.SystemStorage/status')->name('SystemStorageStatus')->option(['real_name' => '修改云存储状态']);
//系统日志
Route::get('log', 'v1.system.SystemLog/index')->name('SystemLog')->option(['real_name' => '系统日志']);
//系统日志管理员搜索条件
Route::get('log/search_admin', 'v1.system.SystemLog/search_admin')->option(['real_name' => '系统日志管理员搜索条件']);
//文件校验
Route::get('file', 'v1.system.SystemFile/index')->name('SystemFile')->option(['real_name' => '文件校验']);
//数据所有表
Route::get('backup', 'v1.system.SystemDatabackup/index')->option(['real_name' => '数据库所有表']);
//数据备份详情
Route::get('backup/read', 'v1.system.SystemDatabackup/read')->option(['real_name' => '数据备份详情']);
//数据备份 优化表
Route::put('backup/optimize', 'v1.system.SystemDatabackup/optimize')->option(['real_name' => '数据备份优化表']);
//数据备份 修复表
Route::put('backup/repair', 'v1.system.SystemDatabackup/repair')->option(['real_name' => '数据备份修复表']);
//数据备份 备份表
Route::put('backup/backup', 'v1.system.SystemDatabackup/backup')->option(['real_name' => '数据备份备份表']);
//备份记录
Route::get('backup/file_list', 'v1.system.SystemDatabackup/fileList')->option(['real_name' => '数据库备份记录']);
//删除备份记录
Route::delete('backup/del_file', 'v1.system.SystemDatabackup/delFile')->option(['real_name' => '删除数据库备份记录']);
//导入备份记录表
Route::post('backup/import', 'v1.system.SystemDatabackup/import')->option(['real_name' => '导入数据库备份记录']);
//下载备份记录表
// Route::get('backup/download', 'v1.system.SystemDatabackup/downloadFile');
//清除用户数据
Route::get('clear/:type', 'v1.system.SystemClearData/index')->option(['real_name' => '清除用户数据']);
//清除缓存
Route::get('refresh_cache/cache', 'v1.system.Clear/refresh_cache')->option(['real_name' => '清除系统缓存']);
//清除日志
Route::get('refresh_cache/log', 'v1.system.Clear/delete_log')->option(['real_name' => '清除系统日志']);
//域名替换接口
Route::post('replace_site_url', 'v1.system.SystemClearData/replaceSiteUrl')->option(['real_name' => '域名替换']);
//获取APP版本列表
Route::get('version_list', 'v1.system.AppVersion/list')->option(['real_name' => '获取APP版本列表']);
//添加版本信息
Route::get('version_crate/:id', 'v1.system.AppVersion/crate')->option(['real_name' => '添加版本']);
//添加版本信息
Route::post('version_save', 'v1.system.AppVersion/save')->option(['real_name' => '添加版本']);
//升级状态
Route::get('upgrade_status', 'UpgradeController/upgradeStatus')->option(['real_name' => '升级状态']);
//升级包列表
Route::get('upgrade/list', 'UpgradeController/upgradeList')->option(['real_name' => '升级包列表']);
//可升级包列表
Route::get('upgradeable/list', 'UpgradeController/upgradeableList')->option(['real_name' => '可升级包列表']);
//升级协议
Route::get('upgrade/agreement', 'UpgradeController/agreement')->option(['real_name' => '升级协议']);
//升级包下载
Route::post('upgrade_download/:package_key', 'UpgradeController/download')->option(['real_name' => '升级包下载']);
//升级进度
Route::get('upgrade_progress', 'UpgradeController/progress')->option(['real_name' => '升级进度']);
//升级记录
Route::get('upgrade_log/list', 'UpgradeController/upgradeLogList')->option(['real_name' => '升级记录']);
//导出备份项目
Route::get('upgrade_export/:id/:type', 'UpgradeController/export')->option(['real_name' => '导出备份']);
//文件管理登录
Route::post('file/login', 'v1.system.SystemFile/login')->option(['real_name' => '文件管理登录']);
/** 存储配置 */
Route::group(function () {
//云存储列表
Route::get('config/storage/save_type/:type', 'v1.setting.SystemStorage/uploadType')->name('SystemStorageUploadType')->option(['real_name' => '选择存储方式']);
//云存储列表
Route::get('config/storage', 'v1.setting.SystemStorage/index')->name('SystemStorageIndex')->option(['real_name' => '云存储列表']);
//获取云存储创建表单
Route::get('config/storage/create/:type', 'v1.setting.SystemStorage/create')->name('SystemStorageCreate')->option(['real_name' => '获取云存储创建表单']);
//获取云存储配置表单
Route::get('config/storage/form/:type', 'v1.setting.SystemStorage/getConfigForm')->name('getConfigForm')->option(['real_name' => '获取云存储配置表单']);
//获取云存储配置
Route::get('config/storage/config', 'v1.setting.SystemStorage/getConfig')->name('SystemStorageConfig')->option(['real_name' => '获取云存储配置']);
//保存云存储配置
Route::post('config/storage/config', 'v1.setting.SystemStorage/saveConfig')->name('SystemStorageSaveConfig')->option(['real_name' => '保存云存储配置']);
//同步云存储列表
Route::put('config/storage/synch/:type', 'v1.setting.SystemStorage/synch')->name('SystemStorageSynch')->option(['real_name' => '同步云存储列表']);
//获取修改云存储域名表单
Route::get('config/storage/domain/:id', 'v1.setting.SystemStorage/getUpdateDomainForm')->name('getUpdateDomainForm')->option(['real_name' => '获取修改云存储域名表单']);
//修改云存储域名
Route::post('config/storage/domain/:id', 'v1.setting.SystemStorage/updateDomain')->name('updateDomain')->option(['real_name' => '修改云存储域名']);
//保存云存储数据
Route::post('config/storage/:type', 'v1.setting.SystemStorage/save')->name('SystemStorageSave')->option(['real_name' => '保存云存储数据']);
//删除云存储
Route::delete('config/storage/:id', 'v1.setting.SystemStorage/delete')->name('SystemStorageDelete')->option(['real_name' => '删除云存储']);
//修改云存储状态
Route::put('config/storage/status/:id', 'v1.setting.SystemStorage/status')->name('SystemStorageStatus')->option(['real_name' => '修改云存储状态']);
})->option(['parent' => 'system', 'cate_name' => '存储配置']);
/** 系统日志 */
Route::group(function () {
//系统日志
Route::get('log', 'v1.system.SystemLog/index')->name('SystemLog')->option(['real_name' => '系统日志']);
//系统日志管理员搜索条件
Route::get('log/search_admin', 'v1.system.SystemLog/search_admin')->option(['real_name' => '系统日志管理员搜索条件']);
//文件校验
Route::get('file', 'v1.system.SystemFile/index')->name('SystemFile')->option(['real_name' => '文件校验']);
})->option(['parent' => 'system', 'cate_name' => '系统日志']);
/** 数据备份 */
Route::group(function () {
//数据所有表
Route::get('backup', 'v1.system.SystemDatabackup/index')->option(['real_name' => '数据库所有表']);
//数据备份详情
Route::get('backup/read', 'v1.system.SystemDatabackup/read')->option(['real_name' => '数据备份详情']);
//更新数据表或者表字段备注
Route::post('database/update_mark', 'v1.system.SystemDatabackup/updateMark')->option(['real_name' => '更新数据表或者表字段备注']);
//数据备份 优化表
Route::put('backup/optimize', 'v1.system.SystemDatabackup/optimize')->option(['real_name' => '数据备份优化表']);
//数据备份 修复表
Route::put('backup/repair', 'v1.system.SystemDatabackup/repair')->option(['real_name' => '数据备份修复表']);
//数据备份 备份表
Route::put('backup/backup', 'v1.system.SystemDatabackup/backup')->option(['real_name' => '数据备份备份表']);
//备份记录
Route::get('backup/file_list', 'v1.system.SystemDatabackup/fileList')->option(['real_name' => '数据库备份记录']);
//删除备份记录
Route::delete('backup/del_file', 'v1.system.SystemDatabackup/delFile')->option(['real_name' => '删除数据库备份记录']);
//导入备份记录表
Route::post('backup/import', 'v1.system.SystemDatabackup/import')->option(['real_name' => '导入数据库备份记录']);
//下载备份记录表
//Route::get('backup/download', 'v1.system.SystemDatabackup/downloadFile');
})->option(['parent' => 'system', 'cate_name' => '数据备份']);
/** 数据清除 */
Route::group(function () {
//清除用户数据
Route::get('clear/:type', 'v1.system.SystemClearData/index')->option(['real_name' => '清除用户数据']);
//清除缓存
Route::get('refresh_cache/cache', 'v1.system.Clear/refresh_cache')->option(['real_name' => '清除系统缓存']);
//清除日志
Route::get('refresh_cache/log', 'v1.system.Clear/delete_log')->option(['real_name' => '清除系统日志']);
//域名替换接口
Route::post('replace_site_url', 'v1.system.SystemClearData/replaceSiteUrl')->option(['real_name' => '域名替换']);
//获取APP版本列表
Route::get('version_list', 'v1.system.AppVersion/list')->option(['real_name' => '获取APP版本列表']);
//添加版本信息
Route::get('version_crate/:id', 'v1.system.AppVersion/crate')->option(['real_name' => '添加版本']);
//添加版本信息
Route::post('version_save', 'v1.system.AppVersion/save')->option(['real_name' => '添加版本']);
})->option(['parent' => 'system', 'cate_name' => '数据清除']);
/** 在线升级 */
Route::group(function () {
//升级状态
Route::get('upgrade_status', 'UpgradeController/upgradeStatus')->option(['real_name' => '升级状态']);
//升级包列表
Route::get('upgrade/list', 'UpgradeController/upgradeList')->option(['real_name' => '升级包列表']);
//可升级包列表
Route::get('upgradeable/list', 'UpgradeController/upgradeableList')->option(['real_name' => '可升级包列表']);
//升级协议
Route::get('upgrade/agreement', 'UpgradeController/agreement')->option(['real_name' => '升级协议']);
//升级包下载
Route::post('upgrade_download/:package_key', 'UpgradeController/download')->option(['real_name' => '升级包下载']);
//升级进度
Route::get('upgrade_progress', 'UpgradeController/progress')->option(['real_name' => '升级进度']);
//升级记录
Route::get('upgrade_log/list', 'UpgradeController/upgradeLogList')->option(['real_name' => '升级记录']);
//导出备份项目
Route::get('upgrade_export/:id/:type', 'UpgradeController/export')->option(['real_name' => '导出备份']);
//文件管理登录
Route::post('file/login', 'v1.system.SystemFile/login')->option(['real_name' => '文件管理登录']);
})->option(['parent' => 'system', 'cate_name' => '在线升级']);
/** 定时任务 */
//定时任务列表
Route::get('crontab/list', 'v1.system.SystemCrontab/getTimerList')->option(['real_name' => '定时任务列表']);
//定时任务类型
Route::get('crontab/mark', 'v1.system.SystemCrontab/getMarkList')->option(['real_name' => '定时任务类型']);
//定时任务详情
Route::get('crontab/info/:id', 'v1.system.SystemCrontab/getTimerInfo')->option(['real_name' => '定时任务详情']);
//定时任务添加编辑
Route::post('crontab/save', 'v1.system.SystemCrontab/saveTimer')->option(['real_name' => '定时任务添加编辑']);
//删除定时任务
Route::delete('crontab/del/:id', 'v1.system.SystemCrontab/delTimer')->option(['real_name' => '删除定时任务']);
//定时任务是否开启开关
Route::get('crontab/set_open/:id/:is_open', 'v1.system.SystemCrontab/setTimerStatus')->option(['real_name' => '定时任务是否开启开关']);
Route::group(function () {
//定时任务列表
Route::get('crontab/list', 'v1.system.SystemCrontab/getTimerList')->option(['real_name' => '定时任务列表']);
//定时任务类型
Route::get('crontab/mark', 'v1.system.SystemCrontab/getMarkList')->option(['real_name' => '定时任务类型']);
//定时任务详情
Route::get('crontab/info/:id', 'v1.system.SystemCrontab/getTimerInfo')->option(['real_name' => '定时任务详情']);
//定时任务添加编辑
Route::post('crontab/save', 'v1.system.SystemCrontab/saveTimer')->option(['real_name' => '定时任务添加编辑']);
//删除定时任务
Route::delete('crontab/del/:id', 'v1.system.SystemCrontab/delTimer')->option(['real_name' => '删除定时任务']);
//定时任务是否开启开关
Route::get('crontab/set_open/:id/:is_open', 'v1.system.SystemCrontab/setTimerStatus')->option(['real_name' => '定时任务是否开启开关']);
})->option(['parent' => 'system', 'cate_name' => '定时任务']);
/** 系统路由 */
Route::group(function () {
//同步路由接口
Route::get('route/sync_route/[:appName]', 'v1.setting.SystemRoute/syncRoute')->option(['real_name' => '同步路由']);
//获取路由tree行数据
Route::get('route/tree', 'v1.setting.SystemRoute/tree')->option(['real_name' => '获取路由tree']);
//权限路由
Route::delete('route/:id', 'v1.setting.SystemRoute/delete')->option(['real_name' => '删除路由权限']);
//查看路由权限
Route::get('route/:id', 'v1.setting.SystemRoute/read')->option(['real_name' => '查看路由权限']);
//保存路由权限
Route::post('route/:id', 'v1.setting.SystemRoute/save')->option(['real_name' => '保存路由权限']);
//路由分类
Route::resource('route_cate', 'v1.setting.SystemRouteCate')->except(['read'])->option([
'real_name' => [
'index' => '获取路由分类列表',
'create' => '获取创建路由分类表单',
'save' => '保存路由分类',
'edit' => '获取修改路由分类表单',
'update' => '修改路由分类',
'delete' => '删除路由分类'
],
]);
})->option(['parent' => 'system', 'cate_name' => '系统路由']);
/** 代码生成 */
Route::group(function () {
//保存CRUD修改的文件
Route::post('crud/save_file/:id', 'v1.setting.SystemCrud/savefile')->option(['real_name' => '保存CRUD修改的文件']);
//获取CRUD配置
Route::get('crud/config/:tableName', 'v1.setting.SystemCrud/getRouteList')->option(['real_name' => '获取CRUD配置']);
//下载生成的文件
Route::get('crud/download/:id', 'v1.setting.SystemCrud/download')->option(['real_name' => '下载生成的文件']);
//获取CRUD列表
Route::get('crud/column_type', 'v1.setting.SystemCrud/columnType')->option(['real_name' => '获取CRUD列表']);
//获取菜单TREE形数据
Route::get('crud/menus', 'v1.setting.SystemCrud/getMenus')->option(['real_name' => '获取菜单TREE形数据']);
//获取CRUD文件存放
Route::post('crud/file_path', 'v1.setting.SystemCrud/getFilePath')->option(['real_name' => '获取CRUD文件存放']);
//删除CRUD
Route::delete('crud/:id', 'v1.setting.SystemCrud/delete')->option(['real_name' => '删除CRUD']);
//查看CRUD
Route::get('crud/:id', 'v1.setting.SystemCrud/read')->option(['real_name' => '查看CRUD']);
//获取CRUD列表
Route::get('crud', 'v1.setting.SystemCrud/index')->option(['real_name' => '获取CRUD列表']);
//保存生成CRUD
Route::post('crud', 'v1.setting.SystemCrud/save')->option(['real_name' => '保存生成CRUD']);
})->option(['parent' => 'system', 'cate_name' => '代码生成']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'system', 'mark_name' => '系统维护']);
Route::group('system', function () {
@ -134,11 +207,15 @@ Route::group('system', function () {
Route::get('file/delFolder', 'v1.system.SystemFile/delFolder')->option(['real_name' => '删除文件夹']);
//重命名文件
Route::get('file/rename', 'v1.system.SystemFile/rename')->option(['real_name' => '重命名文件夹']);
//目录文件备注表单
Route::get('file/mark', 'v1.system.SystemFile/fileMark')->option(['real_name' => '目录文件备注表单']);
//目录文件备注保存
Route::post('file/mark/save', 'v1.system.SystemFile/fileMarkSave')->option(['real_name' => '目录文件备注保存']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminEditorTokenMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'system_file', 'mark_name' => '文件管理']);

View File

@ -14,135 +14,175 @@ use think\facade\Route;
* 用户模块 相关路由
*/
Route::group('user', function () {
//用户管理资源路由
Route::resource('user', 'v1.user.user')->option(['real_name' => '用户']);
//添加用户保存
Route::post('user/save', 'v1.user.user/save_info')->option(['real_name' => '添加用户']);
//同步微信用户
Route::get('user/syncUsers', 'v1.user.user/syncWechatUsers')->option(['real_name' => '同步微信用户']);
//用户信息
Route::get('user/user_save_info/:uid', 'v1.user.user/userSaveInfo')->option(['real_name' => '添加编辑用户信息时候的信息']);
//赠送会员等级
Route::get('give_level/:id', 'v1.user.user/give_level')->option(['real_name' => '赠送用户等级']);
//执行赠送会员等级
Route::put('save_give_level/:id', 'v1.user.user/save_give_level')->option(['real_name' => '执行赠送用户等级']);
//赠送付费会员时长
Route::get('give_level_time/:id', 'v1.user.user/give_level_time')->option(['real_name' => '赠送付费会员时长']);
//执行赠送付费会员时长
Route::put('save_give_level_time/:id', 'v1.user.user/save_give_level_time')->option(['real_name' => '执行赠送付费会员时长']);
//清除会员等级
Route::delete('del_level/:id', 'v1.user.user/del_level')->option(['real_name' => '清除用户等级']);
//编辑其他
Route::get('edit_other/:id', 'v1.user.user/edit_other')->option(['real_name' => '修改积分余额表单']);
//编辑其他
Route::put('update_other/:id', 'v1.user.user/update_other')->option(['real_name' => '修改积分余额']);
//修改用户状态
Route::put('set_status/:status/:id', 'v1.user.user/set_status')->option(['real_name' => '修改用户状态']);
//获取指定用户的信息
Route::get('one_info/:id', 'v1.user.user/oneUserInfo')->option(['real_name' => '获取指定用户的信息']);
/*会员设置模块*/
//获取添加会员等级表单
Route::get('user_level/create', 'v1.user.UserLevel/create')->option(['real_name' => '添加用户等级表单']);
//添加或修改会员等级
Route::post('user_level', 'v1.user.UserLevel/save')->option(['real_name' => '添加或修改用户等级']);
//等级详情
Route::get('user_level/read/:id', 'v1.user.UserLevel/read')->option(['real_name' => '用户等级详情']);
//获取系统设置的vip列表
Route::get('user_level/vip_list', 'v1.user.UserLevel/get_system_vip_list')->option(['real_name' => '获取系统设置的用户等级列表']);
//删除会员等级
Route::put('user_level/delete/:id', 'v1.user.UserLevel/delete')->option(['real_name' => '删除用户等级']);
//设置单个商品上架|下架
Route::put('user_level/set_show/:id/:is_show', 'v1.user.UserLevel/set_show')->option(['real_name' => '设置用户等级上下架']);
//等级列表快速编辑
Route::put('user_level/set_value/:id', 'v1.user.UserLevel/set_value')->option(['real_name' => '用户等级列表快速编辑']);
//等级任务列表
Route::get('user_level/task/:level_id', 'v1.user.UserLevel/get_task_list')->option(['real_name' => '用户等级任务列表']);
//快速编辑等级任务
Route::put('user_level/set_task/:id', 'v1.user.UserLevel/set_task_value')->option(['real_name' => '快速编辑用户等级任务']);
//设置等级任务显示|隐藏
Route::put('user_level/set_task_show/:id/:is_show', 'v1.user.UserLevel/set_task_show')->option(['real_name' => '设置用户等级任务显示|隐藏']);
//设置是否务必达成
Route::put('user_level/set_task_must/:id/:is_must', 'v1.user.UserLevel/set_task_must')->option(['real_name' => '设置用户等级任务是否务必达成']);
//添加等级任务表单
Route::get('user_level/create_task', 'v1.user.UserLevel/create_task')->option(['real_name' => '添加用户等级任务表单']);
//保存或者修改任务
Route::post('user_level/save_task', 'v1.user.UserLevel/save_task')->option(['real_name' => '保存或修改用户等级任务']);
//删除任务
Route::delete('user_level/delete_task/:id', 'v1.user.UserLevel/delete_task')->option(['real_name' => '删除用户等级任务']);
//获取用户分组列表
Route::get('user_group/list', 'v1.user.UserGroup/index')->option(['real_name' => '获取用户分组列表']);
//添加修改分组表单
Route::get('user_group/add/:id', 'v1.user.UserGroup/add')->option(['real_name' => '添加修改分组表单']);
//保存分组表单数据
Route::post('user_group/save', 'v1.user.UserGroup/save')->option(['real_name' => '保存分组表单数据']);
//删除分组数据
Route::delete('user_group/del/:id', 'v1.user.UserGroup/delete')->option(['real_name' => '删除用户分组数据']);
//设置会员分组
Route::post('set_group', 'v1.user.user/set_group')->option(['real_name' => '用户分组表单']);
//执行设置会员分组
Route::put('save_set_group', 'v1.user.user/save_set_group')->option(['real_name' => '设置用户分组']);
//会员标签列表
Route::get('user_label', 'v1.user.UserLabel/index')->option(['real_name' => '用户标签列表']);
//会员标签添加修改表单
Route::get('user_label/add/:id', 'v1.user.UserLabel/add')->option(['real_name' => '添加或修改用户标签表单']);
//保存标签表单数据
Route::post('user_label/save', 'v1.user.UserLabel/save')->option(['real_name' => '添加或修改用户标签']);
//删除会员标签
Route::delete('user_label/del/:id', 'v1.user.UserLabel/delete')->option(['real_name' => '删除用户标签']);
//设置会员分组
Route::post('set_label', 'v1.user.user/set_label')->option(['real_name' => '设置用户标签']);
//获取用户标签
Route::get('label/:uid', 'v1.user.UserLabel/getUserLabel')->option(['real_name' => '获取用户标签']);
//设置和取消用户标签
Route::post('label/:uid', 'v1.user.UserLabel/setUserLabel')->option(['real_name' => '设置和取消用户标签']);
//设置会员分组
Route::put('save_set_label', 'v1.user.user/save_set_label')->option(['real_name' => '保存用户标签']);
//标签分类
Route::resource('user_label_cate', 'v1.user.UserLabelCate')->option(['real_name' => '标签分类']);
Route::get('user_label_cate/all', 'v1.user.user_label_cate/getAll')->option(['real_name' => '获取用户标签分类全部']);
//会员卡批次列表资源
Route::get('member_batch/index', 'v1.user.member.MemberCardBatch/index')->option(['real_name' => '会员卡批次列表']);
//添加会员卡批次
Route::post('member_batch/save/:id', 'v1.user.member.MemberCardBatch/save')->option(['real_name' => '添加会员卡批次']);
//会员卡列表
Route::get('member_card/index/:card_batch_id', 'v1.user.member.MemberCard/index')->option(['real_name' => '会员卡列表']);
//会员卡修改状态
Route::get('member_card/set_status', 'v1.user.member.MemberCard/set_status')->option(['real_name' => '会员卡修改状态']);
//列表单字段修改操作
Route::get('member_batch/set_value/:id', 'v1.user.member.MemberCardBatch/set_value')->option(['real_name' => '会员卡批次快速修改']);
//会员类型
Route::get('member/ship', 'v1.user.member.MemberCard/member_ship')->option(['real_name' => '会员类型列表']);
//会员类型删除
Route::delete('member_ship/delete/:id', 'v1.user.member.MemberCard/delete')->option(['real_name' => '会员类型删除']);
//会员类型修改状态
Route::get('member_ship/set_ship_status', 'v1.user.member.MemberCard/set_ship_status')->option(['real_name' => '会员类型修改状态']);
//会员卡类型编辑
Route::post('member_ship/save/:id', 'v1.user.member.MemberCard/ship_save')->option(['real_name' => '会员卡类型编辑']);
//兑换会员卡二维码
Route::get('member_scan', 'v1.user.member.MemberCardBatch/member_scan')->option(['real_name' => '兑换会员卡二维码']);
//会员记录
Route::get('member/record', 'v1.user.member.MemberCard/member_record')->option(['real_name' => '会员记录']);
//会员权益
Route::get('member/right', 'v1.user.member.MemberCard/member_right')->option(['real_name' => '会员权益列表']);
//会员权益修改
Route::post('member_right/save/:id', 'v1.user.member.MemberCard/right_save')->option(['real_name' => '会员权益修改']);
//会员协议
Route::post('member_agreement/save/:id', 'v1.user.member.MemberCardBatch/save_member_agreement')->option(['real_name' => '会员协议']);
//获取会员协议
Route::get('member/agreement', 'v1.user.member.MemberCardBatch/getAgreement')->option(['real_name' => '获取会员协议']);
//用户标签(分类)树形列表
Route::get('user_tree_label', 'v1.user.UserLabel/tree_list')->option(['real_name' => '用户标签(分类)树形列表']);
/** 用户 */
Route::group(function () {
//用户管理资源路由
Route::resource('user', 'v1.user.User')->option([
'real_name' => [
'index' => '获取用户列表',
'create' => '获取用户表单',
'save' => '保存用户',
'read' => '获取用户详情',
'edit' => '获取修改用户表单',
'update' => '修改用户',
'delete' => '删除用户'
]
]);
//添加用户保存
Route::post('user/save', 'v1.user.User/save_info')->option(['real_name' => '添加用户']);
//同步微信用户
Route::get('user/syncUsers', 'v1.user.User/syncWechatUsers')->option(['real_name' => '同步微信用户']);
//用户信息
Route::get('user/user_save_info/:uid', 'v1.user.User/userSaveInfo')->option(['real_name' => '添加编辑用户信息时候的信息']);
//赠送会员等级
Route::get('give_level/:id', 'v1.user.User/give_level')->option(['real_name' => '赠送用户等级']);
//执行赠送会员等级
Route::put('save_give_level/:id', 'v1.user.User/save_give_level')->option(['real_name' => '执行赠送用户等级']);
//赠送付费会员时长
Route::get('give_level_time/:id', 'v1.user.User/give_level_time')->option(['real_name' => '赠送付费会员时长']);
//执行赠送付费会员时长
Route::put('save_give_level_time/:id', 'v1.user.User/save_give_level_time')->option(['real_name' => '执行赠送付费会员时长']);
//清除会员等级
Route::delete('del_level/:id', 'v1.user.User/del_level')->option(['real_name' => '清除用户等级']);
//编辑其他
Route::get('edit_other/:id', 'v1.user.User/edit_other')->option(['real_name' => '修改积分余额表单']);
//编辑其他
Route::put('update_other/:id', 'v1.user.User/update_other')->option(['real_name' => '修改积分余额']);
//修改用户状态
Route::put('set_status/:status/:id', 'v1.user.User/set_status')->option(['real_name' => '修改用户状态']);
//获取指定用户的信息
Route::get('one_info/:id', 'v1.user.User/oneUserInfo')->option(['real_name' => '获取指定用户的信息']);
//设置会员分组
Route::post('set_group', 'v1.user.User/set_group')->option(['real_name' => '用户分组表单']);
//执行设置会员分组
Route::put('save_set_group', 'v1.user.User/save_set_group')->option(['real_name' => '设置用户分组']);
//设置会员标签
Route::post('set_label', 'v1.user.User/set_label')->option(['real_name' => '设置用户标签']);
})->option(['parent' => 'user', 'cate_name' => '用户']);
/** 用户等级 */
Route::group(function () {
//获取添加会员等级表单
Route::get('user_level/create', 'v1.user.UserLevel/create')->option(['real_name' => '添加用户等级表单']);
//添加或修改会员等级
Route::post('user_level', 'v1.user.UserLevel/save')->option(['real_name' => '添加或修改用户等级']);
//等级详情
Route::get('user_level/read/:id', 'v1.user.UserLevel/read')->option(['real_name' => '用户等级详情']);
//获取系统设置的vip列表
Route::get('user_level/vip_list', 'v1.user.UserLevel/get_system_vip_list')->option(['real_name' => '获取系统设置的用户等级列表']);
//删除会员等级
Route::put('user_level/delete/:id', 'v1.user.UserLevel/delete')->option(['real_name' => '删除用户等级']);
//设置单个商品上架|下架
Route::put('user_level/set_show/:id/:is_show', 'v1.user.UserLevel/set_show')->option(['real_name' => '设置用户等级上下架']);
//等级列表快速编辑
Route::put('user_level/set_value/:id', 'v1.user.UserLevel/set_value')->option(['real_name' => '用户等级列表快速编辑']);
//等级任务列表
Route::get('user_level/task/:level_id', 'v1.user.UserLevel/get_task_list')->option(['real_name' => '用户等级任务列表']);
//快速编辑等级任务
Route::put('user_level/set_task/:id', 'v1.user.UserLevel/set_task_value')->option(['real_name' => '快速编辑用户等级任务']);
//设置等级任务显示|隐藏
Route::put('user_level/set_task_show/:id/:is_show', 'v1.user.UserLevel/set_task_show')->option(['real_name' => '设置用户等级任务显示|隐藏']);
//设置是否务必达成
Route::put('user_level/set_task_must/:id/:is_must', 'v1.user.UserLevel/set_task_must')->option(['real_name' => '设置用户等级任务是否务必达成']);
//添加等级任务表单
Route::get('user_level/create_task', 'v1.user.UserLevel/create_task')->option(['real_name' => '添加用户等级任务表单']);
//保存或者修改任务
Route::post('user_level/save_task', 'v1.user.UserLevel/save_task')->option(['real_name' => '保存或修改用户等级任务']);
//删除任务
Route::delete('user_level/delete_task/:id', 'v1.user.UserLevel/delete_task')->option(['real_name' => '删除用户等级任务']);
})->option(['parent' => 'user', 'cate_name' => '用户等级']);
/** 用户分组 */
Route::group(function () {
//获取用户分组列表
Route::get('user_group/list', 'v1.user.UserGroup/index')->option(['real_name' => '获取用户分组列表']);
//添加修改分组表单
Route::get('user_group/add/:id', 'v1.user.UserGroup/add')->option(['real_name' => '添加修改分组表单']);
//保存分组表单数据
Route::post('user_group/save', 'v1.user.UserGroup/save')->option(['real_name' => '保存分组表单数据']);
//删除分组数据
Route::delete('user_group/del/:id', 'v1.user.UserGroup/delete')->option(['real_name' => '删除用户分组数据']);
})->option(['parent' => 'user', 'cate_name' => '用户分组']);
/** 用户标签 */
Route::group(function () {
//会员标签列表
Route::get('user_label', 'v1.user.UserLabel/index')->option(['real_name' => '用户标签列表']);
//会员标签添加修改表单
Route::get('user_label/add/:id', 'v1.user.UserLabel/add')->option(['real_name' => '添加或修改用户标签表单']);
//保存标签表单数据
Route::post('user_label/save', 'v1.user.UserLabel/save')->option(['real_name' => '添加或修改用户标签']);
//删除会员标签
Route::delete('user_label/del/:id', 'v1.user.UserLabel/delete')->option(['real_name' => '删除用户标签']);
//获取用户标签
Route::get('label/:uid', 'v1.user.UserLabel/getUserLabel')->option(['real_name' => '获取用户标签']);
//设置和取消用户标签
Route::post('label/:uid', 'v1.user.UserLabel/setUserLabel')->option(['real_name' => '设置和取消用户标签']);
//设置会员分组
Route::put('save_set_label', 'v1.user.user/save_set_label')->option(['real_name' => '保存用户标签']);
//标签分类
Route::resource('user_label_cate', 'v1.user.UserLabelCate')->except(['read'])->option([
'real_name' => [
'index' => '获取标签分类',
'create' => '获取标签分类表单',
'save' => '保存标签分类',
'edit' => '获取修改标签分类表单',
'update' => '修改标签分类',
'delete' => '删除标签分类'
]
]);
Route::get('user_label_cate/all', 'v1.user.UserLabelCate/getAll')->option(['real_name' => '获取用户标签分类全部']);
//用户标签(分类)树形列表
Route::get('user_tree_label', 'v1.user.UserLabel/tree_list')->option(['real_name' => '用户标签(分类)树形列表']);
})->option(['parent' => 'user', 'cate_name' => '用户标签']);
/** 付费会员 */
Route::group(function () {
//会员卡批次列表资源
Route::get('member_batch/index', 'v1.user.member.MemberCardBatch/index')->option(['real_name' => '会员卡批次列表']);
//添加会员卡批次
Route::post('member_batch/save/:id', 'v1.user.member.MemberCardBatch/save')->option(['real_name' => '添加会员卡批次']);
//会员卡列表
Route::get('member_card/index/:card_batch_id', 'v1.user.member.MemberCard/index')->option(['real_name' => '会员卡列表']);
//会员卡修改状态
Route::get('member_card/set_status', 'v1.user.member.MemberCard/set_status')->option(['real_name' => '会员卡修改状态']);
//列表单字段修改操作
Route::get('member_batch/set_value/:id', 'v1.user.member.MemberCardBatch/set_value')->option(['real_name' => '会员卡批次快速修改']);
//会员类型
Route::get('member/ship', 'v1.user.member.MemberCard/member_ship')->option(['real_name' => '会员类型列表']);
//会员类型删除
Route::delete('member_ship/delete/:id', 'v1.user.member.MemberCard/delete')->option(['real_name' => '会员类型删除']);
//会员类型修改状态
Route::get('member_ship/set_ship_status', 'v1.user.member.MemberCard/set_ship_status')->option(['real_name' => '会员类型修改状态']);
//会员卡类型编辑
Route::post('member_ship/save/:id', 'v1.user.member.MemberCard/ship_save')->option(['real_name' => '会员卡类型编辑']);
//兑换会员卡二维码
Route::get('member_scan', 'v1.user.member.MemberCardBatch/member_scan')->option(['real_name' => '兑换会员卡二维码']);
//会员记录
Route::get('member/record', 'v1.user.member.MemberCard/member_record')->option(['real_name' => '会员记录']);
//会员权益
Route::get('member/right', 'v1.user.member.MemberCard/member_right')->option(['real_name' => '会员权益列表']);
//会员权益修改
Route::post('member_right/save/:id', 'v1.user.member.MemberCard/right_save')->option(['real_name' => '会员权益修改']);
//会员协议
Route::post('member_agreement/save/:id', 'v1.user.member.MemberCardBatch/save_member_agreement')->option(['real_name' => '会员协议']);
//获取会员协议
Route::get('member/agreement', 'v1.user.member.MemberCardBatch/getAgreement')->option(['real_name' => '获取会员协议']);
})->option(['parent' => 'user', 'cate_name' => '付费会员']);
/** 用户注销 */
Route::get('cancel_list', 'v1.user.UserCancel/getCancelList')->option(['real_name' => '用户注销列表']);
Route::post('cancel/set_mark', 'v1.user.UserCancel/setMark')->option(['real_name' => '注销列表备注']);
Route::get('cancel/agree/:id', 'v1.user.UserCancel/agreeCancel')->option(['real_name' => '同意注销']);
Route::get('cancel/refuse/:id', 'v1.user.UserCancel/refuseCancel')->option(['real_name' => '拒绝注销']);
Route::group(function () {
Route::get('cancel_list', 'v1.user.UserCancel/getCancelList')->option(['real_name' => '用户注销列表']);
Route::post('cancel/set_mark', 'v1.user.UserCancel/setMark')->option(['real_name' => '注销列表备注']);
Route::get('cancel/agree/:id', 'v1.user.UserCancel/agreeCancel')->option(['real_name' => '同意注销']);
Route::get('cancel/refuse/:id', 'v1.user.UserCancel/refuseCancel')->option(['real_name' => '拒绝注销']);
})->option(['parent' => 'user', 'cate_name' => '用户注销']);
})->middleware([
\app\http\middleware\AllowOriginMiddleware::class,
\app\adminapi\middleware\AdminAuthTokenMiddleware::class,
\app\adminapi\middleware\AdminCheckRoleMiddleware::class,
\app\adminapi\middleware\AdminLogMiddleware::class
]);
])->option(['mark' => 'user', 'mark_name' => '用户管理']);

View File

@ -53,10 +53,12 @@ class LoginController
[$account, $password, $spread] = $request->postMore([
'account', 'password', 'spread'
], true);
TaskJob::dispatch('emptyYesterdayAttachment');
if (!$account || !$password) {
return app('json')->fail(410000);
}
if (strlen(trim($password)) < 6 || strlen(trim($password)) > 32) {
return app('json')->fail(400762);
}
return app('json')->success(410001, $this->services->login($account, $password, $spread));
}
@ -193,14 +195,15 @@ class LoginController
} catch (ValidateException $e) {
return app('json')->fail($e->getError());
}
if (strlen(trim($password)) < 6 || strlen(trim($password)) > 32) {
return app('json')->fail(400762);
}
$verifyCode = CacheService::get('code_' . $account);
if (!$verifyCode)
return app('json')->fail(410009);
$verifyCode = substr($verifyCode, 0, 6);
if ($verifyCode != $captcha)
return app('json')->fail(410010);
if (strlen(trim($password)) < 6 || strlen(trim($password)) > 16)
return app('json')->fail(410011);
if (md5($password) == md5('123456')) return app('json')->fail(410012);
$registerStatus = $this->services->register($account, $password, $spread, 'h5');
@ -226,6 +229,9 @@ class LoginController
} catch (ValidateException $e) {
return app('json')->fail($e->getError());
}
if (strlen(trim($password)) < 6 || strlen(trim($password)) > 32) {
return app('json')->fail(400762);
}
$verifyCode = CacheService::get('code_' . $account);
if (!$verifyCode)
return app('json')->fail(410009);
@ -233,8 +239,6 @@ class LoginController
if ($verifyCode != $captcha) {
return app('json')->fail(410010);
}
if (strlen(trim($password)) < 6 || strlen(trim($password)) > 16)
return app('json')->fail(410011);
if ($password == '123456') return app('json')->fail(410012);
$resetStatus = $this->services->reset($account, $password);
if ($resetStatus) return app('json')->success(100001);

View File

@ -657,4 +657,34 @@ class PublicController
{
return app('json')->success(app()->make(LangCodeServices::class)->getLangVersion());
}
/**
* 商城基础配置汇总接口
* @return \think\Response
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/03
*/
public function getMallBasicConfig()
{
$data['site_name'] = sys_config('site_name');//网站名称
$data['site_url'] = sys_config('site_url');//网站地址
$data['wap_login_logo'] = sys_config('wap_login_logo');//移动端登录logo
$data['record_No'] = sys_config('record_No');//备案号
$data['network_security'] = sys_config('network_security');//网安备案
$data['store_self_mention'] = sys_config('store_self_mention');//是否开启到店自提
$data['invoice_func_status'] = sys_config('invoice_func_status');//发票功能启用
$data['special_invoice_status'] = sys_config('special_invoice_status');//专用发票启用
$data['member_func_status'] = sys_config('member_func_status');//用户等级启用
$data['balance_func_status'] = sys_config('balance_func_status');//余额功能启用
$data['recharge_switch'] = sys_config('recharge_switch');//小程序充值开关
$data['member_card_status'] = sys_config('member_card_status');//是否开启付费会员
$data['member_price_status'] = sys_config('member_price_status');//商品会员折扣价展示启用
$data['ali_pay_status'] = sys_config('ali_pay_status') != '0';//支付宝是否启用
$data['pay_weixin_open'] = sys_config('pay_weixin_open') != '0';//微信是否启用
$data['yue_pay_status'] = sys_config('yue_pay_status') == 1 && sys_config('balance_func_status') != 0;//余额是否启用
$data['offline_pay_status'] = sys_config('offline_pay_status') == 1;//线下是否启用
$data['friend_pay_status'] = sys_config('friend_pay_status') == 1;//好友是否启用
return app('json')->success($data);
}
}

View File

@ -121,6 +121,7 @@ class StoreIntegralOrderController
/**
* 订单 查看物流
* @param Request $request
* @param ExpressServices $expressServices
* @param $uni
* @return mixed
*/
@ -128,6 +129,8 @@ class StoreIntegralOrderController
{
if (!$uni || !($order = $this->services->getUserOrderDetail($uni, $request->uid()))) return app('json')->fail(410173);
if ($order['delivery_type'] != 'express' || !$order['delivery_id']) return app('json')->fail(410206);
$order['price'] = (int)$order['price'];
$order['total_price'] = (int)$order['total_price'];
$cacheName = 'integral' . $order['order_id'] . $order['delivery_id'];
return app('json')->success([
'order' => $order,

View File

@ -94,6 +94,10 @@ class StoreOrderController
* @param Request $request
* @param ShippingTemplatesServices $services
* @return mixed
* @throws \Psr\SimpleCache\InvalidArgumentException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function confirm(Request $request, ShippingTemplatesServices $services)
{
@ -287,33 +291,18 @@ class StoreOrderController
return app('json')->status('pay_error', $pay);
}
case PayServices::OFFLINE_PAY:
if ($this->services->setOrderTypePayOffline($order['order_id']))
if ($this->services->setOrderTypePayOffline($order['order_id'])) {
event('NoticeListener', [$order, 'admin_pay_success_code']);
return app('json')->status('success', 410203);
else
} else {
return app('json')->status('success', 410216);
}
default:
$payInfo = $payServices->beforePay($order->toArray(), $paytype, ['quitUrl' => $quitUrl]);
return app('json')->status($payInfo['status'], $payInfo['payInfo']);
}
}
/**
* TODO 支付宝单独支付 弃用
* @param OrderPayServices $payServices
* @param OtherOrderServices $services
* @param string $key
* @param string $quitUrl
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
// public function aliPay(OrderPayServices $payServices, OtherOrderServices $services, string $key, string $quitUrl)
// {
// $payInfo = $this->services->aliPayOrder($payServices, $services, $key, $quitUrl);
// return app('json')->success(['pay_content' => $payInfo]);
// }
/**
* 订单列表
* @param Request $request
@ -543,6 +532,7 @@ class StoreOrderController
* @param Request $request
* @param StoreOrderCartInfoServices $cartInfoServices
* @param StoreProductReplyServices $replyServices
* @return \think\Response|void
* @throws \Psr\SimpleCache\InvalidArgumentException
*/
public function comment(Request $request, StoreOrderCartInfoServices $cartInfoServices, StoreProductReplyServices $replyServices)
@ -617,6 +607,7 @@ class StoreOrderController
* 订单统计数据
* @param Request $request
* @return mixed
* @throws \ReflectionException
*/
public function data(Request $request)
{
@ -736,37 +727,6 @@ class StoreOrderController
return app('json')->fail(100028);
}
/**
* 订单申请退款审核
* @param Request $request
* @param StoreOrderRefundServices $services
*/
public function refund_verify(Request $request, StoreOrderRefundServices $services)
{
// $data = $request->postMore([
// ['text', ''],
// ['refund_reason_wap_img', ''],
// ['refund_reason_wap_explain', ''],
// ['uni', ''],
// ['refund_type', 1],
// ['cart_id', 0],
// ['refund_num', 0]
// ]);
// $uni = $data['uni'];
// unset($data['uni']);
// if ($data['refund_reason_wap_img'] != '') {
// $data['refund_reason_wap_img'] = explode(',', $data['refund_reason_wap_img']);
// } else {
// $data['refund_reason_wap_img'] = [];
// }
// if (!$uni || $data['text'] == '' || $data['refund_num'] <= 0) return app('json')->fail('参数错误!');
// $res = $services->orderApplyRefund($this->services->getUserOrderDetail($uni, (int)$request->uid()), $data['text'], $data['refund_reason_wap_explain'], $data['refund_reason_wap_img'], $data['refund_type'], $data['cart_id'], $data['refund_num']);
// if ($res)
// return app('json')->success('提交申请成功');
// else
// return app('json')->fail('提交失败');
}
/**
* 用户退货提交快递单号
* @param Request $request

View File

@ -124,7 +124,8 @@ class StoreCartController
['id', 0],//购物车编号
['number', 0],//购物车编号
]);
if (!$where['id'] || !$where['number'] || !is_numeric($where['id']) || !is_numeric($where['number'])) return app('json')->fail(100100);
if (!$where['id'] || !is_numeric($where['id'])) return app('json')->fail(100100);
if (!$where['number'] || !is_numeric($where['number'])) return app('json')->fail(100007);
$res = $this->services->changeUserCartNum($where['id'], $where['number'], $request->uid());
if ($res) return app('json')->success(100001);
else return app('json')->fail(100007);

View File

@ -42,6 +42,14 @@ class WechatController
{
return $this->services->serve();
}
/**
* 微信小程序公众号服务
* @return \think\Response
*/
public function miniServe()
{
return $this->services->miniServe();
}
/**
* 支付异步回调

View File

@ -40,8 +40,11 @@ class StoreService
/**
* 客服聊天记录
* @param Request $request
* @param $toUid
* @param StoreServiceServices $services
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function record(Request $request, StoreServiceServices $services)
{

View File

@ -16,7 +16,6 @@ use app\Request;
use app\services\user\UserAuthServices;
use crmeb\exceptions\AuthException;
use crmeb\interfaces\MiddlewareInterface;
use think\exception\DbException;
/**
* Class AuthTokenMiddleware
@ -24,6 +23,18 @@ use think\exception\DbException;
*/
class AuthTokenMiddleware implements MiddlewareInterface
{
/**
* @param Request $request
* @param \Closure $next
* @param bool $force
* @return int|mixed|\think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/07
*/
public function handle(Request $request, \Closure $next, bool $force = true)
{
$authInfo = null;
@ -39,20 +50,20 @@ class AuthTokenMiddleware implements MiddlewareInterface
}
if (!is_null($authInfo)) {
Request::macro('user', function (string $key = null) use (&$authInfo) {
$request->macro('user', function (string $key = null) use (&$authInfo) {
if ($key) {
return $authInfo['user'][$key] ?? '';
}
return $authInfo['user'];
});
Request::macro('tokenData', function () use (&$authInfo) {
$request->macro('tokenData', function () use (&$authInfo) {
return $authInfo['tokenData'];
});
}
Request::macro('isLogin', function () use (&$authInfo) {
$request->macro('isLogin', function () use (&$authInfo) {
return !is_null($authInfo);
});
Request::macro('uid', function () use (&$authInfo) {
$request->macro('uid', function () use (&$authInfo) {
return is_null($authInfo) ? 0 : (int)$authInfo['user']->uid;
});

View File

@ -15,36 +15,44 @@ use think\Response;
Route::group('pc', function () {
//登陆接口
Route::group(function () {
Route::get('key', 'pc.LoginController/getLoginKey')->name('getLoginKey');//获取扫码登录key
Route::get('scan/:key', 'pc.LoginController/scanLogin')->name('scanLogin');//检测扫码情况
Route::get('get_appid', 'pc.LoginController/getAppid')->name('getAppid');//检测扫码情况
Route::get('wechat_auth', 'pc.LoginController/wechatAuth')->name('wechatAuth');//检测扫码情况
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class);
Route::get('key', 'pc.LoginController/getLoginKey')->name('getLoginKey')->option(['real_name' => '获取扫码登录key']);//获取扫码登录key
Route::get('scan/:key', 'pc.LoginController/scanLogin')->name('scanLogin')->option(['real_name' => '检测扫码情况']);//检测扫码情况
Route::get('get_appid', 'pc.LoginController/getAppid')->name('getAppid')->option(['real_name' => '获取开放平台appid']);//检测扫码情况
Route::get('wechat_auth', 'pc.LoginController/wechatAuth')->name('wechatAuth')->option(['real_name' => '检测扫码情况']);//检测扫码情况
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)
->middleware(\app\api\middleware\StationOpenMiddleware::class)
->option(['parent' => 'PC', 'cate_name' => '授权登录']);
//未授权接口
Route::group(function () {
Route::get('get_pay_vip_code', 'pc.HomeController/getPayVipCode')->name('getPayVipCode');//获取付费会员购买页面二维码
Route::get('get_product_phone_buy', 'pc.HomeController/getProductPhoneBuy')->name('getProductPhoneBuy');//手机购买跳转url配置
Route::get('get_banner', 'pc.HomeController/getBanner')->name('getBanner');//PC首页轮播图
Route::get('get_category_product', 'pc.HomeController/getCategoryProduct')->name('getCategoryProduct');//首页分类尚品
Route::get('get_products', 'pc.ProductController/getProductList')->name('getProductList');//商品列表
Route::get('get_product_code/:product_id/[:type]', 'pc.ProductController/getProductRoutineCode')->name('getProductRoutineCode');//商品详情小程序二维码
Route::get('get_city/:pid', 'pc.PublicController/getCity')->name('getCity');//获取城市数据
Route::get('check_order_status/:order_id/:end_time', 'pc.OrderController/checkOrderStatus')->name('checkOrderStatus');//轮询订单状态接口
Route::get('get_company_info', 'pc.PublicController/getCompanyInfo')->name('getCompanyInfo');//获取公司信息
Route::get('get_recommend/:type', 'pc.ProductController/getRecommendList')->name('getRecommendList');//获取推荐商品
Route::get('get_wechat_qrcode', 'pc.PublicController/getWechatQrcode')->name('getWechatQrcode');//获取关注二维码
Route::get('get_good_product', 'pc.ProductController/getGoodProduct')->name('getGoodProduct');//获取优品推荐
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class)->middleware(\app\api\middleware\AuthTokenMiddleware::class, false);
Route::get('get_pay_vip_code', 'pc.HomeController/getPayVipCode')->name('getPayVipCode')->option(['real_name' => '获取付费会员购买页面二维码']);//获取付费会员购买页面二维码
Route::get('get_product_phone_buy', 'pc.HomeController/getProductPhoneBuy')->name('getProductPhoneBuy')->option(['real_name' => '手机购买跳转url配置']);//手机购买跳转url配置
Route::get('get_banner', 'pc.HomeController/getBanner')->name('getBanner')->option(['real_name' => 'PC首页轮播图']);//PC首页轮播图
Route::get('get_category_product', 'pc.HomeController/getCategoryProduct')->name('getCategoryProduct')->option(['real_name' => '首页分类尚品']);//首页分类尚品
Route::get('get_products', 'pc.ProductController/getProductList')->name('getProductList')->option(['real_name' => '商品列表']);//商品列表
Route::get('get_product_code/:product_id/[:type]', 'pc.ProductController/getProductRoutineCode')->name('getProductRoutineCode')->option(['real_name' => '商品详情小程序二维码']);//商品详情小程序二维码
Route::get('get_city/:pid', 'pc.PublicController/getCity')->name('getCity')->option(['real_name' => '获取城市数据']);//获取城市数据
Route::get('check_order_status/:order_id/:end_time', 'pc.OrderController/checkOrderStatus')->name('checkOrderStatus')->option(['real_name' => '轮询订单状态接口']);//轮询订单状态接口
Route::get('get_company_info', 'pc.PublicController/getCompanyInfo')->name('getCompanyInfo')->option(['real_name' => '获取公司信息']);//获取公司信息
Route::get('get_recommend/:type', 'pc.ProductController/getRecommendList')->name('getRecommendList')->option(['real_name' => '获取推荐商品']);//获取推荐商品
Route::get('get_wechat_qrcode', 'pc.PublicController/getWechatQrcode')->name('getWechatQrcode')->option(['real_name' => '获取关注二维码']);//获取关注二维码
Route::get('get_good_product', 'pc.ProductController/getGoodProduct')->name('getGoodProduct')->option(['real_name' => '获取优品推荐']);//获取优品推荐
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)
->middleware(\app\api\middleware\StationOpenMiddleware::class)
->middleware(\app\api\middleware\AuthTokenMiddleware::class, false)
->option(['parent' => 'PC', 'cate_name' => '用户未授权接口']);
//会员授权接口
Route::group(function () {
Route::get('get_cart_list', 'pc.CartController/getCartList')->name('getCartList');//购物车列表
Route::get('get_balance_record/:type', 'pc.UserController/getBalanceRecord')->name('getBalanceRecord');//余额记录
Route::get('get_order_list', 'pc.OrderController/getOrderList')->name('getOrderList');//订单列表
Route::get('get_refund_order_list', 'pc.OrderController/getRefundOrderList')->name('getRefundOrderList');//退款订单列表
Route::get('get_collect_list', 'pc.UserController/getCollectList')->name('getCollectList');//收藏列表
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class)->middleware(\app\api\middleware\AuthTokenMiddleware::class, true);
Route::get('get_cart_list', 'pc.CartController/getCartList')->name('getCartList')->option(['real_name' => '购物车列表']);//购物车列表
Route::get('get_balance_record/:type', 'pc.UserController/getBalanceRecord')->name('getBalanceRecord')->option(['real_name' => '余额记录']);//余额记录
Route::get('get_order_list', 'pc.OrderController/getOrderList')->name('getOrderList')->option(['real_name' => '订单列表']);//订单列表
Route::get('get_refund_order_list', 'pc.OrderController/getRefundOrderList')->name('getRefundOrderList')->option(['real_name' => '退款订单列表']);//退款订单列表
Route::get('get_collect_list', 'pc.UserController/getCollectList')->name('getCollectList')->option(['real_name' => '收藏列表']);//收藏列表
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)
->middleware(\app\api\middleware\StationOpenMiddleware::class)
->middleware(\app\api\middleware\AuthTokenMiddleware::class, true)
->option(['parent' => 'PC', 'cate_name' => '用户授权接口']);
Route::miss(function () {
if (app()->request->isOptions()) {
@ -54,4 +62,6 @@ Route::group('pc', function () {
} else
return Response::create()->code(404);
});
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class);
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)
->middleware(\app\api\middleware\StationOpenMiddleware::class)
->option(['mark' => 'PC', 'mark_name' => 'PC']);

View File

@ -14,409 +14,511 @@ use think\facade\Route;
use think\facade\Config;
use think\Response;
Route::any('wechat/serve', 'v1.wechat.WechatController/serve');//公众号服务
Route::any('pay/notify/:type', 'v1.PayController/notify');//支付回调
Route::get('get_script', 'v1.PublicController/getScript');//获取统计代码
Route::get('version', 'v1.PublicController/getVersion');//获取统计代码
Route::group(function () {
Route::any('wechat/serve', 'v1.wechat.WechatController/serve')->option(['real_name' => '公众号服务']);//公众号服务
Route::any('wechat/miniServe', 'v1.wechat.WechatController/miniServe')->option(['real_name' => '小程序服务']);//公众号服务
Route::any('pay/notify/:type', 'v1.PayController/notify')->option(['real_name' => '支付回调']);//支付回调
Route::get('get_script', 'v1.PublicController/getScript')->option(['real_name' => '获取统计代码']);//获取统计代码
Route::get('version', 'v1.PublicController/getVersion')->option(['real_name' => '获取代码版本号']);
})->option(['mark' => 'serve', 'mark_name' => '服务接口']);
Route::group(function () {
//apple快捷登陆
Route::post('apple_login', 'v1.LoginController/appleLogin')->name('appleLogin');//微信APP授权
Route::post('apple_login', 'v1.LoginController/appleLogin')->name('appleLogin')->option(['real_name' => '微信APP授权']);//微信APP授权
//账号密码登录
Route::post('login', 'v1.LoginController/login')->name('login');
Route::post('login', 'v1.LoginController/login')->name('login')->option(['real_name' => '账号密码登录']);
// 获取发短信的key
Route::get('verify_code', 'v1.LoginController/verifyCode')->name('verifyCode');
Route::get('verify_code', 'v1.LoginController/verifyCode')->name('verifyCode')->option(['real_name' => '获取发短信的key']);
//手机号登录
Route::post('login/mobile', 'v1.LoginController/mobile')->name('loginMobile');
Route::post('login/mobile', 'v1.LoginController/mobile')->name('loginMobile')->option(['real_name' => '手机号登录']);
//图片验证码
Route::get('sms_captcha', 'v1.LoginController/captcha')->name('captcha');
Route::get('sms_captcha', 'v1.LoginController/captcha')->name('captcha')->option(['real_name' => '图片验证码']);
//图形验证码
Route::get('ajcaptcha', 'v1.LoginController/ajcaptcha')->name('ajcaptcha');
//图形验证码
Route::post('ajcheck', 'v1.LoginController/ajcheck')->name('ajcheck');
//验证码发送
Route::post('register/verify', 'v1.LoginController/verify')->name('registerVerify');
Route::get('ajcaptcha', 'v1.LoginController/ajcaptcha')->name('ajcaptcha')->option(['real_name' => '图形验证码']);
//图形验证码验证
Route::post('ajcheck', 'v1.LoginController/ajcheck')->name('ajcheck')->option(['real_name' => '图形验证码验证']);
//手机验证码发送
Route::post('register/verify', 'v1.LoginController/verify')->name('registerVerify')->option(['real_name' => '手机验证码发送']);
//手机号注册
Route::post('register', 'v1.LoginController/register')->name('register');
Route::post('register', 'v1.LoginController/register')->name('register')->option(['real_name' => '手机号注册']);
//手机号修改密码
Route::post('register/reset', 'v1.LoginController/reset')->name('registerReset');
Route::post('register/reset', 'v1.LoginController/reset')->name('registerReset')->option(['real_name' => '手机号修改密码']);
// 绑定手机号(静默授权 还未有用户信息)
Route::post('binding', 'v1.LoginController/binding_phone')->name('bindingPhone');
Route::post('binding', 'v1.LoginController/binding_phone')->name('bindingPhone')->option(['real_name' => '绑定手机号']);
// 支付宝复制链接支付 弃用
// Route::get('ali_pay', 'v1.order.StoreOrderController/aliPay')->name('aliPay');
//查询版权
Route::get('copyright', 'v1.PublicController/copyright')->option(['real_name' => '申请版权']);
Route::get('copyright', 'v1.PublicController/copyright')->option(['real_name' => '申请版权'])->option(['real_name' => '查询版权']);
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class);
//商城基础配置汇总接口
Route::get('basic_config', 'v1.PublicController/getMallBasicConfig')->option(['real_name' => '商城基础配置汇总接口']);
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)
->middleware(\app\api\middleware\StationOpenMiddleware::class)
->option(['mark' => 'base', 'mark_name' => '基础接口']);
//管理员订单操作类
Route::group(function () {
Route::get('admin/order/statistics', 'v1.admin.StoreOrderController/statistics')->name('adminOrderStatistics');//订单数据统计
Route::get('admin/order/data', 'v1.admin.StoreOrderController/data')->name('adminOrderData');//订单每月统计数据
Route::get('admin/order/list', 'v1.admin.StoreOrderController/lst')->name('adminOrderList');//订单列表
Route::get('admin/refund_order/list', 'v1.admin.StoreOrderController/refundOrderList')->name('adminOrderRefundList');//退款订单列表
Route::get('admin/order/detail/:orderId', 'v1.admin.StoreOrderController/detail')->name('adminOrderDetail');//订单详情
Route::get('admin/refund_order/detail/:uni', 'v1.admin.StoreOrderController/refundOrderDetail')->name('RefundOrderDetail');//退款订单详情
Route::get('admin/order/delivery/gain/:orderId', 'v1.admin.StoreOrderController/delivery_gain')->name('adminOrderDeliveryGain');//订单发货获取订单信息
Route::post('admin/order/delivery/keep/:id', 'v1.admin.StoreOrderController/delivery_keep')->name('adminOrderDeliveryKeep');//订单发货
Route::post('admin/order/price', 'v1.admin.StoreOrderController/price')->name('adminOrderPrice');//订单改价
Route::post('admin/order/remark', 'v1.admin.StoreOrderController/remark')->name('adminOrderRemark');//订单备注
Route::post('admin/order/agreeExpress', 'v1.admin.StoreOrderController/agreeExpress')->name('adminOrderAgreeExpress');//订单同意退货
Route::post('admin/refund_order/remark', 'v1.admin.StoreOrderController/refundRemark')->name('refundRemark');//退款订单备注
Route::get('admin/order/time', 'v1.admin.StoreOrderController/time')->name('adminOrderTime');//订单交易额时间统计
Route::post('admin/order/offline', 'v1.admin.StoreOrderController/offline')->name('adminOrderOffline');//订单支付
Route::post('admin/order/refund', 'v1.admin.StoreOrderController/refund')->name('adminOrderRefund');//订单退款
Route::post('order/order_verific', 'v1.admin.StoreOrderController/order_verific')->name('order');//订单核销
Route::get('admin/order/delivery', 'v1.admin.StoreOrderController/getDeliveryAll')->name('getDeliveryAll');//获取配送员
Route::get('admin/order/delivery_info', 'v1.admin.StoreOrderController/getDeliveryInfo')->name('getDeliveryInfo');//获取电子面单默认信息
Route::get('admin/order/export_temp', 'v1.admin.StoreOrderController/getExportTemp')->name('getExportTemp');//获取电子面单模板获取
Route::get('admin/order/export_all', 'v1.admin.StoreOrderController/getExportAll')->name('getExportAll');//获取物流公司
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class)->middleware(\app\api\middleware\AuthTokenMiddleware::class, true)->middleware(\app\api\middleware\CustomerMiddleware::class);
Route::get('admin/order/statistics', 'v1.admin.StoreOrderController/statistics')->name('adminOrderStatistics')->option(['real_name' => '订单数据统计']);//订单数据统计
Route::get('admin/order/data', 'v1.admin.StoreOrderController/data')->name('adminOrderData')->option(['real_name' => '订单每月统计数据']);//订单每月统计数据
Route::get('admin/order/list', 'v1.admin.StoreOrderController/lst')->name('adminOrderList')->option(['real_name' => '订单列表']);//订单列表
Route::get('admin/refund_order/list', 'v1.admin.StoreOrderController/refundOrderList')->name('adminOrderRefundList')->option(['real_name' => '退款订单列表']);//退款订单列表
Route::get('admin/order/detail/:orderId', 'v1.admin.StoreOrderController/detail')->name('adminOrderDetail')->option(['real_name' => '订单详情']);//订单详情
Route::get('admin/refund_order/detail/:uni', 'v1.admin.StoreOrderController/refundOrderDetail')->name('RefundOrderDetail')->option(['real_name' => '退款订单详情']);//退款订单详情
Route::get('admin/order/delivery/gain/:orderId', 'v1.admin.StoreOrderController/delivery_gain')->name('adminOrderDeliveryGain')->option(['real_name' => '订单发货获取订单信息']);//订单发货获取订单信息
Route::post('admin/order/delivery/keep/:id', 'v1.admin.StoreOrderController/delivery_keep')->name('adminOrderDeliveryKeep')->option(['real_name' => '订单发货']);//订单发货
Route::post('admin/order/price', 'v1.admin.StoreOrderController/price')->name('adminOrderPrice')->option(['real_name' => '订单改价']);//订单改价
Route::post('admin/order/remark', 'v1.admin.StoreOrderController/remark')->name('adminOrderRemark')->option(['real_name' => '订单备注']);//订单备注
Route::post('admin/order/agreeExpress', 'v1.admin.StoreOrderController/agreeExpress')->name('adminOrderAgreeExpress')->option(['real_name' => '订单同意退货']);//订单同意退货
Route::post('admin/refund_order/remark', 'v1.admin.StoreOrderController/refundRemark')->name('refundRemark')->option(['real_name' => '退款订单备注']);//退款订单备注
Route::get('admin/order/time', 'v1.admin.StoreOrderController/time')->name('adminOrderTime')->option(['real_name' => '订单交易额时间统计']);//订单交易额时间统计
Route::post('admin/order/offline', 'v1.admin.StoreOrderController/offline')->name('adminOrderOffline')->option(['real_name' => '订单支付']);//订单支付
Route::post('admin/order/refund', 'v1.admin.StoreOrderController/refund')->name('adminOrderRefund')->option(['real_name' => '订单退款']);//订单退款
Route::post('order/order_verific', 'v1.admin.StoreOrderController/order_verific')->name('order')->option(['real_name' => '订单核销']);//订单核销
Route::get('admin/order/delivery', 'v1.admin.StoreOrderController/getDeliveryAll')->name('getDeliveryAll')->option(['real_name' => '获取配送员']);//获取配送员
Route::get('admin/order/delivery_info', 'v1.admin.StoreOrderController/getDeliveryInfo')->name('getDeliveryInfo')->option(['real_name' => '获取电子面单默认信息']);//获取电子面单默认信息
Route::get('admin/order/export_temp', 'v1.admin.StoreOrderController/getExportTemp')->name('getExportTemp')->option(['real_name' => '获取电子面单模板获取']);//获取电子面单模板获取
Route::get('admin/order/export_all', 'v1.admin.StoreOrderController/getExportAll')->name('getExportAll')->option(['real_name' => '获取物流公司']);//获取物流公司
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)
->middleware(\app\api\middleware\StationOpenMiddleware::class)
->middleware(\app\api\middleware\AuthTokenMiddleware::class, true)
->middleware(\app\api\middleware\CustomerMiddleware::class)
->option(['mark' => 'admin', 'mark_name' => '移动端订单管理']);;
//会员授权接口
Route::group(function () {
//获取支付方式
Route::get('pay/config', 'v1.PayController/config')->name('payConfig');
//用户修改手机号
Route::post('user/updatePhone', 'v1.LoginController/update_binding_phone')->name('updateBindingPhone');
//设置登录code
Route::post('user/code', 'v1.user.StoreService/setLoginCode')->name('setLoginCode');
//查看code是否可用
Route::get('user/code', 'v1.LoginController/setLoginKey')->name('getLoginKey');
//用户绑定手机号
Route::post('user/binding', 'v1.LoginController/user_binding_phone')->name('userBindingPhone');
Route::get('logout', 'v1.LoginController/logout')->name('logout');// 退出登录
Route::post('switch_h5', 'v1.LoginController/switch_h5')->name('switch_h5');// 切换账号
//商品类
Route::get('product/code/:id', 'v1.store.StoreProductController/code')->name('productCode');//商品分享二维码 推广员
Route::group(function () {
//获取支付方式
Route::get('pay/config', 'v1.PayController/config')->name('payConfig')->option(['real_name' => '获取支付方式']);
//用户修改手机号
Route::post('user/updatePhone', 'v1.LoginController/update_binding_phone')->name('updateBindingPhone')->option(['real_name' => '用户修改手机号']);
//设置登录code
Route::post('user/code', 'v1.user.StoreService/setLoginCode')->name('setLoginCode')->option(['real_name' => '设置登录code']);
//查看code是否可用
Route::get('user/code', 'v1.LoginController/setLoginKey')->name('getLoginKey')->option(['real_name' => '查看code是否可用']);
//用户绑定手机号
Route::post('user/binding', 'v1.LoginController/user_binding_phone')->name('userBindingPhone')->option(['real_name' => '用户绑定手机号']);
Route::get('logout', 'v1.LoginController/logout')->name('logout')->option(['real_name' => '退出登录']);// 退出登录
Route::post('switch_h5', 'v1.LoginController/switch_h5')->name('switch_h5')->option(['real_name' => '切换账号']);// 切换账号
//商品类
Route::get('product/code/:id', 'v1.store.StoreProductController/code')->name('productCode')->option(['real_name' => '商品分享二维码']);//商品分享二维码 推广员
//公共类
Route::post('upload/image', 'v1.PublicController/upload_image')->name('uploadImage');//图片上传
//用户类 客服聊天记录
Route::get('user/service/list', 'v1.user.StoreService/lst')->name('userServiceList');//客服列表
Route::get('user/service/record', 'v1.user.StoreService/record')->name('userServiceRecord');//客服聊天记录
Route::post('user/service/feedback', 'v1.user.StoreService/saveFeedback')->name('saveFeedback');//保存客服反馈信息
Route::get('user/service/feedback', 'v1.user.StoreService/getFeedbackInfo')->name('getFeedbackInfo');//获得客服反馈头部信息
Route::get('user/service/get_adv', 'v1.user.StoreService/getKfAdv')->name('userServiceGetKfAdv');//获取客服页面广告
//公共类
Route::post('upload/image', 'v1.PublicController/upload_image')->name('uploadImage')->option(['real_name' => '图片上传']);//图片上传
})->option(['mark' => 'common', 'mark_name' => '公共接口']);
//用户类 用户coupons/order
Route::get('user', 'v1.user.UserController/user')->name('user');//个人中心
Route::post('user/spread', 'v1.user.UserController/spread')->name('userSpread');//静默绑定授权
Route::post('user/edit', 'v1.user.UserController/edit')->name('userEdit');//用户修改信息
Route::get('user/balance', 'v1.user.UserController/balance')->name('userBalance');//用户资金统计
Route::get('userinfo', 'v1.user.UserController/userinfo')->name('userinfo');// 用户信息
//用户类 地址
Route::get('address/detail/:id', 'v1.user.UserAddressController/address')->name('address');//获取单个地址
Route::get('address/list', 'v1.user.UserAddressController/address_list')->name('addressList');//地址列表
Route::post('address/default/set', 'v1.user.UserAddressController/address_default_set')->name('addressDefaultSet');//设置默认地址
Route::get('address/default', 'v1.user.UserAddressController/address_default')->name('addressDefault');//获取默认地址
Route::post('address/edit', 'v1.user.UserAddressController/address_edit')->name('addressEdit');//修改 添加 地址
Route::post('address/del', 'v1.user.UserAddressController/address_del')->name('addressDel');//删除地址
//用户类 收藏
Route::get('collect/user', 'v1.user.UserCollectController/collect_user')->name('collectUser');//收藏商品列表
Route::post('collect/add', 'v1.user.UserCollectController/collect_add')->name('collectAdd');//添加收藏
Route::post('collect/del', 'v1.user.UserCollectController/collect_del')->name('collectDel');//取消收藏
Route::post('collect/all', 'v1.user.UserCollectController/collect_all')->name('collectAll');//批量添加收藏
Route::group(function () {
//用户类 客服聊天记录
Route::get('user/service/list', 'v1.user.StoreService/lst')->name('userServiceList')->option(['real_name' => '客服列表']);//客服列表
Route::get('user/service/record', 'v1.user.StoreService/record')->name('userServiceRecord')->option(['real_name' => '客服聊天记录']);//客服聊天记录
Route::post('user/service/feedback', 'v1.user.StoreService/saveFeedback')->name('saveFeedback')->option(['real_name' => '保存客服反馈信息']);//保存客服反馈信息
Route::get('user/service/feedback', 'v1.user.StoreService/getFeedbackInfo')->name('getFeedbackInfo')->option(['real_name' => '获得客服反馈头部信息']);//获得客服反馈头部信息
Route::get('user/service/get_adv', 'v1.user.StoreService/getKfAdv')->name('userServiceGetKfAdv')->option(['real_name' => '获取客服页面广告']);//获取客服页面广告
})->option(['parent' => 'user', 'cate_name' => '客服']);
Route::group(function () {
//用户类 用户coupons/order
Route::get('user', 'v1.user.UserController/user')->name('user')->option(['real_name' => '个人中心']);//个人中心
Route::post('user/spread', 'v1.user.UserController/spread')->name('userSpread')->option(['real_name' => '静默绑定授权']);//静默绑定授权
Route::post('user/edit', 'v1.user.UserController/edit')->name('userEdit')->option(['real_name' => '用户修改信息']);//用户修改信息
Route::get('user/balance', 'v1.user.UserController/balance')->name('userBalance')->option(['real_name' => '用户资金统计']);//用户资金统计
Route::get('userinfo', 'v1.user.UserController/userinfo')->name('userinfo')->option(['real_name' => '用户信息']);// 用户信息
})->option(['parent' => 'user', 'cate_name' => '用户中心']);
Route::get('rank', 'v1.user.UserController/rank')->name('rank');//推广人排行
//用戶类 分享
Route::post('user/share', 'v1.PublicController/user_share')->name('user_share');//记录用户分享
Route::get('user/share/words', 'v1.PublicController/copy_share_words')->name('user_share_words');//关键字分享
//用户类 点赞
// Route::post('like/add', 'user.UserController/like_add')->name('likeAdd');//添加点赞
// Route::post('like/del', 'user.UserController/like_del')->name('likeDel');//取消点赞
//用户类 签到
Route::get('sign/config', 'v1.user.UserSignController/sign_config')->name('signConfig');//签到配置
Route::get('sign/list', 'v1.user.UserSignController/sign_list')->name('signList');//签到列表
Route::get('sign/month', 'v1.user.UserSignController/sign_month')->name('signIntegral');//签到列表(年月)
Route::post('sign/user', 'v1.user.UserSignController/sign_user')->name('signUser');//签到用户信息
Route::post('sign/integral', 'v1.user.UserSignController/sign_integral')->name('signIntegral')->middleware(BlockerMiddleware::class);//签到
//优惠券类
Route::post('coupon/receive', 'v1.store.StoreCouponsController/receive')->name('couponReceive'); //领取优惠券
Route::post('coupon/receive/batch', 'v1.store.StoreCouponsController/receive_batch')->name('couponReceiveBatch'); //批量领取优惠券
Route::get('coupons/user/:types', 'v1.store.StoreCouponsController/user')->name('couponsUser');//用户已领取优惠券
Route::get('coupons/order/:price', 'v1.store.StoreCouponsController/order')->name('couponsOrder');//优惠券 订单列表
//购物车类
Route::get('cart/list', 'v1.store.StoreCartController/lst')->name('cartList'); //购物车列表
Route::post('cart/add', 'v1.store.StoreCartController/add')->name('cartAdd'); //购物车添加
Route::post('cart/del', 'v1.store.StoreCartController/del')->name('cartDel'); //购物车删除
Route::post('order/cancel', 'v1.order.StoreOrderController/cancel')->name('orderCancel'); //订单取消
Route::post('cart/num', 'v1.store.StoreCartController/num')->name('cartNum'); //购物车 修改商品数量
Route::get('cart/count', 'v1.store.StoreCartController/count')->name('cartCount'); //购物车 获取数量
//订单类
Route::post('order/check_shipping', 'v1.order.StoreOrderController/checkShipping')->name('checkShipping'); //检测是否显示快递和自提标签
Route::post('order/confirm', 'v1.order.StoreOrderController/confirm')->name('orderConfirm'); //订单确认
Route::post('order/computed/:key', 'v1.order.StoreOrderController/computedOrder')->name('computedOrder'); //计算订单金额
Route::post('order/create/:key', 'v1.order.StoreOrderController/create')->name('orderCreate')->middleware(BlockerMiddleware::class); //订单创建
Route::get('order/data', 'v1.order.StoreOrderController/data')->name('orderData'); //订单统计数据
Route::get('order/list', 'v1.order.StoreOrderController/lst')->name('orderList'); //订单列表
Route::get('order/detail/:uni/[:cartId]', 'v1.order.StoreOrderController/detail')->name('orderDetail'); //订单详情
Route::get('order/refund_detail/:uni/[:cartId]', 'v1.order.StoreOrderController/refund_detail')->name('refundDetail'); //退款订单详情
Route::get('order/refund/reason', 'v1.order.StoreOrderController/refund_reason')->name('orderRefundReason')->middleware(BlockerMiddleware::class); //订单退款理由
Route::post('order/refund/verify', 'v1.order.StoreOrderController/refund_verify')->name('orderRefundVerify')->middleware(BlockerMiddleware::class); //订单退款审核
Route::post('order/take', 'v1.order.StoreOrderController/take')->name('orderTake')->middleware(BlockerMiddleware::class); //订单收货
Route::get('order/express/:uni/[:type]', 'v1.order.StoreOrderController/express')->name('orderExpress'); //订单查看物流
Route::post('order/del', 'v1.order.StoreOrderController/del')->name('orderDel'); //订单删除
Route::post('order/again', 'v1.order.StoreOrderController/again')->name('orderAgain'); //订单 再次下单
Route::post('order/pay', 'v1.order.StoreOrderController/pay')->name('orderPay'); //订单支付
Route::post('order/product', 'v1.order.StoreOrderController/product')->name('orderProduct'); //订单商品信息
Route::post('order/comment', 'v1.order.StoreOrderController/comment')->name('orderComment'); //订单评价
Route::get('order/cashier/:orderId/[:type]', 'v1.order.StoreOrderController/cashier')->name('orderCashier'); //订单收银台
//活动---砍价
Route::get('bargain/detail/:id', 'v1.activity.StoreBargainController/detail')->name('bargainDetail');//砍价商品详情
Route::post('bargain/start', 'v1.activity.StoreBargainController/start')->name('bargainStart');//砍价开启
Route::post('bargain/start/user', 'v1.activity.StoreBargainController/start_user')->name('bargainStartUser');//砍价 开启砍价用户信息
Route::post('bargain/share', 'v1.activity.StoreBargainController/share')->name('bargainShare');//砍价 观看/分享/参与次数
Route::post('bargain/help', 'v1.activity.StoreBargainController/help')->name('bargainHelp');//砍价 帮助好友砍价
Route::post('bargain/help/price', 'v1.activity.StoreBargainController/help_price')->name('bargainHelpPrice');//砍价 砍掉金额
Route::post('bargain/help/count', 'v1.activity.StoreBargainController/help_count')->name('bargainHelpCount');//砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格
Route::post('bargain/help/list', 'v1.activity.StoreBargainController/help_list')->name('bargainHelpList');//砍价 砍价帮
Route::post('bargain/poster', 'v1.activity.StoreBargainController/poster')->name('bargainPoster');//砍价海报
Route::get('bargain/user/list', 'v1.activity.StoreBargainController/user_list')->name('bargainUserList');//砍价列表(已参与)
Route::post('bargain/user/cancel', 'v1.activity.StoreBargainController/user_cancel')->name('bargainUserCancel');//砍价取消
Route::get('bargain/poster_info/:bargainId', 'v1.activity.StoreBargainController/posterInfo')->name('posterInfo');//砍价海报详细信息
//活动---拼团
Route::get('combination/pink/:id', 'v1.activity.StoreCombinationController/pink')->name('combinationPink');//拼团开团
Route::post('combination/remove', 'v1.activity.StoreCombinationController/remove')->name('combinationRemove');//拼团 取消开团
Route::post('combination/poster', 'v1.activity.StoreCombinationController/poster')->name('combinationPoster');//拼团海报
Route::get('combination/poster_info/:id', 'v1.activity.StoreCombinationController/posterInfo')->name('pinkPosterInfo');//拼团海报详细获取
//账单类
Route::post('spread/people', 'v1.user.UserController/spread_people')->name('spreadPeople');//推荐用户
Route::post('spread/order', 'v1.user.UserBillController/spread_order')->name('spreadOrder');//推广订单
Route::get('spread/commission/:type', 'v1.user.UserBillController/spread_commission')->name('spreadCommission');//推广佣金明细
Route::get('spread/count/:type', 'v1.user.UserBillController/spread_count')->name('spreadCount');//推广 佣金 3/提现 4 总和
Route::get('spread/banner', 'v1.user.UserBillController/spread_banner')->name('spreadBanner');//推广分销二维码海报生成
Route::get('integral/list', 'v1.user.UserBillController/integral_list')->name('integralList');//积分记录
Route::get('user/routine_code', 'v1.user.UserBillController/getRoutineCode')->name('getRoutineCode');//小程序二维码
Route::get('user/spread_info', 'v1.user.UserBillController/getSpreadInfo')->name('getSpreadInfo');//获取分销背景等信息
Route::post('division/order', 'v1.user.UserBillController/divisionOrder')->name('divisionOrder');//事业部推广订单
//提现类
Route::get('extract/bank', 'v1.user.UserExtractController/bank')->name('extractBank');//提现银行/提现最低金额
Route::post('extract/cash', 'v1.user.UserExtractController/cash')->name('extractCash');//提现申请
//充值类
Route::post('recharge/recharge', 'v1.user.UserRechargeController/recharge')->name('rechargeRecharge');//统一充值
Route::post('recharge/routine', 'v1.user.UserRechargeController/routine')->name('rechargeRoutine');//小程序充值
Route::post('recharge/wechat', 'v1.user.UserRechargeController/wechat')->name('rechargeWechat');//公众号充值
Route::get('recharge/index', 'v1.user.UserRechargeController/index')->name('rechargeQuota');//充值余额选择
//会员等级类
Route::get('user/level/detection', 'v1.user.UserLevelController/detection')->name('userLevelDetection');//检测用户是否可以成为会员
Route::get('user/level/grade', 'v1.user.UserLevelController/grade')->name('userLevelGrade');//会员等级列表
Route::get('user/level/task/:id', 'v1.user.UserLevelController/task')->name('userLevelTask');//获取等级任务
Route::get('user/level/info', 'v1.user.UserLevelController/userLevelInfo')->name('levelInfo');//获取等级任务
Route::get('user/level/expList', 'v1.user.UserLevelController/expList')->name('expList');//获取等级任务
Route::get('user/record', 'v1.user.StoreService/recordList')->name('recordList');//获取用户和客服的消息列表
Route::group(function () {
//用户类 地址
Route::get('address/detail/:id', 'v1.user.UserAddressController/address')->name('address')->option(['real_name' => '获取单个地址']);//获取单个地址
Route::get('address/list', 'v1.user.UserAddressController/address_list')->name('addressList')->option(['real_name' => '地址列表']);//地址列表
Route::post('address/default/set', 'v1.user.UserAddressController/address_default_set')->name('addressDefaultSet')->option(['real_name' => '设置默认地址']);//设置默认地址
Route::get('address/default', 'v1.user.UserAddressController/address_default')->name('addressDefault')->option(['real_name' => '获取默认地址']);//获取默认地址
Route::post('address/edit', 'v1.user.UserAddressController/address_edit')->name('addressEdit')->option(['real_name' => '修改/添加地址']);//修改 添加 地址
Route::post('address/del', 'v1.user.UserAddressController/address_del')->name('addressDel')->option(['real_name' => '删除地址']);//删除地址
})->option(['parent' => 'user', 'cate_name' => '用户地址']);
//首页获取未支付订单
Route::get('order/nopay', 'v1.order.StoreOrderController/get_noPay')->name('getNoPay');//获取未支付订单
Route::group(function () { //用户类 收藏
Route::get('collect/user', 'v1.user.UserCollectController/collect_user')->name('collectUser')->option(['real_name' => '收藏商品列表']);//收藏商品列表
Route::post('collect/add', 'v1.user.UserCollectController/collect_add')->name('collectAdd')->option(['real_name' => '添加收藏']);//添加收藏
Route::post('collect/del', 'v1.user.UserCollectController/collect_del')->name('collectDel')->option(['real_name' => '取消收藏']);//取消收藏
Route::post('collect/all', 'v1.user.UserCollectController/collect_all')->name('collectAll')->option(['real_name' => '批量添加收藏']);//批量添加收藏
})->option(['parent' => 'user', 'cate_name' => '用户收藏']);
Route::get('seckill/code/:id', 'v1.activity.StoreSeckillController/code')->name('seckillCode');//秒杀商品海报
Route::get('combination/code/:id', 'v1.activity.StoreCombinationController/code')->name('combinationCode');//拼团商品海报
Route::group(function () {
Route::get('rank', 'v1.user.UserController/rank')->name('rank')->option(['real_name' => '公众号授权登录']);//推广人排行
//用戶类 分享
Route::post('user/share', 'v1.PublicController/user_share')->name('user_share')->option(['real_name' => '记录用户分享']);//记录用户分享
Route::get('user/share/words', 'v1.PublicController/copy_share_words')->name('user_share_words')->option(['real_name' => '关键字分享']);//关键字分享
})->option(['parent' => 'user', 'cate_name' => '用户分享']);
//会员卡
Route::get('user/member/card/index', 'v1.user.MemberCardController/index')->name('userMemberCardIndex');// 主页会员权益介绍页
Route::post('user/member/card/draw', 'v1.user.MemberCardController/draw_member_card')->name('userMemberCardDraw');//卡密领取会员卡
Route::post('user/member/card/create', 'v1.order.OtherOrderController/create')->name('userMemberCardCreate');//购买卡创建订单
Route::get('user/member/coupons/list', 'v1.user.MemberCardController/memberCouponList')->name('userMemberCouponsList');//会员券列表
Route::get('user/member/overdue/time', 'v1.user.MemberCardController/getOverdueTime')->name('userMemberOverdueTime');//会员时间
//线下付款
Route::post('order/offline/check/price', 'v1.order.OtherOrderController/computed_offline_pay_price')->name('orderOfflineCheckPrice'); //检测线下付款金额
Route::post('order/offline/create', 'v1.order.OtherOrderController/create')->name('orderOfflineCreate'); //检测线下付款金额
Route::get('order/offline/pay/type', 'v1.order.OtherOrderController/pay_type')->name('orderOfflineCreate'); //线下付款支付方式
//消息站内信
Route::get('user/message_system/list', 'v1.user.MessageSystemController/message_list')->name('MessageSystemList'); //站内信列表
Route::get('user/message_system/detail/:id', 'v1.user.MessageSystemController/detail')->name('MessageSystemDetail'); //详情
Route::get('user/message_system/edit_message', 'v1.user.MessageSystemController/edit_message')->name('EditMessage');//站内信设为未读/删除
Route::group(function () {
//用户类 签到
Route::get('sign/config', 'v1.user.UserSignController/sign_config')->name('signConfig')->option(['real_name' => '签到配置']);//签到配置
Route::get('sign/list', 'v1.user.UserSignController/sign_list')->name('signList')->option(['real_name' => '签到列表']);//签到列表
Route::get('sign/month', 'v1.user.UserSignController/sign_month')->name('signIntegral')->option(['real_name' => '签到列表(年月)']);//签到列表(年月)
Route::post('sign/user', 'v1.user.UserSignController/sign_user')->name('signUser')->option(['real_name' => '签到用户信息']);//签到用户信息
Route::post('sign/integral', 'v1.user.UserSignController/sign_integral')->name('signIntegral')->option(['real_name' => '公众号授权登录'])->middleware(BlockerMiddleware::class);//签到
})->option(['mark' => 'sign', 'mark_name' => '签到']);
//积分商城订单
Route::post('store_integral/order/confirm', 'v1.order.StoreIntegralOrderController/confirm')->name('storeIntegralOrderConfirm'); //订单确认
Route::post('store_integral/order/create', 'v1.order.StoreIntegralOrderController/create')->name('storeIntegralOrderCreate'); //订单创建
Route::get('store_integral/order/detail/:uni', 'v1.order.StoreIntegralOrderController/detail')->name('storeIntegralOrderDetail'); //订单详情
Route::get('store_integral/order/list', 'v1.order.StoreIntegralOrderController/lst')->name('storeIntegralOrderList'); //订单列表
Route::post('store_integral/order/take', 'v1.order.StoreIntegralOrderController/take')->name('storeIntegralOrderTake'); //订单收货
Route::get('store_integral/order/express/:uni', 'v1.order.StoreIntegralOrderController/express')->name('storeIntegralOrderExpress'); //订单查看物流
Route::post('store_integral/order/del', 'v1.order.StoreIntegralOrderController/del')->name('storeIntegralOrderDel'); //订单删除
Route::group(function () {
//优惠券类
Route::post('coupon/receive', 'v1.store.StoreCouponsController/receive')->name('couponReceive')->option(['real_name' => '领取优惠券']); //领取优惠券
Route::post('coupon/receive/batch', 'v1.store.StoreCouponsController/receive_batch')->name('couponReceiveBatch')->option(['real_name' => '批量领取优惠券']); //批量领取优惠券
Route::get('coupons/user/:types', 'v1.store.StoreCouponsController/user')->name('couponsUser')->option(['real_name' => '用户已领取优惠券']);//用户已领取优惠券
Route::get('coupons/order/:price', 'v1.store.StoreCouponsController/order')->name('couponsOrder')->option(['real_name' => '优惠券 订单列表']);//优惠券 订单列表
})->option(['mark' => 'coupons', 'mark_name' => '优惠券']);
/** 好友代付 */
Route::get('order/friend_detail', 'v1.order.StoreOrderController/friendDetail')->name('friendDetail');//代付详情
Route::group(function () {
//购物车类
Route::get('cart/list', 'v1.store.StoreCartController/lst')->name('cartList')->option(['real_name' => '购物车列表']); //购物车列表
Route::post('cart/add', 'v1.store.StoreCartController/add')->name('cartAdd')->option(['real_name' => '购物车添加']); //购物车添加
Route::post('cart/del', 'v1.store.StoreCartController/del')->name('cartDel')->option(['real_name' => '购物车删除']); //购物车删除
Route::post('order/cancel', 'v1.order.StoreOrderController/cancel')->name('orderCancel')->option(['real_name' => '订单取消']); //订单取消
Route::post('cart/num', 'v1.store.StoreCartController/num')->name('cartNum')->option(['real_name' => '购物车修改商品数量']); //购物车 修改商品数量
Route::get('cart/count', 'v1.store.StoreCartController/count')->name('cartCount')->option(['real_name' => '购物车数量']); //购物车 获取数量
})->option(['mark' => 'cart', 'mark_name' => '购物车']);
/** 佣金相关 */
Route::get('commission', 'v1.user.UserBrokerageController/commission')->name('commission');//推广数据 昨天的佣金 累计提现金额 当前佣金
Route::get('brokerage_rank', 'v1.user.UserBrokerageController/brokerageRank')->name('brokerageRank');//佣金排行
Route::group(function () {
//订单类
Route::post('order/check_shipping', 'v1.order.StoreOrderController/checkShipping')->name('checkShipping')->option(['real_name' => '检测是否显示快递和自提标签']); //检测是否显示快递和自提标签
Route::post('order/confirm', 'v1.order.StoreOrderController/confirm')->name('orderConfirm')->option(['real_name' => '订单确认']); //订单确认
Route::post('order/computed/:key', 'v1.order.StoreOrderController/computedOrder')->name('computedOrder')->option(['real_name' => '计算订单金额']); //计算订单金额
Route::post('order/create/:key', 'v1.order.StoreOrderController/create')->name('orderCreate')->middleware(BlockerMiddleware::class)->option(['real_name' => '订单创建']); //订单创建
Route::get('order/data', 'v1.order.StoreOrderController/data')->name('orderData')->option(['real_name' => '订单统计数据']); //订单统计数据
Route::get('order/list', 'v1.order.StoreOrderController/lst')->name('orderList')->option(['real_name' => '订单列表']); //订单列表
Route::get('order/detail/:uni/[:cartId]', 'v1.order.StoreOrderController/detail')->name('orderDetail')->option(['real_name' => '订单详情']); //订单详情
Route::get('order/refund_detail/:uni/[:cartId]', 'v1.order.StoreOrderController/refund_detail')->name('refundDetail')->option(['real_name' => '退款订单详情']); //退款订单详情
Route::get('order/refund/reason', 'v1.order.StoreOrderController/refund_reason')->name('orderRefundReason')->middleware(BlockerMiddleware::class)->option(['real_name' => '订单退款理由']); //订单退款理由
Route::post('order/refund/verify', 'v1.order.StoreOrderController/refund_verify')->name('orderRefundVerify')->middleware(BlockerMiddleware::class)->option(['real_name' => '订单退款审核']); //订单退款审核
Route::post('order/take', 'v1.order.StoreOrderController/take')->name('orderTake')->middleware(BlockerMiddleware::class)->option(['real_name' => '订单收货']); //订单收货
Route::get('order/express/:uni/[:type]', 'v1.order.StoreOrderController/express')->name('orderExpress')->option(['real_name' => '订单查看物流']); //订单查看物流
Route::post('order/del', 'v1.order.StoreOrderController/del')->name('orderDel')->option(['real_name' => '订单删除']); //订单删除
Route::post('order/again', 'v1.order.StoreOrderController/again')->name('orderAgain')->option(['real_name' => '再次下单']); //订单 再次下单
Route::post('order/pay', 'v1.order.StoreOrderController/pay')->name('orderPay')->option(['real_name' => '订单支付']); //订单支付
Route::post('order/product', 'v1.order.StoreOrderController/product')->name('orderProduct')->option(['real_name' => '订单商品信息']); //订单商品信息
Route::post('order/comment', 'v1.order.StoreOrderController/comment')->name('orderComment')->option(['real_name' => '订单评价']); //订单评价
Route::get('order/cashier/:orderId/[:type]', 'v1.order.StoreOrderController/cashier')->name('orderCashier')->option(['real_name' => '订单收银台']); //订单收银台
/** 好友代付 */
Route::get('order/friend_detail', 'v1.order.StoreOrderController/friendDetail')->name('friendDetail')->option(['real_name' => '代付详情']);//代付详情
//首页获取未支付订单
Route::get('order/nopay', 'v1.order.StoreOrderController/get_noPay')->name('getNoPay')->option(['real_name' => '获取未支付订单']);//获取未支付订单
})->option(['mark' => 'order', 'mark_name' => '订单']);
/** 退款相关 */
Route::get('order/refund/cart_info/:id', 'v1.order.StoreOrderController/refundCartInfo')->name('refundCartInfo');//退款中间页面订单商品列表
Route::post('order/refund/cart_info', 'v1.order.StoreOrderController/refundCartInfoList')->name('StoreOrderRefundCartInfoList');//获取退款商品列表
Route::post('order/refund/apply/:id', 'v1.order.StoreOrderController/applyRefund')->name('StoreOrderApplyRefund');//订单申请退款
Route::get('order/refund/list', 'v1.order.StoreOrderRefundController/refundList')->name('refundList');//退款单列表
Route::get('order/refund/detail/:uni', 'v1.order.StoreOrderRefundController/refundDetail')->name('refundDetail');//退款单详情
Route::post('order/refund/cancel/:uni', 'v1.order.StoreOrderRefundController/cancelApply')->name('cancelApply');//用户取消退款申请
Route::post('order/refund/express', 'v1.order.StoreOrderRefundController/applyExpress')->name('refundDetail');//退款单详情
Route::get('order/refund/del/:uni', 'v1.order.StoreOrderRefundController/delRefund')->name('delRefund');//用户取消退款申请
Route::group(function () {
//活动---砍价
Route::get('bargain/detail/:id', 'v1.activity.StoreBargainController/detail')->name('bargainDetail')->option(['real_name' => '砍价商品详情']);//砍价商品详情
Route::post('bargain/start', 'v1.activity.StoreBargainController/start')->name('bargainStart')->option(['real_name' => '砍价开启']);//砍价开启
Route::post('bargain/start/user', 'v1.activity.StoreBargainController/start_user')->name('bargainStartUser')->option(['real_name' => '砍价用户信息']);//砍价 开启砍价用户信息
Route::post('bargain/share', 'v1.activity.StoreBargainController/share')->name('bargainShare')->option(['real_name' => '砍价分享']);//砍价 观看/分享/参与次数
Route::post('bargain/help', 'v1.activity.StoreBargainController/help')->name('bargainHelp')->option(['real_name' => '帮好友砍价']);//砍价 帮助好友砍价
Route::post('bargain/help/price', 'v1.activity.StoreBargainController/help_price')->name('bargainHelpPrice')->option(['real_name' => '砍价砍掉金额']);//砍价 砍掉金额
Route::post('bargain/help/count', 'v1.activity.StoreBargainController/help_count')->name('bargainHelpCount')->option(['real_name' => '砍价帮统计']);//砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格
Route::post('bargain/help/list', 'v1.activity.StoreBargainController/help_list')->name('bargainHelpList')->option(['real_name' => '砍价 砍价帮']);//砍价 砍价帮
Route::post('bargain/poster', 'v1.activity.StoreBargainController/poster')->name('bargainPoster')->option(['real_name' => '砍价海报']);//砍价海报
Route::get('bargain/user/list', 'v1.activity.StoreBargainController/user_list')->name('bargainUserList')->option(['real_name' => '砍价列表']);//砍价列表(已参与)
Route::post('bargain/user/cancel', 'v1.activity.StoreBargainController/user_cancel')->name('bargainUserCancel')->option(['real_name' => '砍价取消']);//砍价取消
Route::get('bargain/poster_info/:bargainId', 'v1.activity.StoreBargainController/posterInfo')->name('posterInfo')->option(['real_name' => '砍价海报详细信息']);//砍价海报详细信息
})->option(['parent' => 'activity_nologin', 'cate_name' => '砍价']);
/** 代理商相关 */
Route::get('agent/apply/info', 'v1.user.DivisionController/applyInfo')->name('申请详情');//申请详情
Route::post('agent/apply/:id', 'v1.user.DivisionController/applyAgent')->name('applyAgent');//申请代理商
Route::get('agent/get_agent_agreement', 'v1.user.DivisionController/getAgentAgreement')->name('getAgentAgreement');//代理商规则
Route::get('agent/get_staff_list', 'v1.user.DivisionController/getStaffList')->name('getStaffList');//员工列表
Route::post('agent/set_staff_percent', 'v1.user.DivisionController/setStaffPercent')->name('setStaffPercent');//设置员工分佣比例
Route::get('agent/del_staff/:uid', 'v1.user.DivisionController/delStaff')->name('delStaff');//删除员工
Route::group(function () {
//活动---拼团
Route::get('combination/pink/:id', 'v1.activity.StoreCombinationController/pink')->name('combinationPink')->option(['real_name' => '拼团开团']);//拼团开团
Route::post('combination/remove', 'v1.activity.StoreCombinationController/remove')->name('combinationRemove')->option(['real_name' => '拼团 取消开团']);//拼团 取消开团
Route::post('combination/poster', 'v1.activity.StoreCombinationController/poster')->name('combinationPoster')->option(['real_name' => '拼团海报']);//拼团海报
Route::get('combination/poster_info/:id', 'v1.activity.StoreCombinationController/posterInfo')->name('pinkPosterInfo')->option(['real_name' => '拼团海报详细获取']);//拼团海报详细获取
Route::get('combination/code/:id', 'v1.activity.StoreCombinationController/code')->name('combinationCode')->option(['real_name' => '拼团商品海报']);//拼团商品海报
Route::get('seckill/code/:id', 'v1.activity.StoreSeckillController/code')->name('seckillCode')->option(['real_name' => '秒杀商品海报']);//秒杀商品海报
})->option(['parent' => 'activity_nologin', 'cate_name' => '拼团']);;
/** 用户注销 */
Route::group(function () {
//账单类
Route::post('spread/people', 'v1.user.UserController/spread_people')->name('spreadPeople')->option(['real_name' => '推荐用户']);//推荐用户
Route::post('spread/order', 'v1.user.UserBillController/spread_order')->name('spreadOrder')->option(['real_name' => '推广订单']);//推广订单
Route::get('spread/commission/:type', 'v1.user.UserBillController/spread_commission')->name('spreadCommission')->option(['real_name' => '推广佣金明细']);//推广佣金明细
Route::get('spread/count/:type', 'v1.user.UserBillController/spread_count')->name('spreadCount')->option(['real_name' => '推广佣金']);//推广 佣金 3/提现 4 总和
Route::get('spread/banner', 'v1.user.UserBillController/spread_banner')->name('spreadBanner')->option(['real_name' => '推广分销二维码海报生成']);//推广分销二维码海报生成
Route::get('integral/list', 'v1.user.UserBillController/integral_list')->name('integralList')->option(['real_name' => '积分记录']);//积分记录
Route::get('user/routine_code', 'v1.user.UserBillController/getRoutineCode')->name('getRoutineCode')->option(['real_name' => '小程序二维码']);//小程序二维码
Route::get('user/spread_info', 'v1.user.UserBillController/getSpreadInfo')->name('getSpreadInfo')->option(['real_name' => '获取分销背景等信息']);//获取分销背景等信息
Route::post('division/order', 'v1.user.UserBillController/divisionOrder')->name('divisionOrder')->option(['real_name' => '事业部推广订单']);//事业部推广订单
})->option(['mark' => 'division', 'mark_name' => '账单']);
Route::get('user_cancel', 'v1.user.UserController/SetUserCancel')->name('SetUserCancel');//用户注销
Route::group(function () {
//提现类
Route::get('extract/bank', 'v1.user.UserExtractController/bank')->name('extractBank')->option(['real_name' => '提现银行']);//提现银行/提现最低金额
Route::post('extract/cash', 'v1.user.UserExtractController/cash')->name('extractCash')->option(['real_name' => '提现申请']);//提现申请
})->option(['mark' => 'extract', 'mark_name' => '提现']);
/** 用户浏览记录 */
Route::get('user/visit_list', 'v1.user.UserController/visitList')->name('visitList');//商品浏览列表
Route::delete('user/visit', 'v1.user.UserController/visitDelete')->name('visitDelete');//商品浏览记录删除
Route::group(function () {
//充值类
Route::post('recharge/recharge', 'v1.user.UserRechargeController/recharge')->name('rechargeRecharge')->option(['real_name' => '统一充值']);//统一充值
Route::post('recharge/routine', 'v1.user.UserRechargeController/routine')->name('rechargeRoutine')->option(['real_name' => '小程序充值']);//小程序充值
Route::post('recharge/wechat', 'v1.user.UserRechargeController/wechat')->name('rechargeWechat')->option(['real_name' => '公众号充值']);//公众号充值
Route::get('recharge/index', 'v1.user.UserRechargeController/index')->name('rechargeQuota')->option(['real_name' => '充值余额选择']);//充值余额选择
})->option(['mark' => 'recharge', 'mark_name' => '充值']);
Route::group(function () {
//会员等级类
Route::get('user/level/detection', 'v1.user.UserLevelController/detection')->name('userLevelDetection')->option(['real_name' => '检测用户是否可以成为会员']);//检测用户是否可以成为会员
Route::get('user/level/grade', 'v1.user.UserLevelController/grade')->name('userLevelGrade')->option(['real_name' => '会员等级列表']);//会员等级列表
Route::get('user/level/task/:id', 'v1.user.UserLevelController/task')->name('userLevelTask')->option(['real_name' => '获取等级任务']);//获取等级任务
Route::get('user/level/info', 'v1.user.UserLevelController/userLevelInfo')->name('levelInfo')->option(['real_name' => '获取等级任务']);//获取等级任务
Route::get('user/level/expList', 'v1.user.UserLevelController/expList')->name('expList')->option(['real_name' => '获取等级任务']);//获取等级任务
Route::get('user/record', 'v1.user.StoreService/recordList')->name('recordList')->option(['real_name' => '获取用户和客服的消息列表']);//获取用户和客服的消息列表
})->option(['mark' => 'user_level', 'mark_name' => '会员等级']);
Route::group(function () {
//会员卡
Route::get('user/member/card/index', 'v1.user.MemberCardController/index')->name('userMemberCardIndex')->option(['real_name' => '主页会员权益介绍页']);// 主页会员权益介绍页
Route::post('user/member/card/draw', 'v1.user.MemberCardController/draw_member_card')->name('userMemberCardDraw')->option(['real_name' => '卡密领取会员卡']);//卡密领取会员卡
Route::post('user/member/card/create', 'v1.order.OtherOrderController/create')->name('userMemberCardCreate')->option(['real_name' => '购买卡创建订单']);//购买卡创建订单
Route::get('user/member/coupons/list', 'v1.user.MemberCardController/memberCouponList')->name('userMemberCouponsList')->option(['real_name' => '会员券列表']);//会员券列表
Route::get('user/member/overdue/time', 'v1.user.MemberCardController/getOverdueTime')->name('userMemberOverdueTime')->option(['real_name' => '会员时间']);//会员时间
})->option(['parent' => 'user', 'cate_name' => '会员卡']);
Route::group(function () {
//线下付款
Route::post('order/offline/check/price', 'v1.order.OtherOrderController/computed_offline_pay_price')->name('orderOfflineCheckPrice')->option(['real_name' => '检测线下付款金额']); //检测线下付款金额
Route::post('order/offline/create', 'v1.order.OtherOrderController/create')->name('orderOfflineCreate')->option(['real_name' => '检测线下付款金额']); //检测线下付款金额
Route::get('order/offline/pay/type', 'v1.order.OtherOrderController/pay_type')->name('orderOfflineCreate')->option(['real_name' => '线下付款支付方式']); //线下付款支付方式
})->option(['mark' => 'offline', 'mark_name' => '线下付款']);
Route::group(function () {
//消息站内信
Route::get('user/message_system/list', 'v1.user.MessageSystemController/message_list')->name('MessageSystemList')->option(['real_name' => '站内信列表']); //站内信列表
Route::get('user/message_system/detail/:id', 'v1.user.MessageSystemController/detail')->name('MessageSystemDetail')->option(['real_name' => '详情']); //详情
Route::get('user/message_system/edit_message', 'v1.user.MessageSystemController/edit_message')->name('EditMessage')->option(['real_name' => '站内信设置']);//站内信设为未读/删除
})->option(['mark' => 'message_system', 'mark_name' => '站内信']);
Route::group(function () {
//积分商城订单
Route::post('store_integral/order/confirm', 'v1.order.StoreIntegralOrderController/confirm')->name('storeIntegralOrderConfirm')->option(['real_name' => '订单确认']); //订单确认
Route::post('store_integral/order/create', 'v1.order.StoreIntegralOrderController/create')->name('storeIntegralOrderCreate')->option(['real_name' => '订单创建']); //订单创建
Route::get('store_integral/order/detail/:uni', 'v1.order.StoreIntegralOrderController/detail')->name('storeIntegralOrderDetail')->option(['real_name' => '订单详情']); //订单详情
Route::get('store_integral/order/list', 'v1.order.StoreIntegralOrderController/lst')->name('storeIntegralOrderList')->option(['real_name' => '订单列表']); //订单列表
Route::post('store_integral/order/take', 'v1.order.StoreIntegralOrderController/take')->name('storeIntegralOrderTake')->option(['real_name' => '订单收货']); //订单收货
Route::get('store_integral/order/express/:uni', 'v1.order.StoreIntegralOrderController/express')->name('storeIntegralOrderExpress')->option(['real_name' => '订单查看物流']); //订单查看物流
Route::post('store_integral/order/del', 'v1.order.StoreIntegralOrderController/del')->name('storeIntegralOrderDel')->option(['real_name' => '订单删除']); //订单删除
})->option(['mark' => 'order_integral', 'mark_name' => '积分订单']);;
Route::group(function () {
/** 退款相关 */
Route::get('order/refund/cart_info/:id', 'v1.order.StoreOrderController/refundCartInfo')->name('refundCartInfo')->option(['real_name' => '退款中间页面订单商品列表']);//退款中间页面订单商品列表
Route::post('order/refund/cart_info', 'v1.order.StoreOrderController/refundCartInfoList')->name('StoreOrderRefundCartInfoList')->option(['real_name' => '获取退款商品列表']);//获取退款商品列表
Route::post('order/refund/apply/:id', 'v1.order.StoreOrderController/applyRefund')->name('StoreOrderApplyRefund')->option(['real_name' => '订单申请退款']);//订单申请退款
Route::get('order/refund/list', 'v1.order.StoreOrderRefundController/refundList')->name('refundList')->option(['real_name' => '退款单列表']);//退款单列表
Route::get('order/refund/detail/:uni', 'v1.order.StoreOrderRefundController/refundDetail')->name('refundDetail')->option(['real_name' => '退款单详情']);//退款单详情
Route::post('order/refund/cancel/:uni', 'v1.order.StoreOrderRefundController/cancelApply')->name('cancelApply')->option(['real_name' => '用户取消退款申请']);//用户取消退款申请
Route::post('order/refund/express', 'v1.order.StoreOrderRefundController/applyExpress')->name('refundDetail')->option(['real_name' => '退款单详情']);//退款单详情
Route::get('order/refund/del/:uni', 'v1.order.StoreOrderRefundController/delRefund')->name('delRefund')->option(['real_name' => '用户取消退款申请']);//用户取消退款申请
})->option(['mark' => 'refund', 'mark_name' => '售后']);
Route::group(function () {
/** 代理商相关 */
Route::get('agent/apply/info', 'v1.user.DivisionController/applyInfo')->name('申请详情')->option(['real_name' => '申请详情']);//申请详情
Route::post('agent/apply/:id', 'v1.user.DivisionController/applyAgent')->name('applyAgent')->option(['real_name' => '申请代理商']);//申请代理商
Route::get('agent/get_agent_agreement', 'v1.user.DivisionController/getAgentAgreement')->name('getAgentAgreement')->option(['real_name' => '代理商规则']);//代理商规则
Route::get('agent/get_staff_list', 'v1.user.DivisionController/getStaffList')->name('getStaffList')->option(['real_name' => '员工列表']);//员工列表
Route::post('agent/set_staff_percent', 'v1.user.DivisionController/setStaffPercent')->name('setStaffPercent')->option(['real_name' => '设置员工分佣比例']);//设置员工分佣比例
Route::get('agent/del_staff/:uid', 'v1.user.DivisionController/delStaff')->name('delStaff')->option(['real_name' => '删除员工']);//删除员工
})->option(['mark' => 'agent', 'mark_name' => '代理商']);
Route::group(function () {
/** 佣金相关 */
Route::get('commission', 'v1.user.UserBrokerageController/commission')->name('commission')->option(['real_name' => '推广数据']);//推广数据 昨天的佣金 累计提现金额 当前佣金
Route::get('brokerage_rank', 'v1.user.UserBrokerageController/brokerageRank')->name('brokerageRank')->option(['real_name' => '佣金排行']);//佣金排行
/** 用户注销 */
Route::get('user_cancel', 'v1.user.UserController/SetUserCancel')->name('SetUserCancel')->option(['real_name' => '用户注销']);//用户注销
/** 用户浏览记录 */
Route::get('user/visit_list', 'v1.user.UserController/visitList')->name('visitList')->option(['real_name' => '商品浏览列表']);//商品浏览列表
Route::delete('user/visit', 'v1.user.UserController/visitDelete')->name('visitDelete')->option(['real_name' => '商品浏览记录删除']);//商品浏览记录删除
})->option(['mark' => 'user', 'mark_name' => '用户']);
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class)->middleware(\app\api\middleware\AuthTokenMiddleware::class, true);
//未授权接口
Route::group(function () {
Route::get('menu/user', 'v1.PublicController/menu_user')->name('menuUser');//个人中心菜单
//公共类
Route::get('index', 'v1.PublicController/index')->name('index');//首页
Route::get('site_config', 'v1.PublicController/getSiteConfig')->name('getSiteConfig');//获取网站配置
//DIY接口
Route::get('diy/get_diy/[:id]', 'v1.PublicController/getDiy');
Route::get('home/products', 'v1.PublicController/home_products_list')->name('homeProductsList');//获取首页推荐不同类型商品的轮播图和商品
Route::group(function () {
Route::get('menu/user', 'v1.PublicController/menu_user')->name('menuUser')->option(['real_name' => '个人中心菜单']);//个人中心菜单
//公共类
Route::get('index', 'v1.PublicController/index')->name('index')->option(['real_name' => '首页']);//首页
Route::get('site_config', 'v1.PublicController/getSiteConfig')->name('getSiteConfig')->option(['real_name' => '获取网站配置']);//获取网站配置
//DIY接口
Route::get('diy/get_diy/[:id]', 'v1.PublicController/getDiy');
Route::get('home/products', 'v1.PublicController/home_products_list')->name('homeProductsList')->option(['real_name' => '获取首页推荐不同类型商品的轮播图和商品']);//获取首页推荐不同类型商品的轮播图和商品
})->option(['mark' => 'index', 'mark_name' => '主页接口']);
Route::get('search/keyword', 'v1.PublicController/search')->name('searchKeyword');//热门搜索关键字获取
//商品分类类
Route::get('category', 'v1.store.CategoryController/category')->name('category');
Route::get('category_version', 'v1.store.CategoryController/getCategoryVersion')->name('getCategoryVersion');//商品分类类版本
//商品类
Route::post('image_base64', 'v1.PublicController/get_image_base64')->name('getImageBase64');// 获取图片base64
Route::get('product/detail/:id/[:type]', 'v1.store.StoreProductController/detail')->name('detail');//商品详情
Route::get('groom/list/:type', 'v1.store.StoreProductController/groom_list')->name('groomList');//获取首页推荐不同类型商品的轮播图和商品
Route::get('products', 'v1.store.StoreProductController/lst')->name('products');//商品列表
Route::get('product/hot', 'v1.store.StoreProductController/product_hot')->name('productHot');//为你推荐
Route::get('reply/list/:id', 'v1.store.StoreProductController/reply_list')->name('replyList');//商品评价列表
Route::get('reply/config/:id', 'v1.store.StoreProductController/reply_config')->name('replyConfig');//商品评价数量和好评度
Route::get('advance/list', 'v1.store.StoreProductController/advanceList')->name('advanceList');//预售商品列表
Route::group(function () {
Route::get('search/keyword', 'v1.PublicController/search')->name('searchKeyword')->option(['real_name' => '热门搜索关键字获取']);//热门搜索关键字获取
//商品分类类
Route::get('category', 'v1.store.CategoryController/category')->name('category')->option(['real_name' => '商品分类类']);
Route::get('category_version', 'v1.store.CategoryController/getCategoryVersion')->name('getCategoryVersion')->option(['real_name' => '商品分类类版本']);//商品分类类版本
//文章分类类
Route::get('article/category/list', 'v1.publics.ArticleCategoryController/lst')->name('articleCategoryList');//文章分类列表
//文章类
Route::get('article/list/:cid', 'v1.publics.ArticleController/lst')->name('articleList');//文章列表
Route::get('article/details/:id', 'v1.publics.ArticleController/details')->name('articleDetails');//文章详情
Route::get('article/hot/list', 'v1.publics.ArticleController/hot')->name('articleHotList');//文章 热门
Route::get('article/new/list', 'v1.publics.ArticleController/new')->name('articleNewList');//文章 最新
Route::get('article/banner/list', 'v1.publics.ArticleController/banner')->name('articleBannerList');//文章 banner
//活动---秒杀
Route::get('seckill/index', 'v1.activity.StoreSeckillController/index')->name('seckillIndex');//秒杀商品时间区间
Route::get('seckill/list/:time', 'v1.activity.StoreSeckillController/lst')->name('seckillList');//秒杀商品列表
Route::get('seckill/detail/:id/[:time]', 'v1.activity.StoreSeckillController/detail')->name('seckillDetail');//秒杀商品详情
//活动---砍价
Route::get('bargain/config', 'v1.activity.StoreBargainController/config')->name('bargainConfig');//砍价商品列表配置
Route::get('bargain/list', 'v1.activity.StoreBargainController/lst')->name('bargainList');//砍价商品列表
//活动---拼团
Route::get('combination/list', 'v1.activity.StoreCombinationController/lst')->name('combinationList');//拼团商品列表
Route::get('combination/banner_list', 'v1.activity.StoreCombinationController/banner_list')->name('banner_list');//拼团商品列表
Route::get('combination/detail/:id', 'v1.activity.StoreCombinationController/detail')->name('combinationDetail');//拼团商品详情
//活动-预售
Route::get('advance/detail/:id', 'v1.activity.StoreAdvanceController/detail')->name('advanceDetail');//预售商品详情
//商品类
Route::post('image_base64', 'v1.PublicController/get_image_base64')->name('getImageBase64')->option(['real_name' => '获取图片base64']);// 获取图片base64
Route::get('product/detail/:id/[:type]', 'v1.store.StoreProductController/detail')->name('detail')->option(['real_name' => '商品详情']);//商品详情
Route::get('groom/list/:type', 'v1.store.StoreProductController/groom_list')->name('groomList')->option(['real_name' => '获取首页推荐不同类型商品的轮播图和商品']);//获取首页推荐不同类型商品的轮播图和商品
Route::get('products', 'v1.store.StoreProductController/lst')->name('products')->option(['real_name' => '商品列表']);//商品列表
Route::get('product/hot', 'v1.store.StoreProductController/product_hot')->name('productHot')->option(['real_name' => '为你推荐']);//为你推荐
Route::get('reply/list/:id', 'v1.store.StoreProductController/reply_list')->name('replyList')->option(['real_name' => '商品评价列表']);//商品评价列表
Route::get('reply/config/:id', 'v1.store.StoreProductController/reply_config')->name('replyConfig')->option(['real_name' => '商品评价数量和好评度']);//商品评价数量和好评度
Route::get('advance/list', 'v1.store.StoreProductController/advanceList')->name('advanceList')->option(['real_name' => '预售商品列表']);//预售商品列表
})->option(['mark' => 'product', 'mark_name' => '商品']);
//用户类
Route::get('user/activity', 'v1.user.UserController/activity')->name('userActivity');//活动状态
Route::group(function () {
//微信
Route::get('wechat/config', 'v1.wechat.WechatController/config')->name('wechatConfig');//微信 sdk 配置
Route::get('wechat/auth', 'v1.wechat.WechatController/auth')->name('wechatAuth');//微信授权
Route::post('wechat/app_auth', 'v1.wechat.WechatController/appAuth')->name('appAuth');//微信APP授权
Route::group(function () {
//文章分类类
Route::get('article/category/list', 'v1.publics.ArticleCategoryController/lst')->name('articleCategoryList')->option(['real_name' => '文章分类列表']);//文章分类列表
//文章类
Route::get('article/list/:cid', 'v1.publics.ArticleController/lst')->name('articleList')->option(['real_name' => '文章列表']);//文章列表
Route::get('article/details/:id', 'v1.publics.ArticleController/details')->name('articleDetails')->option(['real_name' => '文章详情']);//文章详情
Route::get('article/hot/list', 'v1.publics.ArticleController/hot')->name('articleHotList')->option(['real_name' => '文章 热门']);//文章 热门
Route::get('article/new/list', 'v1.publics.ArticleController/new')->name('articleNewList')->option(['real_name' => '文章 最新']);//文章 最新
Route::get('article/banner/list', 'v1.publics.ArticleController/banner')->name('articleBannerList')->option(['real_name' => '文章 banner']);//文章 banner
})->option(['parent' => 'activity_nologin', 'cate_name' => '文章(未授权)']);
//小程序登陆
Route::post('wechat/mp_auth', 'v1.wechat.AuthController/mp_auth')->name('mpAuth');//小程序登陆
Route::get('wechat/get_logo', 'v1.wechat.AuthController/get_logo')->name('getLogo');//小程序登陆授权展示logo
Route::get('wechat/temp_ids', 'v1.wechat.AuthController/temp_ids')->name('wechatTempIds');//小程序订阅消息
Route::get('wechat/live', 'v1.wechat.AuthController/live')->name('wechatLive');//小程序直播列表
Route::get('wechat/livePlaybacks/:id', 'v1.wechat.AuthController/livePlaybacks')->name('livePlaybacks');//小程序直播回放
Route::group(function () {
//活动---秒杀
Route::get('seckill/index', 'v1.activity.StoreSeckillController/index')->name('seckillIndex')->option(['real_name' => '秒杀商品时间区间']);//秒杀商品时间区间
Route::get('seckill/list/:time', 'v1.activity.StoreSeckillController/lst')->name('seckillList')->option(['real_name' => '秒杀商品列表']);//秒杀商品列表
Route::get('seckill/detail/:id/[:time]', 'v1.activity.StoreSeckillController/detail')->name('seckillDetail')->option(['real_name' => '秒杀商品详情']);//秒杀商品详情
})->option(['parent' => 'activity_nologin', 'cate_name' => '秒杀(未授权)']);
//物流公司
Route::get('logistics', 'v1.PublicController/logistics')->name('logistics');//物流公司列表
Route::group(function () {
//活动---砍价
Route::get('bargain/config', 'v1.activity.StoreBargainController/config')->name('bargainConfig')->option(['real_name' => '砍价商品列表配置']);//砍价商品列表配置
Route::get('bargain/list', 'v1.activity.StoreBargainController/lst')->name('bargainList')->option(['real_name' => '砍价商品列表']);//砍价商品列表
})->option(['parent' => 'activity_nologin', 'cate_name' => '砍价(未授权)']);
//分享配置
Route::get('share', 'v1.PublicController/share')->name('share');//分享配置
Route::group(function () {
//活动---拼团
Route::get('combination/list', 'v1.activity.StoreCombinationController/lst')->name('combinationList')->option(['real_name' => '拼团商品列表']);//拼团商品列表
Route::get('combination/banner_list', 'v1.activity.StoreCombinationController/banner_list')->name('banner_list')->option(['real_name' => '拼团商品列表']);//拼团商品列表
Route::get('combination/detail/:id', 'v1.activity.StoreCombinationController/detail')->name('combinationDetail')->option(['real_name' => '拼团商品详情']);//拼团商品详情
})->option(['parent' => 'activity_nologin', 'cate_name' => '拼团(未授权)']);
//优惠券
Route::get('coupons', 'v1.store.StoreCouponsController/lst')->name('couponsList'); //可领取优惠券列表
//活动-预售
Route::get('advance/detail/:id', 'v1.activity.StoreAdvanceController/detail')->name('advanceDetail')->option(['real_name' => '预售商品详情']);//预售商品详情
//短信购买异步通知
Route::post('sms/pay/notify', 'v1.PublicController/sms_pay_notify')->name('smsPayNotify'); //短信购买异步通知
//用户类
Route::get('user/activity', 'v1.user.UserController/activity')->name('userActivity')->option(['real_name' => '活动状态']);//活动状态
//获取关注微信公众号海报
Route::get('wechat/follow', 'v1.wechat.WechatController/follow')->name('Follow');
//用户是否关注
Route::get('subscribe', 'v1.user.UserController/subscribe')->name('Subscribe');
//门店列表
Route::get('store_list', 'v1.PublicController/store_list')->name('storeList');
//获取城市列表
Route::get('city_list', 'v1.PublicController/city_list')->name('cityList');
//拼团数据
Route::get('pink', 'v1.PublicController/pink')->name('pinkData');
//获取底部导航
Route::get('navigation/[:template_name]', 'v1.PublicController/getNavigation')->name('getNavigation');
//用户访问
Route::post('user/set_visit', 'v1.user.UserController/set_visit')->name('setVisit');// 添加用户访问记录
//复制口令接口
Route::get('copy_words', 'v1.PublicController/copy_words')->name('copyWords');// 复制口令接口
//获取网站配置
Route::get('site_config', 'v1.PublicController/getSiteConfig')->name('getSiteConfig');//获取网站配置
})->option(['mark' => 'activity_nologin', 'mark_name' => '活动']);
//活动---积分商城
Route::get('store_integral/index', 'v1.activity.StoreIntegralController/index')->name('storeIntegralIndex');//积分商城首页数据
Route::get('store_integral/list', 'v1.activity.StoreIntegralController/lst')->name('storeIntegralList');//积分商品列表
Route::get('store_integral/detail/:id', 'v1.activity.StoreIntegralController/detail')->name('storeIntegralDetail');//积分商品详情
Route::group(function () {
//微信
Route::get('wechat/config', 'v1.wechat.WechatController/config')->name('wechatConfig')->option(['real_name' => '微信 sdk 配置']);//微信 sdk 配置
Route::get('wechat/auth', 'v1.wechat.WechatController/auth')->name('wechatAuth')->option(['real_name' => '微信授权']);//微信授权
Route::post('wechat/app_auth', 'v1.wechat.WechatController/appAuth')->name('appAuth')->option(['real_name' => '微信APP授权']);//微信APP授权
//获取app最新版本
Route::get('get_new_app/:platform', 'v1.PublicController/getNewAppVersion')->name('getNewAppVersion');//获取app最新版本
//获取客服类型
Route::get('get_customer_type', 'v1.PublicController/getCustomerType')->name('getCustomerType');//获取客服类型
//长链接设置
Route::get('get_workerman_url', 'v1.PublicController/getWorkerManUrl')->name('getWorkerManUrl');
//首页开屏广告
Route::get('get_open_adv', 'v1.PublicController/getOpenAdv')->name('getOpenAdv');
//获取用户协议
Route::get('user_agreement', 'v1.PublicController/getUserAgreement')->name('getUserAgreement');
Route::get('get_agreement/:type', 'v1.PublicController/getAgreement')->name('getAgreement');
})->option(['mark' => 'wechat', 'mark_name' => '微信']);
//获取多语言类型列表
Route::get('get_lang_type_list', 'v1.PublicController/getLangTypeList')->name('getLangTypeList');
//获取当前语言json
Route::get('get_lang_json', 'v1.PublicController/getLangJson')->name('getLangJson');
//获取当前后台设置的默认语言类型
Route::get('get_default_lang_type', 'v1.PublicController/getDefaultLangType')->name('getLangJson');
//获取当前后台设置的默认语言类型
Route::get('lang_version', 'v1.PublicController/getLangVersion')->name('getLangVersion');
Route::group(function () {
//小程序登陆
Route::post('wechat/mp_auth', 'v1.wechat.AuthController/mp_auth')->name('mpAuth')->option(['real_name' => '小程序登陆']);//小程序登陆
Route::get('wechat/get_logo', 'v1.wechat.AuthController/get_logo')->name('getLogo')->option(['real_name' => '小程序登陆授权展示logo']);//小程序登陆授权展示logo
Route::get('wechat/temp_ids', 'v1.wechat.AuthController/temp_ids')->name('wechatTempIds')->option(['real_name' => '小程序订阅消息']);//小程序订阅消息
Route::get('wechat/live', 'v1.wechat.AuthController/live')->name('wechatLive')->option(['real_name' => '小程序直播列表']);//小程序直播列表
Route::get('wechat/livePlaybacks/:id', 'v1.wechat.AuthController/livePlaybacks')->name('livePlaybacks')->option(['real_name' => '小程序直播回放']);//小程序直播回放
})->option(['mark' => 'mini', 'mark_name' => '小程序']);
/** 定时任务接口 */
//定时任务调用接口
Route::get('crontab/run', 'v1.CrontabController/crontabRun')->name('crontabRun');
//检测定时任务接口
Route::get('crontab/check', 'v1.CrontabController/crontabCheck')->name('crontabCheck');
//未支付自动取消订单
Route::get('crontab/order_cancel', 'v1.CrontabController/orderUnpaidCancel')->name('orderUnpaidCancel');
//拼团到期订单处理
Route::get('crontab/pink_expiration', 'v1.CrontabController/pinkExpiration')->name('pinkExpiration');
//自动解绑上级绑定
Route::get('crontab/agent_unbind', 'v1.CrontabController/agentUnbind')->name('agentUnbind');
//更新直播商品状态
Route::get('crontab/live_product_status', 'v1.CrontabController/syncGoodStatus')->name('syncGoodStatus');
//更新直播间状态
Route::get('crontab/live_room_status', 'v1.CrontabController/syncRoomStatus')->name('syncRoomStatus');
//自动收货
Route::get('crontab/take_delivery', 'v1.CrontabController/autoTakeOrder')->name('autoTakeOrder');
//查询预售到期商品自动下架
Route::get('crontab/advance_off', 'v1.CrontabController/downAdvance')->name('downAdvance');
//自动好评
Route::get('crontab/product_replay', 'v1.CrontabController/autoComment')->name('autoComment');
//清除昨日海报
Route::get('crontab/clear_poster', 'v1.CrontabController/emptyYesterdayAttachment')->name('emptyYesterdayAttachment');
Route::group(function () {
//物流公司
Route::get('logistics', 'v1.PublicController/logistics')->name('logistics')->option(['real_name' => '物流公司列表']);//物流公司列表
//分享配置
Route::get('share', 'v1.PublicController/share')->name('share')->option(['real_name' => '分享配置']);//分享配置
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class)->middleware(\app\api\middleware\AuthTokenMiddleware::class, false);
//优惠券
Route::get('coupons', 'v1.store.StoreCouponsController/lst')->name('couponsList')->option(['real_name' => '可领取优惠券列表']); //可领取优惠券列表
//短信购买异步通知
Route::post('sms/pay/notify', 'v1.PublicController/sms_pay_notify')->name('smsPayNotify')->option(['real_name' => '短信购买异步通知']); //短信购买异步通知
//获取关注微信公众号海报
Route::get('wechat/follow', 'v1.wechat.WechatController/follow')->name('Follow')->option(['real_name' => '获取关注微信公众号海报']);
//用户是否关注
Route::get('subscribe', 'v1.user.UserController/subscribe')->name('Subscribe')->option(['real_name' => '用户是否关注']);
//门店列表
Route::get('store_list', 'v1.PublicController/store_list')->name('storeList')->option(['real_name' => '门店列表']);
//获取城市列表
Route::get('city_list', 'v1.PublicController/city_list')->name('cityList')->option(['real_name' => '获取城市列表']);
//拼团数据
Route::get('pink', 'v1.PublicController/pink')->name('pinkData')->option(['real_name' => '拼团数据']);
//获取底部导航
Route::get('navigation/[:template_name]', 'v1.PublicController/getNavigation')->name('getNavigation')->option(['real_name' => '获取底部导航']);
//用户访问
Route::post('user/set_visit', 'v1.user.UserController/set_visit')->name('setVisit')->option(['real_name' => '添加用户访问记录']);// 添加用户访问记录
//复制口令接口
Route::get('copy_words', 'v1.PublicController/copy_words')->name('copyWords')->option(['real_name' => '复制口令接口']);// 复制口令接口
//获取网站配置
Route::get('site_config', 'v1.PublicController/getSiteConfig')->name('getSiteConfig')->option(['real_name' => '获取网站配置']);//获取网站配置
})->option(['mark' => 'setting', 'mark_name' => '商城配置']);
Route::group(function () {
//活动---积分商城
Route::get('store_integral/index', 'v1.activity.StoreIntegralController/index')->name('storeIntegralIndex')->option(['real_name' => '积分商城首页数据']);//积分商城首页数据
Route::get('store_integral/list', 'v1.activity.StoreIntegralController/lst')->name('storeIntegralList')->option(['real_name' => '积分商品列表']);//积分商品列表
Route::get('store_integral/detail/:id', 'v1.activity.StoreIntegralController/detail')->name('storeIntegralDetail')->option(['real_name' => '积分商品详情']);//积分商品详情
})->option(['mark' => 'integral_nologin', 'mark_name' => '积分商城(未授权)']);
Route::group(function () {
//获取app最新版本
Route::get('get_new_app/:platform', 'v1.PublicController/getNewAppVersion')->name('getNewAppVersion')->option(['real_name' => '获取app最新版本']);//获取app最新版本
//获取客服类型
Route::get('get_customer_type', 'v1.PublicController/getCustomerType')->name('getCustomerType')->option(['real_name' => '获取客服类型']);//获取客服类型
//长链接设置
Route::get('get_workerman_url', 'v1.PublicController/getWorkerManUrl')->name('getWorkerManUrl')->option(['real_name' => '长链接设置']);
//首页开屏广告
Route::get('get_open_adv', 'v1.PublicController/getOpenAdv')->name('getOpenAdv')->option(['real_name' => '首页开屏广告']);
//获取用户协议
Route::get('user_agreement', 'v1.PublicController/getUserAgreement')->name('getUserAgreement')->option(['real_name' => '获取用户协议']);
//获取协议
Route::get('get_agreement/:type', 'v1.PublicController/getAgreement')->name('getAgreement')->option(['real_name' => '获取协议']);
})->option(['mark' => 'other', 'mark_name' => '其他接口']);
Route::group(function () {
//获取多语言类型列表
Route::get('get_lang_type_list', 'v1.PublicController/getLangTypeList')->name('getLangTypeList')->option(['real_name' => '获取多语言类型列表']);
//获取当前语言json
Route::get('get_lang_json', 'v1.PublicController/getLangJson')->name('getLangJson')->option(['real_name' => '获取当前语言json']);
//获取当前后台设置的默认语言类型
Route::get('get_default_lang_type', 'v1.PublicController/getDefaultLangType')->name('getLangJson')->option(['real_name' => '获取当前后台设置的默认语言类型']);
//获取当前后台设置的默认语言类型
Route::get('lang_version', 'v1.PublicController/getLangVersion')->name('getLangVersion')->option(['real_name' => '获取当前后台设置的默认语言类型']);
})->option(['mark' => 'lang', 'mark_name' => '多语言']);
Route::group(function () {
/** 定时任务接口 */
//定时任务调用接口
Route::get('crontab/run', 'v1.CrontabController/crontabRun')->name('crontabRun')->option(['real_name' => '定时任务调用接口']);
//检测定时任务接口
Route::get('crontab/check', 'v1.CrontabController/crontabCheck')->name('crontabCheck')->option(['real_name' => '检测定时任务接口']);
//未支付自动取消订单
Route::get('crontab/order_cancel', 'v1.CrontabController/orderUnpaidCancel')->name('orderUnpaidCancel')->option(['real_name' => '未支付自动取消订单']);
//拼团到期订单处理
Route::get('crontab/pink_expiration', 'v1.CrontabController/pinkExpiration')->name('pinkExpiration')->option(['real_name' => '拼团到期订单处理']);
//自动解绑上级绑定
Route::get('crontab/agent_unbind', 'v1.CrontabController/agentUnbind')->name('agentUnbind')->option(['real_name' => '自动解绑上级绑定']);
//更新直播商品状态
Route::get('crontab/live_product_status', 'v1.CrontabController/syncGoodStatus')->name('syncGoodStatus')->option(['real_name' => '更新直播商品状态']);
//更新直播间状态
Route::get('crontab/live_room_status', 'v1.CrontabController/syncRoomStatus')->name('syncRoomStatus')->option(['real_name' => '更新直播间状态']);
//自动收货
Route::get('crontab/take_delivery', 'v1.CrontabController/autoTakeOrder')->name('autoTakeOrder')->option(['real_name' => '自动收货']);
//查询预售到期商品自动下架
Route::get('crontab/advance_off', 'v1.CrontabController/downAdvance')->name('downAdvance')->option(['real_name' => '查询预售到期商品自动下架']);
//自动好评
Route::get('crontab/product_replay', 'v1.CrontabController/autoComment')->name('autoComment')->option(['real_name' => '自动好评']);
//清除昨日海报
Route::get('crontab/clear_poster', 'v1.CrontabController/emptyYesterdayAttachment')->name('emptyYesterdayAttachment')->option(['real_name' => '清除昨日海报']);
})->option(['mark' => 'crontab', 'mark_name' => '定时任务']);
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)
->middleware(\app\api\middleware\StationOpenMiddleware::class)
->middleware(\app\api\middleware\AuthTokenMiddleware::class, false);
Route::miss(function () {
if (app()->request->isOptions()) {

View File

@ -17,95 +17,107 @@ use think\facade\Route;
Route::group('v2', function () {
//无需授权接口
Route::group(function () {
//公众号授权登录
Route::get('wechat/auth', 'v2.wechat.WechatController/auth');
//小程序授权
Route::get('wechat/routine_auth', 'v2.wechat.AuthController/auth');
//小程序静默授权
Route::get('wechat/silence_auth', 'v2.wechat.AuthController/silenceAuthNoLogin');
//小程序静默授权登陆
Route::get('wechat/silence_auth_login', 'v2.wechat.AuthController/silenceAuth');
//公众号静默授权
Route::get('wechat/wx_silence_auth', 'v2.wechat.WechatController/silenceAuthNoLogin');
//公众号静默授权登陆
Route::get('wechat/wx_silence_auth_login', 'v2.wechat.WechatController/silenceAuth');
//DIY接口
Route::get('diy/get_diy/[:name]', 'v2.PublicController/getDiy');
Route::get('diy/get_version/[:name]', 'v2.PublicController/getVersion');
//是否强制绑定手机号
Route::get('bind_status', 'v2.PublicController/bindPhoneStatus');
//小程序授权绑定手机号
Route::post('auth_bindind_phone', 'v2.wechat.AuthController/authBindingPhone');
//小程序授权后绑定手机号
Route::post('routine/binding_phone', 'v2.wechat.AuthController/BindingPhone');
//小程序手机号登录直接绑定
Route::post('phone_silence_auth', 'v2.wechat.AuthController/silenceAuthBindingPhone');
//微信手机号登录直接绑定
Route::post('phone_wx_silence_auth', 'v2.wechat.WechatController/silenceAuthBindingPhone');
//获取门店自提开启状态
Route::get('diy/get_store_status', 'v2.PublicController/getStoreStatus');
//一键换色
Route::get('diy/color_change/:name', 'v2.PublicController/colorChange');
Route::group(function () {
//公众号授权登录
Route::get('wechat/auth', 'v2.wechat.WechatController/auth')->option(['real_name' => '公众号授权登录']);
//小程序授权
Route::get('wechat/routine_auth', 'v2.wechat.AuthController/auth')->option(['real_name' => '小程序授权']);
//小程序静默授权
Route::get('wechat/silence_auth', 'v2.wechat.AuthController/silenceAuthNoLogin')->option(['real_name' => '小程序静默授权']);
//小程序静默授权登陆
Route::get('wechat/silence_auth_login', 'v2.wechat.AuthController/silenceAuth')->option(['real_name' => '小程序静默授权登陆']);
//公众号静默授权
Route::get('wechat/wx_silence_auth', 'v2.wechat.WechatController/silenceAuthNoLogin')->option(['real_name' => '公众号静默授权']);
//公众号静默授权登陆
Route::get('wechat/wx_silence_auth_login', 'v2.wechat.WechatController/silenceAuth')->option(['real_name' => '公众号静默授权登陆']);
//是否强制绑定手机号
Route::get('bind_status', 'v2.PublicController/bindPhoneStatus')->option(['real_name' => '是否强制绑定手机号']);
//小程序授权绑定手机号
Route::post('auth_bindind_phone', 'v2.wechat.AuthController/authBindingPhone')->option(['real_name' => '小程序授权绑定手机号']);
//小程序授权后绑定手机号
Route::post('routine/binding_phone', 'v2.wechat.AuthController/BindingPhone')->option(['real_name' => '小程序授权后绑定手机号']);
//小程序手机号登录直接绑定
Route::post('phone_silence_auth', 'v2.wechat.AuthController/silenceAuthBindingPhone')->option(['real_name' => '小程序手机号登录直接绑定']);
//微信手机号登录直接绑定
Route::post('phone_wx_silence_auth', 'v2.wechat.WechatController/silenceAuthBindingPhone')->option(['real_name' => '微信手机号登录直接绑定']);
})->option(['mark' => 'wechat_auto', 'mark_name' => '微信授权']);
Route::group(function () {
//获取门店自提开启状态
Route::get('diy/get_store_status', 'v2.PublicController/getStoreStatus')->option(['real_name' => '获取门店自提开启状态']);
//一键换色
Route::get('diy/color_change/:name', 'v2.PublicController/colorChange')->option(['real_name' => '一键换色']);
//DIY接口
Route::get('diy/get_diy/[:name]', 'v2.PublicController/getDiy')->option(['real_name' => '获取DIY数据']);
Route::get('diy/get_version/[:name]', 'v2.PublicController/getVersion')->option(['real_name' => '获取DIY版本号']);
})->option(['mark' => 'diy', 'mark_name' => 'DIY']);
});
//需要授权
Route::group(function () {
Route::post('reset_cart', 'v2.store.StoreCartController/resetCart')->name('resetCart');
Route::get('new_coupon', 'v2.store.StoreCouponsController/getNewCoupon')->name('getNewCoupon');//获取新人券
Route::post('reset_cart', 'v2.store.StoreCartController/resetCart')->name('resetCart')->option(['real_name' => '清除购物车', 'mark' => 'cart', 'mark_name' => '购物车']);
Route::get('new_coupon', 'v2.store.StoreCouponsController/getNewCoupon')->name('getNewCoupon')->option(['real_name' => '获取新人券', 'mark' => 'coupons', 'mark_name' => '优惠券']);//获取新人券
// Route::get('get_today_coupon', 'v2.store.StoreCouponsController/getTodayCoupon');//新优惠券弹窗接口
Route::post('user/user_update', 'v2.wechat.AuthController/updateInfo');
Route::post('order/product_coupon/:orderId', 'v2.store.StoreCouponsController/getOrderProductCoupon');
Route::get('user/service/record', 'v2.user.StoreService/record')->name('userServiceRecord');//客服聊天记录
Route::get('cart_list', 'v2.store.StoreCartController/getCartList');
Route::get('get_attr/:id/:type', 'v2.store.StoreProductController/getProductAttr');
Route::post('set_cart_num', 'v2.store.StoreCartController/setCartNum');
//订单申请发票
Route::post('order/make_up_invoice', 'v2.order.StoreOrderInvoiceController/makeUp')->name('orderMakeUpInvoice');
//用户发票列表
Route::get('invoice', 'v2.user.UserInvoiceController/invoiceList')->name('userInvoiceLIst');
//单个发票详情
Route::get('invoice/detail/:id', 'v2.user.UserInvoiceController/invoice')->name('userInvoiceDetail');
//修改|添加发票
Route::post('invoice/save', 'v2.user.UserInvoiceController/saveInvoice')->name('userInvoiceSave');
//设置默认发票
Route::post('invoice/set_default/:id', 'v2.user.UserInvoiceController/setDefaultInvoice')->name('userInvoiceSetDefault');
//获取默认发票
Route::get('invoice/get_default/:type', 'v2.user.UserInvoiceController/getDefaultInvoice')->name('userInvoiceGetDefault');
//删除发票
Route::get('invoice/del/:id', 'v2.user.UserInvoiceController/delInvoice')->name('userInvoiceDel');
//订单申请开票记录
Route::get('order/invoice_list', 'v2.order.StoreOrderInvoiceController/list')->name('orderInvoiceList');
//订单开票详情
Route::get('order/invoice_detail/:uni', 'v2.order.StoreOrderInvoiceController/detail')->name('orderInvoiceList');
Route::post('user/user_update', 'v2.wechat.AuthController/updateInfo')->option(['real_name' => '修改用户信息', 'mark' => 'user', 'mark_name' => '用户']);
Route::post('order/product_coupon/:orderId', 'v2.store.StoreCouponsController/getOrderProductCoupon')->option(['real_name' => '获取订单下管理的优惠券', 'mark' => 'coupons', 'mark_name' => '优惠券']);
Route::get('user/service/record', 'v2.user.StoreService/record')->name('userServiceRecord')->option(['real_name' => '客服聊天记录', 'parent' => 'user', 'cate_name' => '客服']);//客服聊天记录
Route::get('cart_list', 'v2.store.StoreCartController/getCartList')->option(['real_name' => '获取购物车列表', 'mark' => 'cart', 'mark_name' => '购物车']);
Route::get('get_attr/:id/:type', 'v2.store.StoreProductController/getProductAttr')->option(['real_name' => '获取商品规格', 'mark' => 'cart', 'mark_name' => '购物车']);
Route::post('set_cart_num', 'v2.store.StoreCartController/setCartNum')->option(['real_name' => '获取购物车数量', 'mark' => 'cart', 'mark_name' => '购物车']);
Route::group(function () {
//订单申请发票
Route::post('order/make_up_invoice', 'v2.order.StoreOrderInvoiceController/makeUp')->name('orderMakeUpInvoice')->option(['real_name' => '订单申请发票']);
//用户发票列表
Route::get('invoice', 'v2.user.UserInvoiceController/invoiceList')->name('userInvoiceLIst')->option(['real_name' => '用户发票列表']);
//单个发票详情
Route::get('invoice/detail/:id', 'v2.user.UserInvoiceController/invoice')->name('userInvoiceDetail')->option(['real_name' => '单个发票详情']);
//修改|添加发票
Route::post('invoice/save', 'v2.user.UserInvoiceController/saveInvoice')->name('userInvoiceSave')->option(['real_name' => '修改|添加发票']);
//设置默认发票
Route::post('invoice/set_default/:id', 'v2.user.UserInvoiceController/setDefaultInvoice')->name('userInvoiceSetDefault')->option(['real_name' => '设置默认发票']);
//获取默认发票
Route::get('invoice/get_default/:type', 'v2.user.UserInvoiceController/getDefaultInvoice')->name('userInvoiceGetDefault')->option(['real_name' => '获取默认发票']);
//删除发票
Route::get('invoice/del/:id', 'v2.user.UserInvoiceController/delInvoice')->name('userInvoiceDel')->option(['real_name' => '删除发票']);
//订单申请开票记录
Route::get('order/invoice_list', 'v2.order.StoreOrderInvoiceController/list')->name('orderInvoiceList')->option(['real_name' => '订单申请开票记录']);
//订单开票详情
Route::get('order/invoice_detail/:uni', 'v2.order.StoreOrderInvoiceController/detail')->name('orderInvoiceList')->option(['real_name' => '订单开票详情']);
})->option(['mark' => 'invoice', 'mark_name' => '发票']);
//清除搜索记录
Route::get('user/clean_search', 'v2.user.UserSearchController/cleanUserSearch')->mame('cleanUserSearch');
Route::get('user/clean_search', 'v2.user.UserSearchController/cleanUserSearch')->mame('cleanUserSearch')->option(['real_name' => '清除搜索记录']);
//抽奖活动详情
Route::get('lottery/info/:factor', 'v2.activity.LuckLotteryController/lotteryInfo')->mame('lotteryInfo');
Route::get('lottery/info/:factor', 'v2.activity.LuckLotteryController/lotteryInfo')->mame('lotteryInfo')->option(['real_name' => '抽奖活动详情']);
//参与抽奖
Route::post('lottery', 'v2.activity.LuckLotteryController/luckLottery')->mame('luckLottery')->middleware(BlockerMiddleware::class);
Route::post('lottery', 'v2.activity.LuckLotteryController/luckLottery')->mame('luckLottery')->middleware(BlockerMiddleware::class)->option(['real_name' => '参与抽奖']);
//领取奖品
Route::post('lottery/receive', 'v2.activity.LuckLotteryController/lotteryReceive')->mame('lotteryReceive')->middleware(BlockerMiddleware::class);
Route::post('lottery/receive', 'v2.activity.LuckLotteryController/lotteryReceive')->mame('lotteryReceive')->middleware(BlockerMiddleware::class)->option(['real_name' => '领取奖品']);
//抽奖记录
Route::get('lottery/record', 'v2.activity.LuckLotteryController/lotteryRecord')->mame('lotteryRecord');
Route::get('lottery/record', 'v2.activity.LuckLotteryController/lotteryRecord')->mame('lotteryRecord')->option(['real_name' => '抽奖记录']);
//获取分销等级列表
Route::get('agent/level_list', 'v2.agent.AgentLevel/levelList')->name('agentLevelList');
Route::get('agent/level_list', 'v2.agent.AgentLevel/levelList')->name('agentLevelList')->option(['real_name' => '获取分销等级列表']);
//获取分销等级任务列表
Route::get('agent/level_task_list', 'v2.agent.AgentLevel/levelTaskList')->name('agentLevelTaskList');
Route::get('agent/level_task_list', 'v2.agent.AgentLevel/levelTaskList')->name('agentLevelTaskList')->option(['real_name' => '获取分销等级任务列表']);
})->middleware(\app\api\middleware\AuthTokenMiddleware::class, true);
//授权不通过,不会抛出异常继续执行
Route::group(function () {
//用户搜索记录
Route::get('user/search_list', 'v2.user.UserSearchController/getUserSeachList')->mame('userSearchList');
Route::get('get_today_coupon', 'v2.store.StoreCouponsController/getTodayCoupon');//新优惠券弹窗接口
Route::get('subscribe', 'v2.PublicController/subscribe')->name('WechatSubscribe');// 微信公众号用户是否关注
Route::get('user/search_list', 'v2.user.UserSearchController/getUserSeachList')->mame('userSearchList')->option(['real_name' => '用户搜索记录']);
Route::get('get_today_coupon', 'v2.store.StoreCouponsController/getTodayCoupon')->option(['real_name' => '新优惠券弹窗接口']);//新优惠券弹窗接口
Route::get('subscribe', 'v2.PublicController/subscribe')->name('WechatSubscribe')->option(['real_name' => '微信公众号用户是否关注']);// 微信公众号用户是否关注
//公共类
Route::get('index', 'v2.PublicController/index')->name('index');//首页
Route::get('index', 'v2.PublicController/index')->name('index')->option(['real_name' => '首页']);//首页
//优惠券
Route::get('coupons', 'v2.store.StoreCouponsController/lst')->name('couponsList'); //可领取优惠券列表
})->middleware(\app\api\middleware\AuthTokenMiddleware::class, false);
Route::get('coupons', 'v2.store.StoreCouponsController/lst')->name('couponsList')->option(['real_name' => '可领取优惠券列表']); //可领取优惠券列表
})->middleware(\app\api\middleware\AuthTokenMiddleware::class, false)
->option(['mark' => 'common', 'mark_name' => '公共接口']);
})->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\api\middleware\StationOpenMiddleware::class);

View File

@ -46,11 +46,13 @@ abstract class BaseDao
/**
* 读取数据条数
* @param array $where
* @param bool $search
* @return int
* @throws \ReflectionException
*/
public function count(array $where = [])
public function count(array $where = [], bool $search = true)
{
return $this->search($where)->count();
return $this->search($where, $search)->count();
}
/**
@ -59,13 +61,34 @@ abstract class BaseDao
* @param string $field
* @param int $page
* @param int $limit
* @param string $order
* @param bool $search
* @return \think\Collection
* @throws \ReflectionException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function selectList(array $where, string $field = '*', int $page = 0, int $limit = 0, string $order = '', bool $search = false)
public function selectList(array $where, string $field = '*', int $page = 0, int $limit = 0, string $order = '', array $with = [], bool $search = false)
{
return $this->selectModel($where, $field, $page, $limit, $order, $with, $search)->select();
}
/**
* @param array $where
* @param string $field
* @param int $page
* @param int $limit
* @param string $order
* @param array $with
* @param bool $search
* @return BaseModel
* @throws \ReflectionException
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/14
*/
public function selectModel(array $where, string $field = '*', int $page = 0, int $limit = 0, string $order = '', array $with = [], bool $search = false)
{
if ($search) {
$model = $this->search($where);
@ -76,7 +99,9 @@ abstract class BaseDao
$query->page($page, $limit);
})->when($order !== '', function ($query) use ($order) {
$query->order($order);
})->select();
})->when($with, function ($query) use ($with) {
$query->with($with);
});
}
/**
@ -190,14 +215,14 @@ abstract class BaseDao
/**
* 获取单个字段值
* @param array $where
* @param $where
* @param string|null $field
* @return mixed
*/
public function value(array $where, ?string $field = '')
public function value($where, ?string $field = '')
{
$pk = $this->getPk();
return $this->getModel()->where($where)->value($field ?: $pk);
return $this->search($this->setWhere($where))->value($field ?: $pk);
}
/**
@ -212,6 +237,7 @@ abstract class BaseDao
return $this->getModel()->where($where)->column($field, $key);
}
/**
* 删除
* @param int|string|array $id
@ -227,6 +253,20 @@ abstract class BaseDao
return $this->getModel()->where($where)->delete();
}
/**
* 删除记录
* @param int $id
* @param bool $force
* @return bool
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/15
*/
public function destroy(int $id, bool $force = false)
{
return $this->getModel()->destroy($id, $force);
}
/**
* 更新数据
* @param int|string|array $id
@ -244,6 +284,21 @@ abstract class BaseDao
return $this->getModel()::update($data, $where);
}
/**
* @param $where
* @return array|mixed
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
protected function setWhere($where, ?string $key = null)
{
if (!is_array($where)) {
$where = [is_null($key) ? $this->getPk() : $key => $where];
}
return $where;
}
/**
* 批量更新数据
* @param array $ids
@ -291,50 +346,87 @@ abstract class BaseDao
}
/**
* 获取搜索器和搜索条件key
* @param array $withSearch
* 获取搜索器和搜索条件key,以及不在搜索器的条件数组
* @param array $where
* @return array[]
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/03/18
*/
private function getSearchData(array $withSearch)
private function getSearchData(array $where)
{
$with = [];
$whereKey = [];
$otherWhere = [];
$responses = new \ReflectionClass($this->setModel());
foreach ($withSearch as $fieldName) {
$method = 'search' . Str::studly($fieldName) . 'Attr';
foreach ($where as $key => $value) {
$method = 'search' . Str::studly($key) . 'Attr';
if ($responses->hasMethod($method)) {
$with[] = $fieldName;
$with[] = $key;
} else {
$whereKey[] = $fieldName;
if (!in_array($key, ['timeKey', 'store_stock', 'integral_time'])) {
if (!is_array($value)) {
$otherWhere[] = [$key, '=', $value];
} else if (count($value) === 3) {
$otherWhere[] = $value;
}
}
}
}
return [$with, $whereKey];
return [$with, $otherWhere];
}
/**
* 根据搜索器获取搜索内容
* @param array $withSearch
* @param array|null $data
* @param $where
* @param $search
* @return BaseModel
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/03/18
*/
protected function withSearchSelect(array $withSearch, ?array $data = [])
protected function withSearchSelect($where, $search)
{
[$with] = $this->getSearchData($withSearch);
return $this->getModel()->withSearch($with, $data);
[$with, $otherWhere] = $this->getSearchData($where);
return $this->getModel()->withSearch($with, $where)->when($search, function ($query) use ($otherWhere) {
$query->where($this->filterWhere($otherWhere));
});
}
/**
* 过滤数据表中不存在的where条件字段
* @param array $where
* @return array
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/11
*/
protected function filterWhere(array $where = [])
{
$fields = $this->getModel()->getTableFields();
foreach ($where as $key => $item) {
if (!in_array($item[0], $fields)) {
unset($where[$key]);
}
}
return $where;
}
/**
* 搜索
* @param array $where
* @param bool $search
* @return BaseModel
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/03/18
*/
protected function search(array $where = [])
public function search(array $where = [], bool $search = true)
{
if ($where) {
return $this->withSearchSelect(array_keys($where), $where);
return $this->withSearchSelect($where, $search);
} else {
return $this->getModel();
}
@ -365,6 +457,9 @@ abstract class BaseDao
* @param string|null $keyField
* @param int $acc
* @return bool
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function bcInc($key, string $incField, string $inc, string $keyField = null, int $acc = 2)
{
@ -379,6 +474,9 @@ abstract class BaseDao
* @param string|null $keyField
* @param int $acc
* @return bool
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function bcDec($key, string $decField, string $dec, string $keyField = null, int $acc = 2)
{
@ -445,18 +543,6 @@ abstract class BaseDao
})->dec($stock, $num)->inc($sales, $num)->update();
}
return false;
// $field = $isQuota ? [$stock, $sales, 'quota'] : [$stock, $sales];
// $info = $this->getModel()->where($where)->field($field)->find();
// if ($info) {
// if ($isQuota) {
// $info->quota = (int)$info->quota - $num;
// }
// $info->stock = (int)$info->stock - $num;
// $info->sales = (int)$info->sales + $num;
// return $info->save();
// } else {
// return false;
// }
}
/**
@ -487,22 +573,6 @@ abstract class BaseDao
})->inc($stock, $num)->dec($sales, $salesNum)->update();
}
return true;
// $field = $isQuota ? [$stock, $sales, 'quota'] : [$stock, $sales];
// $info = $this->getModel()->where($where)->field($field)->find();
// if ($info) {
// if ($isQuota) {
// $info->quota = (int)$info->quota + $num;
// }
// $info->stock = (int)$info->stock + $num;
// if ((int)$info->sales > $num) {
// $info->sales = (int)$info->sales - $num;
// } else {
// $info->sales = 0;
// }
// return $info->save();
// } else {
// return false;
// }
}
/**

View File

@ -8,7 +8,7 @@
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
declare (strict_types = 1);
declare (strict_types=1);
namespace app\dao\activity\advance;
@ -37,13 +37,17 @@ class StoreAdvanceDao extends BaseDao
* @param int $page
* @param int $limit
* @return array
* @throws \ReflectionException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/03/20
*/
public function getList(array $where, int $page = 0, int $limit = 0)
{
return $this->search($where)
return $this->search($where, false)
->when($where['time_type'], function ($query) use ($where) {
if ($where['time_type'] == 1) $query->whereTime('start_time', '>', time());
if ($where['time_type'] == 2) $query->whereTime('start_time', '<=', time())->whereTime('stop_time', '>=', time());
@ -57,10 +61,11 @@ class StoreAdvanceDao extends BaseDao
/**
* @param array $where
* @return int
* @throws \ReflectionException
*/
public function getCount(array $where)
{
return $this->search($where)
return $this->search($where, false)
->when($where['time_type'], function ($query) use ($where) {
if ($where['time_type'] == 1) $query->whereTime('start_time', '>', time());
if ($where['time_type'] == 2) $query->whereTime('start_time', '<=', time())->whereTime('stop_time', '>=', time());

View File

@ -44,7 +44,7 @@ class StoreBargainDao extends BaseDao
*/
public function getList(array $where, int $page = 0, int $limit = 0)
{
return $this->search($where)->where('is_del', 0)
return $this->search($where, false)->where('is_del', 0)
->when(isset($where['start_status']) && $where['start_status'] !== '', function ($query) use ($where) {
$time = time();
switch ($where['start_status']) {
@ -135,7 +135,7 @@ class StoreBargainDao extends BaseDao
*/
public function DiyBargainList(array $where, int $page, int $limit)
{
return $this->search($where)
return $this->search($where, false)
->when(isset($where['sid']) && $where['sid'], function ($query) use ($where) {
$query->whereIn('id', function ($query) use ($where) {
$query->name('store_product_cate')->where('cate_id', $where['sid'])->field('product_id')->select();
@ -165,7 +165,7 @@ class StoreBargainDao extends BaseDao
*/
public function getHomeList(array $where, int $page, int $limit)
{
return $this->search($where)
return $this->search($where, false)
->when(isset($where['sid']) && $where['sid'], function ($query) use ($where) {
$query->whereIn('id', function ($query) use ($where) {
$query->name('store_product_cate')->where('cate_id', $where['sid'])->field('product_id')->select();
@ -215,7 +215,7 @@ class StoreBargainDao extends BaseDao
*/
public function getCount(array $where)
{
return $this->search($where)
return $this->search($where, false)
->when(isset($where['sid']) && $where['sid'], function ($query) use ($where) {
$query->whereIn('product_id', function ($query) use ($where) {
$query->name('store_product_cate')->where('cate_id', $where['sid'])->field('product_id')->select();

View File

@ -35,11 +35,13 @@ class StoreCombinationDao extends BaseDao
/**
* 搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['pinkIngTime']), function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['pinkIngTime']), function ($query) use ($where) {
$time = time();
[$startTime, $stopTime] = is_array($where['pinkIngTime']) ? $where['pinkIngTime'] : [$time, $time];
$query->where('start_time', '<=', $startTime)->where('stop_time', '>=', $stopTime);
@ -57,17 +59,21 @@ class StoreCombinationDao extends BaseDao
$query->name('store_category')->where('pid', $where['cid'])->field('id')->select();
})->field('product_id')->select();
});
})->when(isset($where['id']) && $where['id'], function ($query) use ($where) {
$query->where('id', $where['id']);
});
}
/**
* 获取指定条件下的条数
* @param array $where
* @param bool $search
* @return int
* @throws \ReflectionException
*/
public function count(array $where = []): int
public function count(array $where = [], bool $search = true): int
{
return $this->search($where)->count();
return $this->search($where, $search)->count();
}
/**
@ -100,6 +106,7 @@ class StoreCombinationDao extends BaseDao
$query->page($page, $limit);
})->order('sort desc,id desc')->select()->toArray();
}
/**获取列表
* @param array $where
* @param int $page
@ -144,6 +151,7 @@ class StoreCombinationDao extends BaseDao
* @param array $ids ids 为空返回所有
* @param array $field
* @return array
* @throws \ReflectionException
*/
public function getPinkIdsArray(array $ids = [], array $field = [])
{
@ -164,15 +172,18 @@ class StoreCombinationDao extends BaseDao
{
return $this->search($where)->with('getPrice')->page($page, $limit)->order('sort desc,id desc')->select()->toArray();
}
/**
* 条件获取数量
* @param array $where
* @return int
* @throws \ReflectionException
*/
public function getCount(array $where)
{
return $this->search($where)->count();
}
/**
* 页面设计获取商拼团列表
* @param array $where
@ -183,9 +194,11 @@ class StoreCombinationDao extends BaseDao
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function diyCombinationList(array $where, int $page, int $limit){
public function diyCombinationList(array $where, int $page, int $limit)
{
return $this->search($where)->with('getCategory')->page($page, $limit)->order('sort desc,id desc')->select()->toArray();
}
/**
* 根据id获取拼团数据
* @param array $ids

View File

@ -54,7 +54,7 @@ class StorePinkDao extends BaseDao
*/
public function getList(array $where, int $page = 0, int $limit = 0)
{
return $this->search($where)->when($where['k_id'] != 0, function ($query) use ($where) {
return $this->search($where, false)->when($where['k_id'] != 0, function ($query) use ($where) {
$query->whereOr('id', $where['k_id']);
})->when(isset($where['keyword']) && $where['keyword'] != '', function ($query) use ($where) {
$query->where('uid|nickname', 'like', '%' . $where['keyword'] . '%');

View File

@ -34,11 +34,13 @@ class StoreCouponIssueDao extends BaseDao
/**
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['type']) && $where['type'] != '', function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['type']) && $where['type'] != '', function ($query) use ($where) {
if ($where['type'] == 'send') {
$query->where('receive_type', 3)->where(function ($query1) {
$query1->where(function ($query2) {
@ -306,13 +308,11 @@ class StoreCouponIssueDao extends BaseDao
*/
public function getTodayCoupon($uid)
{
// return $this->getModel()->where('receive_type', 1)->where('is_del', 0)->whereDay('add_time')->select()->toArray();
return $this->getModel()->where('status', 1)
->where('is_del', 0)
->where('remain_count > 0 OR is_permanent = 1')
->where(function ($query) {
$query->where('receive_type', 1)->whereOr('receive_type', 4);
// $query->where('receive_type', 1);
})->where(function ($query) {
$query->where(function ($query) {
$query->where('start_time', '<', time())->where('end_time', '>', time());

View File

@ -8,7 +8,7 @@
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
declare (strict_types = 1);
declare (strict_types=1);
namespace app\dao\activity\coupon;
@ -145,7 +145,7 @@ class StoreCouponUserDao extends BaseDao
*/
public function getCouponListByOrder(array $where, $order, int $page = 0, int $limit = 0)
{
return $this->search($where)->with('issue')->when($page > 0 && $limit > 0, function ($qeury) use ($page, $limit) {
return $this->search($where, false)->with('issue')->when($page > 0 && $limit > 0, function ($qeury) use ($page, $limit) {
$qeury->page($page, $limit);
})->when($order != '', function ($query) use ($order) {
$query->order($order);
@ -172,7 +172,7 @@ class StoreCouponUserDao extends BaseDao
*/
public function memberCouponUserGroupBymonth(array $where)
{
return $this->search($where)
return $this->search($where, false)
->whereMonth('add_time')
->whereIn('cid', $where['couponIds'])
->field('count(id) as num,FROM_UNIXTIME(add_time, \'%Y-%m\') as time')

View File

@ -35,11 +35,13 @@ class StoreIntegralDao extends BaseDao
/**
* 获取指定条件下的条数
* @param array $where
* @param bool $search
* @return int
* @throws \ReflectionException
*/
public function count(array $where = []): int
public function count(array $where = [], bool $search = true): int
{
return $this->search($where)->count();
return $this->search($where, $search)->count();
}
/**
@ -54,7 +56,7 @@ class StoreIntegralDao extends BaseDao
*/
public function getList(array $where, int $page = 0, int $limit = 0, string $field = '*')
{
return $this->search($where)->where('is_del', 0)
return $this->search($where, false)->where('is_del', 0)
->when(isset($where['integral_time']) && $where['integral_time'] !== '', function ($query) use ($where) {
list($startTime, $endTime) = explode('-', $where['integral_time']);
$query->where('add_time', '>', strtotime($startTime))

View File

@ -40,15 +40,17 @@ class StoreIntegralOrderDao extends BaseDao
/**
* 订单搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
$isDel = isset($where['is_del']) && $where['is_del'] !== '' && $where['is_del'] != -1;
$realName = $where['real_name'] ?? '';
$fieldKey = $where['field_key'] ?? '';
$fieldKey = $fieldKey == 'all' ? '' : $fieldKey;
return parent::search($where)->when($isDel, function ($query) use ($where) {
return parent::search($where, $search)->when($isDel, function ($query) use ($where) {
$query->where('is_del', $where['is_del']);
})->when(isset($where['is_system_del']), function ($query) {
$query->where('is_system_del', 0);
@ -87,11 +89,13 @@ class StoreIntegralOrderDao extends BaseDao
/**
* 获取订单总数
* @param array $where
* @param bool $search
* @return int
* @throws \ReflectionException
*/
public function count(array $where = []): int
public function count(array $where = [], bool $search = true): int
{
return $this->search($where)->count();
return $this->search($where, $search)->count();
}
/**

View File

@ -31,9 +31,11 @@ class LiveGoodsDao extends BaseDao
/**
* @param array $where
* @param string $field
* @param array $with
* @param int $page
* @param int $limit
* @return array
* @throws \ReflectionException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException

View File

@ -32,13 +32,23 @@ class LuckLotteryDao extends BaseDao
return LuckLottery::class;
}
public function search(array $data = [])
/**
* 抽奖搜索
* @param array $data
* @param bool $search
* @return \crmeb\basic\BaseModel
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/03/20
*/
public function search(array $where = [], bool $search = false)
{
return parent::search($data)->when(isset($data['id']) && $data['id'], function ($query) use ($data) {
$query->where('id', $data['id']);
})->when(isset($data['start']) && $data['start'] !== '', function ($query) use ($data) {
return parent::search($where, $search)->when(isset($where['id']) && $where['id'], function ($query) use ($where) {
$query->where('id', $where['id']);
})->when(isset($where['start']) && $where['start'] !== '', function ($query) use ($where) {
$time = time();
switch ($data['start']) {
switch ($where['start']) {
case 0:
$query->where('start_time', '>', $time)->where('status', 1);
break;

View File

@ -35,11 +35,13 @@ class StoreSeckillDao extends BaseDao
/**
* 搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
protected function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['seckllTime']), function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['seckllTime']), function ($query) use ($where) {
[$startTime, $stopTime] = is_array($where['seckllTime']) ? $where['seckllTime'] : [time(), time() - 86400];
$query->where('start_time', '<=', $startTime)->where('stop_time', '>=', $stopTime);
})->when(isset($where['sid']) && $where['sid'], function ($query) use ($where) {

View File

@ -46,7 +46,7 @@ class AgentLevelDao extends BaseDao
*/
public function getList(array $where = [], string $field = '*', array $with = [], int $page = 0, int $limit = 0, $grade = 0)
{
return $this->search($where)->when($grade, function ($query) use ($grade) {
return $this->search($where, false)->when($grade, function ($query) use ($grade) {
$query->where('grade', '>=', $grade);
})->field($field)->when($with, function ($query) use ($with) {
$query->with($with);

View File

@ -30,9 +30,19 @@ class ArticleDao extends BaseDao
return Article::class;
}
public function search(array $where = [])
/**
* 文章搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/03/20
*/
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['ids']) && count($where['ids']), function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['ids']) && count($where['ids']), function ($query) use ($where) {
$query->whereNotIn('id', $where['ids']);
});
}

View File

@ -41,7 +41,7 @@ class DeliveryServiceDao extends BaseDao
*/
public function getServiceList(array $where, int $page, int $limit)
{
return $this->search($where)->when($page && $limit, function ($query) use ($page, $limit) {
return $this->search($where, false)->when($page && $limit, function ($query) use ($page, $limit) {
$query->page($page, $limit);
})->when(isset($where['noId']), function ($query) use ($where) {
$query->where('id', '<>', $where['noId']);

View File

@ -38,11 +38,11 @@ class OtherOrderDao extends BaseDao
public function getPayUserCount(int $time, string $channel_type = '')
{
return $this->getModel()->when($channel_type != '', function ($query) use ($channel_type) {
$query->where('channel_type', $channel_type);
})->field('distinct(uid),add_time')
->group('uid')->having('add_time < ' . $time)
->order('add_time desc')
->select()->toArray();
$query->where('channel_type', $channel_type);
})->field('distinct(uid),add_time')
->group('uid')->having('add_time < ' . $time)
->order('add_time desc')
->select()->toArray();
}
/**
@ -161,18 +161,37 @@ class OtherOrderDao extends BaseDao
->page($page, $limit)->select()->toArray();
}
public function search(array $where = [])
/**
* 其他订单搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/03/20
*/
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['name']) && $where['name'], function ($query) use($where){
$query->where('uid', 'in', function ($que) use($where){
return parent::search($where, $search)->when(isset($where['name']) && $where['name'], function ($query) use ($where) {
$query->where('uid', 'in', function ($que) use ($where) {
$nickname = trim($where['name']);
$que->name('user')->where('nickname', 'like', $nickname.'%')->field(['uid'])->select();
$que->name('user')->where('nickname', 'like', $nickname . '%')->field(['uid'])->select();
});
});
}
public function count(array $where = []): int
/**
* @param array $where
* @param bool $search
* @return int
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/11
*/
public function count(array $where = [], bool $search = true): int
{
return $this->search($where)->count();
return $this->search($where, $search)->count();
}
}

View File

@ -45,11 +45,13 @@ class StoreCartDao extends BaseDao
/**
* 搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['id']) && $where['id'], function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['id']) && $where['id'], function ($query) use ($where) {
$query->whereIn('id', $where['id']);
})->when(isset($where['status']), function ($query) use ($where) {
//兼容之前老用户 数据库默认值null

View File

@ -40,26 +40,29 @@ class StoreOrderDao extends BaseDao
/**
* 订单搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
$isDel = isset($where['is_del']) && $where['is_del'] !== '' && $where['is_del'] != -1;
$realName = $where['real_name'] ?? '';
$fieldKey = $where['field_key'] ?? '';
$fieldKey = $fieldKey == 'all' ? '' : $fieldKey;
return parent::search($where)->when($isDel, function ($query) use ($where) {
$status = $where['status'] ?? '';
unset($where['status']);
return parent::search($where, $search)->when($isDel, function ($query) use ($where) {
$query->where('is_del', $where['is_del']);
})->when(isset($where['is_system_del']), function ($query) {
$query->where('is_system_del', 0);
})->when(isset($where['status']) && $where['status'] !== '', function ($query) use ($where) {
switch ((int)$where['status']) {
})->when($status !== '', function ($query) use ($where, $status) {
switch ((int)$status) {
case 0://未支付
$query->where('paid', 0)->where('status', 0)->where('refund_status', 0)->where('is_del', 0);
break;
case 1://已支付 未发货
$query->where('paid', 1)->whereIn('status', [0, 4])->whereIn('refund_status', [0, 3])->when(isset($where['shipping_type']), function ($query) {
$query->where('paid', 1)->where('status', 0)->whereIn('refund_status', [0, 3])->when(isset($where['shipping_type']), function ($query) {
$query->where('shipping_type', 1);
})->where('is_del', 0);
break;
@ -94,7 +97,7 @@ class StoreOrderDao extends BaseDao
$query->where('is_del', 1);
break;
case 9://全部用户未删除的订单
$query->where('is_del', 0);
$query->whereIn('refund_status', [0, 3])->where('is_del', 0);
break;
}
})->when(isset($where['paid']) && $where['paid'] !== '', function ($query) use ($where) {
@ -262,11 +265,13 @@ class StoreOrderDao extends BaseDao
/**
* 获取订单总数
* @param array $where
* @param bool $search
* @return int
* @throws \ReflectionException
*/
public function count(array $where = []): int
public function count(array $where = [], bool $search = true): int
{
return $this->search($where)->count();
return $this->search($where, $search)->count();
}
/**
@ -972,4 +977,19 @@ class StoreOrderDao extends BaseDao
$query->page($page, $limit);
})->field(['uid', 'order_id', 'real_name', 'status', 'pay_price', 'total_num', 'add_time', 'pay_time', 'paid'])->order('add_time desc')->select()->toArray();
}
public function getSubOrderNotSendList(int $pid)
{
return $this->getModel()->where('pid', $pid)->where('status', 1)->select()->toArray();
}
public function getSubOrderNotSend(int $pid, int $order_id)
{
return $this->getModel()->where('pid', $pid)->where('status', 0)->where('id', '<>', $order_id)->count();
}
public function getSubOrderNotTake(int $pid, int $order_id)
{
return $this->getModel()->where('pid', $pid)->where('status', 1)->where('id', '<>', $order_id)->count();
}
}

View File

@ -33,17 +33,27 @@ class StoreOrderInvoiceDao extends BaseDao
return StoreOrderInvoice::class;
}
public function search(array $where = [])
/**
* 发票搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/03/20
*/
public function search(array $where = [], bool $search = false)
{
$realName = $where['real_name'] ?? '';
$fieldKey = $where['field_key'] ?? '';
$fieldKey = $fieldKey == 'all' ? '' : $fieldKey;
$type = $where['type'] ?? '';
unset($where['type']);
return parent::search($where)->when($type, function ($query) use ($type) {
return parent::search($where, $search)->when($type, function ($query) use ($type) {
switch ($type) {
case 1://待开
$query->where('is_invoice', 0)->where('invoice_time', 0)->where('is_refund', 0);
$query->where('is_invoice', 0)->where('is_refund', 0);
break;
case 2://已开
$query->where('is_invoice', 1);

View File

@ -19,14 +19,16 @@ class StoreOrderRefundDao extends BaseDao
/**
* 搜索器
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
$realName = $where['real_name'] ?? '';
$fieldKey = $where['field_key'] ?? '';
$fieldKey = $fieldKey == 'all' ? '' : $fieldKey;
return parent::search($where)->when(isset($where['refund_type']) && $where['refund_type'] !== '', function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['refund_type']) && $where['refund_type'] !== '', function ($query) use ($where) {
if ($where['refund_type'] == 0) {
$query->where('refund_type', '>', 0);
} else {

View File

@ -59,7 +59,7 @@ class StoreOrderStoreOrderStatusDao extends BaseDao
* @param array $where
* @return \crmeb\basic\BaseModel|mixed|\think\Model
*/
protected function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return $this->getModel()->when(isset($where['paid']), function ($query) use ($where) {
$query->where($this->alias . '.paid', $where['paid']);

View File

@ -45,7 +45,9 @@ class StoreCategoryDao extends BaseDao
/**
*
* @param array $where
* @param array $field
* @return array
* @throws \ReflectionException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
@ -59,6 +61,7 @@ class StoreCategoryDao extends BaseDao
* 添加修改选择上级分类列表
* @param array $where
* @return array
* @throws \ReflectionException
*/
public function getMenus(array $where)
{

View File

@ -39,7 +39,7 @@ class StoreProductDao extends BaseDao
*/
public function getCount(array $where)
{
return $this->search($where)->when(isset($where['sid']) && $where['sid'], function ($query) use ($where) {
return $this->search($where, false)->when(isset($where['sid']) && $where['sid'], function ($query) use ($where) {
$query->whereIn('id', function ($query) use ($where) {
$query->name('store_product_cate')->where('cate_id', $where['sid'])->field('product_id')->select();
});
@ -63,7 +63,9 @@ class StoreProductDao extends BaseDao
* @param array $where
* @param int $page
* @param int $limit
* @param string $order
* @return array
* @throws \ReflectionException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
@ -71,7 +73,7 @@ class StoreProductDao extends BaseDao
public function getList(array $where, int $page = 0, int $limit = 0, string $order = '')
{
$prefix = Config::get('database.connections.' . Config::get('database.default') . '.prefix');
return $this->search($where)->order(($order ? $order . ' ,' : '') . 'sort desc,id desc')
return $this->search($where, false)->order(($order ? $order . ' ,' : '') . 'sort desc,id desc')
->when($page != 0 && $limit != 0, function ($query) use ($page, $limit) {
$query->page($page, $limit);
})->field([
@ -79,7 +81,6 @@ class StoreProductDao extends BaseDao
'(SELECT count(*) FROM `' . $prefix . 'store_product_relation` WHERE `product_id` = `' . $prefix . 'store_product`.`id` AND `type` = \'collect\') as collect',
'(SELECT count(*) FROM `' . $prefix . 'store_product_relation` WHERE `product_id` = `' . $prefix . 'store_product`.`id` AND `type` = \'like\') as likes',
'(SELECT SUM(stock) FROM `' . $prefix . 'store_product_attr_value` WHERE `product_id` = `' . $prefix . 'store_product`.`id` AND `type` = 0) as stock',
// '(SELECT SUM(sales) FROM `' . $prefix . 'store_product_attr_value` WHERE `product_id` = `' . $prefix . 'store_product`.`id` AND `type` = 0) as sales',
'(SELECT count(*) FROM `' . $prefix . 'store_visit` WHERE `product_id` = `' . $prefix . 'store_product`.`id` AND `product_type` = \'product\') as visitor',
])->select()->toArray();
}
@ -112,7 +113,7 @@ class StoreProductDao extends BaseDao
public function getSearchList(array $where, int $page = 0, int $limit = 0, array $field = ['*'], array $with = ['couponId', 'description'])
{
if (isset($where['star'])) $with[] = 'star';
return $this->search($where)->with($with)->when($page != 0 && $limit != 0, function ($query) use ($page, $limit) {
return $this->search($where, false)->with($with)->when($page != 0 && $limit != 0, function ($query) use ($page, $limit) {
$query->page($page, $limit);
})->when(isset($where['sid']) && $where['sid'], function ($query) use ($where) {
$query->whereIn('id', function ($query) use ($where) {

View File

@ -28,7 +28,7 @@ class StoreProductLogDao extends BaseDao
public function getRanking($where)
{
return $this->search($where)->with('storeName')
return $this->search($where, false)->with('storeName')
->field([
'product_id',
'SUM(visit_num) as visit',
@ -47,7 +47,7 @@ class StoreProductLogDao extends BaseDao
public function getRepeats($where, $product_id)
{
return count($this->search($where)->where('type', 'pay')->where('product_id', $product_id)->field('count(pay_uid) as p')->group('pay_uid')->having('p>1')->select());
return count($this->search($where, false)->where('type', 'pay')->where('product_id', $product_id)->field('count(pay_uid) as p')->group('pay_uid')->having('p>1')->select());
}
/**

View File

@ -25,11 +25,13 @@ class StoreServiceAuxiliaryDao extends AuxiliaryDao
/**
* 搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
protected function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->where('type', 0);
return parent::search($where, $search)->where('type', 0);
}
}

View File

@ -57,7 +57,7 @@ class StoreServiceDao extends BaseDao
*/
public function getServiceList(array $where, int $page, int $limit)
{
return $this->search($where)->with('user')->when($page && $limit, function ($query) use ($page, $limit) {
return $this->search($where, false)->with('user')->when($page && $limit, function ($query) use ($page, $limit) {
$query->page($page, $limit);
})->when(isset($where['noId']), function ($query) use ($where) {
$query->whereNotIn('uid', $where['noId']);
@ -86,4 +86,20 @@ class StoreServiceDao extends BaseDao
return $this->getModel()->whereNotIn('uid', $where['notUid'])->update($data);
}
/**
* 统计数量
* @param array $where
* @param bool $search
* @return int
* @throws \ReflectionException
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/05/10
*/
public function count(array $where = [], $search = true)
{
return $this->search($where, false)->when(isset($where['noId']), function ($query) use ($where) {
$query->whereNotIn('uid', $where['noId']);
})->count();
}
}

View File

@ -83,7 +83,7 @@ class StoreServiceLogDao extends BaseDao
$query->where('id', '<', $upperId)->limit($limit)->order('id DESC');
})->when(!$upperId, function ($query) use ($limit) {
$query->limit($limit)->order('id DESC');
})->with(['user', 'service'])->select()->toArray();
})->with(['user'])->select()->toArray();
}
/**

View File

@ -39,7 +39,7 @@ class SystemCityDao extends BaseDao
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getCityList(array $where,string $field = '*')
public function getCityList(array $where, string $field = '*')
{
return $this->search($where)->field($field)->select()->toArray();
}
@ -87,4 +87,15 @@ class SystemCityDao extends BaseDao
{
return $this->getModel()->with('children')->where('parent_id', 0)->order('id asc')->select()->toArray();
}
/**
* 获取城市数据完整列表
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/10
*/
public function fullList($field = '*')
{
return $this->getModel()->order('id asc')->field($field)->select()->toArray();
}
}

View File

@ -0,0 +1,38 @@
<?php
/**
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* | Author: CRMEB Team <admin@crmeb.com>
* +----------------------------------------------------------------------
*/
namespace app\dao\system;
use app\dao\BaseDao;
use app\model\system\SystemCrud;
/**
* Class SystemCrudDao
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
* @package app\dao\system
*/
class SystemCrudDao extends BaseDao
{
/**
* 获取当前模型
* @return string
*/
protected function setModel(): string
{
return SystemCrud::class;
}
}

View File

@ -31,6 +31,18 @@ class SystemMenusDao extends BaseDao
return SystemMenus::class;
}
/**
* @param array $menusIds
* @return bool
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/13
*/
public function deleteMenus(array $menusIds)
{
return $this->getModel()->whereIn('id', $menusIds)->delete();
}
/**
* 获取权限菜单列表
* @param array $where
@ -43,7 +55,7 @@ class SystemMenusDao extends BaseDao
public function getMenusRoule(array $where, ?array $field = [])
{
if (!$field) {
$field = ['id', 'menu_name', 'icon', 'pid', 'sort', 'menu_path', 'is_show', 'header', 'is_header', 'is_show_path'];
$field = ['id', 'menu_name', 'icon', 'pid', 'sort', 'menu_path', 'is_show', 'header', 'is_header', 'is_show_path', 'is_show'];
}
return $this->search($where)->field($field)->order('sort DESC,id DESC')->failException(false)->select();
}
@ -76,10 +88,10 @@ class SystemMenusDao extends BaseDao
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getMenusList(array $where)
public function getMenusList(array $where, array $field = ['*'])
{
$where = array_merge($where, ['is_del' => 0]);
return $this->search($where)->order('sort DESC,id ASC')->select();
return $this->search($where)->field($field)->order('sort DESC,id ASC')->select();
}
/**
@ -100,7 +112,7 @@ class SystemMenusDao extends BaseDao
* @param string $key
* @return array
*/
public function column(array $where, string $field, string $key)
public function column(array $where, string $field, string $key = '')
{
return $this->search($where)->column($field, $key);
}
@ -133,4 +145,17 @@ class SystemMenusDao extends BaseDao
return $this->search(['is_show' => 1, 'auth_type' => 1, 'is_del' => 0, 'is_show_path' => 0])
->field('id,pid,menu_name,menu_path,unique_auth,sort')->order('sort DESC')->select();
}
/**
* @param string $path
* @param string $method
* @return bool
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/20
*/
public function deleteMenu(string $path, string $method)
{
return $this->getModel()->where('api_url', $path)->where('methods', $method)->delete();
}
}

View File

@ -0,0 +1,40 @@
<?php
/**
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* | Author: CRMEB Team <admin@crmeb.com>
* +----------------------------------------------------------------------
*/
namespace app\dao\system;
use app\dao\BaseDao;
use app\model\system\SystemRouteCate;
/**
* Class SystemRouteCateDao
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
* @package app\dao\system
*/
class SystemRouteCateDao extends BaseDao
{
/**
* @return string
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
protected function setModel(): string
{
return SystemRouteCate::class;
}
}

View File

@ -0,0 +1,54 @@
<?php
/**
* +----------------------------------------------------------------------
* | CRMEB [ CRMEB赋能开发者助力企业发展 ]
* +----------------------------------------------------------------------
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
* +----------------------------------------------------------------------
* | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
* +----------------------------------------------------------------------
* | Author: CRMEB Team <admin@crmeb.com>
* +----------------------------------------------------------------------
*/
namespace app\dao\system;
use app\dao\BaseDao;
use app\model\system\SystemRoute;
/**
* Class SystemRouteDao
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
* @package app\dao\system
*/
class SystemRouteDao extends BaseDao
{
/**
* @return string
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/6
*/
protected function setModel(): string
{
return SystemRoute::class;
}
/**
* @param array $ids
* @return bool
* @author 等风来
* @email 136327134@qq.com
* @date 2023/4/23
*/
public function deleteRoutes(array $ids)
{
return $this->getModel()::destroy(function ($q) use ($ids) {
$q->whereIn('id', $ids);
}, true);
}
}

View File

@ -102,6 +102,6 @@ class SystemAdminDao extends BaseDao
*/
public function checkRoleUse(int $id): bool
{
return (bool)$this->getModel()->whereFindInSet('roles', $id)->count();
return (bool)$this->getModel()->where('is_del', 0)->whereFindInSet('roles', $id)->count();
}
}

View File

@ -58,11 +58,13 @@ class SystemAttachmentCategoryDao extends BaseDao
/**
* 搜索附件分类search
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['id']), function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['id']), function ($query) use ($where) {
$query->whereIn('id', $where['id']);
});
}

View File

@ -34,20 +34,23 @@ class SystemConfigDao extends BaseDao
* 获取某个系统配置
* @param string $configNmae
* @return mixed
* @throws \ReflectionException
*/
public function getConfigValue(string $configNmae)
{
return $this->withSearchSelect(['menu_name'], ['menu_name' => $configNmae])->value('value');
return $this->search(['menu_name' => $configNmae])->value('value');
}
/**
* 获取所有配置
* @param array $configName
* @return array
* @throws \ReflectionException
*/
public function getConfigAll(array $configName = [])
{
if ($configName) {
return $this->withSearchSelect(['menu_name'], ['menu_name' => $configName])->column('value', 'menu_name');
return $this->search(['menu_name' => $configName])->column('value', 'menu_name');
} else {
return $this->getModel()->column('value', 'menu_name');
}
@ -88,6 +91,7 @@ class SystemConfigDao extends BaseDao
* 获取上传配置中的上传类型
* @param string $configName
* @return array
* @throws \ReflectionException
*/
public function getUploadTypeList(string $configName)
{

View File

@ -64,14 +64,18 @@ class SystemStorageDao extends BaseDao
/**
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['type']), function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['type']), function ($query) use ($where) {
$query->where('type', $where['type']);
})->where('is_delete', 0)->when(isset($where['access_key']), function ($query) use ($where) {
$query->where('access_key', $where['access_key']);
})->when(!empty($where['id']), function ($query) use ($where) {
$query->where('id', $where['id']);
});
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace app\dao\system\log;
use app\dao\BaseDao;
use app\model\system\log\SystemFileInfo;
/**
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/07
*/
class SystemFileInfoDao extends BaseDao
{
/**
* 设置模型
* @return string
*/
protected function setModel(): string
{
return SystemFileInfo::class;
}
}

View File

@ -66,7 +66,7 @@ class CapitalFlowDao extends BaseDao
$timeUnix = "%Y-%m";
break;
}
$model = $this->search($where)
$model = $this->search($where, false)
->when(isset($where['type']) && $where['type'] !== '', function ($query) use ($where, $timeUnix) {
$query->field("FROM_UNIXTIME(add_time,'$timeUnix') as day,sum(if(price >= 0,price,0)) as income_price,sum(if(price < 0,price,0)) as exp_price,add_time");
$query->group("FROM_UNIXTIME(add_time, '$timeUnix')");

View File

@ -242,7 +242,7 @@ class UserBillDao extends BaseDao
*/
public function getWhereSumField(array $where, string $field)
{
return $this->search($where)
return $this->search($where, false)
->when(isset($where['timeKey']), function ($query) use ($where) {
$query->whereBetweenTime('add_time', $where['timeKey']['start_time'], $where['timeKey']['end_time']);
})
@ -257,7 +257,7 @@ class UserBillDao extends BaseDao
*/
public function getGroupField(array $where, string $field, string $group)
{
return $this->search($where)
return $this->search($where, false)
->when(isset($where['timeKey']), function ($query) use ($where, $field, $group) {
$query->whereBetweenTime('add_time', $where['timeKey']['start_time'], $where['timeKey']['end_time']);
$timeUinx = "%H";

View File

@ -34,11 +34,13 @@ class UserBrokerageFrozenDao extends BaseDao
/**
* 搜索
* @param array $where
* @param bool $search
* @return \crmeb\basic\BaseModel|mixed|\think\Model
* @throws \ReflectionException
*/
public function search(array $where = [])
public function search(array $where = [], bool $search = false)
{
return parent::search($where)->when(isset($where['isFrozen']), function ($query) use ($where) {
return parent::search($where, $search)->when(isset($where['isFrozen']), function ($query) use ($where) {
if ($where['isFrozen']) {
$query->where('frozen_time', '>', time());
} else {

View File

@ -176,6 +176,7 @@ class UserDao extends BaseDao
* 获取推广员ids
* @param array $where
* @return array
* @throws \ReflectionException
*/
public function getAgentUserIds(array $where)
{

Some files were not shown because too many files have changed in this diff Show More