|
@@ -0,0 +1,467 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+declare (strict_types = 1);
|
|
|
+
|
|
|
+namespace App\Controller;
|
|
|
+
|
|
|
+use App\JsonRpc\OrderServiceInterface;
|
|
|
+use App\Tools\Result;
|
|
|
+use Hyperf\Context\Context;
|
|
|
+use Hyperf\Di\Annotation\Inject;
|
|
|
+use Hyperf\HttpServer\Contract\RequestInterface;
|
|
|
+use Hyperf\HttpServer\Contract\ResponseInterface;
|
|
|
+use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Class OrderController
|
|
|
+ * @package App\Controller
|
|
|
+ */
|
|
|
+class OrderController extends AbstractController
|
|
|
+{
|
|
|
+ #[Inject]
|
|
|
+ protected ValidatorFactoryInterface $validationFactory;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var OrderServiceInterface
|
|
|
+ */
|
|
|
+ #[Inject]
|
|
|
+ private $orderServiceClient;
|
|
|
+ public function index(RequestInterface $request, ResponseInterface $response)
|
|
|
+ {
|
|
|
+ return $response->raw('Hello Hyperf!');
|
|
|
+ }
|
|
|
+
|
|
|
+ /***
|
|
|
+ * 状态说明
|
|
|
+ */
|
|
|
+ public function getStauts()
|
|
|
+ {
|
|
|
+ $data['order'] = [
|
|
|
+ 1 => '通过',
|
|
|
+ 2 => '驳回',
|
|
|
+ 3 => '撤回',
|
|
|
+ 4 => '修改',
|
|
|
+ 5 => '过期',
|
|
|
+ 6 => '待审核',
|
|
|
+ 7 => '结束',
|
|
|
+ ];
|
|
|
+ $data['order_ad'] = [
|
|
|
+ 1 => '待投放',
|
|
|
+ 2 => '驳回',
|
|
|
+ 3 => '撤回',
|
|
|
+ 4 => '修改',
|
|
|
+ 5 => '过期',
|
|
|
+ 6 => '待审核',
|
|
|
+ 7 => '结束',
|
|
|
+ 8 => '投放中',
|
|
|
+ ];
|
|
|
+ return Result::success($data);
|
|
|
+
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 查询广告位
|
|
|
+ */
|
|
|
+ public function getAD()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'width' => 'required',
|
|
|
+ 'height' => 'required',
|
|
|
+ 'starttime' => 'required',
|
|
|
+ 'endtime' => 'required',
|
|
|
+ 'pageSize' => 'required',
|
|
|
+ 'page' => 'required',
|
|
|
+
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'width.required' => '图片宽度不能为空',
|
|
|
+ 'height.required' => '图片高度不能为空',
|
|
|
+ 'starttime.required' => '广告开始时间不能为空',
|
|
|
+ 'endtime.required' => '广告结束时间不能为空',
|
|
|
+ 'pageSize.required' => '显示条数不能为空',
|
|
|
+ 'page.required' => '分页不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->orderServiceClient->getAD($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据网站查找广告位
|
|
|
+ */
|
|
|
+ public function getWebsiteAd()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'width' => 'required',
|
|
|
+ 'height' => 'required',
|
|
|
+ 'starttime' => 'required',
|
|
|
+ 'endtime' => 'required',
|
|
|
+
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'width.required' => '图片宽度不能为空',
|
|
|
+ 'height.required' => '图片高度不能为空',
|
|
|
+ 'starttime.required' => '广告开始时间不能为空',
|
|
|
+ 'endtime.required' => '广告结束时间不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if (!empty($requireData['website_id'])) {
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'website_id' => 'required',
|
|
|
+ 'pageSize' => 'required',
|
|
|
+ 'page' => 'required',
|
|
|
+
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'website_id.required' => '网站id不能为空',
|
|
|
+ 'pageSize.required' => '显示条数不能为空',
|
|
|
+ 'page.required' => '分页不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = $this->orderServiceClient->getWebsiteAd($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ public function getOrderListAdmin()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'pageSize' => 'required',
|
|
|
+ 'page' => 'required',
|
|
|
+
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'pageSize.required' => '显示条数不能为空',
|
|
|
+ 'page.required' => '分页不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->orderServiceClient->getOrderListAdmin($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加订单
|
|
|
+ */
|
|
|
+ public function addAD()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+
|
|
|
+ 'name' => 'required',
|
|
|
+ 'width' => 'required',
|
|
|
+ 'height' => 'required',
|
|
|
+ 'starttime' => 'required',
|
|
|
+ 'endtime' => 'required',
|
|
|
+ 'imgurl' => 'required',
|
|
|
+ 'imgsrc' => 'required',
|
|
|
+ 'pid' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'name.required' => '广告名称不能为空',
|
|
|
+ 'width.required' => '图片宽度不能为空',
|
|
|
+ 'height.required' => '图片高度不能为空',
|
|
|
+ 'starttime.required' => '广告开始时间不能为空',
|
|
|
+ 'endtime.required' => '广告结束时间不能为空',
|
|
|
+ 'imgurl.required' => '图片广告链接不能为空',
|
|
|
+ 'imgsrc.required' => '图片广告地址不能为空',
|
|
|
+ 'pid.required' => '广告位id不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ $commaSeparatedString = $requireData['pid'];
|
|
|
+ $array = explode(",", $commaSeparatedString);
|
|
|
+ $requireData['pid'] = $array;
|
|
|
+ $result = $this->orderServiceClient->addAD($requireData);
|
|
|
+ // return $requireData;
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 获取订单列表
|
|
|
+ */
|
|
|
+ public function getOrderList()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'pageSize' => 'required',
|
|
|
+ 'page' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'pageSize.required' => '显示条数不能为空',
|
|
|
+ 'page.required' => '分页不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if (isset($requireData['status'])) {
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'status' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'status.required' => '状态不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ $result = $this->orderServiceClient->getOrderList($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 获取订单详情
|
|
|
+ */
|
|
|
+ public function getOrderDetail()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'order_id' => 'required',
|
|
|
+ 'pageSize' => 'required',
|
|
|
+ 'page' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'name.required' => '订单id不能为空',
|
|
|
+ 'pageSize.required' => '显示条数不能为空',
|
|
|
+ 'page.required' => '分页不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ $result = $this->orderServiceClient->getOrderDetail($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /***
|
|
|
+ * 撤回订单
|
|
|
+ */
|
|
|
+ public function cancelOrder()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'order_id' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'name.required' => '订单id不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ $result = $this->orderServiceClient->cancelOrder($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+
|
|
|
+ }
|
|
|
+ // 获取订单详情
|
|
|
+ public function getOrderDetailAdmin()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => '订单id不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = $this->orderServiceClient->getOrderDetailAdmin($requireData);
|
|
|
+
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 删除订单
|
|
|
+ */
|
|
|
+ public function delOrderAD()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+
|
|
|
+ 'id' => 'required',
|
|
|
+
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => 'id不能为空',
|
|
|
+
|
|
|
+ 'order_id' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'name.required' => '订单id不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = $this->orderServiceClient->getOrderDetailAdmin($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ //审核订单状态
|
|
|
+ public function applyOrderStatusAdmin()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => 'id不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->orderServiceClient->applyOrderStatusAdmin($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ //修改订单价格
|
|
|
+ public function editPriceOrderAdmin()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required',
|
|
|
+ 'price' => 'required|decimal:2',
|
|
|
+
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => 'id不能为空',
|
|
|
+ 'price.required' => '价格不能为空',
|
|
|
+ 'price.decimal' => '价格格式不正确',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->orderServiceClient->editPriceOrderAdmin($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ public function rejectOrderAdmin()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required',
|
|
|
+ 'reason' => 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => 'id不能为空',
|
|
|
+ 'reason.required' => '原因不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->orderServiceClient->rejectOrderAdmin($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+
|
|
|
+ }
|
|
|
+ public function endOrderAdmin()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required',
|
|
|
+
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => 'id不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->orderServiceClient->endOrderAdmin($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ public function delOrderAdmin()
|
|
|
+ {
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id' => 'required',
|
|
|
+
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => 'id不能为空',
|
|
|
+
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $result = $this->orderServiceClient->delOrderAdmin($requireData);
|
|
|
+ return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+}
|