Zory 7 stundas atpakaļ
vecāks
revīzija
fcd091fb4d

+ 19 - 0
app/controller/admin/Finance.php

@@ -6,6 +6,8 @@ use app\extra\basic\Base;
 use app\middleware\AuthMiddleware;
 use app\model\saas\SaasBankCompany;
 use app\model\saas\SaasStoreOpen;
+use app\service\saas\StoreOpenService;
+use DI\Attribute\Inject;
 use LinFly\Annotation\Attributes\Route\Controller;
 use LinFly\Annotation\Attributes\Route\GetMapping;
 use LinFly\Annotation\Attributes\Route\Middleware;
@@ -18,6 +20,23 @@ use support\Response;
 class Finance extends Base
 {
 
+    #[Inject]
+    protected StoreOpenService $storeOpen;
+
+    #[GetMapping("open/list")]
+    public function getOpenList(Request $request): Response
+    {
+        try {
+            $param = $request->all();
+            if (!empty($param['status'])) $param['status'] = intval($param['status']+1);
+            $data = $this->storeOpen->setModel()->getList($param,['poi' => function($query){
+                $query->field("poi_id,poi_name,poi_address,nick_name");
+            }]);
+            return successTrans(100010,pageFormat($data),200);
+        } catch (\Throwable $throwable) {
+            return error($throwable->getMessage());
+        }
+    }
 
     /**
      * 三级城市信息

+ 25 - 0
app/controller/admin/Goods.php

@@ -3,6 +3,7 @@
 namespace app\controller\admin;
 
 use app\extra\basic\Base;
+use app\extra\dyMini\Qrcode;
 use app\middleware\AuthMiddleware;
 use app\model\saas\SaasGoods;
 use app\model\saas\SaasGoodsSku;
@@ -53,6 +54,30 @@ class Goods extends Base
         }
     }
 
+
+    /**
+     * 获取商品二维码
+     * @param Request $request
+     * @return Response
+     */
+    #[GetMapping("qrcode")]
+    public function getQrcode(Request $request): Response
+    {
+        try {
+            $param = $this->_valid([
+                "id.require"        => trans("empty.require")
+            ],$request->method());
+            if (!is_array($param)) return error($param);
+            $data = $this->model->where("id",$param['id'])->findOrEmpty();
+            if ($data->isEmpty()) return errorTrans("error.data");
+            $qrcode = (new Qrcode)->config($this->getDyConfig())->token()->getQrcodeV2("pages/goods/detail?goods={$data['product_id']}&spm={$data['id']}","douyin");
+            if (!isset($qrcode['img'])) return error("生成二维码失败");
+            return successTrans("success.data",compact('qrcode'));
+        } catch (\Throwable $throwable) {
+            return error($throwable->getMessage());
+        }
+    }
+
     /**
      * 商品详情
      * @param Request $request

+ 24 - 0
app/controller/admin/Store.php

@@ -3,6 +3,7 @@
 namespace app\controller\admin;
 
 use app\extra\basic\Base;
+use app\extra\dyMini\Qrcode;
 use app\middleware\AuthMiddleware;
 use app\model\saas\SaasStore;
 use app\model\saas\SaasStoreCategory;
@@ -205,4 +206,27 @@ class Store extends Base
         }
     }
 
+    /**
+     * 获取门店二维码
+     * @param Request $request
+     * @return Response
+     */
+    #[GetMapping("qrcode")]
+    public function getQrcode(Request $request): Response
+    {
+        try {
+            $param = $this->_valid([
+                "id.require"        => trans("empty.require")
+            ],$request->method());
+            if (!is_array($param)) return error($param);
+            $data = $this->model->where("id",$param['id'])->findOrEmpty();
+            if ($data->isEmpty()) return errorTrans("error.data");
+            $qrcode = (new Qrcode)->config($this->getDyConfig())->token()->getQrcodeV2("pages/index/index?store={$data['poi_id']}","douyin");
+            if (!isset($qrcode['img'])) return error("生成二维码失败");
+            return successTrans("success.data",compact('qrcode'));
+        } catch (\Throwable $throwable) {
+            return error($throwable->getMessage());
+        }
+    }
+
 }

