122 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
 | 
						|
namespace addons\xilufitness\services;
 | 
						|
 | 
						|
 | 
						|
use app\common\library\Auth;
 | 
						|
use think\exception\HttpResponseException;
 | 
						|
use think\Response;
 | 
						|
use think\Validate;
 | 
						|
 | 
						|
class BaseService
 | 
						|
{
 | 
						|
 | 
						|
    /**
 | 
						|
     * 静态实例
 | 
						|
     * @var array
 | 
						|
     */
 | 
						|
    public static $instance = [];
 | 
						|
 | 
						|
    /**
 | 
						|
     * 扩展数据
 | 
						|
     * @var array
 | 
						|
     */
 | 
						|
    public $data = [];
 | 
						|
 | 
						|
    /**
 | 
						|
     * 用户信息
 | 
						|
     * @var null
 | 
						|
     */
 | 
						|
    public $auth = null;
 | 
						|
 | 
						|
    /**
 | 
						|
     * 用户基本信息
 | 
						|
     */
 | 
						|
    public $userInfo = null;
 | 
						|
 | 
						|
    /**
 | 
						|
     * 品牌id
 | 
						|
     */
 | 
						|
    public $brand_id = 0;
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * 获取静态实例
 | 
						|
     */
 | 
						|
    public static function getInstance(array $params = []){
 | 
						|
        $key = md5(get_called_class() . serialize($params));
 | 
						|
        if(isset(self::$instance[$key])){
 | 
						|
            return self::$instance[$key];
 | 
						|
        }
 | 
						|
        return self::$instance[$key] = new static($params);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 构造方法
 | 
						|
     */
 | 
						|
    private function __construct(array $params = [])
 | 
						|
    {
 | 
						|
        $this->data = $params;
 | 
						|
        $this->auth = Auth::instance();
 | 
						|
        $this->__initialize();
 | 
						|
        $header = request()->header();
 | 
						|
        $brand_key = $header['brand-key'] ?? '';
 | 
						|
//        $brandModel = new \addons\xilufitness\model\Brand;
 | 
						|
//        $brand_id = $brandModel->where(['brand_key' => $brand_key ])->value('id');
 | 
						|
//        $this->brand_id = empty($brand_id) ? 1 : $brand_id;
 | 
						|
//        $userModel = new \addons\xilufitness\model\User;
 | 
						|
//        $this->userInfo = $userModel
 | 
						|
//            ->where(['user_id' => $this->auth->id, 'brand_id' => $this->brand_id])
 | 
						|
//            ->field(['id','nickname','avatar','gender','mobile','point','account','train_day','train_duration','train_count','is_vip'])
 | 
						|
//            ->find();
 | 
						|
    }
 | 
						|
 | 
						|
    //默认方法
 | 
						|
    protected function __initialize(){
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 数据验证
 | 
						|
     */
 | 
						|
    public function validateData($rule,$message,$data){
 | 
						|
        $validate = new Validate($rule,$message);
 | 
						|
        if(!$validate->check($data)){
 | 
						|
            return $validate->getError();
 | 
						|
        } else {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 返回数据
 | 
						|
     * @param string $msg
 | 
						|
     * @param array|Ojbct $data
 | 
						|
     * @param int $code 状态码
 | 
						|
     */
 | 
						|
    public function result($msg='',$data,$code=1,array $header=[]){
 | 
						|
        $result = [
 | 
						|
            'code' => $code,
 | 
						|
            'msg' => $msg,
 | 
						|
            'data' => !empty($data) ? $data : '',
 | 
						|
        ];
 | 
						|
        $response = Response::create($result,'json')->header($header);
 | 
						|
        throw new HttpResponseException($response);
 | 
						|
    }
 | 
						|
 | 
						|
    public function resultError($msg='',$data=[]){
 | 
						|
        $this->result($msg,$data,0);
 | 
						|
    }
 | 
						|
    public function resultSuccess($msg='',$data=[]){
 | 
						|
        $this->result($msg,$data,1);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 获取用户真实id
 | 
						|
     */
 | 
						|
    protected function getUserId(){
 | 
						|
        return intval(xilufitness_get_id_value($this->userInfo->id ?? 0));
 | 
						|
    }
 | 
						|
 | 
						|
} |