代码如下
<?php
namespace app\index\controller;
use think\Controller;
use app\index\controller\Token;
use think\Db;
class Base extends Controller
{
//api 统一返回数据格式
private $utoken="";
private $user_id="";
static public function showResCode($msg='', $data=[], $code=200){
$res = [
'msg'=>$msg ? $msg : '未定义消息',
'data'=>$data ? $data : []
];
return json([$res,$code]);
}
static public function showResCodeWithOutData($msg='',$code=200){
return self::showResCode($msg,[],$code);
}
private function log($content){
$timeFile = date("Y-m-d");
$fopen = fopen($timeFile,'a');
fwrite($fopen,$content."\r\n");
fclose($fopen);
}
protected function query($sql)
{
$this->checkUToken();
$this->log($sql);
$res = Db::query($sql);
foreach ($res as $k => &$v) {
foreach($v as $item=> &$vitem)
{
if($vitem=='.0000' || $vitem=='.00' || $vitem=='.0')
{
$res[$k][$item] = '0'.$vitem;
}
if($vitem=='00')
{
$res[$k][$item] = '0';
}
if($vitem==null)
{
$res[$k][$item] = '';
}
}
}
return $res;
}
protected function createToken($user_info)
{
$objToken = new Token();
$token_data = [
'user_id' => $user_info['acode'],
];
$token_res = $objToken->createToken($token_data);
if($token_res['status'] == '200'){
$user_info['token'] = $token_res['token'];
return $user_info;
}
}
protected function checkUToken(){
$jw_token = new Token();
$header = \request()->header();
if(array_key_exists('token',$header)){
$this->utoken = $header['token'];
}
if($this->utoken){
$jwt_check_res = $jw_token->checkToken($this->utoken);
if($jwt_check_res['status'] == 200){
$data = $jwt_check_res['data'];
$this->user_id = $data['data']->user_id;
return true;
}
}
$this->error("请勿非法进入");
}
protected function getDataList($param,$tableName,$orderBy,$fields,$statusList){
$keyWord = $param['keyWord'];
$status = isset($param['status'])?$param['status']:'';
$pageSize = $param['pageSize'];
$pageIndex = $param['pageIndex'];
$sqlwhere = ' where 1=1 ';
$fieldOrStr = ' and (1=0 ';
foreach($fields as $field){
$fieldOrStr = $fieldOrStr." or ".$field." like'%".$keyWord."%' ";
}
$fieldOrStr = $fieldOrStr.") ";
$sqlwhere = $sqlwhere.$fieldOrStr;
if(in_array($status,$statusList)) {
$sqlwhere = $sqlwhere." and status = ".$status;
}
$pageSize = $pageSize ? $pageSize : 20;
$pageIndex = $pageIndex ? $pageIndex : 1;
$sql = "select * , (select COUNT(*) from ".$tableName.$sqlwhere." ) as guid_count ".
"from ( select cast( ROW_NUMBER() over (order by ".$orderBy." ) as int) guid_row,* ".
" from ".$tableName.$sqlwhere." ) a where guid_row>".($pageSize*($pageIndex-1))." and guid_row<=".($pageSize*$pageIndex);
$res = $this->query($sql);
return $res;
}
protected function getDataDetail($param,$tableName) {
$aguid = $param['aguid'];
$sql = "select * from ".$tableName." where guid_m='".$aguid."' ";
$res = $this->query($sql);
return $res;
}
}
2.父类访问,代码如下
<?php
namespace app\index\controller;
use app\index\controller\Base;
class Xsbillfh extends Base
{
//销售发货单列表
public function xsbillfhList()
{
$param = request()->param();
$tableName = "vxsbillfhList";
$orderBy = " date_yw Desc ";
$fields = ['khaname_long','addr','remark','acode'];
$statusList = [1,2];
$res = $this->getDataList($param,$tableName,$orderBy,$fields,$statusList);
return self::showResCode('操作成功',$res);
}
}