+ 27 - 0
app/extra/dyMini/Qrcode.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace app\extra\dyMini;
+
+use app\extra\dyLife\BasicLife;
+
+class Qrcode extends BasicLife
+{
+
+    /**
+     * 获取二维码(方形码/抖音圆码/异形码)
+     * @param string $path
+     * @param string $appName
+     * @return array 返回base64图片
+     */
+    public function getQrcodeV2(string $path = "",string $appName = "toutiao"): array
+    {
+        $param = [
+            "app_name"  => $appName,
+            "appid"     => $this->config['appid'],
+            "path"      => $path,
+            "is_circle_code"  => true
+        ];
+        return $this->curlPostApi("api/apps/v1/qrcode/create/",$param);
+    }
+
+}

+ 27 - 21
app/model/saas/SaasStoreOpen.php

@@ -3,30 +3,31 @@
 namespace app\model\saas;
 
 use app\extra\basic\Model;
+use think\model\relation\HasOne;
 
 
 /**
- * @property integer $id (主键)
- * @property mixed $poi_id 
- * @property string $company_name 
- * @property mixed $company_number 
- * @property string $company_sub_name 
- * @property string $company_license 营业执照
- * @property string $city_name 
- * @property mixed $city_code 
- * @property string $address 
- * @property string $legal_name 法人姓名
- * @property mixed $legal_mobile 
- * @property mixed $legal_idcard 身份证号
- * @property string $legal_id_front 正面
- * @property string $legal_id_back 反面
- * @property mixed $email 
- * @property mixed $bank_number 对公帐号
- * @property string $bank_code 开户行编码
- * @property string $bank_img 开户许可证照片
- * @property integer $status 
- * @property string $remark 
- * @property mixed $last_at 
+ * @property integer $id (主键)
+ * @property mixed $poi_id 
+ * @property string $company_name 
+ * @property mixed $company_number 
+ * @property string $company_sub_name 
+ * @property string $company_license 营业执照
+ * @property string $city_name 
+ * @property mixed $city_code 
+ * @property string $address 
+ * @property string $legal_name 法人姓名
+ * @property mixed $legal_mobile 
+ * @property mixed $legal_idcard 身份证号
+ * @property string $legal_id_front 正面
+ * @property string $legal_id_back 反面
+ * @property mixed $email 
+ * @property mixed $bank_number 对公帐号
+ * @property string $bank_code 开户行编码
+ * @property string $bank_img 开户许可证照片
+ * @property integer $status 
+ * @property string $remark 
+ * @property mixed $last_at 
  * @property mixed $create_at
  */
 class SaasStoreOpen extends Model
@@ -59,5 +60,10 @@ class SaasStoreOpen extends Model
      */
     public bool $timestamps = false;
 
+    public function poi(): HasOne
+    {
+        return $this->hasOne(SaasStore::class, 'poi_id', 'poi_id');
+    }
+
 
 }

+ 35 - 0
app/service/saas/StoreOpenService.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace app\service\saas;
+
+use app\extra\basic\Service;
+use app\model\saas\SaasStoreOpen;
+
+class StoreOpenService extends Service
+{
+
+    /**
+     *
+     * @return $this
+     */
+    public function setModel()
+    {
+        $this->mode = (new SaasStoreOpen);
+        return $this;
+    }
+
+
+    /**
+     *
+     * @param array $param
+     * @return array
+     */
+    public function searchFilter(array $param = []): array
+    {
+        $filter = [];
+        !empty($param['status']) && $filter[] = ["status", '=', ($param['status']-1)];
+        !empty($param['poi_id']) && $filter[] = ["poi_id", '=', $param['poi_id']];
+        return $filter;
+    }
+
+}