|
|
@@ -0,0 +1,106 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace app\controller\merchant;
|
|
|
+
|
|
|
+use app\extra\basic\Base;
|
|
|
+use app\extra\service\saas\PriceService;
|
|
|
+use app\middleware\AuthMiddleware;
|
|
|
+use app\model\saas\SaasPrice;
|
|
|
+use DI\Attribute\Inject;
|
|
|
+use LinFly\Annotation\Route\Controller;
|
|
|
+use LinFly\Annotation\Route\Middleware;
|
|
|
+use LinFly\Annotation\Route\Route;
|
|
|
+use support\Request;
|
|
|
+use support\Response;
|
|
|
+
|
|
|
+
|
|
|
+#[Controller(prefix: "/api/mer/price"),Middleware(AuthMiddleware::class)]
|
|
|
+class Price extends Base
|
|
|
+{
|
|
|
+
|
|
|
+ #[Inject]
|
|
|
+ protected SaasPrice $model;
|
|
|
+
|
|
|
+ #[Inject]
|
|
|
+ protected PriceService $service;
|
|
|
+
|
|
|
+ #[Route(path: "list",methods: "get")]
|
|
|
+ public function getPriceList(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $request->get();
|
|
|
+ $param['shop'] = $request->user['agent_id'];
|
|
|
+ $list = $this->service->getList($param);
|
|
|
+ return successTrans("success.data",pageFormat($list),200);
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param Request $request
|
|
|
+ * @return Response
|
|
|
+ */
|
|
|
+ #[Route(path: "save",methods: "post")]
|
|
|
+ public function savePrice(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $this->_valid([
|
|
|
+ "id.default" => 0,
|
|
|
+ "type.require" => trans("empty.require"),
|
|
|
+ "color.require" => trans("empty.require"),
|
|
|
+ "paper_size.require"=> trans("empty.require"),
|
|
|
+ "duplex.require" => trans("empty.require"),
|
|
|
+ "price.require" => trans("empty.require"),
|
|
|
+ "shop_id.default" => $request->user['agent_id'],
|
|
|
+ ],"post");
|
|
|
+ if (!is_array($param)) return error($param);
|
|
|
+ $param['price'] = $param['price'] * 100;
|
|
|
+ $price = $this->model->where("id",$param["id"])->findOrEmpty();
|
|
|
+ if ($price->isEmpty())
|
|
|
+ {
|
|
|
+ $priceType = $this->model->where([
|
|
|
+ "type" => $param["type"],
|
|
|
+ "shop_id" => $param["shop_id"],
|
|
|
+ "color" => $param["color"],
|
|
|
+ "duplex" => $param["duplex"],
|
|
|
+ "paper_size"=> $param["paper_size"],
|
|
|
+ ])->findOrEmpty();
|
|
|
+ if (!$priceType->isEmpty()) return errorTrans("error.exist");
|
|
|
+ $state = $price->insertGetId($param);
|
|
|
+ } else {
|
|
|
+ $state = $price->save($param);
|
|
|
+ }
|
|
|
+ if (!$state) return errorTrans("error.data");
|
|
|
+ return successTrans("success.data");
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #[Route(path: "del",methods: "post")]
|
|
|
+ public function delPrice(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $this->_valid([
|
|
|
+ "id.require" => trans("empty.require"),
|
|
|
+ "type.default" => ""
|
|
|
+ ],"post");
|
|
|
+ if (!is_array($param)) return error($param);
|
|
|
+ if ($param["type"] == "batch") {
|
|
|
+ $state = $this->model->whereIn("id",$param["id"])->delete();
|
|
|
+ } else {
|
|
|
+ $price = $this->model->where("id",$param["id"])->findOrEmpty();
|
|
|
+ if ($price->isEmpty()) return errorTrans("empty.data");
|
|
|
+ if ($price['shop_id'] <> $request->user["agent_id"]) return errorTrans("empty.data");
|
|
|
+ $state = $price->delete();
|
|
|
+ }
|
|
|
+ if (!$state) return errorTrans("error.data");
|
|
|
+ return successTrans("success.data");
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|