admin/app/frontend/modules/goods/controllers/CustomerServiceController.php

128 lines
4.5 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2020/11/30
* Time: 13:43
*/
namespace app\frontend\modules\goods\controllers;
use app\common\components\ApiController;
use app\frontend\modules\member\controllers\ServiceController;
use Yunshop\Supplier\admin\models\Supplier;
use Yunshop\Supplier\common\models\SupplierGoods;
class CustomerServiceController extends ApiController
{
public function index()
{
$goods_id = intval(request()->input('goods_id'));
//客户端类型
$type = intval(request()->input('type'));
//1.商城客服设置
$shopSet = \Setting::get('shop.shop');
if (request()->input('type') == 2) {
$shop_cservice = $shopSet['cservice_mini'] ?: '';
} else {
$shop_cservice = $shopSet['cservice'] ?: '';
}
//客服插件基础设置
$this->apiData = (new ServiceController())->index();
if (empty($this->apiData)) {
$this->apiData = [
'cservice'=> '',
'service_QRcode' => '',
'service_mobile' => ''
];
}
//2.客服插件设置
$alonge_cservice = $this->apiData['cservice'];
if (!is_null(\app\common\modules\shop\ShopConfig::current()->get('customer_service'))) {
$class = array_get(\app\common\modules\shop\ShopConfig::current()->get('customer_service'), 'class');
$function = array_get(\app\common\modules\shop\ShopConfig::current()->get('customer_service'), 'function');
$ret = $class::$function($goods_id,$type);
if ($ret && is_array($ret)) {
foreach ($ret as $rk => $rv) {
$this->apiData[$rk] = $rv;
}
}
}
$store_cservice = '';
$rg_cservice = '';
if (app('plugins')->isEnabled('store-cashier')) {
//3.门店单独客服设置
if(class_exists('\Yunshop\StoreCashier\common\services\CustomerService')) {
$storeSet = \Yunshop\StoreCashier\common\services\CustomerService::getCservice($goods_id,$type);
if ($storeSet && is_array($storeSet)) {
foreach ($storeSet as $sk => $sv) {
$this->apiData[$sk] = $sv;
}
//先将门店单独客服设置的cservice取出
if($storeSet['cservice']) {
$store_cservice = $storeSet['cservice'];
}
}
}
//门店后台单独设置客服链接
if(class_exists('\Yunshop\StoreCashier\store\models\StoreService')){
$store_id = \Yunshop\StoreCashier\common\models\StoreGoods::where('goods_id',$goods_id)->value('store_id');
if (!$store_id) {
$store_id = \Yunshop\StoreCashier\common\models\Store::where('cashier_id', $goods_id)->value('id');
}
if ($store_id) {
$store_service = \Yunshop\StoreCashier\store\models\StoreService::where("store_id",$store_id)->first();
if($store_service) {
$rg_cservice = $store_service['service'];
}
}
}
}
if (app('plugins')->isEnabled('supplier')) {
$supplierGood = SupplierGoods::where('goods_id',$goods_id)->first();
if ($supplierGood) {
$supplier = Supplier::getSupplierById($supplierGood->supplier_id);
$supplierSet = (new ServiceController())->supplier_set($supplier->uid, request()->type);
foreach ($supplierSet as $sk => $sv) {
$this->apiData[$sk] = $sv;
}
//先将门店单独客服设置的cservice取出
if($supplierSet['cservice']) {
$supplier_service = $supplierSet['cservice'];
}
}
}
//满足1.门店独立设置 2.客服插件 3.人工客服 4.商城
if($store_cservice){
$this->apiData['cservice'] = $store_cservice;
}else if($supplier_service){
$this->apiData['cservice'] = $supplier_service;
}else if($alonge_cservice){
$this->apiData['cservice'] = $alonge_cservice;
}else if ($rg_cservice){
$this->apiData['cservice'] = $rg_cservice;
}else{
$this->apiData['cservice'] = $shop_cservice;
}
return $this->successJson('', $this->apiData);
}
}