后台基础操作完善提交
This commit is contained in:
parent
b21365b205
commit
ce3d158cae
|
@ -106,7 +106,7 @@ class Index extends Backend
|
|||
$result = $auth->freelogin($ids, 0);
|
||||
if ($result === true) {
|
||||
Hook::listen("admin_login_after", $this->request);
|
||||
$this->success(__('Login successful'), null, [ 'id' => $auth->id, 'avatar' => $auth->avatar]);
|
||||
$this->success(__('Login successful'), null, [ 'id' => $auth->id, 'avatar' => $auth->avatar,'token' => $this->request->token()]);
|
||||
} else {
|
||||
$msg = $auth->getError();
|
||||
$msg = $msg ? $msg : __('Username or password is incorrect');
|
||||
|
@ -139,33 +139,33 @@ class Index extends Backend
|
|||
$param = $this->request->param();
|
||||
if($this->request->isPost()){
|
||||
|
||||
$this->error("API版本后台正在开发中,敬请期待!");
|
||||
// try{
|
||||
// $this->error("API版本后台正在开发中,敬请期待!");
|
||||
try{
|
||||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
// //机构登录
|
||||
// //如果存在登录,先退出登录
|
||||
// $auth = \app\manystore\library\Auth::instance();
|
||||
// if($auth->isLogin()){
|
||||
// $auth->logout();
|
||||
// Hook::listen("manystore_logout_after", $this->request);
|
||||
// }
|
||||
// //执行登录
|
||||
// ManystoreLog::setTitle(__('Login'));
|
||||
// $result = $auth->freelogin($ids, 0);
|
||||
// if ($result === true) {
|
||||
// Hook::listen("admin_login_after", $this->request);
|
||||
// $this->success(__('Login successful'), null, [ 'id' => $auth->id, 'avatar' => $auth->avatar]);
|
||||
// } else {
|
||||
// $msg = $auth->getError();
|
||||
// $msg = $msg ? $msg : __('Username or password is incorrect');
|
||||
// $this->error($msg, null, ['token' => $this->request->token()]);
|
||||
// }
|
||||
//
|
||||
//机构登录
|
||||
//如果存在登录,先退出登录
|
||||
$auth = \app\manystoreapi\library\Auth::instance();
|
||||
if($auth->isLogin()){
|
||||
$auth->logout();
|
||||
Hook::listen("manystore_logout_after", $this->request);
|
||||
}
|
||||
//执行登录
|
||||
ManystoreLog::setTitle(__('Login'));
|
||||
$result = $auth->direct($ids);
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
||||
if ($result === true) {
|
||||
Hook::listen("manystore_login_after", $this->request);
|
||||
$this->success(__('Login successful'), null, [ 'id' => $auth->id, 'avatar' => $auth->avatar,'token' => $this->request->token()]);
|
||||
} else {
|
||||
$msg = $auth->getError();
|
||||
$msg = $msg ? $msg : __('Username or password is incorrect');
|
||||
$this->error($msg, null, ['token' => $this->request->token()]);
|
||||
}
|
||||
|
||||
// }catch (\Exception $e){
|
||||
// $this->error($e->getMessage());
|
||||
// }
|
||||
|
||||
}
|
||||
$row = $this->model->get($ids);
|
||||
|
|
|
@ -266,7 +266,7 @@ class ManystoreApiBase extends Controller
|
|||
$controllername = Loader::parseName($this->request->controller());
|
||||
$actionname = strtolower($this->request->action());
|
||||
|
||||
$path = str_replace('.', '/', $controllername) . '/' . $actionname;
|
||||
$path = $modulename. '/' . str_replace('.', '/', $controllername) . '/' . $actionname;
|
||||
|
||||
// 定义是否Addtabs请求
|
||||
!defined('IS_ADDTABS') && define('IS_ADDTABS', input("addtabs") ? true : false);
|
||||
|
@ -282,6 +282,10 @@ class ManystoreApiBase extends Controller
|
|||
if(!$token)$token = $this->request->server('HTTP_SHOP_TOKEN',"");
|
||||
// 设置当前请求的URI
|
||||
$this->auth->setRequestUri($path);
|
||||
|
||||
|
||||
|
||||
|
||||
// 检测是否需要验证登录
|
||||
if (!$this->auth->match($this->noNeedLogin)) {
|
||||
//初始化
|
||||
|
@ -307,6 +311,7 @@ class ManystoreApiBase extends Controller
|
|||
if (!$this->auth->match($this->noNeedRight)) {
|
||||
// 判断控制器和方法判断是否有对应权限
|
||||
if (!$this->auth->check($path)) {
|
||||
// var_dump($path);
|
||||
Hook::listen('manystore_nopermission', $this);
|
||||
$this->apierror(__('You have no permission'), null, 403);
|
||||
}
|
||||
|
@ -319,6 +324,14 @@ class ManystoreApiBase extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
// 设置面包屑导航数据
|
||||
$this->auth->getRuleList();
|
||||
$breadcrumb = $this->auth->getBreadCrumb($path);
|
||||
|
||||
array_pop($breadcrumb);
|
||||
$this->view->breadcrumb = $breadcrumb;
|
||||
|
||||
|
||||
if(!defined('SHOP_ID')){
|
||||
define('SHOP_ID', $this->auth->shop_id);
|
||||
}
|
||||
|
@ -331,7 +344,7 @@ class ManystoreApiBase extends Controller
|
|||
// }
|
||||
$manystore = Manystore::where("id",$this->auth->id)->find();
|
||||
if($manystore) {
|
||||
if($manystore["status"]!="normal") $this->error(__('账号正处于审核中,无法进行任何操作!!'), null, 403);
|
||||
if($manystore["status"]!="normal") $this->apierror(__('账号正处于审核中,无法进行任何操作!!'), null, 403);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -365,10 +378,7 @@ class ManystoreApiBase extends Controller
|
|||
// exit;
|
||||
// }
|
||||
|
||||
// // 设置面包屑导航数据
|
||||
// $breadcrumb = $this->auth->getBreadCrumb($path);
|
||||
// array_pop($breadcrumb);
|
||||
// $this->view->breadcrumb = $breadcrumb;
|
||||
//
|
||||
|
||||
// 如果有使用模板布局
|
||||
if ($this->layout) {
|
||||
|
|
|
@ -24,6 +24,9 @@ class NightSchoolBigData extends BaseModel
|
|||
|
||||
|
||||
public static function getAreaBaseData($province,$city,$district){
|
||||
$have_time = false;
|
||||
if($district)$have_time = true;
|
||||
|
||||
$whereArea = function ($query)use($province,$city,$district){
|
||||
$query = $query->where('1=1');
|
||||
if( $province)$query = $query->where('province',$province);
|
||||
|
@ -34,8 +37,15 @@ class NightSchoolBigData extends BaseModel
|
|||
$classes_num = ClassesLib::where($whereArea)->count();
|
||||
|
||||
$activity_num = Activity::where($whereArea)->count();
|
||||
//统计当前总报名人数
|
||||
$classes_sign_num = ClassesLib::where($whereArea)->sum('sign_num');
|
||||
if($have_time){
|
||||
//统计当前总报名人数
|
||||
$classes_sign_num = ClassesLib::where($whereArea)->sum('sign_num');
|
||||
}else{
|
||||
//统计当前总报名人数
|
||||
$classes_sign_num = (config("site.sign_up_toal_number")?:0) + ClassesLib::where($whereArea)->sum('sign_num');
|
||||
|
||||
}
|
||||
|
||||
|
||||
$activity_sign_num = Activity::where($whereArea)->sum('sign_num');
|
||||
|
||||
|
@ -58,7 +68,7 @@ class NightSchoolBigData extends BaseModel
|
|||
$activity_views = Activity::where($whereArea)->sum('views');
|
||||
|
||||
//注册总人数
|
||||
$user_num = User::count();
|
||||
$user_num = (config("site.register_total_numebr")?:0) + User::count();
|
||||
//总点击
|
||||
$visitn_nmber = Virtual::getVisitNnmber();
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ class Token
|
|||
*/
|
||||
public static function connect(array $options = [], $name = false)
|
||||
{
|
||||
|
||||
$type = !empty($options['type']) ? $options['type'] : 'File';
|
||||
|
||||
if (false === $name) {
|
||||
|
@ -49,7 +50,7 @@ class Token
|
|||
return new $class($options);
|
||||
}
|
||||
$options = array_merge(Config::get('token'), $options);
|
||||
|
||||
// var_dump($options,$class);die;
|
||||
self::$instance[$name] = new $class($options);
|
||||
}
|
||||
|
||||
|
@ -64,6 +65,7 @@ class Token
|
|||
*/
|
||||
public static function init(array $options = [])
|
||||
{
|
||||
// var_dump($options);die;
|
||||
if (is_null(self::$handler)) {
|
||||
if (empty($options) && 'complex' == Config::get('token.type')) {
|
||||
$default = Config::get('token.default');
|
||||
|
@ -73,6 +75,7 @@ class Token
|
|||
$options = Config::get('token');
|
||||
}
|
||||
|
||||
//
|
||||
self::$handler = self::connect($options);
|
||||
}
|
||||
|
||||
|
|
|
@ -709,7 +709,7 @@ class ManystoreShop extends BaseModel
|
|||
//调用订单事件
|
||||
$data = ['shop' => $shop];
|
||||
\think\Hook::listen('shop_apply_after', $data);
|
||||
|
||||
\think\Hook::listen('shop_update_after', $data);
|
||||
if($trans){
|
||||
self::commitTrans();
|
||||
}
|
||||
|
|
|
@ -289,7 +289,7 @@ class Evaluate extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"classes_evaluate"=>$classes_evaluate,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"classes_evaluate"=>$classes_evaluate,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_order_evaluate_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = order::statisticsAndUpdateClassesNumber($order['id']);
|
||||
|
@ -390,7 +390,7 @@ class Evaluate extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"classes_evaluate"=>$classes_evaluate,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"classes_evaluate"=>$classes_evaluate,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_order_evaluate_update_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = order::statisticsAndUpdateClassesNumber($order['id']);
|
||||
|
|
|
@ -964,7 +964,7 @@ class Order extends BaseModel
|
|||
//记录订单日志
|
||||
OrderLog::log($res1['id'],"活动订单创建成功,等待【学员】支付",'user',$user_id);
|
||||
//7事件
|
||||
$data = ['order' => $res1];
|
||||
$data = ['order' => self::where("id",$res1['id'])->find()];
|
||||
\think\Hook::listen('classes_activity_order_create_after', $data);
|
||||
|
||||
|
||||
|
@ -1090,7 +1090,7 @@ class Order extends BaseModel
|
|||
//记录订单日志
|
||||
OrderLog::log($order['id'],"活动订单支付成功,核销码生成,等待审核结果",'user',$order['user_id']);
|
||||
//调用支付成功事件
|
||||
$data = ['order' => $order];
|
||||
$data = ['order' => self::where("id",$order['id'])->find()];
|
||||
\think\Hook::listen('classes_activity_order_payed_after', $data);
|
||||
//更新订单数据
|
||||
self::statisticsAndUpdateClassesNumber($order);
|
||||
|
@ -1382,7 +1382,7 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_cancel_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = self::statisticsAndUpdateClassesNumber($order['id']);
|
||||
|
@ -1538,7 +1538,7 @@ class Order extends BaseModel
|
|||
|
||||
OrderLog::log($order['id'],$pron."课程活动单审核成功,预约成功等待核销!",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_auth_success_after', $data);
|
||||
|
||||
}else{
|
||||
|
@ -1553,7 +1553,7 @@ class Order extends BaseModel
|
|||
//审核失败逻辑
|
||||
OrderLog::log($order['id'],$pron."课程活动单审核不通过,原因;{$reason},该活动单将取消",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_auth_fail_after', $data);
|
||||
//执行订单取消逻辑
|
||||
$this->cancel($order_no,$user_id,false,$oper_type,$oper_id);
|
||||
|
@ -1565,7 +1565,7 @@ class Order extends BaseModel
|
|||
//审核失败逻辑
|
||||
OrderLog::log($order['id'],$pron."课程活动单审核不通过,原因;{$reason},该活动单将自动退款以便重新下单",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_auth_fail_after', $data);
|
||||
$return = true;
|
||||
// throw new \Exception("测试错误!".$order["status"]);
|
||||
|
@ -1796,7 +1796,7 @@ class Order extends BaseModel
|
|||
$res1 = self::statisticsAndUpdateClassesNumber($order['id']);
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$order['user_id'],"oper_type"=>'admin',"oper_id"=>0];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$order['user_id'],"oper_type"=>'admin',"oper_id"=>0];
|
||||
\think\Hook::listen('classes_activity_order_refund_success_after', $data);
|
||||
|
||||
|
||||
|
@ -1838,7 +1838,7 @@ class Order extends BaseModel
|
|||
OrderLog::log($order['id'],"活动订单退款失败:".$msg, $oper_type, $oper_id);
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$order['user_id'],"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$order['user_id'],"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_refund_fail_after', $data);
|
||||
|
||||
if($trans){
|
||||
|
@ -1936,7 +1936,7 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_finish_after', $data);
|
||||
//执行课时数更新
|
||||
self::statisticsAndUpdateClassesNumber($order['id']);
|
||||
|
|
|
@ -787,7 +787,7 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//7事件
|
||||
$data = ['order' => $res1];
|
||||
$data = ['order' => self::where("id",$res1['id'])->find()];
|
||||
\think\Hook::listen('classeshour_order_create_after', $data);
|
||||
return $res1;
|
||||
}
|
||||
|
@ -869,7 +869,7 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_cancel_after', $data);
|
||||
//执行课时数更新
|
||||
\app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
|
@ -1278,7 +1278,7 @@ class Order extends BaseModel
|
|||
|
||||
OrderLog::log($order['id'],$pron."课时预约单审核成功,预约成功等待核销!",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_auth_success_after', $data);
|
||||
|
||||
}else{
|
||||
|
@ -1289,7 +1289,7 @@ class Order extends BaseModel
|
|||
//审核失败逻辑
|
||||
OrderLog::log($order['id'],$pron."课时预约单审核不通过,原因;{$reason},该课时单将取消以便重新下单",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_auth_fail_after', $data);
|
||||
|
||||
//执行订单取消逻辑
|
||||
|
@ -1393,7 +1393,7 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_finish_after', $data);
|
||||
//执行课时数更新
|
||||
\app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
|
@ -1463,7 +1463,7 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['order' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_update_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = \app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
|
|
|
@ -397,7 +397,7 @@ class ServiceOrder extends BaseModel
|
|||
ServiceOrderLog::log($serverorder['id'],$mark ?:"售后单申请已提交,等待商家处理",$oper_type,$oper_id);
|
||||
|
||||
//7事件
|
||||
$data = ['serviceorder' => $serverorder,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['serviceorder' => self::where("id",$serverorder['id'])->find(),"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_serviceorder_create_after', $data);
|
||||
|
||||
|
||||
|
@ -661,7 +661,7 @@ class ServiceOrder extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['serviceorder' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['serviceorder' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_serviceorder_cancel_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
|
@ -918,7 +918,7 @@ class ServiceOrder extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['serviceorder' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['serviceorder' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_serviceorder_shop_confirm_after', $data);
|
||||
|
||||
|
||||
|
@ -942,7 +942,7 @@ class ServiceOrder extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['serviceorder' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['serviceorder' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_serviceorder_shop_reject_after', $data);
|
||||
|
||||
|
||||
|
@ -1153,7 +1153,7 @@ class ServiceOrder extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['serviceorder' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['serviceorder' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_serviceorder_user_confirm_after', $data);
|
||||
|
||||
|
||||
|
@ -1176,7 +1176,7 @@ class ServiceOrder extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['serviceorder' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['serviceorder' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_serviceorder_user_reject_after', $data);
|
||||
|
||||
|
||||
|
@ -1351,7 +1351,7 @@ class ServiceOrder extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['serviceorder' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
$data = ['serviceorder' => self::where("id",$order['id'])->find(),"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_serviceorder_system_reject_after', $data);
|
||||
|
||||
|
||||
|
@ -1480,7 +1480,7 @@ class ServiceOrder extends BaseModel
|
|||
$res1 = order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['serviceorder' => $order,"user_id"=>$order['user_id'],"oper_type"=>'admin',"oper_id"=>0];
|
||||
$data = ['serviceorder' => self::where("id",$order['id'])->find(),"user_id"=>$order['user_id'],"oper_type"=>'admin',"oper_id"=>0];
|
||||
\think\Hook::listen('classes_serviceorder_system_confirm_after', $data);
|
||||
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ return [
|
|||
// 应用命名空间
|
||||
'app_namespace' => 'app',
|
||||
// 应用调试模式
|
||||
'app_debug' => Env::get('app.debug', false),
|
||||
'app_debug' => Env::get('app.debug', true),
|
||||
// 应用Trace
|
||||
'app_trace' => Env::get('app.trace', false),
|
||||
// 应用模式状态
|
||||
|
@ -296,9 +296,9 @@ return [
|
|||
//是否默认展示子菜单
|
||||
'show_submenu' => false,
|
||||
//后台皮肤,为空时表示使用skin-black-blue
|
||||
'adminskin' => '',
|
||||
'adminskin' => 'skin-blue-light',
|
||||
//后台皮肤,为空时表示使用skin-black-blue
|
||||
'manystoreskin' => '',
|
||||
'manystoreskin' => 'skin-black-light',
|
||||
//后台是否启用面包屑
|
||||
'breadcrumb' => false,
|
||||
//是否允许未知来源的插件压缩包
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
<?php
|
||||
namespace app\manystore\controller\csmtable;
|
||||
|
||||
use app\common\controller\ManystoreBase;
|
||||
use think\App;
|
||||
use app\common\controller\Backend;
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
use addons\csmtable\library\xcore\xcore\utils\XcRequestUtils;
|
||||
use addons\csmtable\library\xapp\csmtable\utils\CsmTableUtils;
|
||||
|
||||
class Cligenerateexcel extends Backend
|
||||
class Cligenerateexcel extends ManystoreBase
|
||||
{
|
||||
private $xlstask = null;
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?php
|
||||
namespace app\admin\controller\csmtable;
|
||||
|
||||
use addons\csmtable\library\xcore\xcore\base\XcABackend;
|
||||
use addons\csmtable\library\xcore\xcore\base\XcAManystore;
|
||||
use addons\csmtable\library\xapp\csmtable\utils\CsmTableUtils;
|
||||
|
||||
|
||||
class Csmgenerate extends XcABackend
|
||||
class Csmgenerate extends XcAManystore
|
||||
{
|
||||
|
||||
public function _initialize()
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace app\manystore\controller\csmtable;
|
||||
|
||||
use app\common\controller\Backend;
|
||||
use app\common\controller\ManystoreBase;
|
||||
use app\admin\library\Auth;
|
||||
|
||||
/**
|
||||
|
@ -10,7 +10,7 @@ use app\admin\library\Auth;
|
|||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class Csmxlstable extends Backend
|
||||
class Csmxlstable extends ManystoreBase
|
||||
{
|
||||
protected $noNeedRight = ["*"];
|
||||
|
||||
|
@ -38,12 +38,19 @@ class Csmxlstable extends Backend
|
|||
$filesource = $this->request->request("filesource");
|
||||
$auth = Auth::instance();
|
||||
|
||||
$row = $this->model->where("admin_id", "=", $auth->id)
|
||||
->where("filesource", '=', $filesource)
|
||||
// $row = $this->model->where("admin_id", "=", $auth->id)
|
||||
// ->where("filesource", '=', $filesource)
|
||||
// ->where("status", "=", "normal")
|
||||
// ->field("id,createtime,progress,iserror,errormsg")
|
||||
// ->order("id", "desc")
|
||||
// ->find();
|
||||
|
||||
$row = $this->model->where("filesource", '=', $filesource)
|
||||
->where("status", "=", "normal")
|
||||
->field("id,createtime,progress,iserror,errormsg")
|
||||
->order("id", "desc")
|
||||
->find();
|
||||
|
||||
// echo $this->model->getLastSql();
|
||||
if ($row != null) {
|
||||
// $row->filesource = str_replace(Config::get('upload.cdnurl'), '', $row->filesource);
|
||||
|
@ -59,8 +66,11 @@ class Csmxlstable extends Backend
|
|||
{
|
||||
$auth = Auth::instance();
|
||||
$id = $this->request->request("id");
|
||||
$row = $this->model->where("admin_id", "=", $auth->id)
|
||||
->where("id", "=", $id)
|
||||
// $row = $this->model->where("admin_id", "=", $auth->id)
|
||||
// ->where("id", "=", $id)
|
||||
// ->find();
|
||||
|
||||
$row = $this->model->where("id", "=", $id)
|
||||
->find();
|
||||
|
||||
if ($row == null) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
namespace app\manystore\controller\csmtable;
|
||||
|
||||
use app\common\controller\Backend;
|
||||
use app\common\controller\ManystoreBase;
|
||||
|
||||
/**
|
||||
* 管理员管理
|
||||
|
@ -9,7 +9,7 @@ use app\common\controller\Backend;
|
|||
* @icon fa fa-users
|
||||
* @remark 一个管理员可以有多个角色组,左侧的菜单根据管理员所拥有的权限进行生成
|
||||
*/
|
||||
class Datasource extends Backend
|
||||
class Datasource extends ManystoreBase
|
||||
{
|
||||
|
||||
// protected $noNeedLogin = ["*"];
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
namespace app\manystore\controller\csmtable;
|
||||
|
||||
use app\common\controller\Backend;
|
||||
use app\common\controller\ManystoreBase;
|
||||
use fast\Random;
|
||||
|
||||
/**
|
||||
|
@ -9,7 +9,7 @@ use fast\Random;
|
|||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class Test extends Backend
|
||||
class Test extends ManystoreBase
|
||||
{
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
namespace app\manystore\controller\csmtable;
|
||||
|
||||
use addons\csmtable\library\xcore\xcore\utils\XcDaoUtils;
|
||||
use app\common\controller\Backend;
|
||||
use app\common\controller\ManystoreBase;
|
||||
|
||||
/**
|
||||
* Excel下载任务管理
|
||||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class Xlstask extends Backend
|
||||
class Xlstask extends ManystoreBase
|
||||
{
|
||||
// protected $noNeedRight = [];
|
||||
/**
|
||||
|
|
|
@ -17,7 +17,7 @@ class ManystoreApiAuthRule extends Model
|
|||
protected static function init()
|
||||
{
|
||||
self::afterWrite(function ($row) {
|
||||
Cache::rm('__manystore_menu__');
|
||||
Cache::rm('__manystore_api_menu__');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!-- 加载样式及META信息 -->
|
||||
{include file="common/meta" /}
|
||||
</head>
|
||||
<body class="hold-transition {$Think.config.fastadmin.manystoreskin|default='skin-black-light'} sidebar-mini {:$Think.cookie.sidebar_collapse?'sidebar-collapse':''} fixed {:$Think.config.fastadmin.multipletab?'multipletab':''} {:$Think.config.fastadmin.multiplenav?'multiplenav':''}" id="tabs">
|
||||
<body class="hold-transition {$Think.config.fastadmin.adminskin|default='skin-black-blue'} sidebar-mini {:$Think.cookie.sidebar_collapse?'sidebar-collapse':''} fixed {:$Think.config.fastadmin.multipletab?'multipletab':''} {:$Think.config.fastadmin.multiplenav?'multiplenav':''}" id="tabs">
|
||||
|
||||
<div class="wrapper">
|
||||
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace app\manystoreapi\behavior;
|
||||
|
||||
class ManystoreApiLog
|
||||
{
|
||||
public function run(&$params)
|
||||
{
|
||||
// if (request()->isPost() && config('fastadmin.auto_record_log')) {
|
||||
// \app\manystoreapi\model\ManystoreApiLog::record();
|
||||
// }
|
||||
if (config('fastadmin.auto_record_log')) {
|
||||
\app\manystoreapi\model\ManystoreApiLog::record();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -10,7 +10,7 @@ use app\common\model\ManystoreAttachment;
|
|||
class Attachment extends ManystoreApiBase
|
||||
{
|
||||
protected $noNeedLogin = [];
|
||||
protected $noNeedRight = '*';
|
||||
// protected $noNeedRight = '*';
|
||||
|
||||
/**
|
||||
* @var \app\common\model\ManystoreAttachment
|
||||
|
|
|
@ -21,7 +21,7 @@ use think\Hook;
|
|||
class Common extends ManystoreApiBase
|
||||
{
|
||||
protected $noNeedLogin = ['init', 'captcha','virtualgenerate','get_week_by_time'];
|
||||
protected $noNeedRight = '*';
|
||||
// protected $noNeedRight = '*';
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
|
||||
namespace app\manystoreapi\controller;
|
||||
|
||||
use app\common\controller\ManystoreApiBase;
|
||||
|
||||
/**
|
||||
* 机构API后台:首页接口
|
||||
*/
|
||||
class Index extends ManystoreApiBase
|
||||
{
|
||||
protected $noNeedLogin = [];
|
||||
// protected $noNeedRight = ['index'];
|
||||
protected $layout = '';
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
parent::_initialize();
|
||||
//移除HTML标签
|
||||
$this->request->filter('trim,strip_tags,htmlspecialchars');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 后台首页
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//左侧菜单
|
||||
$cookieArr = ['adminskin' => "/^skin\-([a-z\-]+)\$/i", 'multiplenav' => "/^(0|1)\$/", 'multipletab' => "/^(0|1)\$/", 'show_submenu' => "/^(0|1)\$/"];
|
||||
foreach ($cookieArr as $key => $regex) {
|
||||
$cookieValue = $this->request->cookie($key);
|
||||
if (!is_null($cookieValue) && preg_match($regex, $cookieValue)) {
|
||||
config('fastadmin.' . $key, $cookieValue);
|
||||
}
|
||||
}
|
||||
list($menulist, $navlist, $fixedmenu, $referermenu) = $this->auth->getSidebar([
|
||||
'dashboard' => 'hot',
|
||||
'addon' => ['new', 'red', 'badge'],
|
||||
'auth/rule' => __('Menu'),
|
||||
'general' => ['new', 'purple'],
|
||||
], $this->view->site['fixedpage']);
|
||||
$action = $this->request->request('action');
|
||||
// if ($this->request->isPost()) {
|
||||
$this->apisuccess('', [
|
||||
'menulist' => $menulist,
|
||||
'navlist' => $navlist,
|
||||
'cookie' => ['prefix' => config('cookie.prefix')],
|
||||
"fixedmenu" =>$fixedmenu,
|
||||
"referermenu" =>$referermenu,
|
||||
"title", __('Home'),
|
||||
]);
|
||||
|
||||
// }
|
||||
// $this->assignconfig('cookie', ['prefix' => config('cookie.prefix')]);
|
||||
// $this->view->assign('menulist', $menulist);
|
||||
// $this->view->assign('navlist', $navlist);
|
||||
// $this->view->assign('fixedmenu', $fixedmenu);
|
||||
// $this->view->assign('referermenu', $referermenu);
|
||||
// $this->view->assign('title', __('Home'));
|
||||
// return $this->view->fetch();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,315 @@
|
|||
<?php
|
||||
|
||||
namespace app\manystoreapi\controller;
|
||||
|
||||
use app\common\controller\ManystoreApiBase;
|
||||
use app\common\library\Virtual;
|
||||
use app\manystore\model\Manystore;
|
||||
use app\manystore\model\ManystoreShop;
|
||||
use app\manystoreapi\model\ManystoreApiLog;
|
||||
use fast\Random;
|
||||
use think\Session;
|
||||
use think\Url;
|
||||
use think\Validate;
|
||||
|
||||
|
||||
/**
|
||||
* 机构API后台:机构个人管理接口
|
||||
*/
|
||||
class Shop extends ManystoreApiBase
|
||||
{
|
||||
// protected $noNeedLogin = [];
|
||||
// protected $noNeedRight = ['index'];
|
||||
protected $layout = '';
|
||||
protected $model = null;
|
||||
protected $shopModel = null;
|
||||
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
parent::_initialize();
|
||||
//移除HTML标签
|
||||
// $this->request->filter('trim,strip_tags,htmlspecialchars');
|
||||
|
||||
$this->model = Manystore::where(array('id'=>STORE_ID))->find();
|
||||
$this->shopModel = ManystoreShop::where(array('id'=>SHOP_ID))->find();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 机构信息查询
|
||||
*/
|
||||
public function index(){
|
||||
$res = [];
|
||||
$res['statusList']=[0=>'待审核',1=>'审核通过',2=>'审核拒绝'];
|
||||
$res['typeList']=$this->shopModel->getTypeList();
|
||||
|
||||
$res['shop_info']=$this->shopModel;
|
||||
$res['manystore_info']=$this->model;
|
||||
$res['check_full']=(new \app\common\model\dyqc\ManystoreShop)->checkFull(SHOP_ID);
|
||||
$res['check_full_msg']=(new \app\common\model\dyqc\ManystoreShop)->checkFullMsg(SHOP_ID);
|
||||
$res['now_city']= Virtual::getNowCity();
|
||||
$res['miniqrcode_link']=Url::build("/manystoreapi/shop/miniqrcode", ["ids" => SHOP_ID]);
|
||||
$this->apisuccess("查询成功!",$res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新账号密码,邮件,头像信息
|
||||
* @ApiMethod (POST)
|
||||
* @ApiParams (name="email", type="string", required=true, description="邮件")
|
||||
* @ApiParams (name="nickname", type="string", required=true, description="昵称")
|
||||
* @ApiParams (name="avatar", type="string", required=true, description="头像")
|
||||
* @ApiParams (name="password", type="string", required=false, description="密码(非必填)")
|
||||
*/
|
||||
public function update()
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
$this->token();
|
||||
$params = $this->request->post();
|
||||
$params = array_filter(array_intersect_key(
|
||||
$params,
|
||||
array_flip(array('email', 'nickname', 'password', 'avatar'))
|
||||
));
|
||||
unset($v);
|
||||
if (!Validate::is($params['email'], "email")) {
|
||||
$this->apierror(__("Please input correct email"));
|
||||
}
|
||||
// if (!Validate::is($params['nickname'], "/^[\x{4e00}-\x{9fa5}a-zA-Z0-9_-]+$/u")) {
|
||||
// $this->error(__("Please input correct nickname"));
|
||||
// }
|
||||
if (isset($params['password'])) {
|
||||
if (!Validate::is($params['password'], "/^[\S]{6,16}$/")) {
|
||||
$this->apierror(__("Please input correct password"));
|
||||
}
|
||||
$params['salt'] = Random::alnum();
|
||||
$params['password'] = md5(md5($params['password']) . $params['salt']);
|
||||
}
|
||||
$exist = Manystore::where('email', $params['email'])->where('id', '<>', $this->auth->id)->find();
|
||||
if ($exist) {
|
||||
$this->apierror(__("Email already exists"));
|
||||
}
|
||||
if ($params) {
|
||||
$manystore = Manystore::get($this->auth->id);
|
||||
$manystore->save($params);
|
||||
|
||||
Session::set("manystoreapi", $manystore->toArray());
|
||||
|
||||
|
||||
$this->apisuccess();
|
||||
}
|
||||
$this->apierror();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/** 编辑机构认证信息
|
||||
* @ApiTitle( 编辑机构认证信息)
|
||||
* @ApiSummary(编辑机构认证信息)
|
||||
* @ApiMethod(POST)
|
||||
* @ApiParams(name = "name", type = "string",required=true,description = "机构名称")
|
||||
* @ApiParams(name = "logo", type = "string",required=true,description = "logo单图")
|
||||
* @ApiParams(name = "image", type = "string",required=true,description = "封面单图")
|
||||
* @ApiParams(name = "content", type = "string",required=true,description = "店铺详情")
|
||||
* @ApiParams(name = "tel", type = "string",required=true,description = "服务电话(非必填)")
|
||||
* @ApiParams(name = "desc", type = "string",required=false,description = "申请备注(非必填)")
|
||||
* @ApiParams(name = "front_idcard_image", type = "string",required=true,description = "法人身份证正面")
|
||||
* @ApiParams(name = "reverse_idcard_image", type = "string",required=true,description = "法人身份证反面")
|
||||
* @ApiParams(name = "images", type = "string",required=true,description = "环境照片(多个逗号拼接)")
|
||||
* @ApiParams(name = "yyzzdm", type = "string",required=true,description = "社会统一信用代码")
|
||||
* @ApiParams(name = "yyzz_images", type = "string",required=true,description = "营业执照照片(多个逗号拼接)")
|
||||
* @ApiParams(name = "address", type = "string",required=true,description = "店铺地址")
|
||||
* @ApiParams(name = "address_detail", type = "string",required=true,description = "店铺详细地址")
|
||||
* @ApiParams(name = "longitude", type = "string",required=true,description = "经度")
|
||||
* @ApiParams(name = "latitude", type = "string",required=true,description = "纬度")
|
||||
* @ApiParams(name = "province", type = "int",required=true,description = "省编号")
|
||||
* @ApiParams(name = "city", type = "int",required=true,description = "市编号")
|
||||
* @ApiParams(name = "district", type = "int",required=true,description = "县区编号")
|
||||
* @ApiParams(name = "establish_time", type = "int",required=true,description = "成立时间10位秒级时间戳")
|
||||
* @ApiParams(name = "people", type = "int",required=true,description = "员工人数")
|
||||
* @ApiParams(name = "legal_entity", type = "string",required=true,description = "法人姓名")
|
||||
* @ApiParams(name = "gender", type = "int",required=true,description = "法人性别:0=女,1=男")
|
||||
* @ApiParams(name = "nation", type = "string",required=true,description = "法人民族")
|
||||
* @ApiParams(name = "out_look", type = "string",required=true,description = "法人政治面貌")
|
||||
* @ApiParams(name = "birthtime", type = "int",required=true,description = "法人出生日期10位秒级时间戳")
|
||||
* @ApiParams(name = "native_place", type = "string",required=true,description = "法人籍贯")
|
||||
* @ApiParams(name = "card_number", type = "string",required=true,description = "法人身份证号码")
|
||||
* @ApiParams(name = "diploma", type = "string",required=true,description = "法人学历")
|
||||
* @ApiParams(name = "post", type = "string",required=true,description = "法人职务")
|
||||
* @ApiParams(name = "social_position", type = "string",required=true,description = "法人社会职务")
|
||||
*
|
||||
*
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function shop_update(){
|
||||
$params=[];
|
||||
$params["name"] = $this->request->post('name/s','');
|
||||
$params["logo"] = $this->request->post('logo/s','');
|
||||
$params["image"] = $this->request->post('image/s','');
|
||||
$params["content"] = $this->request->post('content/s','');
|
||||
|
||||
$params["tel"] = $this->request->post('tel/s','');
|
||||
$params["desc"] = $this->request->post('desc/s','');
|
||||
$params["front_idcard_image"] = $this->request->post('front_idcard_image/s','');
|
||||
$params["reverse_idcard_image"] = $this->request->post('reverse_idcard_image/s','');
|
||||
|
||||
$params["images"] = $this->request->post('images/s','');
|
||||
$params["yyzz_images"] = $this->request->post('yyzz_images/s','');
|
||||
$params["yyzzdm"] = $this->request->post('yyzzdm/s','');
|
||||
|
||||
|
||||
$params["address"] = $this->request->post('address/s','');
|
||||
$params["address_detail"] = $this->request->post('address_detail/s','');
|
||||
$params["longitude"] = $this->request->post('longitude/s','');
|
||||
$params["latitude"] = $this->request->post('latitude/s','');
|
||||
|
||||
|
||||
|
||||
|
||||
$params["province"] = $this->request->post('province/d','');
|
||||
$params["city"] = $this->request->post('city/d','');
|
||||
$params["district"] = $this->request->post('district/d','');
|
||||
|
||||
|
||||
|
||||
$params["establish_time"] = $this->request->post('establish_time/d','');
|
||||
$params["people"] = $this->request->post('people/d','');
|
||||
$params["legal_entity"] = $this->request->post('legal_entity/s','');
|
||||
$params["gender"] = $this->request->post('gender/d','');
|
||||
$params["nation"] = $this->request->post('nation/s','');
|
||||
$params["out_look"] = $this->request->post('out_look/s','');
|
||||
$params["birthtime"] = $this->request->post('birthtime/d','');
|
||||
$params["native_place"] = $this->request->post('native_place/s','');
|
||||
$params["card_number"] = $this->request->post('card_number/s','');
|
||||
$params["diploma"] = $this->request->post('diploma/s','');
|
||||
$params["post"] = $this->request->post('post/s','');
|
||||
$params["social_position"] = $this->request->post('social_position/s','');
|
||||
|
||||
|
||||
|
||||
|
||||
// if(empty($id)){
|
||||
// $this->error(__('缺少必要参数'));
|
||||
// }
|
||||
|
||||
$user_id = 0;
|
||||
$user = $this->auth->getUser();//登录用户
|
||||
if($user)$user_id = $user['id'];
|
||||
try {
|
||||
$res = (new \app\common\model\dyqc\ManystoreShop)->updateData($user_id,$params,true,true);
|
||||
} catch (\Exception $e){
|
||||
// Log::log($e->getMessage());
|
||||
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
|
||||
}
|
||||
$this->success('编辑成功', ['detail' => $res]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取微信小程序码
|
||||
* @ApiMethod (POST)
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\BindParamException
|
||||
* @throws \think\exception\DbException
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function miniqrcode($ids = ''){
|
||||
$param = $this->request->param();
|
||||
try{
|
||||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
//设置模拟资格
|
||||
$url = \app\common\model\dyqc\ManystoreShop::getMiniQrcodeLink($ids);
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
||||
return $url["response"];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 后台请求日志列表)
|
||||
* @ApiSummary(后台请求日志列表)
|
||||
* @ApiMethod(GET)
|
||||
* @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字")
|
||||
* @ApiParams(name = "page", type = "string",required=true,description = "页数")
|
||||
* @ApiParams(name = "limit", type = "string",required=true,description = "条数")
|
||||
* @ApiParams(name = "shop_id", type = "string",required=false,description = "机构店铺id")
|
||||
* @ApiParams(name = "store_id", type = "string",required=false,description = "机构账号ID")
|
||||
* @ApiParams(name = "user_id", type = "string",required=false,description = "机构用户ID")
|
||||
* @ApiParams(name = "ip", type = "string",required=false,description = "请求ip")
|
||||
* @ApiParams(name = "time", type = "string",required=false,description = "操作时间查询:today今天,week本周,month本月,year本年,yesterday昨天,last year上一年,last week上周,last month上個月,lately7最近7天 , lately30最近30天,按开始时间区间查传值格式:Y/m/d H:M:S-Y/m/d H:M:S")
|
||||
*
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function log_list()
|
||||
{
|
||||
$params = [];
|
||||
$page = $this->request->get('page/d', 0); //页数
|
||||
$limit = $this->request->get('limit/d', 0); //条数
|
||||
$params["keywords"] = $this->request->get('keywords/s', ''); //搜索关键字
|
||||
$params["shop_id"] = $this->request->get('shop_id/d', ''); //搜索关键字
|
||||
$params["store_id"] = $this->request->get('store_id/d', ''); //搜索关键字
|
||||
$params["user_id"] = $this->request->get('user_id/d', ''); //搜索关键字
|
||||
$params["ip"] = $this->request->get('ip/d', ''); //时间
|
||||
if($params["ip"]) $params["ip"] = ["LIKE","%".$params["ip"] ."%"];
|
||||
$params["time"] = $this->request->get('time/s', ''); //时间
|
||||
if(!$params["shop_id"]) $params["shop_id"] = $this->auth->shop_id;
|
||||
if(!$params["store_id"]) $params["store_id"] = $this->auth->id;
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = ManystoreApiLog::logList($page, $limit,$params);
|
||||
// if($user_id =='670153'){
|
||||
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
|
||||
// }
|
||||
}catch (\Exception $e){
|
||||
|
||||
$this->apierror($e->getMessage());
|
||||
}
|
||||
$this->apisuccess('查询成功', $res);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 后台请求日志列表详情)
|
||||
* @ApiSummary(后台请求日志列表详情)
|
||||
* @ApiMethod(GET)
|
||||
* @ApiParams(name = "id", type = "int",required=true,description = "后台请求日志id")
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function detail(){
|
||||
$id = $this->request->get('id/d','');
|
||||
|
||||
if(empty($id)){
|
||||
$this->apierror(__('缺少必要参数'));
|
||||
}
|
||||
|
||||
try {
|
||||
$res = ManystoreApiLog::detail($id);
|
||||
} catch (\Exception $e){
|
||||
// Log::log($e->getMessage());
|
||||
$this->apierror($e->getMessage(),['errcode'=>$e->getCode()]);
|
||||
}
|
||||
$this->apisuccess('获取成功', ['detail' => $res]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -28,17 +28,47 @@ class Auth extends ManystoreAuth
|
|||
protected $keeptime = 2592000;
|
||||
protected $requestUri = '';
|
||||
protected $rules = [];
|
||||
//默认配置
|
||||
protected $config = [];
|
||||
// //默认配置
|
||||
// protected $config = [];
|
||||
protected $options = [];
|
||||
protected $allowFields = ['id','username', 'nickname', 'avatar','user_id', 'email',"shop_id"];
|
||||
|
||||
protected $breadcrumb = [];
|
||||
protected $init_data = [
|
||||
'table' => 'manystore_token',
|
||||
'type' => 'Mysql',
|
||||
'userprefix' => 'shopup:',
|
||||
'tokenprefix' => 'shoptp:',
|
||||
];
|
||||
|
||||
// protected $config = [
|
||||
// 'auth_on' => 1, // 权限开关
|
||||
// 'auth_type' => 1, // 认证方式,1为实时认证;2为登录认证。
|
||||
// 'auth_group' => 'manystore_api_auth_group', // 用户组数据表名
|
||||
// 'auth_group_access' => 'manystore_api_auth_group_access', // 用户-用户组关系表
|
||||
// 'auth_rule' => 'manystore_api_auth_rule', // 权限规则表
|
||||
// 'auth_user' => 'user', // 用户信息表
|
||||
// ];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// public function __construct(Request $request = null)
|
||||
// {
|
||||
//
|
||||
// // 控制器初始化
|
||||
// $this->_initialize();
|
||||
//
|
||||
// // 前置操作方法
|
||||
// if ($this->beforeActionList) {
|
||||
// foreach ($this->beforeActionList as $method => $options) {
|
||||
// is_numeric($method) ?
|
||||
// $this->beforeAction($options) :
|
||||
// $this->beforeAction($method, $options);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param array $options 参数
|
||||
|
@ -70,6 +100,8 @@ class Auth extends ManystoreAuth
|
|||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
$res = Session::get('manystoreapi.' . $name);
|
||||
if($res)return $res;
|
||||
return $this->_user ? $this->_user->$name : null;
|
||||
}
|
||||
|
||||
|
@ -96,6 +128,14 @@ class Auth extends ManystoreAuth
|
|||
return false;
|
||||
}
|
||||
$data = Token::init($this->init_data)->get($token) ?:false;
|
||||
|
||||
if(!$data){
|
||||
$manystoreapi = Session::get('manystoreapi');
|
||||
if($manystoreapi){
|
||||
$data["user_id"] = $manystoreapi['id'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!$data) {
|
||||
return false;
|
||||
}
|
||||
|
@ -182,8 +222,8 @@ class Auth extends ManystoreAuth
|
|||
//删除Token
|
||||
Token::init($this->init_data)->delete($this->_token) ?:false;
|
||||
|
||||
// Session::delete("manystore");
|
||||
// Cookie::delete("keeplogin");
|
||||
Session::delete("manystoreapi");
|
||||
Cookie::delete("keeplogin");
|
||||
//退出成功的事件
|
||||
Hook::listen("manystore_logout_successed", $this->_user);
|
||||
return true;
|
||||
|
@ -256,6 +296,9 @@ class Auth extends ManystoreAuth
|
|||
|
||||
//登录成功的事件
|
||||
Hook::listen("manystore_login_successed", $this->_user);
|
||||
|
||||
Session::set("manystoreapi", $manystore->toArray());
|
||||
|
||||
Db::commit();
|
||||
} catch (Exception $e) {
|
||||
Db::rollback();
|
||||
|
@ -620,10 +663,13 @@ class Auth extends ManystoreAuth
|
|||
*/
|
||||
public function getBreadCrumb($path = '')
|
||||
{
|
||||
// var_dump($this->breadcrumb);
|
||||
if ($this->breadcrumb || !$path) {
|
||||
// var_dump($path);die;
|
||||
return $this->breadcrumb;
|
||||
}
|
||||
$path_rule_id = 0;
|
||||
// var_dump($this->rules);die;
|
||||
foreach ($this->rules as $rule) {
|
||||
$path_rule_id = $rule['name'] == $path ? $rule['id'] : $path_rule_id;
|
||||
}
|
||||
|
@ -634,6 +680,7 @@ class Auth extends ManystoreAuth
|
|||
$v['title'] = __($v['title']);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->breadcrumb;
|
||||
}
|
||||
|
||||
|
@ -676,15 +723,18 @@ class Auth extends ManystoreAuth
|
|||
$refererUrl = Session::get('referer');
|
||||
$pinyin = new \Overtrue\Pinyin\Pinyin('Overtrue\Pinyin\MemoryFileDictLoader');
|
||||
// 必须将结果集转换为数组
|
||||
$ruleList = collection(\app\manystore\model\ManystoreAuthRule::where('status', 'normal')
|
||||
$ruleList = collection(\app\manystore\model\ManystoreApiAuthRule::where('status', 'normal')
|
||||
->where('ismenu', 1)
|
||||
->order('weigh', 'desc')
|
||||
->cache("__manystore_menu__")
|
||||
->cache("__manystore_api_menu__")
|
||||
->select())->toArray();
|
||||
$indexRuleList = \app\manystore\model\ManystoreAuthRule::where('status', 'normal')
|
||||
$indexRuleList = \app\manystore\model\ManystoreApiAuthRule::where('status', 'normal')
|
||||
->where('ismenu', 0)
|
||||
->where('name', 'like', '%/index')
|
||||
->column('name,pid');
|
||||
|
||||
// var_dump($ruleList);
|
||||
|
||||
$pidArr = array_filter(array_unique(array_map(function ($item) {
|
||||
return $item['pid'];
|
||||
}, $ruleList)));
|
||||
|
@ -726,6 +776,9 @@ class Auth extends ManystoreAuth
|
|||
|
||||
$select_id = $selected ? $selected['id'] : 0;
|
||||
$menu = $nav = '';
|
||||
$menu = $ruleList;
|
||||
return [$menu, $nav, $selected, $referer];
|
||||
|
||||
if (Config::get('fastadmin.multiplenav')) {
|
||||
$topList = [];
|
||||
foreach ($ruleList as $index => $item) {
|
||||
|
|
|
@ -174,12 +174,14 @@ class ManystoreAuth
|
|||
if (isset($_rulelist[$uid])) {
|
||||
return $_rulelist[$uid];
|
||||
}
|
||||
|
||||
if (2 == $this->config['auth_type'] && Session::has('_manystore_api_rule_list_' . $uid)) {
|
||||
return Session::get('_manystore_api_rule_list_' . $uid);
|
||||
}
|
||||
|
||||
// 读取用户规则节点
|
||||
$ids = $this->getRuleIds($uid);
|
||||
|
||||
if (empty($ids)) {
|
||||
$_rulelist[$uid] = [];
|
||||
return [];
|
||||
|
@ -200,6 +202,8 @@ class ManystoreAuth
|
|||
if (in_array('*', $ids)) {
|
||||
$rulelist[] = "*";
|
||||
}
|
||||
|
||||
|
||||
foreach ($this->rules as $rule) {
|
||||
//超级管理员无需验证condition
|
||||
if (!empty($rule['condition']) && !in_array('*', $ids)) {
|
||||
|
@ -223,7 +227,9 @@ class ManystoreAuth
|
|||
$rulelist[$rule['id']] = strtolower($rule['name']);
|
||||
}
|
||||
}
|
||||
// var_dump( $rulelist);
|
||||
$_rulelist[$uid] = $rulelist;
|
||||
// var_dump($rulelist);
|
||||
//登录验证则需要保存规则列表
|
||||
if (2 == $this->config['auth_type']) {
|
||||
//规则列表结果保存到session
|
||||
|
@ -236,10 +242,12 @@ class ManystoreAuth
|
|||
{
|
||||
//读取用户所属用户组
|
||||
$groups = $this->getGroups($uid);
|
||||
|
||||
$ids = []; //保存用户所属用户组设置的所有权限规则id
|
||||
foreach ($groups as $g) {
|
||||
$ids = array_merge($ids, explode(',', trim($g['rules'], ',')));
|
||||
}
|
||||
|
||||
$ids = array_unique($ids);
|
||||
return $ids;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,215 @@
|
|||
<?php
|
||||
|
||||
namespace app\manystoreapi\model;
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use app\common\model\dyqc\ManystoreShop;
|
||||
use app\common\model\school\classes\ClassesLib;
|
||||
use app\manystore\model\Manystore;
|
||||
use app\manystoreapi\library\Auth;
|
||||
use think\Model;
|
||||
|
||||
class ManystoreApiLog extends BaseModel
|
||||
{
|
||||
|
||||
// 开启自动写入时间戳字段
|
||||
protected $autoWriteTimestamp = 'int';
|
||||
// 定义时间戳字段名
|
||||
protected $createTime = 'createtime';
|
||||
protected $updateTime = '';
|
||||
//自定义日志标题
|
||||
protected static $title = '';
|
||||
//自定义日志内容
|
||||
protected static $content = '';
|
||||
|
||||
public static function setTitle($title)
|
||||
{
|
||||
self::$title = $title;
|
||||
}
|
||||
|
||||
public static function setContent($content)
|
||||
{
|
||||
self::$content = $content;
|
||||
}
|
||||
|
||||
public static function record($title = '')
|
||||
{
|
||||
$auth = Auth::instance();
|
||||
$shop_id = 0;
|
||||
$store_id = 0;
|
||||
$username = __('Unknown');
|
||||
if(!defined('SHOP_ID')){
|
||||
define('SHOP_ID', 0);
|
||||
}
|
||||
if(!defined('STORE_ID')){
|
||||
define('STORE_ID',0 );
|
||||
}
|
||||
|
||||
if(!defined('SHOP_USER_ID')){
|
||||
define('SHOP_USER_ID',0 );
|
||||
}
|
||||
|
||||
if($auth->isLogin()){
|
||||
$shop_id = SHOP_ID ;
|
||||
$store_id = STORE_ID;
|
||||
$username = $auth->username;
|
||||
}
|
||||
$content = self::$content;
|
||||
if (!$content) {
|
||||
$content = request()->param('', null, 'trim,strip_tags,htmlspecialchars');
|
||||
foreach ($content as $k => $v) {
|
||||
if (is_string($v) && strlen($v) > 200 || stripos($k, 'password') !== false) {
|
||||
unset($content[$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
$title = self::$title;
|
||||
if (!$title) {
|
||||
$title = [];
|
||||
$breadcrumb = Auth::instance()->getBreadcrumb();
|
||||
|
||||
foreach ($breadcrumb as $k => $v) {
|
||||
$title[] = $v['title'];
|
||||
}
|
||||
$title = implode(' ', $title);
|
||||
}
|
||||
// var_dump($breadcrumb);
|
||||
|
||||
self::create([
|
||||
'shop_id' => $shop_id ? $shop_id : 0,
|
||||
'store_id' => $store_id ? $store_id : 0,
|
||||
'user_id' => SHOP_USER_ID,
|
||||
'title' => $title ?: ManystoreApiAuthRule::where("name",substr(request()->url(), 0, 1500))->value('title')?:"",
|
||||
'content' => !is_scalar($content) ? json_encode($content) : $content,
|
||||
'url' => substr(request()->url(), 0, 1500),
|
||||
'username' => $username,
|
||||
'useragent' => substr(request()->server('HTTP_USER_AGENT'), 0, 255),
|
||||
'ip' => request()->ip()
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo('app\common\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function store()
|
||||
{
|
||||
return $this->belongsTo(Manystore::class, 'store_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
|
||||
public function shop()
|
||||
{
|
||||
return $this->belongsTo(ManystoreShop::class, 'shop_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**得到基础条件
|
||||
* @param $status
|
||||
* @param null $model
|
||||
* @param string $alisa
|
||||
*/
|
||||
public static function getBaseWhere($whereData = [], $model = null, $alisa = '',$with = false)
|
||||
{
|
||||
|
||||
if (!$model) {
|
||||
$model = new static;
|
||||
if ($alisa&&!$with) $model = $model->alias($alisa);
|
||||
}
|
||||
if ($alisa) $alisa = $alisa . '.';
|
||||
$tableFields = (new static)->getTableFields();
|
||||
foreach ($tableFields as $fields)
|
||||
{
|
||||
if(in_array($fields, ['content']))continue;
|
||||
// if (isset($whereData[$fields]) && $whereData[$fields]) $model = $model->where("{$alisa}{$fields}", '=', $whereData[$fields]);
|
||||
|
||||
if (isset($whereData[$fields]) && $whereData[$fields]){
|
||||
if(is_array($whereData[$fields])){
|
||||
$model = $model->where("{$alisa}{$fields}", $whereData[$fields][0], $whereData[$fields][1]);
|
||||
}else{
|
||||
$model = $model->where("{$alisa}{$fields}", '=', $whereData[$fields]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// if (isset($whereData['status']) && $whereData['status']) $model = $model->where("{$alisa}status", 'in', $whereData['status']);
|
||||
// if (isset($whereData['not_status']) && $whereData['not_status']) $model = $model->where("{$alisa}status", 'not in', $whereData['not_status']);
|
||||
|
||||
|
||||
if (isset($whereData['keywords'])&&$whereData['keywords']){
|
||||
|
||||
if($with){
|
||||
$model = $model->where( function($query) use($whereData,$alisa,$with){
|
||||
$query = $query->where("{$alisa}url|{$alisa}title|{$alisa}content|{$alisa}ip", 'like', "%". $whereData['keywords']."%");
|
||||
if(in_array('user',$with)){
|
||||
$query = $query->whereOr("user.nickname|user.realname|user.mobile", 'like', "%". $whereData['keywords']."%");
|
||||
}
|
||||
if(in_array('shop',$with)){
|
||||
$query = $query->whereOr("shop.name|shop.address|shop.address_detail|shop.tel", 'like', "%". $whereData['keywords']."%");
|
||||
}
|
||||
if(in_array('store',$with)){
|
||||
$query = $query->whereOr("store.username|store.nickname|store.email", 'like', "%". $whereData['keywords']."%");
|
||||
}
|
||||
});
|
||||
}else{
|
||||
$model = $model->where("{$alisa}url|{$alisa}title|{$alisa}content|{$alisa}ip", 'like', "%". $whereData['keywords']."%");
|
||||
}
|
||||
|
||||
}
|
||||
if (isset($whereData['time'])&&$whereData['time']){
|
||||
$model = $model->time(["{$alisa}createtime",$whereData['time']]);
|
||||
}
|
||||
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static function logList($page, $limit,$params=[]){
|
||||
$with_field = [
|
||||
'base'=>['*'],
|
||||
'user'=>['nickname',"realname","mobile","avatar"],
|
||||
'shop'=>['name','address',"address_detail","tel","logo","image"],
|
||||
'store'=>['username','nickname',"email","user_id","avatar"],
|
||||
];
|
||||
|
||||
$alisa = (new self)->getWithAlisaName();
|
||||
$sort = "{$alisa}.id desc,{$alisa}.createtime desc";
|
||||
$serch_where = [];
|
||||
$serch_where = array_merge($serch_where,$params);
|
||||
return (new self)->getBaseList($serch_where, $page, $limit,$sort,$with_field);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/** 日志详情
|
||||
* @param $id
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public static function detail($id){
|
||||
$self = self::get($id,['user','shop',"store"]);
|
||||
if(!$self) throw new \Exception("未找到相关数据");
|
||||
|
||||
|
||||
$self->getRelation('user')->visible(['nickname',"realname","mobile","avatar"]);
|
||||
$self->getRelation('shop')->visible(['name','address',"address_detail","tel","logo","image"]);
|
||||
$self->getRelation('store')->visible(['username','nickname',"email","user_id","avatar"]);
|
||||
//参与人数 = 虚拟人数 + 平台人数
|
||||
return $self;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -13,6 +13,6 @@
|
|||
return [
|
||||
// 应用结束
|
||||
'app_end' => [
|
||||
'app\\manystore\\behavior\\ManystoreLog',
|
||||
'app\\manystoreapi\\behavior\\ManystoreApiLog',
|
||||
],
|
||||
];
|
||||
|
|
Loading…
Reference in New Issue