test_service d3170b4d1c 1
2023-12-01 15:43:29 +08:00

134 lines
3.8 KiB
PHP

<?php
namespace app\store\controller\food\shop;
use app\store\controller\food\Controller;
use app\store\model\food\Device as DeviceModel;
use app\store\model\food\Shop as ShopModel;
use app\store\model\food\Category;
use think\facade\View;
use hema\device\Driver;
/**
* 云设备控制器
*/
class Device extends Controller
{
/**
* 列表
*/
public function index($shop_id = 0)
{
if($this->shop_mode == 10){
$shop_id = $this->shop_id;
}
$shop = new ShopModel;
$shoplist = $shop->getList(false);
$model = new DeviceModel;
$list = $model->getList($shop_id);
return View::fetch('index', compact('list','shoplist','shop_id'));
}
/**
* 添加
*/
public function add()
{
if (!$this->request->isAjax()) {
$model = new ShopModel;
$shoplist = $model->getList(false);
$category = $this->getCategory($shoplist);
$dr = new Driver;
$company = $dr->company();
return View::fetch('add', compact('shoplist','category','company'));
}
$data = $this->postData('data');
if($this->shop_mode == 10){
$data['shop_id'] = $this->shop_id;
}
$model = new DeviceModel;
if ($model->add($data)) {
return $this->renderSuccess('添加成功', url('food.shop.device/index'));
}
$error = $model->getError() ?: '添加失败';
return $this->renderError($error);
}
/**
* 编辑
*/
public function edit($id)
{
// 详情
$model = DeviceModel::get($id);
if (!$this->request->isAjax()) {
$category = $this->getChecked($model);
return View::fetch('edit', compact('model', 'category'));
}
// 更新记录
if ($model->edit($this->postData('data'))) {
return $this->renderSuccess('更新成功', url('food.shop.device/index'));
}
$error = $model->getError() ?: '更新失败';
return $this->renderError($error);
}
/**
* 删除
*/
public function delete($id)
{
$model = DeviceModel::get($id);
if($model->remove()) {
return $this->renderSuccess('删除成功');
}
$error = $model->getError() ?: '删除失败';
return $this->renderError($error);
}
/**
* 开启/关闭
*/
public function status($id)
{
$model = DeviceModel::get($id);
// 更新记录
if ($model->statu()) {
return $this->renderSuccess('更新成功');
}
$error = $model->getError() ?: '更新失败';
return $this->renderError($error);
}
/**
* 编辑打印类目
**/
private function getChecked($data)
{
$category = (new Category)->where('shop_id',$data['shop_id'])->select();
for($n=0;$n<sizeof($category);$n++){
$category[$n]['checked'] = false;
if(isset($data['values']['category'])){
foreach ($data['values']['category'] as $item){
if($category[$n]['category_id'] == $item){
$category[$n]['checked'] = true;
}
}
}
}
return $category;
}
/**
* 获取所有门店和关联的商品分类
**/
private function getCategory($shoplist)
{
$category = [];
for($n=0;$n<sizeof($shoplist);$n++){
$category[$shoplist[$n]['shop_id']] = (new Category)->where('shop_id',$shoplist[$n]['shop_id'])->select();
}
return json_encode($category);
}
}