242 lines
9.6 KiB
PHP
242 lines
9.6 KiB
PHP
<?php
|
|
/**
|
|
* ThinkShop商城系统 - 团队十年电商经验汇集巨献!
|
|
* =========================================================
|
|
* Copy right 2019-2029 成都云之牛科技有限公司, 保留所有权利。
|
|
* ----------------------------------------------
|
|
* 官方网址: https://www.cdcloudshop.com
|
|
* =========================================================
|
|
*/
|
|
|
|
namespace app\shopapi\controller;
|
|
|
|
use app\model\store\Store as StoreModel;
|
|
use app\model\system\Address as AddressModel;
|
|
use app\model\web\Config as ConfigModel;
|
|
|
|
/**
|
|
* 门店
|
|
* Class Store
|
|
* @package app\shop\controller
|
|
*/
|
|
class Store extends BaseApi
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
//执行父类构造函数
|
|
parent::__construct();
|
|
$token = $this->checkToken();
|
|
if ($token['code'] < 0) {
|
|
echo $this->response($token);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 门店列表
|
|
* @return mixed
|
|
*/
|
|
public function lists()
|
|
{
|
|
//判断门店插件是否存在
|
|
$store_is_exit = addon_is_exit('store', $this->site_id);
|
|
if ($store_is_exit) {
|
|
$store_model = new StoreModel();
|
|
$page = isset($this->params['page']) ? $this->params['page'] : 1;
|
|
$page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS;
|
|
$order = isset($this->params['order']) ? $this->params['order'] : "create_time desc";
|
|
$keyword = isset($this->params['keyword']) ? $this->params['keyword'] : '';
|
|
$status = isset($this->params['status']) ? $this->params['status'] : '';
|
|
$type = isset($this->params['type']) ? $this->params['type'] : '';
|
|
$condition = [];
|
|
if ($type == 1) {
|
|
if ($status != null) {
|
|
$condition[] = ['status', '=', $status];
|
|
$condition[] = ['is_frozen', '=', 0];
|
|
}
|
|
} else if ($type == 2) {
|
|
$condition[] = ['is_frozen', '=', $status];
|
|
}
|
|
$condition[] = ['site_id', "=", $this->site_id];
|
|
//关键字查询
|
|
if (!empty($keyword)) {
|
|
$condition[] = ["store_name", "like", "%" . $keyword . "%"];
|
|
}
|
|
$list = $store_model->getStorePageList($condition, $page, $page_size, $order);
|
|
return $this->response($list);
|
|
} else {
|
|
return $this->response($this->success('', '请联系管理员安装插件!'));
|
|
}
|
|
}
|
|
|
|
public function detail(){
|
|
$store_id = isset($this->params['store_id']) ? $this->params['store_id'] : 0;
|
|
$condition = array(
|
|
["site_id", "=", $this->site_id],
|
|
["store_id", "=", $store_id]
|
|
);
|
|
$store_model = new StoreModel();
|
|
$info_result = $store_model->getStoreInfo($condition);//门店信息
|
|
$info = $info_result["data"];
|
|
$data["info"] = $info;
|
|
$is_exit = addon_is_exit("store");
|
|
$config_model = new ConfigModel();
|
|
$mp_config = $config_model->getMapConfig($this->site_id);
|
|
$data["info"] = $info;
|
|
$data["is_exit"] = $is_exit;
|
|
$data["http_type"] = get_http_type();
|
|
$data["tencent_map_key"] = $mp_config['data']['value']['tencent_map_key'];
|
|
return $this->response($this->success($data));
|
|
}
|
|
|
|
|
|
/**
|
|
* 添加门店
|
|
* @return mixed
|
|
*/
|
|
public function addStore()
|
|
{
|
|
$is_store = addon_is_exit('store');
|
|
$store_name = $this->params['store_name'] ? $this->params['store_name'] : '';
|
|
$telphone = $this->params['telphone'] ? $this->params['telphone'] : '';
|
|
$store_image = $this->params['store_image'] ? $this->params['store_image'] : '';
|
|
$status = $this->params['status'] ? $this->params['status'] : 0;
|
|
$province_id = $this->params['province_id'] ? $this->params['province_id'] : 0;
|
|
$city_id = $this->params['city_id'] ? $this->params['city_id'] : 0;
|
|
$district_id = $this->params['district_id'] ? $this->params['district_id'] : 0;
|
|
$community_id = $this->params['community_id'] ? $this->params['community_id'] : 0;
|
|
$address = $this->params['address'] ? $this->params['address'] : '';
|
|
$full_address = $this->params['full_address'] ? $this->params['full_address'] : '';
|
|
$longitude = $this->params['longitude'] ? $this->params['longitude'] : 0;
|
|
$latitude = $this->params['latitude'] ? $this->params['latitude'] : 0;
|
|
$is_pickup = $this->params['is_pickup'] ? $this->params['is_pickup'] : 0;
|
|
$is_o2o = $this->params['is_o2o'] ? $this->params['is_o2o'] : 0;
|
|
$open_date = $this->params['open_date'] ? $this->params['open_date'] : '';
|
|
$data = array(
|
|
"store_name" => $store_name,
|
|
"telphone" => $telphone,
|
|
"store_image" => $store_image,
|
|
"status" => $status,
|
|
"province_id" => $province_id,
|
|
"city_id" => $city_id,
|
|
"district_id" => $district_id,
|
|
"community_id" => $community_id,
|
|
"address" => $address,
|
|
"full_address" => $full_address,
|
|
"longitude" => $longitude,
|
|
"latitude" => $latitude,
|
|
"is_pickup" => $is_pickup,
|
|
"is_o2o" => $is_o2o,
|
|
"open_date" => $open_date,
|
|
"site_id" => $this->site_id
|
|
);
|
|
//判断是否开启多门店
|
|
if ($is_store == 1) {
|
|
$user_data = [
|
|
'username' => isset($this->params['username']) ? $this->params['username'] : '',
|
|
'password' => data_md5(isset($this->params['password']) ? $this->params['password'] : ''),
|
|
];
|
|
} else {
|
|
$user_data = [];
|
|
}
|
|
$store_model = new StoreModel();
|
|
$result = $store_model->addStore($data, $user_data, $is_store);
|
|
return $this->response($result);
|
|
}
|
|
|
|
/**
|
|
* 编辑门店
|
|
* @return mixed
|
|
*/
|
|
public function editStore()
|
|
{
|
|
|
|
$store_id = isset($this->params['store_id']) ? $this->params['store_id'] : 0;
|
|
$condition = array(
|
|
["site_id", "=", $this->site_id],
|
|
["store_id", "=", $store_id]
|
|
);
|
|
$store_model = new StoreModel();
|
|
$store_name = isset($this->params['store_name']) ? $this->params['store_name'] : 0;
|
|
$telphone = isset($this->params['telphone']) ? $this->params['telphone'] : '';
|
|
$store_image = isset($this->params['store_image']) ? $this->params['store_image'] : '';
|
|
$status = isset($this->params['status']) ? $this->params['status'] : 0;
|
|
$province_id = isset($this->params['province_id']) ? $this->params['province_id'] : 0;
|
|
$city_id = isset($this->params['city_id']) ? $this->params['city_id'] : 0;
|
|
$district_id = isset($this->params['district_id']) ? $this->params['district_id'] : 0;
|
|
$community_id = isset($this->params['community_id']) ? $this->params['community_id'] : 0;
|
|
$address = isset($this->params['address']) ? $this->params['address'] : '';
|
|
$full_address = isset($this->params['full_address']) ? $this->params['full_address'] : '';
|
|
$longitude = isset($this->params['longitude']) ? $this->params['longitude'] : 0;
|
|
$latitude = isset($this->params['latitude']) ? $this->params['latitude'] : 0;
|
|
$is_pickup = isset($this->params['is_pickup']) ? $this->params['is_pickup'] : 0;
|
|
$is_o2o = isset($this->params['is_o2o']) ? $this->params['is_o2o'] : 0;
|
|
$open_date = isset($this->params['open_date']) ? $this->params['open_date'] : '';
|
|
$data = array(
|
|
"store_name" => $store_name,
|
|
"telphone" => $telphone,
|
|
"store_image" => $store_image,
|
|
"status" => $status,
|
|
"province_id" => $province_id,
|
|
"city_id" => $city_id,
|
|
"district_id" => $district_id,
|
|
"community_id" => $community_id,
|
|
"address" => $address,
|
|
"full_address" => $full_address,
|
|
"longitude" => $longitude,
|
|
"latitude" => $latitude,
|
|
"is_pickup" => $is_pickup,
|
|
"is_o2o" => $is_o2o,
|
|
"open_date" => $open_date,
|
|
);
|
|
$result = $store_model->editStore($data, $condition);
|
|
return $this->response($result);
|
|
|
|
}
|
|
|
|
/**
|
|
* 删除门店
|
|
* @return mixed
|
|
*/
|
|
public function deleteStore()
|
|
{
|
|
$store_id = isset($this->params["store_id"]) ? $this->params["store_id"] : '0';
|
|
$condition = array(
|
|
["site_id", "=", $this->site_id],
|
|
["store_id", "=", $store_id]
|
|
);
|
|
$store_model = new StoreModel();
|
|
$result = $store_model->deleteStore($condition);
|
|
return $this->response($result);
|
|
}
|
|
|
|
/**
|
|
* 冻结门店
|
|
* @return array
|
|
*/
|
|
public function frozenStore()
|
|
{
|
|
$store_id = isset($this->params['store_id']) ? $this->params['store_id'] : '0';
|
|
$is_frozen = isset($this->params['is_frozen']) ? $this->params['is_frozen'] : '0';
|
|
$condition = [
|
|
["site_id", "=", $this->site_id],
|
|
["store_id", "=", $store_id]
|
|
];
|
|
$store_model = new StoreModel();
|
|
$res = $store_model->frozenStore($condition, $is_frozen);
|
|
return $this->response($res);
|
|
}
|
|
|
|
/**
|
|
* 重置密码
|
|
*/
|
|
public function modifyPassword()
|
|
{
|
|
$store_id = isset($this->params['store_id']) ? $this->params['store_id'] : '0';
|
|
$password = isset($this->params['password']) ? $this->params['password'] : '123456';
|
|
$store_model = new StoreModel();
|
|
$data = $store_model->resetStorePassword($password, [['store_id', '=', $store_id]]);
|
|
return $this->response($data);
|
|
}
|
|
} |