canyin-project/ybcy/models/common/Config.php
2024-11-01 16:07:54 +08:00

371 lines
12 KiB
PHP
Raw Permalink 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\models\common;
use Yii;
use yii\base\Model;
use yii\db\ActiveRecord;
use app\models\common\File;
class Config extends ActiveRecord{
//应用列表
public function appConfig(){
$data=[
[
'id'=>1,
'name'=>'channel',
'use_name'=>'连锁版'
],
[
'id'=>2,
'name'=>'delivery',
'use_name'=>'跑腿'
],
[
'id'=>3,
'name'=>'o2o',
'use_name'=>'O2O'
],
];
return $data;
}
public function serviceConfig()
{
$data=[
[
'id'=>1,
'name'=>'app',
'use_name'=>'商家端',
],
];
return $data;
}
//渠道列表
public function channelConfig(){
$config=getSysInfo()['authData']['channel'];
$data=[
[
'id'=>1,
'name'=>'mini',
'use_name'=>'微信小程序',
'channel_image'=>'/web/static/images/platform/icon_xcx.png'
],
// [
// 'id'=>2,
// 'name'=>'ali',
// 'use_name'=>'支付宝小程序',
// 'channel_image'=>'/web/static/images/platform/icon_zfb.png'
// ],
// [
// 'id'=>3,
// 'name'=>'zijie',
// 'use_name'=>'字节跳动小程序',
// 'channel_image'=>'/web/static/images/platform/icon_zjtd.png'
// ],
// [
// 'id'=>4,
// 'name'=>'wechat',
// 'use_name'=>'微信公众号',
// 'channel_image'=>'/web/static/images/platform/icon_wx.png'
// ],
];
$list=[];
foreach ($data as $v){
if(in_array($v['name'],$config)){
$list[]=$v;
}
}
return $list;
}
//增值插件列表
public function plugConfig(){
$config=getSysInfo()['authData']['plug'];
$data=[
[
'id'=>1,
'name'=>'miniPlay',
'use_name'=>'小程序直播'
],
[
'id'=>2,
'name'=>'rollBag',
'use_name'=>'券包'
],
[
'id'=>3,
'name'=>'payVip',
'use_name'=>'付费会员卡'
],
[
'id'=>4,
'name'=>'cashier',
'use_name'=>'收银台'
],
[
'id'=>5,
'name'=>'oldWithNew',
'use_name'=>'老带新'
],
[
'id'=>6,
'name'=>'distribution',
'use_name'=>'分销商'
],
[
'id'=>7,
'name'=>'queuing',
'use_name'=>'排队取号'
],
[
'id'=>8,
'name'=>'reserve',
'use_name'=>'餐桌预定'
],
[
'id'=>9,
'name'=>'dividend',
'use_name'=>'瓜分红包'
],
];
$list=[];
foreach ($data as $v){
if(in_array($v['name'],$config)){
$list[]=$v;
}
}
return $list;
}
//应用授权插件
public function menuConfig(){
$data=[
[
'id'=>1,
'name'=>'balanceRecharge',
'use_name'=>'会员储值'
],
[
'id'=>2,
'name'=>'signIndex',
'use_name'=>'积分签到'
],
[
'id'=>3,
'name'=>'integralShop',
'use_name'=>'积分商城'
],
];
return $data;
}
//获取系统设置
public static function getSystemSet($name, $uniacid) {
$res=(new \yii\db\Query())
->from('{{%ybwm_core_system}}')
->where('uniacid=:uniacid AND ident=:ident',[':uniacid'=>$uniacid,':ident' => $name])
->one();
$data=json_decode($res['data'], true)?:[];
return $data;
}
//获取商家设置
public static function getStoreSet($name, $storeId,$uniacid=null) {
$res=(new \yii\db\Query())
->from('{{%ybwm_store_set}}')
->where('storeId=:storeId AND ident=:ident',[':storeId'=>$storeId,':ident' => $name]);
if($uniacid){
$res->andWhere('uniacid=:uniacid',['uniacid'=>$uniacid]);
}
//var_dump(ddSql($res));die;
$data=$res->one();
$res=json_decode($data['data'], true)?:[];
if($name=='takeOutSet'){
if(!$res['address']){
$shopInfo=(new \yii\db\Query())
->select(['address', 'lat','lng'])
->from('{{%ybwm_store}}')
->where('id=:storeId',[':storeId'=>$storeId])->one();
$res['address']=$shopInfo['address'];
$res['lat']=$shopInfo['lat'];
$res['lng']=$shopInfo['lng'];
}
$res['orderMedia']=$res['orderMedia']?:[];
$res['distributionSupport']=$res['distributionSupport']?:['1','2'];
$res['diningType']=$res['diningType']?:['1','2'];
$res['orderNotice']=$res['orderNotice']?:'商家暂无公告';
$res['notice']=$res['notice']?:'商家暂无公告';
$res['timeType']=$res['timeType']?:'1';
$res['boxType']=$res['boxType']?:'2';
$res['printType']=$res['printType']?:'1';
}
if($name=='instoreSet'){
$res['payMode']=$res['payMode']?:'1';
$res['orderMode']=$res['orderMode']?:'1';
$res['orderMedia']=$res['orderMedia']?:[];
$res['timeType']=$res['timeType']?:'1';
$res['orderNotice']=$res['orderNotice']?:'商家暂无公告';
$res['notice']=$res['notice']?:'商家暂无公告';
}
return $res;
}
//保存系统设置
public static function saveSystemSet($data,$name,$uniacid=null,$zwName=null) {
$configData['ident']=$name;
$configData['name']=$zwName;
if($name=='system'){
$configData['name']="基础设置";
}
if($name=='currency'){
$configData['name']="通用设置";
}
if($name=='sms'){
$configData['name']="短信设置";
}
if($name=='serviceCharge'){
$configData['name']="服务费设置";
}
if($name=='miniConfig'){
$configData['name']="微信小程序配置";
}
if($name=='payConfig'){
$configData['name']="支付配置";
}
if($name=='withdrawal'){
$configData['name']="提现设置";
}
if($name=='storeSet'){
$configData['name']="门店设置";
}
if($name=='style'){
$configData['name']="风格设置";
}
if($name=='storage'){
$res=File::checkAttachmentSet($data['type'],$data);
if(!$res){
return $res;
}
}
$configData['data']=arrayToJson($data);
$row=(new \yii\db\Query())
->from('{{%ybwm_core_system}}')
->where(['uniacid'=>$uniacid,'ident'=>$name])
->one();
if($row){
$configData['changeAt']=time();
$res=Yii::$app->db->createCommand()->update('{{%ybwm_core_system}}', $configData, 'id=:id', ['id' =>$row['id']])->execute();
}else{
$configData['uniacid']=$uniacid;
$configData['createdAt']=time();
try{
$res=Yii::$app->db->createCommand()->insert('{{%ybwm_core_system}}', $configData)->execute();
}catch (\Exception $e){
return $e;
}
}
if($res){
return true;
}else{
return false;
}
}
//保存商家设置
public static function saveStoreSet($data,$name, $storeId,$zwName=null,$appType=null) {
$configData['ident']=$name;
$configData['name']=$zwName;
if($name=='delivery'){
$configData['name']="配送设置";
}
if($name=='advanceSet'){
$configData['name']="预订单设置";
}
if($name=='takeOutSet'){
$configData['name']="外卖设置";
}
if($name=='makeTime'){
$configData['name']="制作时间";
}
if($name=='deliveryMode'){
$configData['name']="配送方式";
}
$configData['data']=arrayToJson($data);
$store=(new \yii\db\Query())
->from('{{%ybwm_store}}')
->where(['id'=>$storeId])
->one();
$configData['uniacid']=$store['uniacid'];
$row=(new \yii\db\Query())
->from('{{%ybwm_store_set}}')
->where('storeId=:storeId AND ident=:ident',[':storeId'=>$storeId,':ident'=>$name])
->one();
if($row){
$configData['changeAt']=time();
if($appType){
$oldData=json_decode($row['data'],true);
$configData['data']=array_merge($data,$oldData);
}
$res=Yii::$app->db->createCommand()->update('{{%ybwm_store_set}}', $configData, 'id=:id', ['id' =>$row['id']])->execute();
}else{
$configData['storeId']=$storeId;
$configData['createdAt']=time();
try{
$res=Yii::$app->db->createCommand()->insert('{{%ybwm_store_set}}', $configData)->execute();
}catch (\Exception $e){
return false;
}
}
if($res){
return true;
}else{
return false;
}
}
//效验付费插件是否授权
public function checkPlug($uniacid,$plugStr){
$plugList=self::plugConfig();
$data=self::getSystemSet('sysTopImage',$uniacid);
$plugConfig=$data['plug_str'];
$plug_ids=[];
foreach ($plugList as $v){
if(in_array($v['name'],$plugConfig)){
$plug_ids[]=$v['name'];
}
}
if(in_array($plugStr,$plug_ids)){
echo json_encode(['code'=>1,'msg'=>'成功','type'=>1]);die;
}else{
echo json_encode(['code'=>1,'msg'=>'该付费插件未开通','type'=>2]);die;
}
}
//商家端小程序保存
public function saveConfig($bool,$ident,$identName){
$result=axios_request();
if ($bool) {
$res=Config::getSystemSet($ident,0);
echo json_encode(['code'=>1,'msg'=>'成功','data'=>$res]);die;
}
Config::saveSystemSet($result,$ident,0,$identName?:'');
return $this->result(1,'成功');
}
}