// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\api\controller; use app\api\service\User as UserService; use think\response\Json; use app\api\service\Store as StoreService; use think\db\exception\DataNotFoundException; use think\db\exception\DbException; use think\db\exception\ModelNotFoundException; use app\api\validate\store\Store as StoreValidte; use \app\common\model\Store as StoreInfoModel; use app\common\model\UploadFile; /** * 商城基础信息 * Class Store * @package app\api\controller */ class Store extends Controller { /** * 获取商城基础信息 * @return Json * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public function data(): Json { $service = new StoreService; return $this->renderSuccess($service->data()); } public function joinStore(): Json { // 当前用户信息 $userInfo = UserService::getCurrentLoginUser(true); $params = $this->request->param(); $validate = new StoreValidte(); // 表单验证 if (!$validate->check($params)) { return $this->renderError($validate->getError()); } $service = new StoreService; $res = $service->joinStore($params, $userInfo->user_id); if ($res['code'] == 0) { return $this->renderSuccess('申请成功,请耐心等待'); } else { return $this->renderError($res['msg']); } } public function getStoreType(): Json { return $this->renderSuccess(config('store.store_type')); } public function joinData(): Json { // 当前用户信息 $userInfo = UserService::getCurrentLoginUser(true); $service = new StoreService; return $this->renderSuccess($service->joinData($userInfo->user_id)); } public function getStore(): Json { $service = new StoreService; $store = $service->getStore(); $userLatitude = $this->request->param('userLat', 32.919925); // 用户纬度 $userLongitude = $this->request->param('userLng', 118.825957); // 用户经度 foreach ($store as &$row) { $distanceInKm = calculateDistance($userLatitude, $userLongitude, $row['latitude'], $row['longitude']); $row['distance'] = $distanceInKm . "km"; } return $this->renderSuccess($store); } public function editStore(): Json { $params = $this->request->param(); $storeid = request()->header()['storeid']; $upData = [ 'group_share_img_id'=>$params['group_share_img_id']??0 ]; StoreInfoModel::where('store_id',$storeid)->update($upData); return $this->renderSuccess('ok'); } public function getStoreInfo(): Json { $storeid = request()->header()['storeid']; $info = StoreInfoModel::where('store_id',$storeid)->find()->toArray(); $file = UploadFile::where('file_id', $info['group_share_img_id'])->field('file_path,domain')->find(); $info['group_share_img'] = getUrl($file['file_path'], $file['domain']); return $this->renderSuccess($info); } }