| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- namespace app\controller\admin;
- use app\extra\life\data\LifeOrder;
- use app\model\hx\HxOrderLife;
- use app\model\hx\HxStorePoi;
- use app\service\hx\GoodsService;
- use app\service\hx\OrderService;
- use support\Request;
- use support\Response;
- class Order
- {
- public function getOrderList(Request $request): Response
- {
- try {
- $param = $request->all();
- if (!empty($request->user['agent_id'])) {
- $param['agent'] = $request->user['agent_id'];
- }
- $data = (new OrderService)->setModel()->getList($param,['agent' => function($query){
- $query->field("agent_id,name");
- },'goods' => function($query){
- $query->field("product_id,product_name,actual_amount");
- },'poi' => function($query){
- $query->field("poi_id,poi_name");
- }]);
- return successTrans('success.data',pageFormat($data),200);
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- public function doneOrder(Request $request): Response
- {
- try {
- $param = v_valid([
- "order.require" => "订单信息错误",
- ], "post");
- if (!is_array($param)) return error($param);
- $order = (new HxOrderLife)->where("order_id", $param["order"])->with(['agent'])->findOrEmpty();
- if ($order->isEmpty()) return error("订单信息错误");
- if ($order['status'] <> 3) return error("订单状态不支持该操作");
- $order->status = 4;
- $order->order_status = "交易关闭";
- $order->save();
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- public function verifyOrder(Request $request): Response
- {
- try {
- $param = v_valid([
- "order.require" => "订单信息错误",
- "poi.require" => "POI信息错误"
- ],"post");
- if (!is_array($param)) return error($param);
- $order = (new HxOrderLife)->where("order_id",$param["order"])->with(['agent'])->findOrEmpty();
- if ($order->isEmpty()) return error("订单信息错误");
- if ($order['status'] <> 1) return error("该订单状态不支持核销");
- $poi = (new HxStorePoi)->where("poi_id",$param['poi'])->findOrEmpty();
- if ($poi->isEmpty()) return error("订单信息错误");
- $startTime = $poi['order_start']??'09:00';
- $endTime = $poi['order_end']??'22:30';
- $startTimeStamp = strtotime(date("Y-m-d {$startTime}:00"));
- $endTimeStamp = strtotime(date("Y-m-d {$endTime}:00"));
- if (time() > $startTimeStamp && time() < $endTimeStamp)
- {
- // 先查下券码信息
- $order['agent']['version'] = "res";
- $orderCert = (new LifeOrder)->config($order['agent']->toArray())->token()->getCertificate($order['order_id'],$order['agent']['account']);
- if (!isset($orderCert['certificates'][0]['encrypted_code'])) return error("订单券码信息获取失败,请重试!");
- $encrypted_code = array_map(function ($v) {
- return $v['encrypted_code'];
- }, $orderCert['certificates']);
- $verifyResp = (new LifeOrder)->config($order['agent']->toArray())->token()->verifyCertificate([
- "account_id" => $order['agent']['account'],
- "order_id" => $order['order_id'],
- "poi_id" => $param['poi'],
- "encrypted_code" => $encrypted_code
- ]);
- if ($verifyResp['error_code'] <> 0) return error($verifyResp['description']);
- $order->status = 4;
- $order->order_status = '已核销';
- $order->poi_id = $param['poi'];
- $order->done_at = getDateFull();
- $order->save();
- return success("核销成功");
- }
- return error("当前时间段不支持核销");
- } catch (\Throwable $throwable) {
- echo getDateFull()."==核销报错\n";
- echo $throwable->getMessage()."\n";
- echo $throwable->getFile()."【".$throwable->getLine()."】\n";
- return error($throwable->getMessage());
- }
- }
- }
|