165 lines
5.1 KiB
PHP
165 lines
5.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @author Any
|
|
* @description KISS
|
|
* @date 2020-11-5
|
|
* @version 1.0.0
|
|
*
|
|
* _____LOG_____
|
|
*
|
|
*/
|
|
namespace app\modules\admin\models;
|
|
|
|
|
|
use app\components\SiteHelper;
|
|
use app\components\XtOpenApi;
|
|
use app\models\StoreUser;
|
|
use app\models\User;
|
|
use app\models\UserLogoutReview;
|
|
use app\models\UserOauth;
|
|
use app\models\UserToken;
|
|
use app\models\Admin;
|
|
use Cqrcode\Cqrcode;
|
|
|
|
|
|
class XtOpenForm extends AdminModel
|
|
{
|
|
public $user_id;
|
|
public $page;
|
|
public $limit;
|
|
public $module;
|
|
public $id;
|
|
public $data;
|
|
|
|
public function rules()
|
|
{
|
|
return [
|
|
[['user_id','page','limit','id'], 'integer'],
|
|
[['module','data'], 'string'],
|
|
];
|
|
}
|
|
|
|
public function actionListData()
|
|
{
|
|
$obj = new XtOpenApi();
|
|
$arr = [
|
|
'page' => $this->page,
|
|
'limit' => $this->limit,
|
|
'keyword' => '',
|
|
];
|
|
$module = $this->module;
|
|
if($module == 'getDoor'){
|
|
$res = $obj->{$module}($arr)->getData(function($data,$count){
|
|
$redis_name = "cxgyc:XtOpenApi:door:list";
|
|
foreach ($data as $key=>$val){
|
|
$result = [
|
|
'id' => $val['id'],
|
|
'villageId' => $val['villageId'],
|
|
];
|
|
\Yii::$app->redis->hset($redis_name,$val['sn'],json_encode($result));
|
|
$body_arr = [
|
|
'path' => "pages/index/scanPage?type=xt&sn={$val['sn']}",
|
|
];
|
|
$md5 = md5(json_encode($body_arr));
|
|
if(!file_exists(\Yii::$app->basePath.'/web/upload/qrcode')){
|
|
// 创建目录
|
|
@mkdir(\Yii::$app->basePath.'/web/upload/qrcode');
|
|
}
|
|
if(!is_file(\Yii::$app->basePath.'/web/upload/qrcode/'.$md5.'.png')){
|
|
// 生成二维码
|
|
$qr_res = $this->wxmpQrcode($body_arr);
|
|
file_put_contents(\Yii::$app->basePath.'/web/upload/qrcode/'.$md5.'.png',$qr_res);
|
|
}
|
|
$data[$key]['qr_img'] = "/upload/qrcode/{$md5}.png";
|
|
}
|
|
return ['code'=>0,'data'=>$data,'count'=>$count];
|
|
});
|
|
}else{
|
|
$res = $obj->{$module}($arr)->getData();
|
|
}
|
|
return $res;
|
|
}
|
|
|
|
//获取小程序二维码
|
|
public function wxmpQrcode($body)
|
|
{
|
|
$plugin = new \app\models\common\PluginService();
|
|
$wxmpService = $plugin->getWxmpService(0);
|
|
$accessToken = $wxmpService->getAccessToken();
|
|
if (empty($accessToken)) {
|
|
$accessToken = $wxmpService->getAccessToken(true);
|
|
}
|
|
$body = json_encode($body);
|
|
return $wxmpService->Qrcode->getWxappQrcodeLong($accessToken, $body);
|
|
}
|
|
|
|
public function actionDeleteData()
|
|
{
|
|
$obj = new XtOpenApi();
|
|
$arr = [
|
|
'id' => $this->id,
|
|
];
|
|
$module = $this->module;
|
|
$res = $obj->{$module}($arr)->getData();
|
|
return $res;
|
|
}
|
|
|
|
|
|
// 添加數據
|
|
public function actionAddSnData(){
|
|
$obj = new XtOpenApi();
|
|
$arr = json_decode($this->data,true);
|
|
$module = $this->module;
|
|
$res = $obj->{$module}($arr)->getData();
|
|
return $res;
|
|
}
|
|
|
|
//获取开门二维码
|
|
public function actionGetOpendoorQrcode($params)
|
|
{
|
|
if(empty($params['sn'])){
|
|
return ['code' => 1,'msg' => '编号不能为空'];
|
|
}
|
|
if(empty($params['opendoor_qrcode_endtime'])){
|
|
return ['code' => 1,'msg' => '过期时间不能为空'];
|
|
}
|
|
$opendoor_qrcode_endtime = strtotime($params['opendoor_qrcode_endtime']);
|
|
if($opendoor_qrcode_endtime <= time()){
|
|
return ['code' => 1,'msg' => '过期时间需大于当前时间'];
|
|
}
|
|
$obj = new XtOpenApi();
|
|
$obj->user_id = 1;
|
|
$str_arr = $obj->OpenQr($params['sn'],$opendoor_qrcode_endtime);
|
|
if($str_arr['code'] != 0){
|
|
return ['code' => 1,'msg' => '二维码内容生成失败'];
|
|
}
|
|
$str = $str_arr['data']['qr'];
|
|
$args = [
|
|
'content' => $str,
|
|
'width' => 200,
|
|
'height' => 200,
|
|
];
|
|
/**
|
|
* 初始化参数
|
|
* $args = [
|
|
* content => '', //二维码内容
|
|
* width => '', //二维码宽度
|
|
* height => '', //二维码高度
|
|
* logo => '', //二维码logo图片
|
|
* export_filename => '' //保存路径
|
|
* error_correction_level => '', //容错级别
|
|
* matrix_point_size => '', //生成图片大小
|
|
* ]
|
|
*/
|
|
$qrcode = new Cqrcode($args);
|
|
$data = $qrcode->process();
|
|
if($data['code'] != 0){
|
|
return ['code' => 1,'msg' => '二维码生成失败'];
|
|
}
|
|
$dist = SiteHelper::getFullUrl($data['data']['dist']);
|
|
return ['code' => 0,'msg' => 'ok','data' => $dist,'str' => $str,'opendoor_qrcode_endtime' => $opendoor_qrcode_endtime];
|
|
|
|
}
|
|
|
|
} |