| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?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());
- }
- }
- }
|