mirror of
https://gitee.com/niucloud-team/niucloud.git
synced 2026-03-19 04:04:02 +00:00
update niucloud
This commit is contained in:
parent
71defadfff
commit
77d9446299
@ -60,7 +60,7 @@ class Request extends \think\Request
|
||||
$filter_rule = [
|
||||
"/<(\\/?)(script|i?frame|style|html|body|title|link|metaf|alert|font|object|\\?|\\%)([^>]*?)>/isU",
|
||||
"/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",
|
||||
"/select|join|where|drop|like|modify|rename|insert|update|table|database|alter|truncate|\'|\/\*|\.\.\/|\.\/|union|into|load_file|outfile/is"
|
||||
"/\\b(select|join|where|drop|like|modify|rename|insert|update|table|database|alter|truncate|\'|\/\*|\.\.\/|\.\/|union|into|load_file|outfile)\\b/is"
|
||||
];
|
||||
return preg_replace($filter_rule, '', $param);
|
||||
}
|
||||
|
||||
@ -13,7 +13,6 @@ namespace app\adminapi\controller\addon;
|
||||
|
||||
use app\dict\addon\AddonDict;
|
||||
use app\service\admin\addon\AddonDevelopService;
|
||||
use app\service\admin\niucloud\AppService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
|
||||
@ -26,16 +25,16 @@ class AddonDevelop extends BaseAdminController
|
||||
public function lists()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['search', '']
|
||||
[ 'search', '' ]
|
||||
]);
|
||||
return success((new AddonDevelopService())->getList($data['search']));
|
||||
return success(( new AddonDevelopService() )->getList($data[ 'search' ]));
|
||||
}
|
||||
|
||||
|
||||
public function info($key)
|
||||
{
|
||||
return success((new AddonDevelopService())->getInfo($key));
|
||||
return success(( new AddonDevelopService() )->getInfo($key));
|
||||
}
|
||||
|
||||
/**
|
||||
* 开发插件新增
|
||||
* @return Response
|
||||
@ -43,19 +42,19 @@ class AddonDevelop extends BaseAdminController
|
||||
public function add(string $key)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['title', ''],
|
||||
['desc', ''],
|
||||
['icon', ''],
|
||||
['cover', ''],
|
||||
['key', ''],
|
||||
['author', ''],
|
||||
['version', ''],
|
||||
['type', ''],
|
||||
['support_app', ''],
|
||||
[ 'title', '' ],
|
||||
[ 'desc', '' ],
|
||||
[ 'icon', '' ],
|
||||
[ 'cover', '' ],
|
||||
[ 'key', '' ],
|
||||
[ 'author', '' ],
|
||||
[ 'version', '' ],
|
||||
[ 'type', '' ],
|
||||
[ 'support_app', '' ],
|
||||
], false);
|
||||
$data['key'] = $key;
|
||||
$data[ 'key' ] = $key;
|
||||
$this->validate($data, 'app\validate\addon\AddonDevelop.add');
|
||||
(new AddonDevelopService())->add($key, $data);
|
||||
( new AddonDevelopService() )->add($key, $data);
|
||||
return success('ADD_SUCCESS');
|
||||
}
|
||||
|
||||
@ -67,19 +66,19 @@ class AddonDevelop extends BaseAdminController
|
||||
public function edit(string $key)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['title', ''],
|
||||
['desc', ''],
|
||||
['icon', ''],
|
||||
['cover', ''],
|
||||
['key', ''],
|
||||
['author', ''],
|
||||
['version', ''],
|
||||
['type', ''],
|
||||
['support_app', ''],
|
||||
[ 'title', '' ],
|
||||
[ 'desc', '' ],
|
||||
[ 'icon', '' ],
|
||||
[ 'cover', '' ],
|
||||
[ 'key', '' ],
|
||||
[ 'author', '' ],
|
||||
[ 'version', '' ],
|
||||
[ 'type', '' ],
|
||||
[ 'support_app', '' ],
|
||||
], false);
|
||||
$data['key'] = $key;
|
||||
$data[ 'key' ] = $key;
|
||||
$this->validate($data, 'app\validate\addon\AddonDevelop.edit');
|
||||
(new AddonDevelopService())->edit($key, $data);
|
||||
( new AddonDevelopService() )->edit($key, $data);
|
||||
return success('EDIT_SUCCESS');
|
||||
}
|
||||
|
||||
@ -91,7 +90,7 @@ class AddonDevelop extends BaseAdminController
|
||||
*/
|
||||
public function del(string $key)
|
||||
{
|
||||
(new AddonDevelopService())->del($key);
|
||||
( new AddonDevelopService() )->del($key);
|
||||
return success('DELETE_SUCCESS');
|
||||
}
|
||||
|
||||
@ -100,8 +99,9 @@ class AddonDevelop extends BaseAdminController
|
||||
* @param $key
|
||||
* @return void
|
||||
*/
|
||||
public function checkKey($key){
|
||||
return success(data:(new AddonDevelopService())->checkKey($key));
|
||||
public function checkKey($key)
|
||||
{
|
||||
return success(data:( new AddonDevelopService() )->checkKey($key));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -109,8 +109,9 @@ class AddonDevelop extends BaseAdminController
|
||||
* @param $key
|
||||
* @return Response
|
||||
*/
|
||||
public function build($key){
|
||||
(new AddonDevelopService())->build($key);
|
||||
public function build($key)
|
||||
{
|
||||
( new AddonDevelopService() )->build($key);
|
||||
return success();
|
||||
}
|
||||
|
||||
@ -119,16 +120,18 @@ class AddonDevelop extends BaseAdminController
|
||||
* @param $key
|
||||
* @return Response
|
||||
*/
|
||||
public function download($key){
|
||||
public function download($key)
|
||||
{
|
||||
|
||||
return success(data:(new AddonDevelopService())->download($key));
|
||||
return success(data:( new AddonDevelopService() )->download($key));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function keyBlackList() {
|
||||
public function keyBlackList()
|
||||
{
|
||||
return success(AddonDict::ADDON_KEY_BLACK_LIST);
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,8 +22,9 @@ class Upgrade extends BaseAdminController
|
||||
* @param $app_key
|
||||
* @return Response
|
||||
*/
|
||||
public function upgrade($addon = ''){
|
||||
return success(data:(new UpgradeService())->upgrade($addon));
|
||||
public function upgrade($addon = '')
|
||||
{
|
||||
return success(data:( new UpgradeService() )->upgrade($addon));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -31,8 +32,9 @@ class Upgrade extends BaseAdminController
|
||||
* @param $app_key
|
||||
* @return Response
|
||||
*/
|
||||
public function execute($addon = ''){
|
||||
return success(data:(new UpgradeService())->execute());
|
||||
public function execute($addon = '')
|
||||
{
|
||||
return success(data:( new UpgradeService() )->execute());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -40,16 +42,18 @@ class Upgrade extends BaseAdminController
|
||||
* @param $addon
|
||||
* @return Response
|
||||
*/
|
||||
public function getUpgradeContent($addon = '') {
|
||||
return success(data:(new UpgradeService())->getUpgradeContent($addon));
|
||||
public function getUpgradeContent($addon = '')
|
||||
{
|
||||
return success(data:( new UpgradeService() )->getUpgradeContent($addon));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取正在进行的升级任务
|
||||
* @return Response
|
||||
*/
|
||||
public function getUpgradeTask() {
|
||||
return success(data:(new UpgradeService())->getUpgradeTask());
|
||||
public function getUpgradeTask()
|
||||
{
|
||||
return success(data:( new UpgradeService() )->getUpgradeTask());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -57,15 +61,17 @@ class Upgrade extends BaseAdminController
|
||||
* @param $addon
|
||||
* @return Response
|
||||
*/
|
||||
public function upgradePreCheck($addon = '') {
|
||||
return success(data:(new UpgradeService())->upgradePreCheck($addon));
|
||||
public function upgradePreCheck($addon = '')
|
||||
{
|
||||
return success(data:( new UpgradeService() )->upgradePreCheck($addon));
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除
|
||||
* @return Response
|
||||
*/
|
||||
public function clearUpgradeTask() {
|
||||
return success(data:(new UpgradeService())->clearUpgradeTask());
|
||||
public function clearUpgradeTask()
|
||||
{
|
||||
return success(data:( new UpgradeService() )->clearUpgradeTask());
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,9 +29,9 @@ class Auth extends BaseAdminController
|
||||
public function authMenuList()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['addon', 'all'],
|
||||
[ 'addon', 'all' ],
|
||||
]);
|
||||
return success((new AuthService())->getAuthMenuList(1, $data['addon']));
|
||||
return success(( new AuthService() )->getAuthMenuList(1, $data[ 'addon' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -41,19 +41,20 @@ class Auth extends BaseAdminController
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function getAuthAddonList(){
|
||||
return success((new AuthSiteService())->getAuthAddonList());
|
||||
public function getAuthAddonList()
|
||||
{
|
||||
return success(( new AuthSiteService() )->getAuthAddonList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取登录用户信息
|
||||
* @return Response
|
||||
*/
|
||||
public function get()
|
||||
{
|
||||
return success((new AuthService())->getAuthInfo());
|
||||
return success(( new AuthService() )->getAuthInfo());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改登录用户信息
|
||||
* @param $field
|
||||
@ -62,27 +63,26 @@ class Auth extends BaseAdminController
|
||||
public function modify($field)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['value', ''],
|
||||
['field', $field]
|
||||
[ 'value', '' ],
|
||||
[ 'field', $field ]
|
||||
]);
|
||||
// $this->validate($data, 'app\validate\sys\User.modify');
|
||||
(new AuthService())->modifyAuth($field, $data['value']);
|
||||
( new AuthService() )->modifyAuth($field, $data[ 'value' ]);
|
||||
return success('MODIFY_SUCCESS');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新用户
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['real_name', ''],
|
||||
['head_img', ''],
|
||||
['password', ''],
|
||||
['original_password', '']
|
||||
[ 'real_name', '' ],
|
||||
[ 'head_img', '' ],
|
||||
[ 'password', '' ],
|
||||
[ 'original_password', '' ]
|
||||
]);
|
||||
(new AuthService())->editAuth($data);
|
||||
( new AuthService() )->editAuth($data);
|
||||
return success('MODIFY_SUCCESS');
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ class Auth extends BaseAdminController
|
||||
*/
|
||||
public function site()
|
||||
{
|
||||
return success((new AuthSiteService())->getSiteInfo());
|
||||
return success(( new AuthSiteService() )->getSiteInfo());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -104,6 +104,6 @@ class Auth extends BaseAdminController
|
||||
*/
|
||||
public function getShowMenuList()
|
||||
{
|
||||
return success((new AuthSiteService())->getShowMenuList());
|
||||
return success(( new AuthSiteService() )->getShowMenuList());
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,7 +19,6 @@ use think\Response;
|
||||
class Config extends BaseAdminController
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* 获取登录设置
|
||||
* @return Response
|
||||
|
||||
@ -11,18 +11,11 @@
|
||||
|
||||
namespace app\adminapi\controller\login;
|
||||
|
||||
use addon\vipcard\app\service\core\CoreOrderRefundService;
|
||||
use app\dict\member\MemberAccountTypeDict;
|
||||
use app\service\admin\auth\ConfigService;
|
||||
use app\service\admin\auth\LoginService;
|
||||
use app\service\admin\member\MemberService;
|
||||
use app\service\admin\upgrade\UpgradeService;
|
||||
use app\service\core\addon\CoreAddonDevelopBuildService;
|
||||
use app\service\core\addon\WapTrait;
|
||||
use app\service\core\menu\CoreMenuService;
|
||||
use app\service\core\upload\CoreFileService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\facade\Db;
|
||||
use think\Response;
|
||||
|
||||
class Login extends BaseAdminController
|
||||
@ -37,12 +30,12 @@ class Login extends BaseAdminController
|
||||
{
|
||||
|
||||
$data = $this->request->params([
|
||||
['username', ''],
|
||||
['password', ''],
|
||||
[ 'username', '' ],
|
||||
[ 'password', '' ],
|
||||
]);
|
||||
//参数验证
|
||||
//验证码验证
|
||||
$result = (new LoginService())->login($data['username'], $data['password'], $app_type);
|
||||
$result = ( new LoginService() )->login($data[ 'username' ], $data[ 'password' ], $app_type);
|
||||
if (!$result) {
|
||||
//账号密码错误...., 重置验证码
|
||||
return fail('USER_ERROR');
|
||||
@ -57,26 +50,26 @@ class Login extends BaseAdminController
|
||||
*/
|
||||
public function logout()
|
||||
{
|
||||
(new LoginService)->logout();
|
||||
( new LoginService )->logout();
|
||||
return success('LOGOUT');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取登录设置
|
||||
* @return Response
|
||||
*/
|
||||
public function getConfig()
|
||||
{
|
||||
return success((new ConfigService())->getConfig());
|
||||
return success(( new ConfigService() )->getConfig());
|
||||
}
|
||||
|
||||
public function test(){
|
||||
(new UpgradeService())->executeSql(root_path().'app/upgrade/v011/upgrade.sql');
|
||||
public function test()
|
||||
{
|
||||
( new UpgradeService() )->executeSql(root_path() . 'app/upgrade/v011/upgrade.sql');
|
||||
}
|
||||
|
||||
public function geAddonPackagePath(string $addon)
|
||||
{
|
||||
return root_path() . 'addon' .DIRECTORY_SEPARATOR . $addon . DIRECTORY_SEPARATOR . 'package' . DIRECTORY_SEPARATOR;
|
||||
return root_path() . 'addon' . DIRECTORY_SEPARATOR . $addon . DIRECTORY_SEPARATOR . 'package' . DIRECTORY_SEPARATOR;
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,13 +26,13 @@ class Account extends BaseAdminController
|
||||
public function point()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['from_type', ''],
|
||||
['create_time', []],
|
||||
['keywords', ''],
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data['account_type'] = 'point';
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
$data[ 'account_type' ] = 'point';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -41,22 +41,22 @@ class Account extends BaseAdminController
|
||||
public function sumPoint()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
[ 'member_id', '' ],
|
||||
]);
|
||||
$member_account_service = new MemberAccountService();
|
||||
$member_service = new MemberService();
|
||||
|
||||
if (empty($data['member_id'])) {
|
||||
if (empty($data[ 'member_id' ])) {
|
||||
$commission_data = [
|
||||
'point_get' => $member_service->getSum('point_get'),//累计
|
||||
'point_use' => abs($member_account_service->getExpensesSumAccount(MemberAccountTypeDict::POINT)),
|
||||
];
|
||||
return success($commission_data);
|
||||
} else {
|
||||
$info = $member_account_service->getMemberAccountInfo($data['member_id']);
|
||||
$info = $member_account_service->getMemberAccountInfo($data[ 'member_id' ]);
|
||||
$commission_data = [
|
||||
'point_get' => $info['point_get'],
|
||||
'point_use' => abs($member_account_service->getExpensesSumAccount(MemberAccountTypeDict::POINT, $data['member_id'])),
|
||||
'point_get' => $info[ 'point_get' ],
|
||||
'point_use' => abs($member_account_service->getExpensesSumAccount(MemberAccountTypeDict::POINT, $data[ 'member_id' ])),
|
||||
];
|
||||
return success($commission_data);
|
||||
}
|
||||
@ -69,13 +69,13 @@ class Account extends BaseAdminController
|
||||
public function balance()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['from_type', ''],
|
||||
['create_time', []],
|
||||
['keywords', ''],
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data['account_type'] = 'balance';
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
$data[ 'account_type' ] = 'balance';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -85,28 +85,29 @@ class Account extends BaseAdminController
|
||||
public function money()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['from_type', ''],
|
||||
['create_time', []],
|
||||
['keywords', ''],
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data['account_type'] = 'money';
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
$data[ 'account_type' ] = 'money';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询成长值
|
||||
* @return Response
|
||||
*/
|
||||
public function growth() {
|
||||
public function growth()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['from_type', ''],
|
||||
['create_time', []],
|
||||
['keywords', ''],
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data['account_type'] = 'growth';
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
$data[ 'account_type' ] = 'growth';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,12 +116,12 @@ class Account extends BaseAdminController
|
||||
public function adjustPoint()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['account_data', 0],
|
||||
['memo', ''],
|
||||
[ 'member_id', '' ],
|
||||
[ 'account_data', 0 ],
|
||||
[ 'memo', '' ],
|
||||
]);
|
||||
$res = (new MemberAccountService())->adjustPoint($data);
|
||||
return success('SUCCESS', ['id' => $res]);
|
||||
$res = ( new MemberAccountService() )->adjustPoint($data);
|
||||
return success('SUCCESS', [ 'id' => $res ]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -129,12 +130,12 @@ class Account extends BaseAdminController
|
||||
public function adjustBalance()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['account_data', 0],
|
||||
['memo', ''],
|
||||
[ 'member_id', '' ],
|
||||
[ 'account_data', 0 ],
|
||||
[ 'memo', '' ],
|
||||
]);
|
||||
$res = (new MemberAccountService())->adjustBalance($data);
|
||||
return success('SUCCESS', ['id' => $res]);
|
||||
$res = ( new MemberAccountService() )->adjustBalance($data);
|
||||
return success('SUCCESS', [ 'id' => $res ]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -144,12 +145,12 @@ class Account extends BaseAdminController
|
||||
public function adjustMoney()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['account_data', 0],
|
||||
['memo', ''],
|
||||
[ 'member_id', '' ],
|
||||
[ 'account_data', 0 ],
|
||||
[ 'memo', '' ],
|
||||
]);
|
||||
$res = (new MemberAccountService())->adjustMoney($data);
|
||||
return success('SUCCESS', ['id' => $res]);
|
||||
$res = ( new MemberAccountService() )->adjustMoney($data);
|
||||
return success('SUCCESS', [ 'id' => $res ]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -159,13 +160,13 @@ class Account extends BaseAdminController
|
||||
public function commission()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
['from_type', ''],
|
||||
['create_time', []],
|
||||
['keywords', ''],
|
||||
[ 'member_id', '' ],
|
||||
[ 'from_type', '' ],
|
||||
[ 'create_time', [] ],
|
||||
[ 'keywords', '' ],
|
||||
]);
|
||||
$data['account_type'] = 'commission';
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
$data[ 'account_type' ] = 'commission';
|
||||
return success(( new MemberAccountService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -174,12 +175,12 @@ class Account extends BaseAdminController
|
||||
public function sumCommission()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
[ 'member_id', '' ],
|
||||
]);
|
||||
$member_account_service = new MemberAccountService();
|
||||
$member_service = new MemberService();
|
||||
|
||||
if (empty($data['member_id'])) {
|
||||
if (empty($data[ 'member_id' ])) {
|
||||
$commission_data = [
|
||||
'total_commission' => $member_service->getSum('commission_get'),//累计
|
||||
'commission' => $member_service->getSum('commission'),//未提现
|
||||
@ -188,12 +189,12 @@ class Account extends BaseAdminController
|
||||
];
|
||||
return success($commission_data);
|
||||
} else {
|
||||
$info = $member_account_service->getMemberAccountInfo($data['member_id']);
|
||||
$info = $member_account_service->getMemberAccountInfo($data[ 'member_id' ]);
|
||||
$commission_data = [
|
||||
'commission' => $info['commission'],
|
||||
'commission_cash_outing' => $info['commission_cash_outing'],
|
||||
'withdrawn_commission' => $member_account_service->getWithdrawnCommission($data['member_id']),//已提现
|
||||
'total_commission' => $info['commission_get'],
|
||||
'commission' => $info[ 'commission' ],
|
||||
'commission_cash_outing' => $info[ 'commission_cash_outing' ],
|
||||
'withdrawn_commission' => $member_account_service->getWithdrawnCommission($data[ 'member_id' ]),//已提现
|
||||
'total_commission' => $info[ 'commission_get' ],
|
||||
];
|
||||
return success($commission_data);
|
||||
}
|
||||
@ -205,10 +206,10 @@ class Account extends BaseAdminController
|
||||
public function sumBalance()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['member_id', ''],
|
||||
[ 'member_id', '' ],
|
||||
]);
|
||||
$member_account_service = new MemberAccountService();
|
||||
if (empty($data['member_id'])) {
|
||||
if (empty($data[ 'member_id' ])) {
|
||||
|
||||
$balance_data = [
|
||||
MemberAccountTypeDict::BALANCE => number_format($member_account_service->getSumAccount(MemberAccountTypeDict::BALANCE), 2, '.', ''),
|
||||
@ -216,7 +217,7 @@ class Account extends BaseAdminController
|
||||
];
|
||||
return success($balance_data);
|
||||
} else {
|
||||
return success($member_account_service->getMemberAccountInfo($data['member_id']));
|
||||
return success($member_account_service->getMemberAccountInfo($data[ 'member_id' ]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -227,7 +228,7 @@ class Account extends BaseAdminController
|
||||
*/
|
||||
public function changeType(string $account_type)
|
||||
{
|
||||
$res = (new MemberAccountService())->getFromType($account_type);
|
||||
$res = ( new MemberAccountService() )->getFromType($account_type);
|
||||
return success($res);
|
||||
}
|
||||
|
||||
@ -239,5 +240,4 @@ class Account extends BaseAdminController
|
||||
return success(MemberAccountTypeDict::getType());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@ use app\dict\member\MemberDict;
|
||||
use app\dict\member\MemberRegisterChannelDict;
|
||||
use app\dict\member\MemberRegisterTypeDict;
|
||||
use app\service\admin\member\MemberService;
|
||||
use app\service\core\sys\CoreExportService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\DbException;
|
||||
|
||||
@ -32,18 +32,6 @@ class MemberLevel extends BaseAdminController
|
||||
return success(( new MemberLevelService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员等级列表
|
||||
* @return Response
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ 'level_name', '' ],
|
||||
]);
|
||||
return success(( new MemberLevelService() )->getList($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 会员等级详情
|
||||
* @param int $id
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
|
||||
namespace app\adminapi\controller\pay;
|
||||
|
||||
use app\dict\pay\PayDict;
|
||||
use app\service\admin\pay\PayService;
|
||||
use core\base\BaseAdminController;
|
||||
|
||||
|
||||
@ -62,7 +62,6 @@ class PayChannel extends BaseAdminController
|
||||
return success((new PayChannelService())->getListByChannel($channel));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 支付设置
|
||||
* @return Response
|
||||
|
||||
@ -87,7 +87,6 @@ class SiteGroup extends BaseAdminController
|
||||
*/
|
||||
public function del($group_id)
|
||||
{
|
||||
|
||||
(new SiteGroupService())->del($group_id);
|
||||
return success('DELETE_SUCCESS');
|
||||
}
|
||||
|
||||
@ -32,7 +32,6 @@ class User extends BaseAdminController
|
||||
]);
|
||||
$list = (new SiteUserService())->getPage($data);
|
||||
return success($list);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,7 +65,6 @@ class User extends BaseAdminController
|
||||
return success('ADD_SUCCESS', ['uid' => $uid]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新用户
|
||||
*/
|
||||
|
||||
@ -59,5 +59,4 @@ class Agreement extends BaseAdminController
|
||||
return success('EDIT_SUCCESS');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -29,5 +29,4 @@ class App extends BaseAdminController
|
||||
return success((new AppService())->getAppList());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -38,5 +38,4 @@ class Common extends BaseAdminController
|
||||
return success((new DateDict())->getWeek());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -46,8 +46,6 @@ class Config extends BaseAdminController
|
||||
[ "full_address", "" ],
|
||||
[ "phone", "" ],
|
||||
[ "business_hours", "" ],
|
||||
[ "site_name", "" ],
|
||||
[ "logo", "" ],
|
||||
[ "front_end_name", "" ],
|
||||
[ "front_end_logo", "" ],
|
||||
[ "front_end_icon", "" ],
|
||||
@ -135,26 +133,6 @@ class Config extends BaseAdminController
|
||||
return success(( new ConfigService() )->getMap());
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置快捷菜单
|
||||
*/
|
||||
public function setShortcutMenu()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ 'menu', [] ],
|
||||
]);
|
||||
( new ConfigService() )->setShortcutMenu($data[ 'menu' ]);
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取站点快捷菜单
|
||||
*/
|
||||
public function getShortcutMenu()
|
||||
{
|
||||
return success(data: ( new ConfigService() )->getShortcutMenu());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取开发者key
|
||||
* @return Response
|
||||
|
||||
@ -28,8 +28,7 @@ class Menu extends BaseAdminController
|
||||
*/
|
||||
public function lists($app_type)
|
||||
{
|
||||
|
||||
return success((new MenuService())->getAllMenuList($app_type, 'all', 1));
|
||||
return success(( new MenuService() )->getAllMenuList($app_type, 'all', 1));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -39,7 +38,7 @@ class Menu extends BaseAdminController
|
||||
*/
|
||||
public function info($app_type, $menu_key)
|
||||
{
|
||||
return success((new MenuService())->get($app_type, $menu_key));
|
||||
return success(( new MenuService() )->get($app_type, $menu_key));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -49,24 +48,24 @@ class Menu extends BaseAdminController
|
||||
public function add()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['app_type', ''],
|
||||
['menu_name', ''],
|
||||
['menu_type', 0],
|
||||
['menu_key', ''],
|
||||
['parent_key', ''],
|
||||
['icon', ''],
|
||||
['api_url', ''],
|
||||
['view_path', ''],
|
||||
['router_path', ''],
|
||||
['methods', ''],
|
||||
['sort', 0],
|
||||
['status', MenuDict::ON],
|
||||
['is_show', 0],
|
||||
['addon', ''],
|
||||
['menu_short_name','']
|
||||
[ 'app_type', '' ],
|
||||
[ 'menu_name', '' ],
|
||||
[ 'menu_type', 0 ],
|
||||
[ 'menu_key', '' ],
|
||||
[ 'parent_key', '' ],
|
||||
[ 'icon', '' ],
|
||||
[ 'api_url', '' ],
|
||||
[ 'view_path', '' ],
|
||||
[ 'router_path', '' ],
|
||||
[ 'methods', '' ],
|
||||
[ 'sort', 0 ],
|
||||
[ 'status', MenuDict::ON ],
|
||||
[ 'is_show', 0 ],
|
||||
[ 'addon', '' ],
|
||||
[ 'menu_short_name', '' ]
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\Menu.add');
|
||||
(new MenuService())->add($data);
|
||||
( new MenuService() )->add($data);
|
||||
return success('ADD_SUCCESS');
|
||||
}
|
||||
|
||||
@ -76,22 +75,22 @@ class Menu extends BaseAdminController
|
||||
public function edit($app_type, $menu_key)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['menu_name', ''],
|
||||
['parent_key', ''],
|
||||
['menu_type', 0],
|
||||
['icon', ''],
|
||||
['api_url', ''],
|
||||
['router_path', ''],
|
||||
['view_path', ''],
|
||||
['methods', ''],
|
||||
['sort', 0],
|
||||
['status', MenuDict::ON],
|
||||
['is_show', 0],
|
||||
['addon', ''],
|
||||
['menu_short_name','']
|
||||
[ 'menu_name', '' ],
|
||||
[ 'parent_key', '' ],
|
||||
[ 'menu_type', 0 ],
|
||||
[ 'icon', '' ],
|
||||
[ 'api_url', '' ],
|
||||
[ 'router_path', '' ],
|
||||
[ 'view_path', '' ],
|
||||
[ 'methods', '' ],
|
||||
[ 'sort', 0 ],
|
||||
[ 'status', MenuDict::ON ],
|
||||
[ 'is_show', 0 ],
|
||||
[ 'addon', '' ],
|
||||
[ 'menu_short_name', '' ]
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\Menu.edit');
|
||||
(new MenuService())->edit($app_type, $menu_key, $data);
|
||||
( new MenuService() )->edit($app_type, $menu_key, $data);
|
||||
return success('EDIT_SUCCESS');
|
||||
}
|
||||
|
||||
@ -121,13 +120,13 @@ class Menu extends BaseAdminController
|
||||
*/
|
||||
public function del($app_type, $menu_key)
|
||||
{
|
||||
(new MenuService())->del($app_type, $menu_key);
|
||||
( new MenuService() )->del($app_type, $menu_key);
|
||||
return success('DELETE_SUCCESS');
|
||||
}
|
||||
|
||||
public function refreshMenu()
|
||||
{
|
||||
(new InstallSystemService())->install();
|
||||
( new InstallSystemService() )->install();
|
||||
return success('SUCCESS');
|
||||
}
|
||||
|
||||
@ -136,7 +135,7 @@ class Menu extends BaseAdminController
|
||||
*/
|
||||
public function getSystem()
|
||||
{
|
||||
return success( (new MenuService())->getSystemMenu('all', 1));
|
||||
return success(( new MenuService() )->getSystemMenu('all', 1));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -144,7 +143,7 @@ class Menu extends BaseAdminController
|
||||
*/
|
||||
public function getAddonMenu($app_key)
|
||||
{
|
||||
return success( (new MenuService())->getAddonMenu($app_key,'all', 1));
|
||||
return success(( new MenuService() )->getAddonMenu($app_key, 'all', 1));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -152,7 +151,8 @@ class Menu extends BaseAdminController
|
||||
* @param $addon
|
||||
* @return Response
|
||||
*/
|
||||
public function getMenuByTypeDir($addon = 'system') {
|
||||
return success( (new MenuService())->getMenuByTypeDir($addon));
|
||||
public function getMenuByTypeDir($addon = 'system')
|
||||
{
|
||||
return success(( new MenuService() )->getMenuByTypeDir($addon));
|
||||
}
|
||||
}
|
||||
|
||||
279
niucloud/app/adminapi/controller/sys/Printer.php
Normal file
279
niucloud/app/adminapi/controller/sys/Printer.php
Normal file
@ -0,0 +1,279 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的多应用管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\adminapi\controller\sys;
|
||||
|
||||
use app\service\admin\sys\PrinterService;
|
||||
use app\service\admin\sys\PrinterTemplateService;
|
||||
use core\base\BaseAdminController;
|
||||
|
||||
|
||||
/**
|
||||
* 小票打印机控制器
|
||||
* Class Printer
|
||||
* @package app\adminapi\controller\sys
|
||||
*/
|
||||
class Printer extends BaseAdminController
|
||||
{
|
||||
|
||||
/**
|
||||
* 获取小票打印机分页列表
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function pages()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "printer_name", "" ],
|
||||
]);
|
||||
return success(( new PrinterService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取小票打印机列表
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "printer_name", "" ],
|
||||
]);
|
||||
return success(( new PrinterService() )->getList($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 小票打印机详情
|
||||
* @param int $id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function info(int $id)
|
||||
{
|
||||
return success(( new PrinterService() )->getInfo($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加小票打印机
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "brand", "" ],
|
||||
[ "printer_name", "" ],
|
||||
[ "printer_code", "" ],
|
||||
[ "printer_key", "" ],
|
||||
[ "open_id", "" ],
|
||||
[ "apikey", "" ],
|
||||
[ 'template_type', '' ],
|
||||
[ 'trigger', '' ],
|
||||
[ "value", "" ],
|
||||
[ "print_width", "" ],
|
||||
[ "status", 0 ],
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\Printer.add');
|
||||
$id = ( new PrinterService() )->add($data);
|
||||
return success('ADD_SUCCESS', [ 'id' => $id ]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 小票打印机编辑
|
||||
* @param $id 小票打印机id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function edit(int $id)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "brand", "" ],
|
||||
[ "printer_name", "" ],
|
||||
[ "printer_code", "" ],
|
||||
[ "printer_key", "" ],
|
||||
[ "open_id", "" ],
|
||||
[ "apikey", "" ],
|
||||
[ 'template_type', '' ],
|
||||
[ 'trigger', '' ],
|
||||
[ "value", "" ],
|
||||
[ "print_width", "" ],
|
||||
[ "status", 0 ],
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\Printer.edit');
|
||||
( new PrinterService() )->edit($id, $data);
|
||||
return success('EDIT_SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改小票打印机状态
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function modifyStatus()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "printer_id", 0 ],
|
||||
[ "status", 0 ],
|
||||
]);
|
||||
( new PrinterService() )->modifyStatus($data);
|
||||
return success('SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 小票打印机删除
|
||||
* @param $id 小票打印机id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function del(int $id)
|
||||
{
|
||||
( new PrinterService() )->del($id);
|
||||
return success('DELETE_SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取小票打印模板分页列表
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function templatePageLists()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "template_type", "" ],
|
||||
[ "template_name", "" ],
|
||||
]);
|
||||
return success(( new PrinterTemplateService() )->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取小票打印模板列表
|
||||
* @return \think\Response
|
||||
* @throws \think\db\exception\DbException
|
||||
*/
|
||||
public function templateLists()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "template_type", "" ],
|
||||
[ "template_name", "" ],
|
||||
]);
|
||||
return success(( new PrinterTemplateService() )->getList($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 小票打印模板详情
|
||||
* @param int $id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function templateInfo(int $id)
|
||||
{
|
||||
return success(( new PrinterTemplateService() )->getInfo($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加小票打印模板
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function templateAdd()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "template_type", "" ],
|
||||
[ "template_name", "" ],
|
||||
[ "value", "" ],
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\PrinterTemplate.add');
|
||||
$id = ( new PrinterTemplateService() )->add($data);
|
||||
return success('ADD_SUCCESS', [ 'id' => $id ]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 小票打印模板编辑
|
||||
* @param $id 小票打印模板id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function templateEdit(int $id)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "template_type", "" ],
|
||||
[ "template_name", "" ],
|
||||
[ "value", "" ],
|
||||
]);
|
||||
$this->validate($data, 'app\validate\sys\PrinterTemplate.edit');
|
||||
( new PrinterTemplateService() )->edit($id, $data);
|
||||
return success('EDIT_SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 小票打印模板删除
|
||||
* @param $id 小票打印模板id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function templateDel(int $id)
|
||||
{
|
||||
( new PrinterTemplateService() )->del($id);
|
||||
return success('DELETE_SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取小票打印模板类型
|
||||
* @return array|\think\Response
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return success(( new PrinterService() )->getType());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取小票打印机设备品牌
|
||||
* @return array|\think\Response
|
||||
*/
|
||||
public function getBrand()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "brand", "" ],
|
||||
]);
|
||||
return success(( new PrinterService() )->getBrand($data[ 'brand' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试打印
|
||||
* @param int $id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function testPrint(int $id)
|
||||
{
|
||||
( new PrinterService() )->testPrint($id);
|
||||
return success('SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新打印机token
|
||||
* @param int $id
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function refreshToken(int $id)
|
||||
{
|
||||
( new PrinterService() )->refreshToken($id);
|
||||
return success('SUCCESS');
|
||||
}
|
||||
|
||||
/**
|
||||
* 打印小票内容
|
||||
* @return \think\Response
|
||||
*/
|
||||
public function printTicket()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
[ "type", "" ], // 小票模板类型
|
||||
[ "trigger", "" ], // 触发时机
|
||||
[ 'business', [] ] // 业务参数,根据自身业务传值
|
||||
]);
|
||||
|
||||
$res = ( new PrinterService() )->printTicket($data);
|
||||
if ($res[ 'code' ] == 0) {
|
||||
return success('SUCCESS');
|
||||
} else {
|
||||
return fail($res[ 'message' ]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -51,6 +51,15 @@ class User extends BaseAdminController
|
||||
return success($list);
|
||||
}
|
||||
|
||||
public function getUserSelect()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['username', '']
|
||||
]);
|
||||
$list = (new UserService())->getUserSelect($data);
|
||||
return success($list);
|
||||
}
|
||||
|
||||
public function checkUserIsExist() {
|
||||
$data = $this->request->params([
|
||||
['username', ''],
|
||||
|
||||
@ -48,5 +48,4 @@ class Config extends BaseAdminController
|
||||
return success('SET_SUCCESS');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -13,7 +13,6 @@ namespace app\adminapi\controller\weapp;
|
||||
|
||||
use app\service\admin\weapp\WeappDeliveryService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
|
||||
/**
|
||||
* 小程序发货信息管理服务
|
||||
|
||||
@ -31,7 +31,6 @@ class Template extends BaseAdminController
|
||||
return success($wechat_template_service->getList());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 菜单信息
|
||||
* @return Response
|
||||
|
||||
@ -13,7 +13,6 @@ namespace app\adminapi\controller\weapp;
|
||||
|
||||
use app\service\admin\weapp\WeappVersionService;
|
||||
use core\base\BaseAdminController;
|
||||
use Exception;
|
||||
use think\Response;
|
||||
|
||||
/**
|
||||
|
||||
@ -34,8 +34,8 @@ class Reply extends BaseAdminController
|
||||
public function getKeywordLists()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['keyword', ''],
|
||||
['name', '']
|
||||
[ 'keyword', '' ],
|
||||
[ 'name', '' ]
|
||||
]);
|
||||
$wechat_reply_service = new WechatReplyService();
|
||||
return success($wechat_reply_service->getKeywordPage($data));
|
||||
@ -49,12 +49,12 @@ class Reply extends BaseAdminController
|
||||
{
|
||||
$wechat_reply_service = new WechatReplyService();
|
||||
$data = $this->request->params([
|
||||
['name', ''],
|
||||
['keyword', ''],
|
||||
['matching_type', '', false],
|
||||
['reply_method', ''],
|
||||
['content', ''],
|
||||
['sort', ''],
|
||||
[ 'name', '' ],
|
||||
[ 'keyword', '' ],
|
||||
[ 'matching_type', '', false ],
|
||||
[ 'reply_method', '' ],
|
||||
[ 'content', '' ],
|
||||
[ 'sort', '' ],
|
||||
]);
|
||||
$wechat_reply_service->addKeyword($data);
|
||||
return success('ADD_SUCCESS');
|
||||
@ -68,12 +68,12 @@ class Reply extends BaseAdminController
|
||||
{
|
||||
$wechat_reply_service = new WechatReplyService();
|
||||
$data = $this->request->params([
|
||||
['name', ''],
|
||||
['keyword', ''],
|
||||
['matching_type', '', false],
|
||||
['reply_method', ''],
|
||||
['content', ''],
|
||||
['sort', ''],
|
||||
[ 'name', '' ],
|
||||
[ 'keyword', '' ],
|
||||
[ 'matching_type', '', false ],
|
||||
[ 'reply_method', '' ],
|
||||
[ 'content', '' ],
|
||||
[ 'sort', '' ],
|
||||
]);
|
||||
$wechat_reply_service->editKeyword($id, $data);
|
||||
return success('EDIT_SUCCESS');
|
||||
@ -107,7 +107,7 @@ class Reply extends BaseAdminController
|
||||
public function editDefault()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['content', ''],
|
||||
[ 'content', '' ],
|
||||
]);
|
||||
$wechat_reply_service = new WechatReplyService();
|
||||
$wechat_reply_service->editDefault($data);
|
||||
@ -131,12 +131,11 @@ class Reply extends BaseAdminController
|
||||
public function editSubscribe()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['content', ''],
|
||||
[ 'content', '' ],
|
||||
]);
|
||||
$wechat_reply_service = new WechatReplyService();
|
||||
$wechat_reply_service->editSubscribe($data);
|
||||
return success('SET_SUCCESS');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -28,10 +28,10 @@ class Template extends BaseAdminController
|
||||
public function sync()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['keys', []]
|
||||
[ 'keys', [] ]
|
||||
]);
|
||||
$wechat_template_service = new WechatTemplateService();
|
||||
return success(data:$wechat_template_service->syncAll($data['keys']));
|
||||
return success(data:$wechat_template_service->syncAll($data[ 'keys' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -44,5 +44,4 @@ class Template extends BaseAdminController
|
||||
return success($wechat_template_service->getList());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
|
||||
namespace app\adminapi\controller\wxoplatform;
|
||||
|
||||
use app\service\admin\wechat\WechatConfigService;
|
||||
use app\service\admin\wxoplatform\OplatformConfigService;
|
||||
use core\base\BaseAdminController;
|
||||
use think\Response;
|
||||
|
||||
@ -54,7 +54,7 @@ Route::group('diy', function() {
|
||||
Route::get('link', 'diy.Diy/getLink');
|
||||
|
||||
// 设为使用
|
||||
Route::put('use', 'diy.Diy/setUse');
|
||||
Route::put('use/:id', 'diy.Diy/setUse');
|
||||
|
||||
// 获取页面模板
|
||||
Route::get('template', 'diy.Diy/getTemplate');
|
||||
|
||||
@ -46,6 +46,14 @@ Route::group('member', function () {
|
||||
Route::get('status/list', 'member.Member/getStatusList');
|
||||
//会员设置状态
|
||||
Route::put('setstatus/:status', 'member.Member/setStatus');
|
||||
// 获取会员权益字典
|
||||
Route::get('dict/benefits', 'member.Member/getMemberBenefitsDict');
|
||||
// 获取会员礼包字典
|
||||
Route::get('dict/gift', 'member.Member/getMemberGiftDict');
|
||||
// 获取成长值规则字典
|
||||
Route::get('dict/growth_rule', 'member.Member/getGrowthRuleDict');
|
||||
// 获取积分规则字典
|
||||
Route::get('dict/point_rule', 'member.Member/getPointRuleDict');
|
||||
/***************************************************** 会员标签 ****************************************************/
|
||||
//会员标签列表
|
||||
Route::get('label', 'member.MemberLabel/lists');
|
||||
@ -101,6 +109,10 @@ Route::group('member', function () {
|
||||
Route::get('config/point_rule', 'member.Config/getPointRuleConfig');
|
||||
//设置积分规则
|
||||
Route::post('config/point_rule', 'member.Config/setPointRuleConfig');
|
||||
//获取注册与登录设置
|
||||
Route::get('config/member', 'member.Config/getMemberConfig');
|
||||
//更新注册与登录设置
|
||||
Route::post('config/member', 'member.Config/setMemberConfig');
|
||||
/***************************************************** 会员体现**************************************************/
|
||||
//会员提现列表
|
||||
Route::get('cash_out', 'member.CashOut/lists');
|
||||
@ -116,23 +128,9 @@ Route::group('member', function () {
|
||||
Route::get('cash_out/status', 'member.CashOut/getStatusList');
|
||||
//提现统计信息
|
||||
Route::get('cash_out/stat', 'member.CashOut/stat');
|
||||
//获取注册与登录设置
|
||||
Route::get('config/member', 'member.Config/getMemberConfig');
|
||||
//更新注册与登录设置
|
||||
Route::post('config/member', 'member.Config/setMemberConfig');
|
||||
// 获取会员权益字典
|
||||
Route::get('dict/benefits', 'member.Member/getMemberBenefitsDict');
|
||||
// 获取会员礼包字典
|
||||
Route::get('dict/gift', 'member.Member/getMemberGiftDict');
|
||||
// 获取成长值规则字典
|
||||
Route::get('dict/growth_rule', 'member.Member/getGrowthRuleDict');
|
||||
// 获取积分规则字典
|
||||
Route::get('dict/point_rule', 'member.Member/getPointRuleDict');
|
||||
/***************************************************** 会员等级 ****************************************************/
|
||||
//会员等级分页列表
|
||||
Route::get('level', 'member.MemberLevel/pages');
|
||||
//会员等级列表
|
||||
Route::get('level/list', 'member.MemberLevel/lists');
|
||||
//会员等级详情
|
||||
Route::get('level/:id', 'member.MemberLevel/info');
|
||||
//会员等级添加
|
||||
|
||||
@ -78,24 +78,6 @@ Route::group('sys', function() {
|
||||
//地图设置
|
||||
Route::get('config/map', 'sys.Config/getMap');
|
||||
|
||||
//首页加载设置
|
||||
Route::put('config/site_index', 'sys.Config/setSiteIndex');
|
||||
//获取首页加载
|
||||
Route::get('config/site_index', 'sys.Config/getSiteIndexList');
|
||||
|
||||
//平台首页加载设置
|
||||
Route::put('config/admin_index', 'sys.Config/setAdminIndex');
|
||||
//获取平台首页加载
|
||||
Route::get('config/admin_index', 'sys.Config/getAdminIndexList');
|
||||
|
||||
// 获取手机端首页加载
|
||||
Route::get('config/wap_index', 'sys.Config/getWapIndexList');
|
||||
|
||||
//快捷菜单设置
|
||||
Route::put('config/shortcut_menu', 'sys.Config/setShortcutMenu');
|
||||
//获取快捷菜单
|
||||
Route::get('config/shortcut_menu', 'sys.Config/getShortcutMenu');
|
||||
|
||||
//登录注册设置
|
||||
Route::get('config/login', 'login.Config/getConfig');
|
||||
//登录注册设置
|
||||
@ -273,6 +255,62 @@ Route::group('sys', function() {
|
||||
// 百度编辑器文件上传
|
||||
Route::post('ueditor', 'sys.Ueditor/upload');
|
||||
|
||||
/***************************************************** 小票打印管理 ****************************************************/
|
||||
|
||||
// 小票打印机分页列表
|
||||
Route::get('printer', 'sys.Printer/pages');
|
||||
|
||||
// 小票打印机列表
|
||||
Route::get('printer/list', 'sys.Printer/lists');
|
||||
|
||||
// 小票打印机详情
|
||||
Route::get('printer/:id', 'sys.Printer/info');
|
||||
|
||||
// 添加小票打印机
|
||||
Route::post('printer', 'sys.Printer/add');
|
||||
|
||||
// 编辑小票打印机
|
||||
Route::put('printer/:id', 'sys.Printer/edit');
|
||||
|
||||
// 修改小票打印机状态
|
||||
Route::put('printer/status', 'sys.Printer/modifyStatus');
|
||||
|
||||
// 删除小票打印机
|
||||
Route::delete('printer/:id', 'sys.Printer/del');
|
||||
|
||||
// 小票打印模板分页列表
|
||||
Route::get('printer/template', 'sys.Printer/templatePageLists');
|
||||
|
||||
// 小票打印模板列表
|
||||
Route::get('printer/template/list', 'sys.Printer/templateLists');
|
||||
|
||||
// 小票打印模板详情
|
||||
Route::get('printer/template/:id', 'sys.Printer/templateInfo');
|
||||
|
||||
// 添加小票打印模板
|
||||
Route::post('printer/template', 'sys.Printer/templateAdd');
|
||||
|
||||
// 编辑小票打印模板
|
||||
Route::put('printer/template/:id', 'sys.Printer/templateEdit');
|
||||
|
||||
// 删除小票打印模板
|
||||
Route::delete('printer/template/:id', 'sys.Printer/templateDel');
|
||||
|
||||
// 获取小票打印模板类型
|
||||
Route::get('printer/type', 'sys.Printer/getType');
|
||||
|
||||
// 获取小票打印机设备品牌
|
||||
Route::get('printer/brand', 'sys.Printer/getBrand');
|
||||
|
||||
// 刷新易联云打印机token
|
||||
Route::put('printer/refreshtoken/:id', 'sys.Printer/refreshToken');
|
||||
|
||||
// 测试易联云打印
|
||||
Route::put('printer/testprint/:id', 'sys.Printer/testPrint');
|
||||
|
||||
// 打印小票内容
|
||||
Route::post('printer/printticket', 'sys.Printer/printTicket');
|
||||
|
||||
})->middleware([
|
||||
AdminCheckToken::class,
|
||||
AdminCheckRole::class,
|
||||
|
||||
@ -24,6 +24,8 @@ Route::group('user', function () {
|
||||
Route::get('user', 'user.User/lists');
|
||||
//全部用户列表
|
||||
Route::get('user_all', 'user.User/getUserAll');
|
||||
//添加站点可选用户列表
|
||||
Route::get('user_select', 'user.User/getUserSelect');
|
||||
//用户详情
|
||||
Route::get('user/:uid', 'user.User/info');
|
||||
// 查询账号是否存在
|
||||
|
||||
@ -16,7 +16,7 @@ use core\base\BaseApiController;
|
||||
|
||||
/**
|
||||
* 协议控制器
|
||||
* Class Article
|
||||
* Class Agreement
|
||||
* @package app\api\controller\agreement
|
||||
*/
|
||||
class Agreement extends BaseApiController
|
||||
|
||||
@ -1,57 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\api\controller\article;
|
||||
|
||||
use app\service\api\article\ArticleService;
|
||||
use core\base\BaseApiController;
|
||||
use think\Response;
|
||||
|
||||
/**
|
||||
* 文章控制器
|
||||
* Class Article
|
||||
* @package app\api\controller\article
|
||||
*/
|
||||
class Article extends BaseApiController
|
||||
{
|
||||
/**
|
||||
* 文章列表
|
||||
* @return Response
|
||||
*/
|
||||
public function lists(){
|
||||
$data = $this->request->params([
|
||||
['title', ''],
|
||||
['category_id', ''],
|
||||
]);
|
||||
return success((new ArticleService())->getPage($data));
|
||||
}
|
||||
|
||||
public function all(){
|
||||
$data = $this->request->params([
|
||||
['title', ''],
|
||||
['category_id', ''],
|
||||
['ids', []],
|
||||
['limit', 0]
|
||||
]);
|
||||
return success((new ArticleService())->getAll($data, $data['limit']));
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章详情
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function info(int $id){
|
||||
return success((new ArticleService())->getInfo($id));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -1,47 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\api\controller\article;
|
||||
|
||||
use app\service\api\article\ArticleCategoryService;
|
||||
use core\base\BaseApiController;
|
||||
use think\Response;
|
||||
|
||||
/**
|
||||
* 文章分类
|
||||
* Class ArticleCategory
|
||||
* @package app\api\controller\article
|
||||
*/
|
||||
class ArticleCategory extends BaseApiController
|
||||
{
|
||||
/**
|
||||
* 文章分类列表
|
||||
* @return Response
|
||||
*/
|
||||
public function lists(){
|
||||
$data = $this->request->params([
|
||||
['name', ''],
|
||||
]);
|
||||
return success((new ArticleCategoryService())->getPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章分类详情
|
||||
* @param int $id
|
||||
* @return Response
|
||||
*/
|
||||
public function info(int $id){
|
||||
return success((new ArticleCategoryService())->getInfo($id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -23,9 +23,7 @@ class Config extends BaseController
|
||||
*/
|
||||
public function getLoginConfig()
|
||||
{
|
||||
|
||||
return success((new MemberConfigService())->getLoginConfig());
|
||||
return success(( new MemberConfigService() )->getLoginConfig());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -11,7 +11,9 @@
|
||||
|
||||
namespace app\api\controller\login;
|
||||
|
||||
use app\dict\member\MemberLoginTypeDict;
|
||||
use app\service\api\captcha\CaptchaService;
|
||||
use app\service\api\login\ConfigService;
|
||||
use app\service\api\login\LoginService;
|
||||
use core\base\BaseController;
|
||||
use Exception;
|
||||
@ -25,20 +27,20 @@ class Login extends BaseController
|
||||
*/
|
||||
public function login()
|
||||
{
|
||||
|
||||
$data = $this->request->params([
|
||||
['username', ''],
|
||||
['password', ''],
|
||||
[ 'username', '' ],
|
||||
[ 'password', '' ],
|
||||
]);
|
||||
//校验登录注册配置
|
||||
( new ConfigService() )->checkLoginConfig(MemberLoginTypeDict::USERNAME);
|
||||
//参数验证
|
||||
//验证码验证
|
||||
$result = (new LoginService())->account($data['username'], $data['password']);
|
||||
$result = ( new LoginService() )->account($data[ 'username' ], $data[ 'password' ]);
|
||||
if (!$result) {
|
||||
//账号密码错误, 重置验证码
|
||||
return fail('ACCOUNT_OR_PASSWORD_ERROR');
|
||||
}
|
||||
return success($result);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,7 +49,7 @@ class Login extends BaseController
|
||||
*/
|
||||
public function logout()
|
||||
{
|
||||
(new LoginService)->logout();
|
||||
( new LoginService )->logout();
|
||||
return success('MEMBER_LOGOUT');
|
||||
}
|
||||
|
||||
@ -57,7 +59,7 @@ class Login extends BaseController
|
||||
*/
|
||||
public function captcha()
|
||||
{
|
||||
return success((new CaptchaService())->create());
|
||||
return success(( new CaptchaService() )->create());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,9 +71,9 @@ class Login extends BaseController
|
||||
public function sendMobileCode($type)
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['mobile', ''],
|
||||
[ 'mobile', '' ],
|
||||
]);
|
||||
return success((new LoginService())->sendMobileCode($data['mobile'], $type));
|
||||
return success(( new LoginService() )->sendMobileCode($data[ 'mobile' ], $type));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,9 +83,11 @@ class Login extends BaseController
|
||||
public function mobile()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['mobile', ''],
|
||||
[ 'mobile', '' ],
|
||||
]);
|
||||
return success((new LoginService())->mobile($data['mobile']));
|
||||
//校验登录注册配置
|
||||
( new ConfigService() )->checkLoginConfig(MemberLoginTypeDict::MOBILE);
|
||||
return success(( new LoginService() )->mobile($data[ 'mobile' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -93,12 +97,12 @@ class Login extends BaseController
|
||||
public function resetPassword()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['mobile', ''],
|
||||
['password', '']
|
||||
[ 'mobile', '' ],
|
||||
[ 'password', '' ]
|
||||
]);
|
||||
//参数验证
|
||||
$this->validate($data, 'app\validate\member\Member.reset_password');
|
||||
(new LoginService())->resetPassword($data['mobile'], $data['password']);
|
||||
( new LoginService() )->resetPassword($data[ 'mobile' ], $data[ 'password' ]);
|
||||
return success('PASSWORD_RESET_SUCCESS');
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,6 +11,8 @@
|
||||
|
||||
namespace app\api\controller\login;
|
||||
|
||||
use app\dict\member\MemberLoginTypeDict;
|
||||
use app\service\api\login\ConfigService;
|
||||
use app\service\api\login\RegisterService;
|
||||
use core\base\BaseController;
|
||||
use think\Response;
|
||||
@ -26,14 +28,16 @@ class Register extends BaseController
|
||||
{
|
||||
|
||||
$data = $this->request->params([
|
||||
['username', ''],
|
||||
['password', ''],
|
||||
['mobile', ''],
|
||||
[ 'username', '' ],
|
||||
[ 'password', '' ],
|
||||
[ 'mobile', '' ],
|
||||
]);
|
||||
//校验登录注册配置
|
||||
( new ConfigService() )->checkLoginConfig(MemberLoginTypeDict::USERNAME);
|
||||
//参数验证
|
||||
$this->validate($data, 'app\validate\member\Member.account_register');
|
||||
//验证码验证
|
||||
$result = (new RegisterService())->account($data['username'], $data['password'], $data['mobile']);
|
||||
$result = ( new RegisterService() )->account($data[ 'username' ], $data[ 'password' ], $data[ 'mobile' ]);
|
||||
return success($result);
|
||||
}
|
||||
|
||||
@ -44,16 +48,17 @@ class Register extends BaseController
|
||||
public function mobile()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['mobile', ''],
|
||||
[ 'mobile', '' ],
|
||||
]);
|
||||
//校验登录注册配置
|
||||
( new ConfigService() )->checkLoginConfig(MemberLoginTypeDict::MOBILE);
|
||||
//参数验证
|
||||
$this->validate($data, [
|
||||
'mobile' => 'require|mobile'
|
||||
]);
|
||||
//验证码验证
|
||||
$result = (new RegisterService())->mobile($data['mobile']);
|
||||
$result = ( new RegisterService() )->mobile($data[ 'mobile' ]);
|
||||
return success($result);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -33,10 +33,12 @@ class Account extends BaseApiController
|
||||
public function point(): Response
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['from_type', '']
|
||||
['from_type', ''],
|
||||
['amount_type', 'all'],//全部all 收入income 支出disburse
|
||||
['create_time', []],
|
||||
]);
|
||||
$data['account_type'] = MemberAccountTypeDict::POINT;
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
return success((new MemberAccountService())->getPointPage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -59,9 +61,10 @@ class Account extends BaseApiController
|
||||
public function balanceList(): Response
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['from_type', '']
|
||||
['from_type', ''],
|
||||
['create_time', []]
|
||||
]);
|
||||
return success((new MemberAccountService())->getPages($data));
|
||||
return success((new MemberAccountService())->getBalancePage($data));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -98,9 +101,11 @@ class Account extends BaseApiController
|
||||
public function commission(): Response
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['keyword', ''],
|
||||
['from_type', ''],
|
||||
['account_data_gt', ''],
|
||||
['account_data_lt', ''],
|
||||
['create_time', []],
|
||||
]);
|
||||
$data['account_type'] = MemberAccountTypeDict::COMMISSION;
|
||||
return success((new MemberAccountService())->getPage($data));
|
||||
|
||||
@ -15,9 +15,6 @@ use app\service\api\login\AuthService;
|
||||
use app\service\api\member\MemberLogService;
|
||||
use app\service\api\member\MemberService;
|
||||
use core\base\BaseApiController;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\DbException;
|
||||
use think\db\exception\ModelNotFoundException;
|
||||
use think\Response;
|
||||
|
||||
class Member extends BaseApiController
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
|
||||
namespace app\api\controller\sys;
|
||||
|
||||
use app\service\api\scan\ScanService;
|
||||
use app\service\api\verify\VerifyService;
|
||||
use core\base\BaseApiController;
|
||||
use think\Response;
|
||||
@ -64,6 +63,7 @@ class Verify extends BaseApiController
|
||||
['relate_tag', 0],
|
||||
['type', ''],
|
||||
['code', ''],
|
||||
['keyword', ''],
|
||||
['create_time', []]
|
||||
]);
|
||||
return success(data:(new VerifyService())->getRecordsPageByVerifier($data));
|
||||
|
||||
@ -48,7 +48,6 @@ class Weapp extends BaseApiController
|
||||
return success($weapp_auth_service->register($data[ 'openid' ], $data[ 'mobile' ], $data[ 'mobile_code' ], $data[ 'unionid' ]));
|
||||
}
|
||||
|
||||
|
||||
public function subscribeMessage()
|
||||
{
|
||||
$data = $this->request->params([ [ 'keys', '' ] ]);
|
||||
@ -68,7 +67,6 @@ class Weapp extends BaseApiController
|
||||
if ($result) {
|
||||
return success([ 'is_trade_managed' => true ]);
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
return success([ 'is_trade_managed' => false ]);
|
||||
@ -86,7 +84,17 @@ class Weapp extends BaseApiController
|
||||
$wechat_template_service = new WeappDeliveryService();
|
||||
$result = $wechat_template_service->getMsgJumpPath($data[ 'out_trade_no' ]);
|
||||
return success([ 'path' => $result ]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新openid
|
||||
* @return Response
|
||||
*/
|
||||
public function updateOpenid()
|
||||
{
|
||||
$data = $this->request->params([ [ 'code', '' ] ]);
|
||||
$weapp_auth_service = new WeappAuthService();
|
||||
return success($weapp_auth_service->updateOpenid($data[ 'code' ]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -13,7 +13,6 @@ namespace app\api\controller\wechat;
|
||||
|
||||
use app\service\api\wechat\WechatAuthService;
|
||||
use core\base\BaseController;
|
||||
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\DbException;
|
||||
use think\db\exception\ModelNotFoundException;
|
||||
@ -27,38 +26,41 @@ class Wechat extends BaseController
|
||||
* 获取跳转获取code
|
||||
* @return Response
|
||||
*/
|
||||
public function getCodeUrl(){
|
||||
public function getCodeUrl()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['url', ''],
|
||||
['scopes', '']
|
||||
[ 'url', '' ],
|
||||
[ 'scopes', '' ]
|
||||
]);
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
return success($wechat_auth_service->authorization($data['url'], $data['scopes']));
|
||||
return success($wechat_auth_service->authorization($data[ 'url' ], $data[ 'scopes' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
* code获取微信信息
|
||||
* @return Response
|
||||
*/
|
||||
public function getWechatUser(){
|
||||
public function getWechatUser()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['code', ''],
|
||||
[ 'code', '' ],
|
||||
]);
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
$data = $wechat_auth_service->userFromCode($data['code']);
|
||||
return success(['data'=> json_encode($data)]);
|
||||
$data = $wechat_auth_service->userFromCode($data[ 'code' ]);
|
||||
return success([ 'data' => json_encode($data) ]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 授权信息登录
|
||||
* @return Response
|
||||
*/
|
||||
public function wechatLogin(){
|
||||
public function wechatLogin()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['data', ''],
|
||||
[ 'data', '' ],
|
||||
]);
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
[$avatar, $nickname, $openid, $unionid] = json_decode($data['data'], true);
|
||||
[ $avatar, $nickname, $openid, $unionid ] = json_decode($data[ 'data' ], true);
|
||||
return success($wechat_auth_service->login($openid, $nickname, $avatar, $unionid));
|
||||
}
|
||||
|
||||
@ -69,63 +71,78 @@ class Wechat extends BaseController
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function login(){
|
||||
public function login()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['code', ''],
|
||||
[ 'code', '' ],
|
||||
]);
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
return success($wechat_auth_service->loginByCode($data['code']));
|
||||
return success($wechat_auth_service->loginByCode($data[ 'code' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册
|
||||
* @return Response
|
||||
*/
|
||||
public function register(){
|
||||
public function register()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['openid', ''],
|
||||
['unionid', ''],
|
||||
['mobile', ''],
|
||||
[ 'openid', '' ],
|
||||
[ 'unionid', '' ],
|
||||
[ 'mobile', '' ],
|
||||
]);
|
||||
//参数验证
|
||||
$this->validate($data, [
|
||||
'mobile' => 'mobile'
|
||||
]);
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
return success($wechat_auth_service->register($data['openid'], $data['mobile'], wx_unionid: $data['unionid']));
|
||||
return success($wechat_auth_service->register($data[ 'openid' ], $data[ 'mobile' ], wx_unionid: $data[ 'unionid' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步
|
||||
* @return Response
|
||||
*/
|
||||
public function sync(){
|
||||
public function sync()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['code', ''],
|
||||
[ 'code', '' ],
|
||||
]);
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
return success($wechat_auth_service->sync($data['code']));
|
||||
return success($wechat_auth_service->sync($data[ 'code' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取jssdk config
|
||||
* @return Response
|
||||
*/
|
||||
public function jssdkConfig(){
|
||||
public function jssdkConfig()
|
||||
{
|
||||
$data = $this->request->params([
|
||||
['url', ''],
|
||||
[ 'url', '' ],
|
||||
]);
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
return success($wechat_auth_service->jssdkConfig($data['url']));
|
||||
return success($wechat_auth_service->jssdkConfig($data[ 'url' ]));
|
||||
}
|
||||
|
||||
/**
|
||||
* 扫码登录
|
||||
* @return Response
|
||||
*/
|
||||
public function scanLogin(){
|
||||
public function scanLogin()
|
||||
{
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
return success($wechat_auth_service->scanLogin());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新openid
|
||||
* @return Response
|
||||
*/
|
||||
public function updateOpenid()
|
||||
{
|
||||
$data = $this->request->params([ [ 'code', '' ] ]);
|
||||
$wechat_auth_service = new WechatAuthService();
|
||||
return success($wechat_auth_service->updateOpenid($data[ 'code' ]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
use app\api\middleware\ApiChannel;
|
||||
use app\api\middleware\ApiCheckToken;
|
||||
use app\api\middleware\ApiLog;
|
||||
use think\facade\Route;
|
||||
|
||||
|
||||
/**
|
||||
* 文章管理
|
||||
*/
|
||||
Route::group('article', function () {
|
||||
|
||||
/***************************************************** 文章管理 ****************************************************/
|
||||
//文章列表
|
||||
Route::get('article', 'article.Article/lists');
|
||||
//文章详情
|
||||
Route::get('article/:id', 'article.Article/info');
|
||||
//文章
|
||||
Route::get('article/all', 'article.Article/all');
|
||||
/***************************************************** 文章分类管理 ****************************************************/
|
||||
//文章分类列表
|
||||
Route::get('category', 'article.ArticleCategory/lists');
|
||||
//文章分类详情
|
||||
Route::get('category/:id', 'article.ArticleCategory/info');
|
||||
|
||||
})->middleware(ApiChannel::class)
|
||||
->middleware(ApiCheckToken::class, false)
|
||||
->middleware(ApiLog::class);
|
||||
@ -91,9 +91,6 @@ Route::group('member', function () {
|
||||
//删除会员收货地址
|
||||
Route::delete('address/:id', 'member.Address/del');
|
||||
|
||||
/***************************************************** 会员等级 **************************************************/
|
||||
Route::get('level', 'member.Level/lists');
|
||||
|
||||
/***************************************************** 会员签到 **************************************************/
|
||||
//会员签到记录
|
||||
Route::get('sign', 'member.MemberSign/lists');
|
||||
@ -118,6 +115,9 @@ Route::group('member', function () {
|
||||
/***************************************************** 会员管理 ****************************************************/
|
||||
//会员日志
|
||||
Route::post('log', 'member.Member/log');
|
||||
|
||||
/***************************************************** 会员等级 **************************************************/
|
||||
Route::get('level', 'member.Level/lists');
|
||||
})->middleware(ApiChannel::class)
|
||||
->middleware(ApiCheckToken::class)
|
||||
->middleware(ApiLog::class);
|
||||
|
||||
@ -144,5 +144,15 @@ Route::group(function() {
|
||||
})->middleware(ApiChannel::class)
|
||||
->middleware(ApiCheckToken::class)
|
||||
->middleware(ApiLog::class);
|
||||
|
||||
Route::group(function() {
|
||||
//公众号更新用户openid
|
||||
Route::put('wechat/update_openid', 'wechat.Wechat/updateOpenid');
|
||||
//小程序更新用户openid
|
||||
Route::put('weapp/update_openid', 'weapp.Weapp/updateOpenid');
|
||||
|
||||
})->middleware(ApiChannel::class)
|
||||
->middleware(ApiCheckToken::class, true)
|
||||
->middleware(ApiLog::class);
|
||||
//加载插件路由
|
||||
( new DictLoader("Route") )->load([ 'app_type' => 'api' ]);
|
||||
|
||||
@ -7,7 +7,6 @@ use app\service\admin\install\InstallSystemService;
|
||||
use app\service\core\menu\CoreMenuService;
|
||||
use think\console\Command;
|
||||
use think\console\Input;
|
||||
use think\console\input\Argument;
|
||||
use think\console\input\Option;
|
||||
use think\console\Output;
|
||||
|
||||
|
||||
@ -11,11 +11,8 @@
|
||||
|
||||
namespace app\command;
|
||||
|
||||
use core\exception\CommonException;
|
||||
use core\job\Dispatch;
|
||||
use think\console\Input;
|
||||
use think\console\Output;
|
||||
use think\queue\Job;
|
||||
|
||||
/**
|
||||
* worker 兼容think自定义指令
|
||||
|
||||
@ -18,17 +18,16 @@ use Workerman\Worker;
|
||||
class Queue extends Command
|
||||
{
|
||||
use WorkerCommand;
|
||||
|
||||
public function configure()
|
||||
{
|
||||
// 指令配置
|
||||
// 指令配置
|
||||
$this->setName('queue:listen')
|
||||
->addArgument('action', Argument::OPTIONAL, "start|stop|restart|reload|status|connections", 'start')
|
||||
->addOption('mode', 'm', Option::VALUE_OPTIONAL, 'Run the workerman server in daemon mode.')
|
||||
->setDescription('基于Redis的消息队列,支持消息延迟处理。');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 执行任务
|
||||
* @return void
|
||||
@ -36,16 +35,15 @@ class Queue extends Command
|
||||
protected function execute(Input $input, Output $output)
|
||||
{
|
||||
$this->resetCli($input, $output);
|
||||
Worker::$pidFile = runtime_path() .'workerman_queue.pid';
|
||||
Worker::$logFile = runtime_path().'workerman.log';
|
||||
Worker::$pidFile = runtime_path() . 'workerman_queue.pid';
|
||||
Worker::$logFile = runtime_path() . 'workerman.log';
|
||||
$worker = new Worker();
|
||||
$worker->name = 'queue_work';
|
||||
// $worker->count = 3;
|
||||
$worker->onWorkerStart = function () use($output){
|
||||
$worker->onWorkerStart = function() use ($output) {
|
||||
// 定时,每10秒一次
|
||||
Timer::add(30, function()use($output)
|
||||
{
|
||||
(new SysSchedule())->select();
|
||||
Timer::add(30, function() use ($output) {
|
||||
( new SysSchedule() )->select();
|
||||
});
|
||||
$redis_option = [
|
||||
'connect_timeout' => 10,
|
||||
@ -53,31 +51,31 @@ class Queue extends Command
|
||||
'retry_seconds' => 5,
|
||||
'prefix' => md5(root_path())
|
||||
];
|
||||
if(!empty(env('redis.redis_password'))){
|
||||
$redis_option['auth'] = env('redis.redis_password');
|
||||
if (!empty(env('redis.redis_password'))) {
|
||||
$redis_option[ 'auth' ] = env('redis.redis_password');
|
||||
}
|
||||
$redis_option['db'] = env('redis.select');
|
||||
$client = new Client('redis://'.env('redis.redis_hostname').':'.env('redis.port'), $redis_option);
|
||||
$redis_option[ 'db' ] = env('redis.select');
|
||||
$client = new Client('redis://' . env('redis.redis_hostname') . ':' . env('redis.port'), $redis_option);
|
||||
$queue_list = $this->getAllQueue();
|
||||
|
||||
foreach ($queue_list as $queue_class_name){
|
||||
foreach ($queue_list as $queue_class_name) {
|
||||
$queue_class_name = str_replace('.php', '', $queue_class_name);
|
||||
// 订阅
|
||||
$client->subscribe($queue_class_name, function($data) use($queue_class_name, $output){
|
||||
echo "\n".'['.date('Y-m-d H:i:s').']'." Processing:" . $queue_class_name;
|
||||
try{
|
||||
$class_name = '\\' .$queue_class_name;
|
||||
$client->subscribe($queue_class_name, function($data) use ($queue_class_name, $output) {
|
||||
echo "\n" . '[' . date('Y-m-d H:i:s') . ']' . " Processing:" . $queue_class_name;
|
||||
try {
|
||||
$class_name = '\\' . $queue_class_name;
|
||||
$class = new $class_name();
|
||||
$class->fire($data);
|
||||
} catch (\Throwable $e) {
|
||||
Log::write(date('Y-m-d H:i:s').',队列有错误:'.$queue_class_name.'_'.$e->getMessage().'_'.$e->getFile().'_'.$e->getLine());
|
||||
Log::write(date('Y-m-d H:i:s') . ',队列有错误:' . $queue_class_name . '_' . $e->getMessage() . '_' . $e->getFile() . '_' . $e->getLine());
|
||||
}
|
||||
echo "\n".'['.date('Y-m-d H:i:s').']'." Processed:" . $queue_class_name;
|
||||
echo "\n" . '[' . date('Y-m-d H:i:s') . ']' . " Processed:" . $queue_class_name;
|
||||
});
|
||||
}
|
||||
// 消费失败触发的回调(可选)
|
||||
$client->onConsumeFailure(function (\Throwable $exception, $package) use($output){
|
||||
echo "\n"."队列 " . $package['queue'] . " 消费失败,".$exception->getMessage();
|
||||
$client->onConsumeFailure(function(\Throwable $exception, $package) use ($output) {
|
||||
echo "\n" . "队列 " . $package[ 'queue' ] . " 消费失败," . $exception->getMessage();
|
||||
});
|
||||
};
|
||||
Worker::runAll();
|
||||
@ -87,26 +85,27 @@ class Queue extends Command
|
||||
* 捕获所有队列任务
|
||||
* @return array
|
||||
*/
|
||||
public function getAllQueue(){
|
||||
public function getAllQueue()
|
||||
{
|
||||
$class_list = [];
|
||||
$system_dir = root_path() . 'app' . DIRECTORY_SEPARATOR . 'job';
|
||||
$addon_dir = root_path() . 'addon' . DIRECTORY_SEPARATOR;
|
||||
if(is_dir($system_dir)){
|
||||
if (is_dir($system_dir)) {
|
||||
search_dir($system_dir, $app_data, root_path());
|
||||
$class_list = array_merge($class_list, $app_data);
|
||||
}
|
||||
|
||||
$addons = (new CoreAddonService())->getInstallAddonList();
|
||||
$addons = ( new CoreAddonService() )->getInstallAddonList();
|
||||
foreach ($addons as $v) {
|
||||
|
||||
$addon_path = $addon_dir .$v['key']. DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR. 'job';
|
||||
$addon_path = $addon_dir . $v[ 'key' ] . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'job';
|
||||
if (is_dir($addon_path)) {
|
||||
search_dir($addon_path, $addon_data, root_path());
|
||||
$class_list = array_merge($class_list, $addon_data);
|
||||
}
|
||||
}
|
||||
|
||||
foreach($class_list as &$v){
|
||||
foreach ($class_list as &$v) {
|
||||
$v = str_replace('.php', '', $v);
|
||||
$v = str_replace('/', '\\', $v);
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ use Workerman\Worker;
|
||||
class Schedule extends Command
|
||||
{
|
||||
use WorkerCommand;
|
||||
|
||||
public function configure()
|
||||
{
|
||||
// 指令配置
|
||||
@ -25,8 +26,6 @@ class Schedule extends Command
|
||||
->setDescription('定时任务,类似linux的crontab。支持秒级别定时。');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 执行任务
|
||||
* @return void
|
||||
@ -34,27 +33,27 @@ class Schedule extends Command
|
||||
protected function execute(Input $input, Output $output)
|
||||
{
|
||||
$this->resetCli($input, $output);
|
||||
Worker::$pidFile = runtime_path() .'workerman_schedule.pid';
|
||||
Worker::$pidFile = runtime_path() . 'workerman_schedule.pid';
|
||||
$worker = new Worker();
|
||||
$worker->name = 'schedule_work';
|
||||
$worker->count = 1;
|
||||
$output->writeln('['.date('Y-m-d H:i:s').']'." Schedule Starting...");
|
||||
$output->writeln('[' . date('Y-m-d H:i:s') . ']' . " Schedule Starting...");
|
||||
// 设置时区,避免运行结果与预期不一致
|
||||
date_default_timezone_set('PRC');
|
||||
$worker->onWorkerStart = function () use($output){
|
||||
$worker->onWorkerStart = function() use ($output) {
|
||||
// // 每分钟的第1秒执行.用于计划任务是否仍在执行
|
||||
new Crontab('*/10 * * * * *', function(){
|
||||
$file = root_path('runtime').'.schedule';
|
||||
new Crontab('*/10 * * * * *', function() {
|
||||
$file = root_path('runtime') . '.schedule';
|
||||
file_put_contents($file, time());
|
||||
});
|
||||
$core_schedule_service = new CoreScheduleService();
|
||||
//查询所有的计划任务
|
||||
$task_list = $core_schedule_service->getList(['status' => ScheduleDict::ON]);
|
||||
$output->writeln('['.date('Y-m-d H:i:s').']'." Schedule Started.");
|
||||
$task_list = $core_schedule_service->getList([ 'status' => ScheduleDict::ON ]);
|
||||
$output->writeln('[' . date('Y-m-d H:i:s') . ']' . " Schedule Started.");
|
||||
foreach ($task_list as $item) {
|
||||
//获取定时任务时间字符串
|
||||
new Crontab($this->getCrontab($item['time']), function () use ($core_schedule_service, $item, $output) {
|
||||
if(!empty($item['class'])){
|
||||
new Crontab($this->getCrontab($item[ 'time' ]), function() use ($core_schedule_service, $item, $output) {
|
||||
if (!empty($item[ 'class' ])) {
|
||||
$core_schedule_service->execute($item, $output);
|
||||
}
|
||||
|
||||
@ -77,14 +76,14 @@ class Schedule extends Command
|
||||
* @param $data
|
||||
* @return string
|
||||
*/
|
||||
protected function getCrontab($data): string
|
||||
protected function getCrontab($data) : string
|
||||
{
|
||||
$sec = $data['sec'] ?? '*';
|
||||
$min = $data['min'] ?? '*';
|
||||
$hour = $data['hour'] ?? '*';
|
||||
$day = $data['day'] ?? '*';
|
||||
$week = $data['week'] ?? '*';
|
||||
$type = $data['type'] ?? '';
|
||||
$sec = $data[ 'sec' ] ?? '*';
|
||||
$min = $data[ 'min' ] ?? '*';
|
||||
$hour = $data[ 'hour' ] ?? '*';
|
||||
$day = $data[ 'day' ] ?? '*';
|
||||
$week = $data[ 'week' ] ?? '*';
|
||||
$type = $data[ 'type' ] ?? '';
|
||||
switch ($type) {
|
||||
case 'sec':// 每隔几秒
|
||||
$crontab = '*/' . $sec . ' * * * * *';
|
||||
@ -99,10 +98,10 @@ class Schedule extends Command
|
||||
$crontab = '0 ' . $min . ' ' . $hour . ' */' . $day . ' * *';
|
||||
break;
|
||||
case 'week':// 每周一次,周几具体时间执行
|
||||
$crontab = '0 ' .$min . ' ' . $hour . ' * * ' . $week;
|
||||
$crontab = '0 ' . $min . ' ' . $hour . ' * * ' . $week;
|
||||
break;
|
||||
case 'month':// 每月一次,某日具体时间执行
|
||||
$crontab = '0 ' .$min . ' ' . $hour . ' ' . $day . ' * *';
|
||||
$crontab = '0 ' . $min . ' ' . $hour . ' ' . $day . ' * *';
|
||||
break;
|
||||
}
|
||||
return $crontab ?? '0 */1 * * * *';
|
||||
|
||||
@ -21,6 +21,7 @@ use Workerman\Worker;
|
||||
class Workerman extends Command
|
||||
{
|
||||
use WorkerCommand;
|
||||
|
||||
public function configure()
|
||||
{
|
||||
// 指令配置
|
||||
@ -30,8 +31,6 @@ class Workerman extends Command
|
||||
->setDescription('Workerman,高性能PHP应用容器');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 执行任务
|
||||
* @return void
|
||||
@ -40,48 +39,47 @@ class Workerman extends Command
|
||||
{
|
||||
$this->resetCli($input, $output);
|
||||
//计划任务
|
||||
Worker::$pidFile = runtime_path() .'workerman_schedule.pid';
|
||||
Worker::$pidFile = runtime_path() . 'workerman_schedule.pid';
|
||||
$worker = new Worker();
|
||||
$worker->name = 'schedule_work';
|
||||
$worker->count = 1;
|
||||
|
||||
// 设置时区,避免运行结果与预期不一致
|
||||
date_default_timezone_set('PRC');
|
||||
$worker->onWorkerStart = function () use($output){
|
||||
$output->writeln('['.date('Y-m-d H:i:s').']'." Schedule Starting...");
|
||||
$worker->onWorkerStart = function() use ($output) {
|
||||
$output->writeln('[' . date('Y-m-d H:i:s') . ']' . " Schedule Starting...");
|
||||
// // 每分钟的第1秒执行.用于计划任务是否仍在执行
|
||||
new Crontab('*/10 * * * * *', function(){
|
||||
$file = root_path('runtime').'.schedule';
|
||||
new Crontab('*/10 * * * * *', function() {
|
||||
$file = root_path('runtime') . '.schedule';
|
||||
file_put_contents($file, time());
|
||||
});
|
||||
$core_schedule_service = new CoreScheduleService();
|
||||
//查询所有的计划任务
|
||||
$task_list = $core_schedule_service->getList(['status' => ScheduleDict::ON]);
|
||||
$task_list = $core_schedule_service->getList([ 'status' => ScheduleDict::ON ]);
|
||||
|
||||
foreach ($task_list as $item) {
|
||||
//获取定时任务时间字符串
|
||||
new Crontab($this->getCrontab($item['time']), function () use ($core_schedule_service, $item, $output) {
|
||||
if(!empty($item['class'])){
|
||||
new Crontab($this->getCrontab($item[ 'time' ]), function() use ($core_schedule_service, $item, $output) {
|
||||
if (!empty($item[ 'class' ])) {
|
||||
$core_schedule_service->execute($item, $output);
|
||||
}
|
||||
});
|
||||
}
|
||||
$output->writeln('['.date('Y-m-d H:i:s').']'." Schedule Started.");
|
||||
$output->writeln('[' . date('Y-m-d H:i:s') . ']' . " Schedule Started.");
|
||||
};
|
||||
|
||||
//消息队列
|
||||
Worker::$pidFile = runtime_path() .'workerman_queue.pid';
|
||||
Worker::$logFile = runtime_path().'workerman.log';
|
||||
Worker::$pidFile = runtime_path() . 'workerman_queue.pid';
|
||||
Worker::$logFile = runtime_path() . 'workerman.log';
|
||||
$worker = new Worker();
|
||||
$worker->name = 'queue_work';
|
||||
// $worker->count = 3;
|
||||
|
||||
$worker->onWorkerStart = function () use($output){
|
||||
$output->writeln('['.date('Y-m-d H:i:s').']'." Queue Starting...");
|
||||
$worker->onWorkerStart = function() use ($output) {
|
||||
$output->writeln('[' . date('Y-m-d H:i:s') . ']' . " Queue Starting...");
|
||||
// 定时,每10秒一次
|
||||
Timer::add(30, function()use($output)
|
||||
{
|
||||
(new SysSchedule())->select();
|
||||
Timer::add(30, function() use ($output) {
|
||||
( new SysSchedule() )->select();
|
||||
});
|
||||
$redis_option = [
|
||||
'connect_timeout' => 10,
|
||||
@ -89,33 +87,33 @@ class Workerman extends Command
|
||||
'retry_seconds' => 5,
|
||||
'prefix' => md5(root_path())
|
||||
];
|
||||
if(!empty(env('redis.redis_password'))){
|
||||
$redis_option['auth'] = env('redis.redis_password');
|
||||
if (!empty(env('redis.redis_password'))) {
|
||||
$redis_option[ 'auth' ] = env('redis.redis_password');
|
||||
}
|
||||
$redis_option['db'] = env('redis.select');
|
||||
$client = new Client('redis://'.env('redis.redis_hostname').':'.env('redis.port'), $redis_option);
|
||||
$redis_option[ 'db' ] = env('redis.select');
|
||||
$client = new Client('redis://' . env('redis.redis_hostname') . ':' . env('redis.port'), $redis_option);
|
||||
$queue_list = $this->getAllQueue();
|
||||
|
||||
foreach ($queue_list as $queue_class_name){
|
||||
foreach ($queue_list as $queue_class_name) {
|
||||
$queue_class_name = str_replace('.php', '', $queue_class_name);
|
||||
// 订阅
|
||||
$client->subscribe($queue_class_name, function($data) use($queue_class_name, $output){
|
||||
$output->writeln('[queue]['.date('Y-m-d H:i:s').']'." Processing:" . $queue_class_name);
|
||||
try{
|
||||
$class_name = '\\' .$queue_class_name;
|
||||
$client->subscribe($queue_class_name, function($data) use ($queue_class_name, $output) {
|
||||
$output->writeln('[queue][' . date('Y-m-d H:i:s') . ']' . " Processing:" . $queue_class_name);
|
||||
try {
|
||||
$class_name = '\\' . $queue_class_name;
|
||||
$class = new $class_name();
|
||||
$class->fire($data);
|
||||
} catch (\Throwable $e) {
|
||||
Log::write(date('Y-m-d H:i:s').',队列有错误:'.$queue_class_name.'_'.$e->getMessage().'_'.$e->getFile().'_'.$e->getLine());
|
||||
Log::write(date('Y-m-d H:i:s') . ',队列有错误:' . $queue_class_name . '_' . $e->getMessage() . '_' . $e->getFile() . '_' . $e->getLine());
|
||||
}
|
||||
$output->writeln('[queue]['.date('Y-m-d H:i:s').']'." Processed:" . $queue_class_name);
|
||||
$output->writeln('[queue][' . date('Y-m-d H:i:s') . ']' . " Processed:" . $queue_class_name);
|
||||
});
|
||||
}
|
||||
// 消费失败触发的回调(可选)
|
||||
$client->onConsumeFailure(function (\Throwable $exception, $package) use($output){
|
||||
$output->writeln('[queue]队列 ' . $package['queue'] . " 消费失败,".$exception->getMessage());
|
||||
$client->onConsumeFailure(function(\Throwable $exception, $package) use ($output) {
|
||||
$output->writeln('[queue]队列 ' . $package[ 'queue' ] . " 消费失败," . $exception->getMessage());
|
||||
});
|
||||
$output->writeln('['.date('Y-m-d H:i:s').']'." Queue Started.");
|
||||
$output->writeln('[' . date('Y-m-d H:i:s') . ']' . " Queue Started.");
|
||||
};
|
||||
Worker::runAll();
|
||||
}
|
||||
@ -133,14 +131,14 @@ class Workerman extends Command
|
||||
* @param $data
|
||||
* @return string
|
||||
*/
|
||||
protected function getCrontab($data): string
|
||||
protected function getCrontab($data) : string
|
||||
{
|
||||
$sec = $data['sec'] ?? '*';
|
||||
$min = $data['min'] ?? '*';
|
||||
$hour = $data['hour'] ?? '*';
|
||||
$day = $data['day'] ?? '*';
|
||||
$week = $data['week'] ?? '*';
|
||||
$type = $data['type'] ?? '';
|
||||
$sec = $data[ 'sec' ] ?? '*';
|
||||
$min = $data[ 'min' ] ?? '*';
|
||||
$hour = $data[ 'hour' ] ?? '*';
|
||||
$day = $data[ 'day' ] ?? '*';
|
||||
$week = $data[ 'week' ] ?? '*';
|
||||
$type = $data[ 'type' ] ?? '';
|
||||
switch ($type) {
|
||||
case 'sec':// 每隔几秒
|
||||
$crontab = '*/' . $sec . ' * * * * *';
|
||||
@ -155,10 +153,10 @@ class Workerman extends Command
|
||||
$crontab = '0 ' . $min . ' ' . $hour . ' */' . $day . ' * *';
|
||||
break;
|
||||
case 'week':// 每周一次,周几具体时间执行
|
||||
$crontab = '0 ' .$min . ' ' . $hour . ' * * ' . $week;
|
||||
$crontab = '0 ' . $min . ' ' . $hour . ' * * ' . $week;
|
||||
break;
|
||||
case 'month':// 每月一次,某日具体时间执行
|
||||
$crontab = '0 ' .$min . ' ' . $hour . ' ' . $day . ' * *';
|
||||
$crontab = '0 ' . $min . ' ' . $hour . ' ' . $day . ' * *';
|
||||
break;
|
||||
}
|
||||
return $crontab ?? '0 */1 * * * *';
|
||||
@ -168,26 +166,27 @@ class Workerman extends Command
|
||||
* 捕获所有队列任务
|
||||
* @return array
|
||||
*/
|
||||
public function getAllQueue(){
|
||||
public function getAllQueue()
|
||||
{
|
||||
$class_list = [];
|
||||
$system_dir = root_path() . 'app' . DIRECTORY_SEPARATOR . 'job';
|
||||
$addon_dir = root_path() . 'addon' . DIRECTORY_SEPARATOR;
|
||||
if(is_dir($system_dir)){
|
||||
if (is_dir($system_dir)) {
|
||||
search_dir($system_dir, $app_data, root_path());
|
||||
$class_list = array_merge($class_list, $app_data);
|
||||
}
|
||||
|
||||
$addons = (new CoreAddonService())->getInstallAddonList();
|
||||
$addons = ( new CoreAddonService() )->getInstallAddonList();
|
||||
foreach ($addons as $v) {
|
||||
|
||||
$addon_path = $addon_dir .$v['key']. DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR. 'job';
|
||||
$addon_path = $addon_dir . $v[ 'key' ] . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'job';
|
||||
if (is_dir($addon_path)) {
|
||||
search_dir($addon_path, $addon_data, root_path());
|
||||
$class_list = array_merge($class_list, $addon_data);
|
||||
}
|
||||
}
|
||||
|
||||
foreach($class_list as &$v){
|
||||
foreach ($class_list as &$v) {
|
||||
$v = str_replace('.php', '', $v);
|
||||
$v = str_replace('/', '\\', $v);
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ class AddonDict
|
||||
|
||||
// 插件关键字黑名单
|
||||
const ADDON_KEY_BLACK_LIST = [
|
||||
'addon', 'aliapp', 'app', 'applet', 'auht', 'channel', 'dict', 'diy', 'generator', 'home', 'member', 'niucloud',
|
||||
'addon', 'aliapp', 'app', 'applet', 'auth', 'channel', 'dict', 'diy', 'generator', 'home', 'member', 'niucloud',
|
||||
'notice', 'pay', 'site', 'sys', 'upload', 'home', 'user', 'weapp', 'wechat'
|
||||
];
|
||||
|
||||
|
||||
@ -550,8 +550,10 @@ class ComponentDict
|
||||
'sort' => 10014,
|
||||
'position' => 'fixed',
|
||||
'value' => [
|
||||
"imageSize" => 40,
|
||||
"imageSize" => 80,
|
||||
"aroundRadius" => 0,
|
||||
'style' => 'style-1',
|
||||
"styleName" => "风格一",
|
||||
"bottomPosition" => "lowerRight", // 左上:upperLeft,右上:upperRight,左下:lowerLeft,右下:lowerRight
|
||||
"list" => [
|
||||
[
|
||||
|
||||
@ -114,7 +114,14 @@ class LinkDict
|
||||
'url' => '/app/pages/verify/index',
|
||||
'is_share' => 1,
|
||||
'action' => ''
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => 'MEMBER_CONTACT',
|
||||
'title' => get_lang('dict_diy.member_contact'),
|
||||
'url' => '/app/pages/member/contact',
|
||||
'is_share' => 1,
|
||||
'action' => ''
|
||||
],
|
||||
]
|
||||
],
|
||||
'DIY_PAGE' => [
|
||||
|
||||
@ -62,7 +62,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 10,
|
||||
"bottom" => 10,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
],
|
||||
"ignore" => [],
|
||||
"list" => []
|
||||
@ -152,10 +152,11 @@ class PagesDict
|
||||
'topStatusBar' => [
|
||||
'isShow' => true,
|
||||
'bgColor' => "#ffffff",
|
||||
'isTransparent' => false,
|
||||
'rollBgColor' => "#ffffff",
|
||||
'style' => 'style-1',
|
||||
'styleName' => '风格1',
|
||||
'textColor' => "#333333",
|
||||
'rollTextColor' => "#333333",
|
||||
'textAlign' => 'center',
|
||||
'inputPlaceholder' => '请输入搜索关键词',
|
||||
'imgUrl' => '',
|
||||
@ -217,16 +218,17 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 12
|
||||
"both" => 10
|
||||
]
|
||||
],
|
||||
'topStatusBar' => [
|
||||
"topStatusBar" => [
|
||||
'isShow' => true,
|
||||
'bgColor' => "#ffffff",
|
||||
'isTransparent' => false,
|
||||
'rollBgColor' => "#ffffff",
|
||||
'style' => 'style-1',
|
||||
'styleName' => '风格1',
|
||||
'textColor' => "#333333",
|
||||
'rollTextColor' => "#333333",
|
||||
'textAlign' => 'center',
|
||||
'inputPlaceholder' => '请输入搜索关键词',
|
||||
'imgUrl' => '',
|
||||
@ -269,7 +271,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 12,
|
||||
"bottom" => 6,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
],
|
||||
"style" => "style-1",
|
||||
"styleName" => "风格1",
|
||||
@ -306,7 +308,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 6,
|
||||
"bottom" => 0,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
]
|
||||
],
|
||||
[
|
||||
@ -359,7 +361,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
]
|
||||
],
|
||||
[
|
||||
@ -400,7 +402,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 6,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
],
|
||||
"ignore" => [],
|
||||
"list" => [
|
||||
@ -467,7 +469,11 @@ class PagesDict
|
||||
[
|
||||
"title" => "联系客服",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
"name" => "MEMBER_CONTACT",
|
||||
"parent" => "MEMBER_LINK",
|
||||
"title" => "客服",
|
||||
"url" => "/app/pages/member/contact",
|
||||
"action" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_service.png",
|
||||
"label" => [
|
||||
@ -570,7 +576,11 @@ class PagesDict
|
||||
[
|
||||
"title" => "联系客服",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
"name" => "MEMBER_CONTACT",
|
||||
"parent" => "MEMBER_LINK",
|
||||
"title" => "客服",
|
||||
"url" => "/app/pages/member/contact",
|
||||
"action" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_service.png",
|
||||
"label" => [
|
||||
@ -618,7 +628,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 6,
|
||||
"bottom" => 12,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
]
|
||||
]
|
||||
]
|
||||
@ -660,7 +670,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 12
|
||||
"both" => 10
|
||||
]
|
||||
],
|
||||
'topStatusBar' => [
|
||||
@ -749,7 +759,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
]
|
||||
],
|
||||
[
|
||||
@ -802,7 +812,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 0,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
]
|
||||
],
|
||||
[
|
||||
@ -843,7 +853,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 0,
|
||||
"bottom" => 6,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
],
|
||||
"ignore" => [],
|
||||
"list" => [
|
||||
@ -910,7 +920,11 @@ class PagesDict
|
||||
[
|
||||
"title" => "联系客服",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
"name" => "MEMBER_CONTACT",
|
||||
"parent" => "MEMBER_LINK",
|
||||
"title" => "客服",
|
||||
"url" => "/app/pages/member/contact",
|
||||
"action" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/horz_m_service.png",
|
||||
"label" => [
|
||||
@ -1013,7 +1027,11 @@ class PagesDict
|
||||
[
|
||||
"title" => "联系客服",
|
||||
"link" => [
|
||||
"name" => ""
|
||||
"name" => "MEMBER_CONTACT",
|
||||
"parent" => "MEMBER_LINK",
|
||||
"title" => "客服",
|
||||
"url" => "/app/pages/member/contact",
|
||||
"action" => ""
|
||||
],
|
||||
"imageUrl" => "static/resource/images/diy/vert_m_service.png",
|
||||
"label" => [
|
||||
@ -1061,7 +1079,7 @@ class PagesDict
|
||||
"margin" => [
|
||||
"top" => 6,
|
||||
"bottom" => 12,
|
||||
"both" => 16
|
||||
"both" => 10
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
@ -24,49 +24,49 @@ class MemberLevelDict
|
||||
{
|
||||
|
||||
return [
|
||||
// 'level_1' => [
|
||||
// 'bg_color' => '#414852',
|
||||
// 'level_color' => '#666666',
|
||||
// 'progress' => ['#999999','#666666'],
|
||||
// 'gift'=> '#ECEBEB',
|
||||
// ],
|
||||
'level_1' => [
|
||||
'bg_color' => '#414852',
|
||||
'level_color' => '#666666',
|
||||
'progress' => ['#999999','#666666'],
|
||||
'gift'=> '#ECEBEB',
|
||||
],
|
||||
'level_2' => [
|
||||
'bg_color' => '#354B54',
|
||||
'level_color' => '#116787',
|
||||
'progress' => ['#4BA5C7','#116787'],
|
||||
'gift'=> '#F1FDFF',
|
||||
],
|
||||
'level_3' => [
|
||||
'level_2' => [
|
||||
'bg_color' => '#203B54',
|
||||
'level_color' => '#286BAA',
|
||||
'progress' => ['#529BDF','#286BAA'],
|
||||
'gift'=> '#E3F2FF',
|
||||
],
|
||||
'level_4' => [
|
||||
'level_3' => [
|
||||
'bg_color' => '#403E32',
|
||||
'level_color' => '#967600',
|
||||
'progress' => ['#D1A400','#967600'],
|
||||
'gift'=> '#FFFAE3',
|
||||
],
|
||||
'level_5' => [
|
||||
'level_4' => [
|
||||
'bg_color' => '#36354B',
|
||||
'level_color' => '#4B3EF9',
|
||||
'progress' => ['#8F87FF','#4B3EF9'],
|
||||
'gift'=> '#E7EEFF',
|
||||
],
|
||||
'level_6' => [
|
||||
'level_5' => [
|
||||
'bg_color' => '#362F28',
|
||||
'level_color' => '#9F5300',
|
||||
'progress' => ['#EFA244','#9F5300'],
|
||||
'gift'=> '#FFF5DC',
|
||||
],
|
||||
'level_7' => [
|
||||
'level_6' => [
|
||||
'bg_color' => '#322432',
|
||||
'level_color' => '#DE43D6',
|
||||
'progress' => ['#FFA0FA','#DE43D6'],
|
||||
'gift'=> '#FFEAFF',
|
||||
],
|
||||
'level_8' => [
|
||||
'level_7' => [
|
||||
'bg_color' => '#301C1E',
|
||||
'level_color' => '#DE000B',
|
||||
'progress' => ['#FF8B36','#DE000B'],
|
||||
|
||||
@ -24,7 +24,6 @@ class MemberRegisterChannelDict extends ChannelDict
|
||||
|
||||
public static function getType($type = '')
|
||||
{
|
||||
|
||||
$data = ChannelDict::getType($type);
|
||||
$data[self::MANUAL] = get_lang('dict_member.register_manual');//手动添加
|
||||
if (empty($type)) {
|
||||
|
||||
@ -112,6 +112,8 @@ return [
|
||||
'inc' => 1,
|
||||
//是否减少
|
||||
'dec' => 0,
|
||||
//是否累增
|
||||
'is_change_get' => 0,
|
||||
],
|
||||
//会员升级礼包
|
||||
'level_upgrade' => [
|
||||
@ -160,6 +162,8 @@ return [
|
||||
'inc' => 0,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
//是否累增
|
||||
'is_change_get' => 0,
|
||||
],
|
||||
],
|
||||
//会员佣金
|
||||
@ -182,6 +186,8 @@ return [
|
||||
'inc' => 0,
|
||||
//是否减少
|
||||
'dec' => 1,
|
||||
//是否累增
|
||||
'is_change_get' => 0,
|
||||
],
|
||||
]
|
||||
];
|
||||
|
||||
@ -2172,7 +2172,7 @@ return [
|
||||
'router_path' => 'setting/agreement',
|
||||
'view_path' => 'setting/agreement',
|
||||
'methods' => 'get',
|
||||
'sort' => '80',
|
||||
'sort' => '100',
|
||||
'status' => '1',
|
||||
'is_show' => '1',
|
||||
],
|
||||
@ -2260,7 +2260,7 @@ return [
|
||||
'router_path' => 'setting/storage',
|
||||
'view_path' => 'setting/storage',
|
||||
'methods' => 'get',
|
||||
'sort' => '30',
|
||||
'sort' => '98',
|
||||
'status' => '1',
|
||||
'is_show' => '1',
|
||||
'children' => [
|
||||
@ -2304,7 +2304,7 @@ return [
|
||||
'router_path' => 'setting/export',
|
||||
'view_path' => 'setting/export',
|
||||
'methods' => 'get',
|
||||
'sort' => '30',
|
||||
'sort' => '98',
|
||||
'status' => '1',
|
||||
'is_show' => '1',
|
||||
'children' => [
|
||||
@ -2323,7 +2323,123 @@ return [
|
||||
'is_show' => '1',
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'menu_name' => '小票打印',
|
||||
'menu_key' => 'printer_management',
|
||||
'menu_short_name' => '小票打印',
|
||||
'menu_type' => '1',
|
||||
'icon' => 'element FolderChecked',
|
||||
'api_url' => 'printer',
|
||||
'router_path' => 'printer/list',
|
||||
'view_path' => 'printer/list',
|
||||
'methods' => 'get',
|
||||
'sort' => '97',
|
||||
'status' => '1',
|
||||
'is_show' => '1',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '删除打印机',
|
||||
'menu_key' => 'delete_printer',
|
||||
'menu_short_name' => '删除打印机',
|
||||
'menu_type' => '2',
|
||||
'icon' => '',
|
||||
'api_url' => 'printer/<id>',
|
||||
'router_path' => '',
|
||||
'view_path' => '',
|
||||
'methods' => 'delete',
|
||||
'sort' => '100',
|
||||
'status' => '1',
|
||||
'is_show' => '1',
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'menu_name' => '添加打印机',
|
||||
'menu_key' => 'printer_add',
|
||||
'menu_short_name' => '添加打印机',
|
||||
'menu_type' => '1',
|
||||
'icon' => '',
|
||||
'api_url' => 'printer',
|
||||
'router_path' => 'printer/add',
|
||||
'view_path' => 'printer/edit',
|
||||
'methods' => 'post',
|
||||
'sort' => '0',
|
||||
'status' => '1',
|
||||
'is_show' => '0',
|
||||
],
|
||||
[
|
||||
'menu_name' => '编辑打印机',
|
||||
'menu_key' => 'printer_edit',
|
||||
'menu_short_name' => '添加打印机',
|
||||
'menu_type' => '1',
|
||||
'icon' => '',
|
||||
'api_url' => 'printer/<id>',
|
||||
'router_path' => 'printer/edit',
|
||||
'view_path' => 'printer/edit',
|
||||
'methods' => 'put',
|
||||
'sort' => '0',
|
||||
'status' => '1',
|
||||
'is_show' => '0',
|
||||
],
|
||||
[
|
||||
'menu_name' => '小票打印模板',
|
||||
'menu_key' => 'printer_template_management',
|
||||
'menu_short_name' => '小票打印模板',
|
||||
'menu_type' => '1',
|
||||
'icon' => 'element FolderChecked',
|
||||
'api_url' => 'printer/template',
|
||||
'router_path' => 'printer/template/list',
|
||||
'view_path' => 'printer/template_list',
|
||||
'methods' => 'get',
|
||||
'sort' => '96',
|
||||
'status' => '1',
|
||||
'is_show' => '0',
|
||||
'children' => [
|
||||
[
|
||||
'menu_name' => '删除打印模板',
|
||||
'menu_key' => 'delete_printer_template',
|
||||
'menu_short_name' => '删除打印模板',
|
||||
'menu_type' => '2',
|
||||
'icon' => '',
|
||||
'api_url' => 'printer/template/<id>',
|
||||
'router_path' => '',
|
||||
'view_path' => '',
|
||||
'methods' => 'delete',
|
||||
'sort' => '100',
|
||||
'status' => '1',
|
||||
'is_show' => '1',
|
||||
]
|
||||
]
|
||||
],
|
||||
[
|
||||
'menu_name' => '添加打印模板',
|
||||
'menu_key' => 'printer_template_add',
|
||||
'menu_short_name' => '添加打印模板',
|
||||
'menu_type' => '1',
|
||||
'icon' => '',
|
||||
'api_url' => 'printer/template',
|
||||
'router_path' => 'printer/template/add',
|
||||
'view_path' => 'printer/template_edit',
|
||||
'methods' => 'post',
|
||||
'sort' => '0',
|
||||
'status' => '1',
|
||||
'is_show' => '0',
|
||||
],
|
||||
[
|
||||
'menu_name' => '编辑打印模板',
|
||||
'menu_key' => 'printer_template_edit',
|
||||
'menu_short_name' => '编辑打印模板',
|
||||
'menu_type' => '1',
|
||||
'icon' => '',
|
||||
'api_url' => 'printer/template/<id>',
|
||||
'router_path' => 'printer/template/edit',
|
||||
'view_path' => 'printer/template_edit',
|
||||
'methods' => 'put',
|
||||
'sort' => '0',
|
||||
'status' => '1',
|
||||
'is_show' => '0',
|
||||
],
|
||||
]
|
||||
],
|
||||
|
||||
|
||||
@ -37,6 +37,10 @@ class ComponentDict
|
||||
'sort' => 10000,
|
||||
'relate' => '', // 关联字段,空为不处理// 组件属性
|
||||
'value' => '文本内容',
|
||||
'template' => [
|
||||
"width" => 165, // 宽度
|
||||
'height' => 53 // 高度
|
||||
]
|
||||
],
|
||||
'Image' => [
|
||||
'title' => "图片",
|
||||
@ -68,10 +72,11 @@ class ComponentDict
|
||||
'relate' => 'headimg', // 关联字段,空为不处理
|
||||
'value' => '',
|
||||
'template' => [
|
||||
"width" => 50, // 宽度
|
||||
'height' => 50, // 高度
|
||||
'minWidth' => 30, // 最小宽度
|
||||
'minHeight' => 30, // 最小高度
|
||||
"width" => 100, // 宽度
|
||||
'height' => 100, // 高度
|
||||
'minWidth' => 60, // 最小宽度
|
||||
'minHeight' => 60, // 最小高度
|
||||
'shape' => 'circle'
|
||||
],
|
||||
],
|
||||
'NickName' => [
|
||||
@ -84,10 +89,10 @@ class ComponentDict
|
||||
'relate' => 'nickname', // 关联字段,空为不处理
|
||||
'value' => '',
|
||||
'template' => [
|
||||
"width" => 50, // 宽度
|
||||
'height' => 50, // 高度
|
||||
'minWidth' => 30, // 最小宽度
|
||||
'minHeight' => 30, // 最小高度
|
||||
"width" => 164, // 宽度
|
||||
'height' => 55, // 高度
|
||||
'minWidth' => 120, // 最小宽度
|
||||
'minHeight' => 50, // 最小高度
|
||||
],
|
||||
],
|
||||
'Draw' => [
|
||||
@ -100,10 +105,10 @@ class ComponentDict
|
||||
'relate' => '', // 关联字段,空为不处理
|
||||
'value' => '',
|
||||
'template' => [
|
||||
"width" => 100, // 宽度
|
||||
'height' => 100, // 高度
|
||||
'minWidth' => 30, // 最小宽度
|
||||
'minHeight' => 30, // 最小高度
|
||||
"width" => 200, // 宽度
|
||||
'height' => 200, // 高度
|
||||
'minWidth' => 60, // 最小宽度
|
||||
'minHeight' => 60, // 最小高度
|
||||
'drawType' => 'Polygon',
|
||||
'bgColor' => '#eeeeee',
|
||||
'points' => [], // [x,y]:左上,右上,右下,左下
|
||||
|
||||
@ -30,6 +30,8 @@ class FileDict
|
||||
public const MID = 'mid';//小程序上传
|
||||
public const SMALL = 'small';
|
||||
|
||||
public const EXCEL = 'excel';//excel导入
|
||||
|
||||
/**
|
||||
* 附件类型
|
||||
* @return array
|
||||
@ -68,6 +70,7 @@ class FileDict
|
||||
self::IMAGE,//图片上传
|
||||
self::VIDEO,//视频上传
|
||||
self::APPLET,//小程序包上传
|
||||
self::EXCEL,//excel导入
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
62
niucloud/app/dict/sys/PrinterDict.php
Normal file
62
niucloud/app/dict/sys/PrinterDict.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\dict\sys;
|
||||
|
||||
|
||||
use core\dict\DictLoader;
|
||||
|
||||
class PrinterDict
|
||||
{
|
||||
|
||||
public const YI_LIAN_YUN = 'yilianyun'; // 易联云打印机
|
||||
|
||||
/**
|
||||
* 打印机品牌
|
||||
* @param string $brand
|
||||
* @return array|mixed|string
|
||||
*/
|
||||
public static function getBrandName($brand = '')
|
||||
{
|
||||
$list = [
|
||||
self::YI_LIAN_YUN => get_lang('dict_printer.yilianyun'), // 易联云打印机
|
||||
];
|
||||
if ($brand == '') return $list;
|
||||
return $list[ $brand ] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取打印机模板类型
|
||||
* @param string $type
|
||||
* @return array|null
|
||||
*/
|
||||
public static function getType($type = '')
|
||||
{
|
||||
$system_type = [];
|
||||
|
||||
$type_list = ( new DictLoader("Printer") )->load($system_type);
|
||||
|
||||
if ($type == '') {
|
||||
return $type_list;
|
||||
} else {
|
||||
$data = [];
|
||||
foreach ($type_list as $k => $v) {
|
||||
if ($v[ 'key' ] == $type) {
|
||||
$data = $v;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -152,16 +152,24 @@ class Index extends BaseInstall
|
||||
];
|
||||
|
||||
} else {
|
||||
if (@mysqli_select_db($conn, $dbname)) {
|
||||
$result = [
|
||||
"status" => 2,
|
||||
"message" => "数据库存在,系统将覆盖数据库"
|
||||
];
|
||||
} else {
|
||||
try {
|
||||
if (@mysqli_select_db($conn, $dbname)) {
|
||||
$result = [
|
||||
"status" => 2,
|
||||
"message" => "数据库存在,系统将覆盖数据库"
|
||||
];
|
||||
} else {
|
||||
$result = [
|
||||
"status" => 1,
|
||||
"message" => "数据库不存在,系统将自动创建"
|
||||
];
|
||||
}
|
||||
} catch ( Exception $e) {
|
||||
$result = [
|
||||
"status" => 1,
|
||||
"message" => "数据库不存在,系统将自动创建"
|
||||
];
|
||||
return fail($result);
|
||||
}
|
||||
}
|
||||
@mysqli_close($conn);
|
||||
|
||||
@ -22,6 +22,7 @@ CREATE TABLE `addon` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '插件表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `addon_log`;
|
||||
CREATE TABLE `addon_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -33,6 +34,7 @@ CREATE TABLE `addon_log` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '插件日志表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `applet_site_version`;
|
||||
CREATE TABLE `applet_site_version` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -44,6 +46,7 @@ CREATE TABLE `applet_site_version` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站点小程序版本表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `applet_version`;
|
||||
CREATE TABLE `applet_version` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -63,6 +66,7 @@ CREATE TABLE `applet_version` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小程序版本表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `diy_page`;
|
||||
CREATE TABLE `diy_page` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -81,7 +85,8 @@ CREATE TABLE `diy_page` (
|
||||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='自定义页面' ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '自定义页面' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `diy_route`;
|
||||
CREATE TABLE `diy_route` (
|
||||
@ -96,6 +101,7 @@ CREATE TABLE `diy_route` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '自定义路由' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `generate_column`;
|
||||
CREATE TABLE `generate_column` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
@ -125,6 +131,7 @@ CREATE TABLE `generate_column` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成表字段信息表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `generate_table`;
|
||||
CREATE TABLE `generate_table` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -142,6 +149,7 @@ CREATE TABLE `generate_table` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `jobs`;
|
||||
CREATE TABLE `jobs` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -154,6 +162,7 @@ CREATE TABLE `jobs` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息队列任务表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `jobs_failed`;
|
||||
CREATE TABLE `jobs_failed` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -165,6 +174,7 @@ CREATE TABLE `jobs_failed` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息队列任务失败记录表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member`;
|
||||
CREATE TABLE `member` (
|
||||
`member_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -174,7 +184,7 @@ CREATE TABLE `member` (
|
||||
`username` varchar(255) NOT NULL DEFAULT '' COMMENT '会员用户名',
|
||||
`mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号',
|
||||
`password` varchar(255) NOT NULL DEFAULT '' COMMENT '会员密码',
|
||||
`nickname` varchar(50) NOT NULL DEFAULT '' COMMENT '会员昵称',
|
||||
`nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '会员昵称',
|
||||
`headimg` varchar(1000) NOT NULL DEFAULT '' COMMENT '会员头像',
|
||||
`member_level` int(11) NOT NULL DEFAULT 0 COMMENT '会员等级',
|
||||
`member_label` varchar(255) NOT NULL DEFAULT '' COMMENT '会员标签',
|
||||
@ -221,6 +231,7 @@ CREATE TABLE `member` (
|
||||
PRIMARY KEY (`member_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_account_log`;
|
||||
CREATE TABLE `member_account_log` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
@ -236,31 +247,29 @@ CREATE TABLE `member_account_log` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员账单表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_address`;
|
||||
CREATE TABLE `member_address` (
|
||||
id int UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
member_id int NOT NULL DEFAULT 0 COMMENT '会员id',
|
||||
site_id int NOT NULL DEFAULT 0 COMMENT '站点id',
|
||||
name varchar(255) NOT NULL DEFAULT '' COMMENT '用户姓名',
|
||||
mobile varchar(255) NOT NULL DEFAULT '' COMMENT '手机',
|
||||
province_id int NOT NULL DEFAULT 0 COMMENT '省id',
|
||||
city_id int NOT NULL DEFAULT 0 COMMENT '市id',
|
||||
district_id int NOT NULL DEFAULT 0 COMMENT '区县id',
|
||||
address varchar(255) NOT NULL DEFAULT '' COMMENT '地址信息',
|
||||
address_name varchar(255) NOT NULL DEFAULT '',
|
||||
full_address varchar(255) NOT NULL DEFAULT '' COMMENT '详细地址信息',
|
||||
lng varchar(255) NOT NULL DEFAULT '' COMMENT '经度',
|
||||
lat varchar(255) NOT NULL DEFAULT '' COMMENT '纬度',
|
||||
is_default tinyint NOT NULL DEFAULT 0 COMMENT '是否是默认地址',
|
||||
PRIMARY KEY (id)
|
||||
)
|
||||
ENGINE = INNODB,
|
||||
CHARACTER SET utf8mb4,
|
||||
COLLATE utf8mb4_general_ci,
|
||||
COMMENT = '会员收货地址';
|
||||
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`member_id` int NOT NULL DEFAULT 0 COMMENT '会员id',
|
||||
`site_id` int NOT NULL DEFAULT 0 COMMENT '站点id',
|
||||
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '用户姓名',
|
||||
`mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '手机',
|
||||
`province_id` int NOT NULL DEFAULT 0 COMMENT '省id',
|
||||
`city_id` int NOT NULL DEFAULT 0 COMMENT '市id',
|
||||
`district_id` int NOT NULL DEFAULT 0 COMMENT '区县id',
|
||||
`address` varchar(255) NOT NULL DEFAULT '' COMMENT '地址信息',
|
||||
`address_name` varchar(255) NOT NULL DEFAULT '',
|
||||
`full_address` varchar(255) NOT NULL DEFAULT '' COMMENT '详细地址信息',
|
||||
`lng` varchar(255) NOT NULL DEFAULT '' COMMENT '经度',
|
||||
`lat` varchar(255) NOT NULL DEFAULT '' COMMENT '纬度',
|
||||
`is_default` tinyint NOT NULL DEFAULT 0 COMMENT '是否是默认地址',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员收货地址' ROW_FORMAT = Dynamic;
|
||||
|
||||
ALTER TABLE `member_address`ADD INDEX IDX_member_address (member_id);
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_cash_out`;
|
||||
CREATE TABLE `member_cash_out` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -282,9 +291,9 @@ CREATE TABLE `member_cash_out` (
|
||||
`money` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '提现到账金额',
|
||||
`audit_time` int(11) NOT NULL DEFAULT 0 COMMENT '审核时间',
|
||||
`status` int(11) NOT NULL DEFAULT 0 COMMENT '状态1待审核2.待转账3已转账 -1拒绝 -2 已取消',
|
||||
`remark` varchar(100) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '申请时间',
|
||||
`refuse_reason` varchar(100) NOT NULL DEFAULT '' COMMENT '拒绝理由',
|
||||
`refuse_reason` varchar(255) NOT NULL DEFAULT '' COMMENT '拒绝理由',
|
||||
`update_time` int(11) NOT NULL DEFAULT 0,
|
||||
`transfer_no` varchar(50) NOT NULL DEFAULT '' COMMENT '转账单号',
|
||||
`cancel_time` int(11) NOT NULL DEFAULT 0 COMMENT '取消时间',
|
||||
@ -292,6 +301,7 @@ CREATE TABLE `member_cash_out` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员提现表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_cash_out_account`;
|
||||
CREATE TABLE `member_cash_out_account` (
|
||||
`account_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -306,6 +316,7 @@ CREATE TABLE `member_cash_out_account` (
|
||||
PRIMARY KEY (`account_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员提现账户' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_label`;
|
||||
CREATE TABLE `member_label` (
|
||||
`label_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '标签id',
|
||||
@ -319,6 +330,7 @@ CREATE TABLE `member_label` (
|
||||
INDEX `label_id`(`label_id` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员标签' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_level`;
|
||||
CREATE TABLE `member_level` (
|
||||
`level_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '会员等级',
|
||||
@ -332,7 +344,8 @@ CREATE TABLE `member_level` (
|
||||
`level_benefits` text COMMENT '等级权益',
|
||||
`level_gifts` text COMMENT '等级礼包',
|
||||
PRIMARY KEY (`level_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='会员等级' ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员等级' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_sign`;
|
||||
CREATE TABLE `member_sign` (
|
||||
@ -347,7 +360,8 @@ CREATE TABLE `member_sign` (
|
||||
`start_time` int(11) NOT NULL DEFAULT '0' COMMENT '签到周期开始时间',
|
||||
`is_sign` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否签到(0未签到 1已签到)',
|
||||
PRIMARY KEY (`sign_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='会员签到表' ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员签到表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `pay`;
|
||||
CREATE TABLE `pay` (
|
||||
@ -374,6 +388,7 @@ CREATE TABLE `pay` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付记录表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `pay_channel`;
|
||||
CREATE TABLE `pay_channel` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -388,6 +403,7 @@ CREATE TABLE `pay_channel` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付渠道配置表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `pay_refund`;
|
||||
CREATE TABLE `pay_refund` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -411,7 +427,8 @@ CREATE TABLE `pay_refund` (
|
||||
`main_id` int NOT NULL DEFAULT 0 COMMENT '操作人',
|
||||
`pay_refund_no` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '外部支付方式的退款单号',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付记录表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '退款记录表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `pay_transfer`;
|
||||
CREATE TABLE `pay_transfer` (
|
||||
@ -440,6 +457,7 @@ CREATE TABLE `pay_transfer` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '转账表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `recharge_order`;
|
||||
CREATE TABLE `recharge_order` (
|
||||
`order_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -467,6 +485,7 @@ CREATE TABLE `recharge_order` (
|
||||
PRIMARY KEY (`order_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `recharge_order_item`;
|
||||
CREATE TABLE `recharge_order_item` (
|
||||
`order_item_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -487,6 +506,7 @@ CREATE TABLE `recharge_order_item` (
|
||||
PRIMARY KEY (`order_item_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单商品表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `recharge_order_item_refund`;
|
||||
CREATE TABLE `recharge_order_item_refund` (
|
||||
`refund_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -506,6 +526,7 @@ CREATE TABLE `recharge_order_item_refund` (
|
||||
PRIMARY KEY (`refund_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单退款表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `recharge_order_log`;
|
||||
CREATE TABLE `recharge_order_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -521,6 +542,7 @@ CREATE TABLE `recharge_order_log` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单操作记录表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `site`;
|
||||
CREATE TABLE `site` (
|
||||
`site_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -547,13 +569,14 @@ CREATE TABLE `site` (
|
||||
`front_end_icon` varchar(255) NOT NULL DEFAULT '' COMMENT '前台icon',
|
||||
`icon` varchar(255) NOT NULL DEFAULT '' COMMENT '网站图标',
|
||||
`member_no` varchar(255) NOT NULL DEFAULT '0' COMMENT '最大会员码值',
|
||||
`app` text NOT NULL COMMENT '站点主应用',
|
||||
`app` text NOT NULL COMMENT '站点应用',
|
||||
`addons` text NOT NULL COMMENT '站点包含的插件',
|
||||
`initalled_addon` text DEFAULT NULL COMMENT '站点已执行初始化方法的插件',
|
||||
`site_domain` varchar(255) NOT NULL DEFAULT '' COMMENT '站点域名',
|
||||
PRIMARY KEY (`site_id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 10000 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站点表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `site_account_log`;
|
||||
CREATE TABLE `site_account_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -565,6 +588,7 @@ CREATE TABLE `site_account_log` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站点账单记录' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `site_group`;
|
||||
CREATE TABLE `site_group` (
|
||||
`group_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分组ID',
|
||||
@ -577,6 +601,7 @@ CREATE TABLE `site_group` (
|
||||
PRIMARY KEY (`group_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '店铺分组(分组权限)' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `stat_hour`;
|
||||
CREATE TABLE `stat_hour` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
@ -614,7 +639,7 @@ CREATE TABLE `stat_hour` (
|
||||
`hour_22` decimal(10,2) NOT NULL DEFAULT '0.00',
|
||||
`hour_23` decimal(10,2) NOT NULL DEFAULT '0.00',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='小时统计表' ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小时统计表' ROW_FORMAT = Dynamic;
|
||||
|
||||
DROP TABLE IF EXISTS `sys_agreement`;
|
||||
CREATE TABLE `sys_agreement` (
|
||||
@ -628,6 +653,7 @@ CREATE TABLE `sys_agreement` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '协议表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_area`;
|
||||
CREATE TABLE `sys_area` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
@ -642,6 +668,7 @@ CREATE TABLE `sys_area` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '地址表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_attachment`;
|
||||
CREATE TABLE `sys_attachment` (
|
||||
`att_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -660,6 +687,7 @@ CREATE TABLE `sys_attachment` (
|
||||
PRIMARY KEY (`att_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '附件管理表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_attachment_category`;
|
||||
CREATE TABLE `sys_attachment_category` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -673,6 +701,7 @@ CREATE TABLE `sys_attachment_category` (
|
||||
UNIQUE INDEX `id`(`id` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '附件分类表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_config`;
|
||||
CREATE TABLE `sys_config` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -686,6 +715,7 @@ CREATE TABLE `sys_config` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统配置表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_cron_task`;
|
||||
CREATE TABLE `sys_cron_task` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -708,6 +738,7 @@ CREATE TABLE `sys_cron_task` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ' 系统任务' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_dict`;
|
||||
CREATE TABLE `sys_dict` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
@ -718,7 +749,8 @@ CREATE TABLE `sys_dict` (
|
||||
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据字典表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据字典表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_export`;
|
||||
CREATE TABLE `sys_export` (
|
||||
@ -732,7 +764,8 @@ CREATE TABLE `sys_export` (
|
||||
`fail_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '失败原因',
|
||||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '导出时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='导出报表' ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '导出报表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `verifier`;
|
||||
CREATE TABLE `verifier` (
|
||||
@ -743,7 +776,8 @@ CREATE TABLE `verifier` (
|
||||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '添加时间',
|
||||
`verify_type` varchar(255) NOT NULL DEFAULT '' COMMENT '核销类型',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='核销员表' ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '核销员表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `verify`;
|
||||
CREATE TABLE `verify` (
|
||||
@ -758,7 +792,8 @@ CREATE TABLE `verify` (
|
||||
`body` varchar(500) NOT NULL DEFAULT '' COMMENT '描述',
|
||||
`relate_tag` varchar(255) NOT NULL DEFAULT '' COMMENT '业务标识',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='核销记录' ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '核销记录' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_menu`;
|
||||
CREATE TABLE `sys_menu` (
|
||||
@ -785,6 +820,7 @@ CREATE TABLE `sys_menu` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_notice`;
|
||||
CREATE TABLE `sys_notice` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -803,6 +839,7 @@ CREATE TABLE `sys_notice` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知模型' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_notice_log`;
|
||||
CREATE TABLE `sys_notice_log` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '通知记录ID',
|
||||
@ -823,6 +860,7 @@ CREATE TABLE `sys_notice_log` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知记录表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_notice_sms_log`;
|
||||
CREATE TABLE `sys_notice_sms_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
@ -842,6 +880,7 @@ CREATE TABLE `sys_notice_sms_log` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信发送表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_role`;
|
||||
CREATE TABLE `sys_role` (
|
||||
`role_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '角色id',
|
||||
@ -854,6 +893,7 @@ CREATE TABLE `sys_role` (
|
||||
PRIMARY KEY (`role_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_poster`;
|
||||
CREATE TABLE `sys_poster` (
|
||||
`id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
@ -868,7 +908,42 @@ CREATE TABLE `sys_poster` (
|
||||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='海报表' ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '海报表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_printer`;
|
||||
CREATE TABLE `sys_printer` (
|
||||
`printer_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`site_id` INT(11) NOT NULL DEFAULT 0 COMMENT '站点id',
|
||||
`printer_name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '打印机名称',
|
||||
`brand` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '设备品牌(易联云,365,飞鹅)',
|
||||
`printer_code` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '打印机编号',
|
||||
`printer_key` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '打印机秘钥',
|
||||
`open_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '开发者id',
|
||||
`apikey` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '开发者密钥',
|
||||
`template_type` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '小票打印模板类型,多个逗号隔开',
|
||||
`trigger` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '触发打印时机',
|
||||
`value` LONGTEXT DEFAULT NULL COMMENT '打印模板数据,json格式',
|
||||
`print_width` VARCHAR(255) NOT NULL DEFAULT '58mm' COMMENT '纸张宽度',
|
||||
`status` TINYINT(4) NOT NULL DEFAULT 1 COMMENT '状态(0,关闭,1:开启)',
|
||||
`create_time` INT(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_time` INT(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
|
||||
PRIMARY KEY (`printer_id`)
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小票打印机' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_printer_template`;
|
||||
CREATE TABLE `sys_printer_template` (
|
||||
`template_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`site_id` INT(11) NOT NULL DEFAULT 0 COMMENT '站点id',
|
||||
`template_name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '模板名称',
|
||||
`template_type` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '模板类型',
|
||||
`value` LONGTEXT DEFAULT NULL COMMENT '模板数据,json格式',
|
||||
`create_time` INT(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_time` INT(11) NOT NULL DEFAULT 0 COMMENT '修改时间',
|
||||
PRIMARY KEY (`template_id`)
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小票打印模板' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_schedule`;
|
||||
CREATE TABLE `sys_schedule` (
|
||||
@ -888,6 +963,7 @@ CREATE TABLE `sys_schedule` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统任务' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_user`;
|
||||
CREATE TABLE `sys_user` (
|
||||
`uid` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '系统用户ID',
|
||||
@ -907,6 +983,7 @@ CREATE TABLE `sys_user` (
|
||||
INDEX `uid`(`uid` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '后台管理员表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_user_log`;
|
||||
CREATE TABLE `sys_user_log` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '管理员操作记录ID',
|
||||
@ -921,6 +998,7 @@ CREATE TABLE `sys_user_log` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理员操作记录表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `sys_user_role`;
|
||||
CREATE TABLE `sys_user_role` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -933,6 +1011,7 @@ CREATE TABLE `sys_user_role` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户权限表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `weapp_version`;
|
||||
CREATE TABLE `weapp_version` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -948,7 +1027,8 @@ CREATE TABLE `weapp_version` (
|
||||
`from_type` VARCHAR(255) NOT NULL DEFAULT 'cloud_build',
|
||||
`auditid` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小程序版本' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `wechat_fans`;
|
||||
CREATE TABLE `wechat_fans` (
|
||||
@ -975,6 +1055,7 @@ CREATE TABLE `wechat_fans` (
|
||||
PRIMARY KEY (`fans_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信粉丝列表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `wechat_media`;
|
||||
CREATE TABLE `wechat_media` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -987,6 +1068,7 @@ CREATE TABLE `wechat_media` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信素材表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `wechat_reply`;
|
||||
CREATE TABLE `wechat_reply` (
|
||||
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
@ -1004,6 +1086,7 @@ CREATE TABLE `wechat_reply` (
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '公众号消息回调表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `wx_oplatfrom_weapp_version`;
|
||||
CREATE TABLE `wx_oplatfrom_weapp_version` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
@ -1018,10 +1101,8 @@ CREATE TABLE `wx_oplatfrom_weapp_version` (
|
||||
`create_time` INT(11) NOT NULL DEFAULT 0,
|
||||
`update_time` INT(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
)
|
||||
ENGINE = INNODB,
|
||||
CHARACTER SET utf8mb4,
|
||||
COLLATE utf8mb4_general_ci;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '微信小程序开发平台版本表' ROW_FORMAT = Dynamic;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `user_create_site_limit`;
|
||||
CREATE TABLE `user_create_site_limit` (
|
||||
@ -1031,17 +1112,14 @@ CREATE TABLE `user_create_site_limit` (
|
||||
`num` INT(11) NOT NULL DEFAULT 0,
|
||||
`month` INT(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
)
|
||||
ENGINE = INNODB,
|
||||
CHARACTER SET utf8mb4,
|
||||
COLLATE utf8mb4_general_ci;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户站点创建限制表' ROW_FORMAT = Dynamic;
|
||||
|
||||
INSERT INTO `site`(site_id, site_name, group_id, keywords, app_type, logo, `desc`, status, latitude, longitude, province_id, city_id, district_id, address, full_address, phone, business_hours, create_time, expire_time, front_end_name, front_end_logo, front_end_icon, icon, member_no, app, addons, initalled_addon, site_domain) VALUES
|
||||
(1, 'niucloud-admin', 0, '', 'admin', '', '', 1, '', '', 0, 0, 0, '', '', '', '', 0, 0, '', '', '', '', '0', '', '', '', '');
|
||||
|
||||
UPDATE `site` SET site_id = 0 WHERE site_id = 1;
|
||||
|
||||
INSERT INTO `sys_user` VALUES ('1', '', '', '', '', '', '0', '0', '0', '1', '0', '0', '0');
|
||||
-- INSERT INTO `sys_user` VALUES ('1', '', '', '', '', '', '0', '0', '0', '1', '0', '0', '0');
|
||||
|
||||
INSERT INTO `sys_user_role` VALUES ('1', '1', '0', '', '0', '1', '1');
|
||||
|
||||
|
||||
27
niucloud/app/job/member/SetMemberNoJob.php
Normal file
27
niucloud/app/job/member/SetMemberNoJob.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\job\member;
|
||||
|
||||
use app\service\core\member\CoreMemberService;
|
||||
use core\base\BaseJob;
|
||||
|
||||
/**
|
||||
* 队列设置会员会员码
|
||||
*/
|
||||
class SetMemberNoJob extends BaseJob
|
||||
{
|
||||
public function doJob($site_id, $member_id)
|
||||
{
|
||||
CoreMemberService::setMemberNo($site_id, $member_id);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -91,7 +91,7 @@ return [
|
||||
'USER_NOT_EXIST' => '用户不存在',
|
||||
'NO_SITE_USER_ROLE' => '用户不存在关联权限',
|
||||
'ADMIN_NOT_ALLOW_EDIT_ROLE' => '超级管理员不允许改动权限',
|
||||
'USERNAME_REPEAT' => '用户名重复',
|
||||
'USERNAME_REPEAT' => '账号重复',
|
||||
'SITE_USER_EXIST' => '该用户已存在',
|
||||
|
||||
//角色管理
|
||||
@ -137,6 +137,7 @@ return [
|
||||
'ACCOUNT_OR_PASSWORD_ERROR' => '账号或密码错误',
|
||||
'MEMBER_LOCK' => '账号被锁定',
|
||||
'MEMBER_NOT_EXIST' => '账号不存在',
|
||||
'MEMBER_OPENID_EXIST' => 'openid已存在',
|
||||
'MEMBER_LOGOUT' => '账号退出',
|
||||
'MEMBER_TYPE_NOT_EXIST' => '账户类型不存在',
|
||||
'MEMBER_IS_EXIST' => '账号已存在',
|
||||
@ -204,7 +205,7 @@ return [
|
||||
'PAY_SUCCESS' => '当前支付已完成',
|
||||
'PAY_IS_REMOVE' => '当前支付已取消',
|
||||
'PAYMENT_METHOD_NOT_EXIST' => '你选择的支付方式未启用',
|
||||
'PAYMENT_METHOD_NOT_SCENE'=> '你选择的支付方式不适用于当前场景',
|
||||
'PAYMENT_METHOD_NOT_SCENE' => '你选择的支付方式不适用于当前场景',
|
||||
'TREAT_PAYMENT_IS_OPEN' => '只有待支付时可以关闭',
|
||||
'TRANFER_STATUS_NOT_IN_WAIT_TANSFER' => '当前转账未处于待转账状态',
|
||||
'TRANSFER_ORDER_INVALID' => '无效的转账单据',
|
||||
@ -277,7 +278,9 @@ return [
|
||||
'CONTINUE_SIGN' => '连签',
|
||||
'DAYS' => '天!',
|
||||
'SIGN_SUCCESS' => '签到成功',
|
||||
'SIGN_AWARD' => '签到奖励',
|
||||
'GET_AWARD' => '恭喜您获得以下奖励',
|
||||
'WILL_GET_AWARD' => '您将获得以下奖励',
|
||||
|
||||
//导出相关
|
||||
'EXPORT_SUCCESS' => '导出成功',
|
||||
@ -290,5 +293,7 @@ return [
|
||||
'WECHAT_OPLATFORM_NOT_EXIST' => '未配置微信开放平台',
|
||||
'WEAPP_EXIST' => '该小程序已经授权给其他站点',
|
||||
'WECHAT_EXIST' => '该公众号已经授权给其他站点',
|
||||
'PLEASE_ADD_FIRST_SITE_GROUP' => '请先添加站点套餐'
|
||||
'PLEASE_ADD_FIRST_SITE_GROUP' => '请先添加站点套餐',
|
||||
|
||||
'PRINTER_NOT_EXIST' => '打印机不存在'
|
||||
];
|
||||
|
||||
@ -232,6 +232,7 @@ return [
|
||||
'member_my_level' => '会员等级',
|
||||
'member_my_sign_in' => '我的签到',
|
||||
'member_verify_index' => '核销台',
|
||||
'member_contact' => '客服',
|
||||
|
||||
'diy_page' => '自定义页面',
|
||||
'diy_link' => '自定义链接',
|
||||
@ -239,7 +240,7 @@ return [
|
||||
'diy_make_phone_call' => '拨打电话'
|
||||
],
|
||||
// 自定义海报
|
||||
'dict_diy_poster'=>[
|
||||
'dict_diy_poster' => [
|
||||
'component_type_basic' => '基础组件',
|
||||
],
|
||||
//短信相关
|
||||
@ -379,4 +380,8 @@ return [
|
||||
'status_not_sign' => '未签到',
|
||||
'status_signed' => '已签到'
|
||||
],
|
||||
// 打印机品牌
|
||||
'dict_printer' => [
|
||||
'yilianyun' => '易联云打印机'
|
||||
]
|
||||
];
|
||||
|
||||
@ -30,11 +30,11 @@ return [
|
||||
'limit_between' => 'limit必须是正整数并且不能超过120',
|
||||
],
|
||||
'validate_user' => [
|
||||
'username_require' => '用户名必须填写',
|
||||
'username_unique' => '用户名必须是惟一的',
|
||||
'username_max' => '用户名最多不能超过15个字符',
|
||||
'username_require' => '账号必须填写',
|
||||
'username_unique' => '账号必须是唯一的',
|
||||
'username_max' => '账号最多不能超过15个字符',
|
||||
'real_name_require' => '实际姓名必须填写',
|
||||
'password_require' => '用户密码必须填写',
|
||||
'password_require' => '账号密码必须填写',
|
||||
],
|
||||
//站点
|
||||
'validate_site' => [
|
||||
|
||||
@ -15,7 +15,7 @@ use app\service\core\member\CoreMemberService;
|
||||
|
||||
/**
|
||||
* 会员注册成功事件
|
||||
* Class MemberRegister
|
||||
* Class MemberRegisterListener
|
||||
* @package app\listener\member
|
||||
*/
|
||||
class MemberRegisterListener
|
||||
|
||||
@ -40,7 +40,7 @@ class Poster
|
||||
|
||||
$headimg = $member_info[ 'headimg' ];
|
||||
if (empty($headimg)) {
|
||||
$headimg = 'static/resource/images/default_headimg.jpg';
|
||||
$headimg = 'static/resource/images/default_headimg.png';
|
||||
}
|
||||
$return_data = [
|
||||
'nickname' => $nickname,
|
||||
|
||||
@ -76,7 +76,7 @@ class Addon extends BaseModel
|
||||
*/
|
||||
public function searchTitleAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->whereLike('title', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,7 +54,7 @@ class Dict extends BaseModel
|
||||
*/
|
||||
public function searchNameAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where("name", $value);
|
||||
}
|
||||
}
|
||||
@ -66,7 +66,7 @@ class Dict extends BaseModel
|
||||
*/
|
||||
public function searchKeyAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where("key", $value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -174,8 +174,8 @@ class Diy extends BaseModel
|
||||
*/
|
||||
public function searchTitleAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where("title|page_title", 'like', '%' . $value . '%');
|
||||
if ($value != '') {
|
||||
$query->where("title|page_title", 'like', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ class DiyRoute extends BaseModel
|
||||
*/
|
||||
public function searchTitleAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where("title", 'like', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@ class GenerateTable extends BaseModel
|
||||
*/
|
||||
public function searchTableNameAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where('table_name', 'like', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
@ -57,7 +57,7 @@ class GenerateTable extends BaseModel
|
||||
*/
|
||||
public function searchTableContentAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where('table_content', 'like', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
@ -70,7 +70,7 @@ class GenerateTable extends BaseModel
|
||||
*/
|
||||
public function searchAddonNameAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
if($value == 2)
|
||||
{
|
||||
$query->where('addon_name','=','');
|
||||
|
||||
@ -62,7 +62,7 @@ class Member extends BaseModel
|
||||
protected $defaultSoftDelete = 0;
|
||||
|
||||
// 设置json类型字段
|
||||
protected $json = ['member_label'];
|
||||
protected $json = [ 'member_label' ];
|
||||
// 设置JSON数据返回数组
|
||||
protected $jsonAssoc = true;
|
||||
|
||||
@ -74,9 +74,9 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function getStatusNameAttr($value, $data)
|
||||
{
|
||||
if (empty($data['status']))
|
||||
if (empty($data[ 'status' ]))
|
||||
return '';
|
||||
return MemberDict::getStatus()[$data['status']] ?? '';
|
||||
return MemberDict::getStatus()[ $data[ 'status' ] ] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -87,9 +87,9 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function getRegisterChannelNameAttr($value, $data)
|
||||
{
|
||||
if (empty($data['register_channel']))
|
||||
if (empty($data[ 'register_channel' ]))
|
||||
return '';
|
||||
return MemberRegisterChannelDict::getType()[$data['register_channel']] ?? '';
|
||||
return MemberRegisterChannelDict::getType()[ $data[ 'register_channel' ] ] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -100,9 +100,9 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function getRegisterTypeNameAttr($value, $data)
|
||||
{
|
||||
if (empty($data['register_type']))
|
||||
if (empty($data[ 'register_type' ]))
|
||||
return '';
|
||||
return MemberRegisterTypeDict::getType()[$data['register_type']] ?? '';
|
||||
return MemberRegisterTypeDict::getType()[ $data[ 'register_type' ] ] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,9 +113,9 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function getLoginChannelNameAttr($value, $data)
|
||||
{
|
||||
if (empty($data['login_channel']))
|
||||
if (empty($data[ 'login_channel' ]))
|
||||
return '';
|
||||
return ChannelDict::getType()[$data['login_channel']] ?? '';
|
||||
return ChannelDict::getType()[ $data[ 'login_channel' ] ] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -126,9 +126,9 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function getLoginTypeNameAttr($value, $data)
|
||||
{
|
||||
if (empty($data['login_type']))
|
||||
if (empty($data[ 'login_type' ]))
|
||||
return '';
|
||||
return MemberLoginTypeDict::getType()[$data['login_type']] ?? '';
|
||||
return MemberLoginTypeDict::getType()[ $data[ 'login_type' ] ] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -139,9 +139,9 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function getSexNameAttr($value, $data)
|
||||
{
|
||||
if (empty($data['sex']))
|
||||
if (empty($data[ 'sex' ]))
|
||||
return '';
|
||||
return CommonDict::getSexType()[$data['sex']] ?? '';
|
||||
return CommonDict::getSexType()[ $data[ 'sex' ] ] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -161,8 +161,8 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function searchKeywordAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where('member_no|username|nickname|mobile', 'like', '%' . $value . '%');
|
||||
if ($value != '') {
|
||||
$query->where('member_no|username|nickname|mobile', 'like', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
@ -217,7 +217,7 @@ class Member extends BaseModel
|
||||
public function searchMemberLevelAttr(Query $query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where('member_level', '=', $value);
|
||||
$query->where('member_level', '=', $value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -229,14 +229,14 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function searchCreateTimeAttr(Query $query, $value, $data)
|
||||
{
|
||||
$start_time = empty($value[0]) ? 0 : strtotime($value[0]);
|
||||
$end_time = empty($value[1]) ? 0 : strtotime($value[1]);
|
||||
$start_time = empty($value[ 0 ]) ? 0 : strtotime($value[ 0 ]);
|
||||
$end_time = empty($value[ 1 ]) ? 0 : strtotime($value[ 1 ]);
|
||||
if ($start_time > 0 && $end_time > 0) {
|
||||
$query->whereBetweenTime('create_time', $start_time, $end_time);
|
||||
} else if ($start_time > 0 && $end_time == 0) {
|
||||
$query->where([['create_time', '>=', $start_time]]);
|
||||
$query->where([ [ 'create_time', '>=', $start_time ] ]);
|
||||
} else if ($start_time == 0 && $end_time > 0) {
|
||||
$query->where([['create_time', '<=', $end_time]]);
|
||||
$query->where([ [ 'create_time', '<=', $end_time ] ]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -248,22 +248,24 @@ class Member extends BaseModel
|
||||
*/
|
||||
public function searchJoinCreateTimeAttr(Query $query, $value, $data)
|
||||
{
|
||||
$start_time = empty($value[0]) ? 0 : strtotime($value[0]);
|
||||
$end_time = empty($value[1]) ? 0 : strtotime($value[1]);
|
||||
$start_time = empty($value[ 0 ]) ? 0 : strtotime($value[ 0 ]);
|
||||
$end_time = empty($value[ 1 ]) ? 0 : strtotime($value[ 1 ]);
|
||||
if ($start_time > 0 && $end_time > 0) {
|
||||
$query->whereBetweenTime('member.create_time', $start_time, $end_time);
|
||||
} else if ($start_time > 0 && $end_time == 0) {
|
||||
$query->where([['member.create_time', '>=', $start_time]]);
|
||||
$query->where([ [ 'member.create_time', '>=', $start_time ] ]);
|
||||
} else if ($start_time == 0 && $end_time > 0) {
|
||||
$query->where([['member.create_time', '<=', $end_time]]);
|
||||
$query->where([ [ 'member.create_time', '<=', $end_time ] ]);
|
||||
}
|
||||
}
|
||||
|
||||
public function memberLevelData() {
|
||||
public function memberLevelData()
|
||||
{
|
||||
return $this->hasOne(MemberLevel::class, 'level_id', 'member_level');
|
||||
}
|
||||
|
||||
public function memberLevelNameBind() {
|
||||
return $this->hasOne(MemberLevel::class, 'level_id', 'member_level')->bind(['member_level_name' => 'level_name']);
|
||||
public function memberLevelNameBind()
|
||||
{
|
||||
return $this->hasOne(MemberLevel::class, 'level_id', 'member_level')->bind([ 'member_level_name' => 'level_name' ]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ namespace app\model\member;
|
||||
use app\dict\member\MemberAccountChangeTypeDict;
|
||||
use app\dict\member\MemberAccountTypeDict;
|
||||
use core\base\BaseModel;
|
||||
use think\db\Query;
|
||||
use think\model\relation\HasOne;
|
||||
|
||||
/**
|
||||
@ -125,6 +126,19 @@ class MemberAccountLog extends BaseModel
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键词搜索
|
||||
* @param $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchKeywordAttr(Query $query, $value, $data)
|
||||
{
|
||||
if ($value != '') {
|
||||
$query->whereLike('memo', '%'.$value.'%');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 金额大于
|
||||
* @param $query
|
||||
|
||||
@ -157,7 +157,7 @@ class MemberCashOut extends BaseModel
|
||||
*/
|
||||
public function searchCashOutNoAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where('cash_out_no', $value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,8 +62,8 @@ class MemberLabel extends BaseModel
|
||||
*/
|
||||
public function searchLabelNameAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where('label_name', 'like', '%' . $value . '%');
|
||||
if ($value != '') {
|
||||
$query->where('label_name', 'like', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -63,7 +63,7 @@ class MemberLevel extends BaseModel
|
||||
public function searchLevelNameAttr($query, $value, $data)
|
||||
{
|
||||
if ($value != '') {
|
||||
$query->where('level_name', 'like', '%'.$value.'%');
|
||||
$query->where('level_name', 'like', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,8 +72,8 @@ class Site extends BaseModel
|
||||
*/
|
||||
public function searchKeywordsAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where('site_name|keywords', 'like', '%' . $value . '%');
|
||||
if ($value != '') {
|
||||
$query->where('site_name|keywords', 'like', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,8 +86,8 @@ class Site extends BaseModel
|
||||
*/
|
||||
public function searchSiteDomainAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where('site_domain', 'like', '%' . $value . '%');
|
||||
if ($value != '') {
|
||||
$query->where('site_domain', 'like', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ class Site extends BaseModel
|
||||
*/
|
||||
public function searchAppAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where('app', 'like', '%"' . $value . '"%');
|
||||
}
|
||||
}
|
||||
|
||||
@ -97,7 +97,7 @@ class SiteAccountLog extends BaseModel
|
||||
|
||||
public function searchTradeNoAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where('trade_no', 'like', "%$value%");
|
||||
}
|
||||
}
|
||||
|
||||
@ -77,8 +77,8 @@ class SiteGroup extends BaseModel
|
||||
*/
|
||||
public function searchKeywordsAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where('group_name', 'like', '%' . $value . '%');
|
||||
if ($value != '') {
|
||||
$query->where('group_name', 'like', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -66,8 +66,8 @@ class Poster extends BaseModel
|
||||
*/
|
||||
public function searchNameAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where("name", 'like', '%' . $value . '%');
|
||||
if ($value != '') {
|
||||
$query->where("name", 'like', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ class SysExport extends BaseModel
|
||||
public function searchExportKeyAttr(Query $query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->whereLike('export_key', '%' . $value . '%');
|
||||
$query->where('export_key', $value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -112,7 +112,7 @@ class SysNoticeLog extends BaseModel
|
||||
*/
|
||||
public function searchReceiverAttr($query, $value)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where('receiver', $value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ class SysNoticeSmsLog extends BaseModel
|
||||
*/
|
||||
public function searchMobileAttr($query, $value)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->where('mobile', $value);
|
||||
}
|
||||
}
|
||||
|
||||
106
niucloud/app/model/sys/SysPrinter.php
Normal file
106
niucloud/app/model/sys/SysPrinter.php
Normal file
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的多应用管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\model\sys;
|
||||
|
||||
use app\dict\sys\PrinterDict;
|
||||
use core\base\BaseModel;
|
||||
|
||||
/**
|
||||
* 小票打印机模型
|
||||
* Class SysPrinter
|
||||
* @package app\model\sys
|
||||
*/
|
||||
class SysPrinter extends BaseModel
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* 数据表主键
|
||||
* @var string
|
||||
*/
|
||||
protected $pk = 'printer_id';
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'sys_printer';
|
||||
|
||||
// 设置json类型字段
|
||||
protected $json = [ 'template_type', 'trigger', 'value' ];
|
||||
|
||||
// 设置JSON数据返回数组
|
||||
protected $jsonAssoc = true;
|
||||
|
||||
/**
|
||||
* 状态字段转化
|
||||
* @param $value
|
||||
* @param $data
|
||||
* @return mixed
|
||||
*/
|
||||
public function getBrandNameAttr($value, $data)
|
||||
{
|
||||
if (!empty($data[ 'brand' ])) {
|
||||
return PrinterDict::getBrandName($data[ 'brand' ]) ?? '';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索器:小票打印机
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchPrinterIdAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where("printer_id", $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索器:小票打印机设备品牌(易联云,365,飞鹅)
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchBrandAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where("brand", $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索器:小票打印机打印机名称
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchPrinterNameAttr($query, $value, $data)
|
||||
{
|
||||
if ($value != '') {
|
||||
$query->where("printer_name", 'like', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索器:小票打印机状态(0,关闭,1:开启)
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchStatusAttr($query, $value, $data)
|
||||
{
|
||||
if ($value !== '') {
|
||||
$query->where("status", $value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
97
niucloud/app/model/sys/SysPrinterTemplate.php
Normal file
97
niucloud/app/model/sys/SysPrinterTemplate.php
Normal file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的多应用管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\model\sys;
|
||||
|
||||
use app\dict\sys\PrinterDict;
|
||||
use core\base\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
use think\model\relation\HasMany;
|
||||
use think\model\relation\HasOne;
|
||||
|
||||
/**
|
||||
* 小票打印模板模型
|
||||
* Class SysPrinterTemplate
|
||||
* @package app\model\sys
|
||||
*/
|
||||
class SysPrinterTemplate extends BaseModel
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* 数据表主键
|
||||
* @var string
|
||||
*/
|
||||
protected $pk = 'template_id';
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'sys_printer_template';
|
||||
|
||||
// 设置json类型字段
|
||||
protected $json = [ 'value' ];
|
||||
|
||||
// 设置JSON数据返回数组
|
||||
protected $jsonAssoc = true;
|
||||
|
||||
/**
|
||||
* 状态字段转化
|
||||
* @param $value
|
||||
* @param $data
|
||||
* @return mixed
|
||||
*/
|
||||
public function getTemplateTypeNameAttr($value, $data)
|
||||
{
|
||||
if (!empty($data[ 'template_type' ])) {
|
||||
return PrinterDict::getType($data[ 'template_type' ])[ 'title' ] ?? '';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索器:小票打印模板
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchTemplateIdAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where("template_id", $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索器:小票打印模板模板类型
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchTemplateTypeAttr($query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->where("template_type", $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索器:小票打印模板模板名称
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchTemplateNameAttr($query, $value, $data)
|
||||
{
|
||||
if ($value != '') {
|
||||
$query->where("template_name", 'like', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -80,8 +80,8 @@ class SysUser extends BaseModel
|
||||
*/
|
||||
public function searchUsernameAttr($query, $value)
|
||||
{
|
||||
if ($value) {
|
||||
$query->whereLike('username', '%' . $value . '%');
|
||||
if ($value != '') {
|
||||
$query->whereLike('username', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
|
||||
}
|
||||
@ -93,7 +93,7 @@ class SysUser extends BaseModel
|
||||
*/
|
||||
public function searchRealnameAttr($query, $value)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->whereLike('real_name', '%' . $value . '%');
|
||||
}
|
||||
|
||||
|
||||
@ -61,7 +61,7 @@ class SysUserLog extends BaseModel
|
||||
*/
|
||||
public function searchUsernameAttr(Query $query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->whereLike('username', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
@ -87,7 +87,7 @@ class SysUserLog extends BaseModel
|
||||
*/
|
||||
public function searchUrlAttr(Query $query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->whereLike('url', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
@ -100,7 +100,7 @@ class SysUserLog extends BaseModel
|
||||
*/
|
||||
public function searchIpAttr(Query $query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
if ($value != '') {
|
||||
$query->whereLike('ip', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ class WxOplatfromWeappVersion extends BaseModel
|
||||
*/
|
||||
public function getStatusNameAttr($value, $data)
|
||||
{
|
||||
if (!isset($data['status']) || empty($data['status'])) return '';
|
||||
if (!isset($data['status'])) return '';
|
||||
return CloudDict::getAppletUploadSatus($data['status']);
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,8 +54,21 @@ class Verify extends BaseModel
|
||||
*/
|
||||
public function searchCodeAttr(Query $query, $value, $data)
|
||||
{
|
||||
if ($value) {
|
||||
$query->whereLike('code', '%'.$value.'%');
|
||||
if ($value != '') {
|
||||
$query->whereLike('code', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键词搜索
|
||||
* @param $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchKeywordAttr(Query $query, $value, $data)
|
||||
{
|
||||
if ($value != '') {
|
||||
$query->whereLike('code|body', '%' . $this->handelSpecialCharacter($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
|
||||
namespace app\model\wechat;
|
||||
|
||||
use app\dict\channel\ReplyDict;
|
||||
use core\base\BaseModel;
|
||||
|
||||
/**
|
||||
|
||||
@ -13,10 +13,8 @@ namespace app\service\admin\addon;
|
||||
|
||||
|
||||
use app\service\core\addon\CoreAddonDevelopBuildService;
|
||||
use app\service\core\addon\CoreAddonDevelopDownloadService;
|
||||
use app\service\core\addon\CoreAddonDevelopService;
|
||||
use app\service\core\addon\CoreAddonService;
|
||||
use app\service\core\niucloud\CoreAppService;
|
||||
use app\service\core\niucloud\CoreModuleService;
|
||||
use core\base\BaseAdminService;
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ class DiyConfigService extends BaseAdminService
|
||||
$site_addon = ( new CoreSiteService() )->getSiteCache($this->site_id);
|
||||
|
||||
// 单应用,排除 系统 底部导航设置
|
||||
if (count($site_addon[ 'apps' ]) == 1) {
|
||||
if (count($list) > 1 && count($site_addon[ 'apps' ]) == 1) {
|
||||
foreach ($list as $k => $v) {
|
||||
if ($v[ 'key' ] = 'app') {
|
||||
unset($list[ $k ]);
|
||||
|
||||
@ -50,7 +50,7 @@ class DiyRouteService extends BaseAdminService
|
||||
if (!empty($cv[ 'url' ])) {
|
||||
$is_add = true;
|
||||
|
||||
if (!empty($where[ 'title' ]) && !str_contains($cv[ 'title' ], $where[ 'title' ])) {
|
||||
if (isset($where[ 'title' ]) && $where[ 'title' ] !='' && !str_contains($cv[ 'title' ], $where[ 'title' ])) {
|
||||
$is_add = false;
|
||||
}
|
||||
|
||||
|
||||
@ -38,7 +38,7 @@ class {UCASE_NAME}Service extends BaseAdminService
|
||||
$field = '{FIELDS}';
|
||||
$order = '{ORDER}';
|
||||
|
||||
$search_model = {SEARCH_MODEL};
|
||||
$search_model = {SEARCH_MODEL}
|
||||
$list = $this->pageQuery($search_model);
|
||||
return $list;
|
||||
}
|
||||
@ -52,7 +52,7 @@ class {UCASE_NAME}Service extends BaseAdminService
|
||||
{
|
||||
$field = '{FIELDS}';
|
||||
|
||||
$info = {INFO_SEARCH_MODEL};
|
||||
$info = {INFO_SEARCH_MODEL}
|
||||
return $info;
|
||||
}
|
||||
|
||||
|
||||
@ -1,81 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\service\admin\install;
|
||||
|
||||
use app\model\article\Article;
|
||||
use app\model\article\ArticleCategory;
|
||||
use core\base\BaseAdminService;
|
||||
|
||||
/**
|
||||
* 系统安装
|
||||
* Class InstallArticleService
|
||||
* @package app\service\admin\install
|
||||
*/
|
||||
class InstallArticleService extends BaseAdminService
|
||||
{
|
||||
|
||||
/**
|
||||
* 安装
|
||||
*/
|
||||
public function install(array $params = [])
|
||||
{
|
||||
$this->installArticle($params);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 安装数据
|
||||
*/
|
||||
public function installArticle(array $params = [])
|
||||
{
|
||||
$article_category = new ArticleCategory();
|
||||
$category = [
|
||||
'site_id' => $params[ 'site_id' ],
|
||||
'name' => '资讯',
|
||||
'is_show' => 1,
|
||||
'create_time' => time()
|
||||
];
|
||||
$category_id = $article_category->insert($category);
|
||||
|
||||
$article = new Article();
|
||||
$article_list = [
|
||||
[
|
||||
'category_id' => $category_id,
|
||||
'site_id' => $params[ 'site_id' ],
|
||||
'title' => 'NiuCloud-admin介绍',
|
||||
'intro' => '',
|
||||
'summary' => '',
|
||||
'image' => 'static/resource/images/article/niucloud_admin_frame.png',
|
||||
'author' => 'NiuCloud',
|
||||
'content' => '<p>Niucloud-admin特点介绍</p><p><br></p><p>1.采用的技术栈</p><p>1.1 后台php采用thinkphp6+php8+mysql,支持composer快速安装扩展,支持redis缓存以及消息队列,支持多语言设计开发,同时开发采用严格的restful的api设计开发。</p><p>1.2 后台前后端分离采用element-plus、vue3.0、typescript、vite、pina等前端技术,同时使用i18n支持国际化多语言开发。</p><p>1.3 手机端采用uniapp前后端分离,同时使用uview、vue3.0、typescript、vite、pina等前端技术,同时使用i18n支持国际化多语言开发,可以灵活编译成h5,微信小程序,支付宝小程序,抖音小程序等使用场景。</p><p><br></p><p>2.技术特点</p><p>2.1niucloud-admin采用多租户的saas系统设计,能够提供企业级软件服务运营 ,同时满足用户多站点,多商户,多门店等系统开发需求。</p><p>2.2niucloud-admin结合当前市面上很多框架结构不规范,导致基础结构不稳定等情况,严格定义了分层设计的开发规范,同时api接口严格采用restful的开发规范,能够满足大型业务系统或者微服务的开发需求。</p><p>2.3 niucloud-admin前端以及后端采用严格的多语言开发规范,包括前端展示,api接口返回,数据验证,错误返回等全部使用多语言设计规范,使开发者能够真生意义上实现多语言的开发需求。</p><p>2.4 Niucloud-admin已经搭建好常规系统的开发底层,具体的底层功能包括:管理员管理,权限管理,网站设置,计划任务管理,素材管理,会员管理,会员账户管理,微信公众号以及小程序管理,支付管理,第三方登录管理,消息管理,短信管理,文章管理,前端装修等全面的基础功能,这样开发者不需要开发基础的结构而专心开发业务。</p><p>2.5 niucloud-admin系统内置支持微信/支付宝支付,微信公众号/小程序/短信消息管理,阿里云/腾讯云短信,七牛云/阿里云存储等基础的功能扩展,后续会根据实际业务不断扩展基础组件。</p><p>2.6 niucloud-admin结合系统结构特点专门开发了代码生成器,这样开发者根据数据表就可以一键生成基础的业务代码,包括:后台php业务代码以及对应的前端vue代码。</p><p>2.7 前端采用标准的element-plus,开发者不需要详细了解前端,只需要用标准的element组件就可以。</p><p>2.8 手机端设计开发了自定义装修,同时提供了基础的开发组件,方便开发者设计开发手机自定义页面装修的开发需求。</p><p>2.9 手机端使用uniapp ,同时使用uview页面展示,可以开发出丰富的手机样式,同时不需要专门学习小程序,app等开发语言,只需要通过uniapp编译就可以。</p>',
|
||||
'is_show' => 1,
|
||||
'create_time' => time()
|
||||
],
|
||||
[
|
||||
'category_id' => $category_id,
|
||||
'site_id' => $params[ 'site_id' ],
|
||||
'title' => 'NiuCloud-admin 开发者联盟',
|
||||
'intro' => 'Niucloud-admin 开发者联盟招募',
|
||||
'summary' => '',
|
||||
'image' => 'static/resource/images/article/niucloud_admin_developer.png',
|
||||
'author' => 'NiuCloud',
|
||||
'content' => '<p><span style="font-family: 宋体;">Niucloud-admin 开发者联盟招募</span></p><p style="text-indent: 21pt; text-align: justify;"><span style="font-family: 宋体;">近几年,我们看到很多企业都在做自己的研发,有的是企业和内部使用,有的是帮助别人定制开发,也有的已经成功走向商业化,对软件开发的学习和钻研成为了行业圈内发展很有前景的方向。同时我们也看到,大家的开发之路都多多少少遇到了各自的瓶颈。或者是接触不到真实项目需求、只能闭门造车;或者是产品研发出来,没有变现的销路;或者技术遇到了瓶颈,没办法走的更深入;或者几个人自己钻研,水平提升很慢。无论属于哪种,亲爱的开发者,如果你也正在为自己怀才不遇无处施展,或者感觉优质的技术内容没有让更多的人知道而苦恼,那么现在,机会来啦~~niucloud-admin框架为你提供优质平台,公开招募开发爱好者。今天,大牛哥把一大波福利搬来,希望可以在学习、交流和市场拓展等方面帮助大家。在针对那些想提高技术水平的个人或团队,想要基于niucloud-admin框架开发自己的产品的伙伴 ,联盟会免费提供一些列的培训或辅导答疑。针对那些渴望交流、认识同路人的小伙伴,会有线上交流会让大家互通想法、互相引荐高人。</span></p><p style="text-indent: 21pt; text-align: justify;"><span style="font-family: 宋体;">说了这么多,那么niucloud-admin到底是什么呢?且听小编来介绍~</span></p><p style="text-indent: 21pt; text-align: justify;"><span style="font-family: 宋体;">Niucloud-admin是一款快速开发通用管理后台框架,前端采用最新的技术栈Vite+TypeScript+Vue3+ElementPlus最流行技术架构,后台结合PHP8、Java SDK、Python等主流后端语言搭建,内置集成用户权限、代码生成器、表单设计、云存储、短信发送、素材中心、微信及公众号、Api模块一系列开箱即用功能,是一款快速可以开发企业级应用的软件系统。</span></p><p style="text-indent: 21pt; text-align: justify;"><span style="font-family: 宋体;">听完介绍是不是都有点马上可以从小白变成大牛的感觉了,“开箱即用”,那不是小白都可以开发出属于自己的插件了吗?对,你没听错~ 具体怎么生成,那就赶快加入niucloud-admin开发者联盟来亲身体验下吧~~</span></p><p style="text-indent: 21pt; text-align: justify;"><span style="font-family: 宋体;">有态度,有深度,niucloud-admin咱们下次见~</span></p>',
|
||||
'is_show' => 1,
|
||||
'create_time' => time()
|
||||
]
|
||||
];
|
||||
$article->insertAll($article_list);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@ -42,8 +42,8 @@ class MemberAccountService extends BaseAdminService
|
||||
|
||||
$field = 'member_account_log.id, member_account_log.member_id, member_account_log.site_id, member_account_log.account_type, member_account_log.account_data,member_account_log.account_sum, member_account_log.from_type, member_account_log.related_id, member_account_log.create_time, member_account_log.memo';
|
||||
$member_where = [];
|
||||
if (!empty($where[ 'keywords' ])) {
|
||||
$member_where[] = [ "member.member_no|member.nickname|member.mobile", 'like', '%' . $where[ 'keywords' ] . '%' ];
|
||||
if (isset($where[ 'keywords' ]) && $where[ 'keywords' ] != '') {
|
||||
$member_where[] = [ "member.member_no|member.nickname|member.mobile", 'like', '%' . $this->model->handelSpecialCharacter($where[ 'keywords' ]) . '%' ];
|
||||
}
|
||||
$search_model = $this->model->where([ [ 'member_account_log.site_id', '=', $this->site_id ] ])->withSearch([ 'join_member_id' => 'member_id', 'account_type', 'from_type', 'join_create_time' => 'create_time' ], $where)
|
||||
->withJoin(
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | Niucloud-admin 企业快速开发的saas管理平台
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网址:https://www.niucloud.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | niucloud团队 版权所有 开源版本可自由商用
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Niucloud Team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\service\admin\member;
|
||||
|
||||
use app\model\member\MemberCashOut;
|
||||
use app\service\core\member\CoreMemberCashOutConfigService;
|
||||
use core\base\BaseAdminService;
|
||||
|
||||
/**
|
||||
* 会员提现设置服务层
|
||||
*/
|
||||
class MemberCashOutConfigService extends BaseAdminService
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->model = new MemberCashOut();
|
||||
}
|
||||
|
||||
|
||||
public function getConfig(){
|
||||
return (new CoreMemberCashOutConfigService())->getMemberCashOutConfig($this->site_id);
|
||||
}
|
||||
|
||||
public function setConfig(array $data){
|
||||
(new CoreMemberCashOutConfigService())->setMemberCashOutConfig($this->site_id, $data);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user