canyin-project/ybcy/controllers/channel/CommonController.php
2024-11-01 16:07:54 +08:00

303 lines
11 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* 云贝餐饮连锁V2版权说明
******************************************************************
《云贝餐饮连锁V2》是武汉云贝网络科技有限公司历经2余年时间独立创作开发而成且在不断的进行升级开发中《云贝餐饮连锁V2 》的源代码、布局、界面设计、电子文档等均已提交国家版权局登记备案,并已获得著作权审批 和销售许可 (软著登字第 6839058号 登记号 2021SR0114741
官方网址为www.b-ke.cn
官方联系方式153-0719-3890王经理
******************************************************************
注意:本软件非开源系统,版权归武汉云贝网络科技有限公司依法所有,并受到法律的严格保护;未经过我司授权,不得擅自二开、破解、倒卖等任何的侵权、盗版行为均将追究其法律责任。
*/
namespace app\controllers\channel;
use Yii;
use yii\web\Controller;
use yii\web\Session;
use yii\web\Cookie;
class CommonController extends Controller{
public $enableCsrfValidation = false;
protected $wqData=[];
protected $storeId=0;
protected $cloudUrl="http://upload.y-bei.cn/";
protected $shdUrl="https://shd.y-bei.cn/";
protected $userData=[];
public function result($code=1,$msg='成功',$data=[],$count=null){
return json_encode([
'code'=>$code,
'msg'=>$msg,
'data'=>$data,
'count'=>(int)$count
]);
}
protected $payMode = array(
'1' => '微信支付',
'2' => '支付宝支付',
'5' => '余额支付',
'6' => '现金支付',
'7' => '自有pos机',
'8' => '自有微信',
'9' => '自有支付宝',
'10' => '货到付款',
);
protected $origin = array(
'1' => '外卖',
'2' => '充值',
'3' => '积分商城',
'4' => '券包',
'5' => '当面付',
'6' => '快餐',
'7' => '堂食',
'8' => '付费会员卡',
);
protected $platform = array(
'1' => '微信小程序',
'3' => '支付宝小程序',
'5' => '收银台',
);
protected $timeArr=[];
public function json(array $data = []){
return json_encode($data);
}
function init(){
if (Yii::$app->request->isOptions) {
echo json_encode([
'code' => 2,
'msg' => '非法请求'
]);
exit();
}
$result=axios_request();
$this->wqData=$_SESSION['configData'];
// $this->wqData = [
// 'uniacid'=>46,
// 'module'=>"yb_wm"
// ];
$uniacid=$this->wqData['uniacid'];
// if(!$uniacid) {
// echo json_encode([
// 'code' => 2,
// 'msg' => '数据异常,请退出系统重新登录'
// ]);
// exit();
// }
$startTime=strtotime(date('Y-m-d')." 00:00:00");
$endTime=strtotime(date('Y-m-d')." 23:59:59");
$this->timeArr=[
1=>[//今天
'startTime'=>$startTime,
'endTime'=>$endTime,
],
2=>[//7天
'startTime'=>strtotime(date('Y-m-d')." 00:00:00 -6day"),
'endTime'=>strtotime(date('Y-m-d')." 23:59:59"),
],
3=>[//15天
'startTime'=>strtotime(date('Y-m-d')." 00:00:00 -14day"),
'endTime'=>strtotime(date('Y-m-d')." 23:59:59"),
],
4=>[//自定义
'startTime'=>strtotime($result['startTime']." 00:00:00"),
'endTime'=>strtotime($result['endTime']." 23:59:59"),
]
];
$this->storeId = Yii::$app->request->headers->get('storeId');
if(Yii::$app->request->hostInfo=="https://bkycms.com"||Yii::$app->request->hostInfo=="https://v2.bkycms.com"){
$this->wqData=[
'uniacid'=>39,
'module'=>"yb_wm",
'version_id'=>$_SESSION['configData']['version_id'],
];
$role_re=(new \yii\db\Query())
->from('{{%ybwm_users}}')
->where(['uniacid'=>39,'type'=>1])
->one();
$role_re['loginType']=2;
$role_re['role']=$_SESSION['userInfo']['role'];
// dd($role_re);die;
Yii::$app->session->set('userInfo',$role_re);
}
if(Yii::$app->params['isDev']==true){
//dd($_SESSION['userInfo']);die;
$result=axios_request();
if($result['from']=='ws'){
$role_re=(new \yii\db\Query())
->from('{{%ybwm_users}}')
->where('uniacid=:uniacid and type=1',[':uniacid'=>$uniacid])
->one()?:[];
if($role_re){
$role_re=array_merge($role_re,$_SESSION['userInfo']);
$role_re['role']=$_SESSION['userInfo']['role'];
$role_re['loginType']=2;
Yii::$app->session->set('userInfo',$role_re);
}
}
}
$this->userData=Yii::$app->session->get('userInfo');
parent::init();
}
public function getShopId($uniacid){
$res=(new \yii\db\Query())
->select(['id','name'])
->from('{{%ybwm_store}}')
->where('uniacid=:uniacid AND isMain=1',[':uniacid'=>$uniacid])
->one();
return $res['id'];
}
//获取平台ID
public function getApplyId(){
return isset($_SESSION['configData']['uniacid']) ? $_SESSION['configData']['uniacid'] : '';
}
public function checkRole(){
$array=YII::$app->db->createCommand("select c_name from {{%ybwm_nav}}")->queryAll();
$new_arr=array_column($array,'c_name');
//var_dump($new_arr);die;
$role_arr=explode('/',$this->id);
$model_name=$role_arr[0];
$controller_name=$role_arr[1];
$action_name=$this->action->id;
$a_str= $controller_name.'_'.$action_name;
//当前访问的路由在路由控制表的范围内
if(in_array($a_str,$new_arr)){
$role_id = Yii::$app->session->get('userInfo')['role_id'];
$query= (new \yii\db\Query())
->select('role_str')
->from('{{%ybwm_users}} a')
->leftJoin('{{%role_list}} b','a.role_id=b.id')
->where(['a.role_id'=>$role_id,'b.status'=>1]);
//echo $query->createCommand()->getRawSql();die;
$re=$query->one();
$arr=(new \yii\db\Query())
->select('c_name,a_name')
->from('{{%nav}}')
->where(['in','id',explode(',',$re['role_str'])])
->all();
$b_arr=[];
foreach ($arr as $v){
$b_arr[]= $v['c_name'].'_'.$v['a_name'];
}
//用户权限表和数据库对比
if(!in_array($a_str,$b_arr)){
return false;die;
//throw new \Exception('没有该路由请求的权限');
}
}
}
public function checkDomain(){
$url=Yii::$app->params['domain_url'].'/cloud/safe/checkDomain';
$data['domain_url']=Yii::$app->request->hostInfo;
$arr=httpRequest($url,$data);
if($arr){
$this->result(1,'成功');
}else{
$this->result(2,'该域名未激活请联系客服处理');
}
}
//单个或批量修改数据
//$this->batchUpdate('{{%ceshi}}',['92','93'],['aaa'=>111,'bbb'=>222);
public function batchUpdate($table,$ids,$data){
$request = Yii::$app->request;
if ($request->isPost){
if(is_array($ids)){
$res=YII::$app->db->createCommand()->update($table,$data, ['in','id',$ids])->execute();
}else{
$res=YII::$app->db->createCommand()->update($table,$data, 'id=:id', ['id' =>$ids])->execute();
}
if($res==false){
$this->result(2,'网络异常,请稍后再试');
}else{
$this->result(1,'成功');
}
}
}
//删除单个或多个记录函数
//$this->batchDel('{{%ceshi}}',['92','93']);
public function batchDel($table,$ids){
$request = Yii::$app->request;
if ($request->isPost){
if(is_array($ids)) {
$res = Yii::$app->db->createCommand()->delete($table,['in','id',$ids])->execute();
}else{
$res = Yii::$app->db->createCommand()->delete($table, "id='$ids'")->execute();
}
if($res){
$this->result(1,'成功');
}else{
$this->result(2,'网络异常,请稍后再试');
}
}
}
public function getTree($arr,$id){
$list =array();
foreach ($arr as $k=>$v){
if ($v['pid'] == $id){
if($this -> getTree($arr,$v['id'])){
$v['children'] = $this -> getTree($arr,$v['id']);
}
$list[] = $v;
}
}
return $list;
}
//按时间段,门店支付金额,支付次数
public function payResult($startTime,$endTime,$type=1,$storeId=null){
if(strtotime(date('Y-m-d H:i:s',$startTime)) !== $startTime) {
$startTime=strtotime($startTime);
}
if(strtotime(date('Y-m-d H:i:s',$endTime)) !== $endTime) {
$endTime=strtotime($endTime);
}
$data=(new \yii\db\Query())
->from('{{%ybwm_bill}}')
->where('uniacid=:uniacid AND deleteAt=0',['uniacid'=>$this->wqData['uniacid']]);
$data->andwhere('createdAt>=:startTime AND createdAt<=:endTime',['startTime'=>$startTime,'endTime'=>$endTime]);
if($storeId){
$data->andwhere('storeId:storeId',['storeId'=>$storeId]);
}
switch ($type){
case 1;
$res=$data->sum('money');
break;
case 2;
$res=$data->sum('storeActualMoney');
break;
case 3;
$res=$data->groupBy('userId')->count();
break;
}
return $res;
}
//支付方式判断
public function judgePayType($code){
$wechat_arr = [ "10", "11", "12", "13", "14", "15" ];
$alipay_arr = [ "25", "26", "27", "28", "29", "30" ];
if(empty($code)) return '';
if(in_array(substr($code, 0,2), $wechat_arr)){
return "WECHAT";
} elseif (in_array(substr($code, 0,2),$alipay_arr )) {
return "ALIPAY";
} else {
return "OTHER";
}
}
//获取当前登陆者id
public function getUserId(){
return $_SESSION['userInfo']['id'] ? $_SESSION['userInfo']['id'] : '';
}
}