You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
5.6 KiB
169 lines
5.6 KiB
<?php
|
|
|
|
namespace app\admin\controller\shopro\store;
|
|
|
|
use app\common\controller\Backend;
|
|
use app\admin\model\shopro\store\Store as StoreModel;
|
|
|
|
/**
|
|
* 门店
|
|
*
|
|
* @icon fa fa-circle-o
|
|
*/
|
|
class Apply extends Backend
|
|
{
|
|
|
|
/**
|
|
* Apply模型对象
|
|
* @var \app\admin\model\shopro\store\Apply
|
|
*/
|
|
protected $model = null;
|
|
|
|
public function _initialize()
|
|
{
|
|
parent::_initialize();
|
|
$this->model = new \app\admin\model\shopro\store\Apply;
|
|
$this->view->assign("openweeksList", $this->model->getOpenweeksList());
|
|
$this->view->assign("statusList", $this->model->getStatusList());
|
|
}
|
|
|
|
/**
|
|
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
|
|
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
|
|
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
|
|
*/
|
|
|
|
|
|
/**
|
|
* 查看
|
|
*/
|
|
public function index()
|
|
{
|
|
//当前是否为关联查询
|
|
$this->relationSearch = false;
|
|
//设置过滤方法
|
|
$this->request->filter(['strip_tags', 'trim']);
|
|
if ($this->request->isAjax())
|
|
{
|
|
//如果发送的来源是Selectpage,则转发到Selectpage
|
|
if ($this->request->request('keyField'))
|
|
{
|
|
return $this->selectpage();
|
|
}
|
|
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
|
$total = $this->model
|
|
|
|
->where($where)
|
|
->order($sort, $order)
|
|
->count();
|
|
|
|
$list = $this->model
|
|
->with(['user'])
|
|
->where($where)
|
|
->order($sort, $order)
|
|
->limit($offset, $limit)
|
|
->select();
|
|
|
|
foreach ($list as $row) {
|
|
$row->visible(['id','name','user_id','user','images','realname','phone','province_name','city_name','area_name','province_id','city_id','area_id','address','latitude','longitude','openhours','openweeks','apply_num','status','status_msg','createtime','updatetime']);
|
|
}
|
|
$list = collection($list)->toArray();
|
|
$result = array("total" => $total, "rows" => $list);
|
|
|
|
return $this->success('操作成功', null, $result);
|
|
}
|
|
return $this->view->fetch();
|
|
}
|
|
|
|
public function detail($ids = null)
|
|
{
|
|
$row = $this->model->with('user')->where('id', 'in', $ids)->find();
|
|
if (!$row) {
|
|
$this->error(__('No Results were found'));
|
|
}
|
|
$adminIds = $this->getDataLimitAdminIds();
|
|
if (is_array($adminIds)) {
|
|
if (!in_array($row[$this->dataLimitField], $adminIds)) {
|
|
$this->error(__('You have no permission'));
|
|
}
|
|
}
|
|
|
|
$this->assignconfig("row", $row);
|
|
$this->view->assign("row", $row);
|
|
|
|
return $this->view->fetch();
|
|
}
|
|
|
|
|
|
/**
|
|
* 审核操作
|
|
*
|
|
* @param [type] $id
|
|
* @return void
|
|
*/
|
|
public function applyOper($id)
|
|
{
|
|
$status = $this->request->post('status', -1);
|
|
$status_msg = $this->request->post('status_msg', '');
|
|
|
|
$apply = $this->model->get($id);
|
|
|
|
if ($apply->status != 0) {
|
|
$this->error('该申请已处理,不能重复处理');
|
|
}
|
|
|
|
$result = \think\Db::transaction(function () use ($apply, $status, $status_msg) {
|
|
$apply->status = $status;
|
|
$apply->status_msg = $status_msg;
|
|
$apply->save();
|
|
|
|
if ($status == 1) {
|
|
// 把门店申请信息同步到门店
|
|
$store = new StoreModel();
|
|
$store->name = $apply->name;
|
|
$store->images = $apply->images;
|
|
$store->realname = $apply->realname;
|
|
$store->phone = $apply->phone;
|
|
$store->province_name = $apply->province_name;
|
|
$store->city_name = $apply->city_name;
|
|
$store->area_name = $apply->area_name;
|
|
$store->province_id = $apply->province_id;
|
|
$store->city_id = $apply->city_id;
|
|
$store->area_id = $apply->area_id;
|
|
$store->address = $apply->address;
|
|
$store->latitude = $apply->latitude;
|
|
$store->longitude = $apply->longitude;
|
|
$store->service_type = 'radius';
|
|
$store->service_radius = 1000;
|
|
$store->openhours = $apply->openhours;
|
|
$store->openweeks = $apply->openweeks;
|
|
$store->status = $apply->status;
|
|
$store->save();
|
|
|
|
// 添加门店管理员
|
|
$userStore = \think\Db::name('shopro_user_store')->insert([
|
|
'user_id' => $apply->user_id,
|
|
'store_id' => $store->id
|
|
]);
|
|
}
|
|
|
|
return [
|
|
'apply' => $apply,
|
|
'store' => $store ?? null
|
|
];
|
|
});
|
|
|
|
// 门店审核结果通知
|
|
$user = \addons\shopro\model\User::where('id', $result['apply']['user_id'])->find();
|
|
$user && $user->notify(
|
|
new \addons\shopro\notifications\store\Apply([
|
|
'apply' => $result['apply'],
|
|
'store' => $result['store'],
|
|
'event' => 'store_apply'
|
|
])
|
|
);
|
|
|
|
|
|
return $this->success('操作成功', null, $result);
|
|
}
|
|
}
|
|
|