| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- <?php
- namespace app\controller\wap;
- use app\extra\basic\Base;
- use app\extra\service\saas\ShopLogService;
- use app\extra\weMini\Link;
- use app\middleware\WxMiddleware;
- use app\model\saas\SaasShop;
- use app\model\system\SystemUser;
- use app\model\system\SystemUserOpen;
- use DI\Attribute\Inject;
- use LinFly\Annotation\Route\Controller;
- use LinFly\Annotation\Route\Middleware;
- use LinFly\Annotation\Route\Route;
- use Shopwwi\WebmanAuth\Auth;
- use support\Request;
- use support\Response;
- #[Controller(prefix: "/wap/shop"),Middleware(WxMiddleware::class)]
- class Detail extends Base
- {
- #[Inject]
- protected SaasShop $model;
- #[Inject]
- protected ShopLogService $service;
- #[Route(path: "detail",methods: "get")]
- public function getDetail(Request $request): Response
- {
- try {
- $shop = $this->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());
- }
- }
- }
|