model->where("shop_id",$request->user['shop_id'])->field("shop_name,shop_mobile,start_at,end_at,vip_end,shop_status,shop_notice,line_time,status,shop_address")->withAttr(['vip_end' => function($query,$data) { return date("Y-m-d",strtotime($data['vip_end'])); }])->findOrEmpty(); if ($shop->isEmpty()) return errorTrans("empty.data"); return success("ok",$shop->toArray()); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } #[Route(path: "save",methods: "post")] public function setData(Request $request): Response { try { $param = $request->post(); $shop = $this->model->where("shop_id",$request->user['shop_id'])->findOrEmpty(); if ($shop->isEmpty()) return errorTrans("empty.data"); $state = $shop->save($param); if (!$state) return errorTrans("error.data"); // 更新店铺名称到账号信息 return successTrans("success.data"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * @param Request $request * @return Response */ #[Route(path: "msg",methods: ['post','get'])] public function getMsgType(Request $request): Response { try { if ($request->method() == "GET") { $msg = (new SystemUserOpen)->where("id",$request->user['id'])->value("is_msg"); return success("ok",compact('msg')); } $param = $this->_valid([ "msg.require" => trans("empty.require") ],"post"); if (!is_array($param)) return error($param); $msg = (new SystemUserOpen)->where("id",$request->user['id'])->findOrEmpty(); if ($msg->isEmpty()) return errorTrans("error.data"); $msg->is_msg = $param['msg']; $state = $msg->save(); if (!$state) return errorTrans("error.data"); return successTrans("success.data"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * 绑定新门店 * @param Request $request * @return Response */ #[Route(path: "bind",methods: "post")] public function bindUser(Request $request): Response { try { $param = $this->_valid([ "username.require" => trans("empty.user"), "password.require" => trans("empty.passwd"), ],"post"); if (!is_array($param)) return error($param); $map = ["is_deleted" => 0,"username" => $param['username']]; $user = (new SystemUser)->where($map)->with(['account'])->findOrEmpty(); if ($user->isEmpty()) return errorTrans("error.user-empty"); if ($user['status'] <> 1) return errorTrans("error.user-status"); if (md5($param['password'].$user['salt']) <> $user['password']) return errorTrans("error.passwd"); $userOpen = (new SystemUserOpen)->where(['openid' => $request->user['openid'],'shop_id' => $user['agent_id']])->findOrEmpty(); if (!$userOpen->isEmpty()) return error("请勿重复绑定"); $state = $userOpen->insertGetId([ "uid" => $user['id'], "openid" => $request->user['openid'], "shop_id" => $user['agent_id'], "shop_name" => $user['account']['shop_name']??'', 'is_msg' => 1 ]); if (!$state) return errorTrans("error.data"); return successTrans("success.data"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * 解绑 * @param Request $request * @return Response */ #[Route(path: "unbind",methods: "post")] public function unbindUser(Request $request): Response { try { $param = $this->_valid([ "id.require" => trans("empty.data") ],"post"); if (!is_array($param)) return error($param); $user = (new SystemUserOpen)->where("id",$param['id'])->findOrEmpty(); if ($user->isEmpty()) return errorTrans("empty.data"); if ($user['openid'] <> $request->user['openid']) return errorTrans("error.request"); $state = $user->delete(); if (!$state) return errorTrans("error.data"); return successTrans("success.data"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * @param Request $request * @return Response */ #[Route(path: "change",methods: ['post','get'])] public function changeAuth(Request $request): Response { try { if ($request->method() == "GET") { $data = (new SystemUserOpen)->where("openid",$request->user['openid'])->select(); $shop = $request->user['shop_id']; return success("ok",compact("data","shop")); } $param = $this->_valid([ "id.require" => trans("empty.data") ],'post'); if (!is_array($param)) return error($param); $user = (new SystemUserOpen)->where("id",$param['id'])->findOrEmpty(); if ($user->isEmpty()) return errorTrans("empty.data"); if ($user['openid'] <> $request->user['openid']) return errorTrans("error.request"); $loginUser = (new SystemUser)->where(['id' => $user['uid']])->with(['account' => function($query){ $query->field("shop_id,shop_name"); }])->findOrEmpty(); return success("ok",['shop_name' => $loginUser['account']['shop_name'],'token' => get_object_vars((new Auth)->guard("mp")->login($user->toArray()))]); // 正常登陆进入 } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * 钱包记录 * @param Request $request * @return Response */ #[Route(path: "walletLog",methods: "get")] public function walletLog(Request $request): Response { try { $param = $request->get(); $param['shop'] = $request->user['shop_id']; $list = $this->service->getList($param); return successTrans("success.data",pageFormat($list),200); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } }