tp5基类实现

1 篇文章 0 订阅

代码如下

<?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);
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Listest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值