2 Revize 4a96739469 ... 15bfe2dd73

Autor SHA1 Zpráva Datum
  family 15bfe2dd73 Merge branch 'master' into huangfamily před 1 rokem
  family 0b692ccc52 座次列表接口加入状态检查,根据场次ID、场次编码获取已锁座订单座位编码 před 1 rokem

+ 6 - 0
app/common/dao/movie/order/MovieOrderDao.php

@@ -62,6 +62,12 @@ class MovieOrderDao extends BaseDao
62 62
             })
63 63
             ->when(isset($where['paid']) && $where['paid'] !== '', function ($query) use ($where) {
64 64
                 $query->where('paid', $where['paid']);
65
+            })
66
+            ->when(isset($where['relation_id']) && $where['relation_id'] !== '', function ($query) use ($where) {
67
+                $query->where('relation_id', $where['relation_id']);
68
+            })
69
+            ->when(isset($where['sched_sign']) && $where['sched_sign'] !== '', function ($query) use ($where) {
70
+                $query->where('sched_sign', $where['sched_sign']);
65 71
             });
66 72
     }
67 73
 

+ 19 - 0
app/common/repositories/movie/MovieRepository.php

@@ -139,6 +139,19 @@ class MovieRepository extends BaseRepository
139 139
     {
140 140
         $result = DouHuoMallFilmApiRequest::getSchedSeat($relation_id, $sched_sign);
141 141
 
142
+        $sched_seatList = [];
143
+        // 根据场次id、场次编号获取锁座订单
144
+        $seatOrder = $this->dao->search(['relation_id' => $relation_id, 'sched_sign' => $sched_sign, 'status' => [0, 1]])->field('relation_id,sched_sign,sched_seat')->select()->toArray();
145
+        if (!empty($seatOrder)) {
146
+            $tmpsched_seat = array_column($seatOrder, 'sched_seat');
147
+            foreach ($tmpsched_seat as $ssKey => $ssValue) {
148
+                $ssValue = json_decode($ssValue, true);
149
+                foreach ($ssValue as $k => $v) {
150
+                    $sched_seatList[$v['seat_sign']] = $v['seat_sign'];
151
+                }
152
+            }
153
+        }
154
+
142 155
         $seat = [];
143 156
         $schedSeatList = (isset($result['code']) && ($result['code'] == ApiResponseService::DEFAULT_SUCCESS_CODE)) ? $result['data'] : [];
144 157
         foreach ($schedSeatList as $key => $value) {
@@ -166,6 +179,9 @@ class MovieRepository extends BaseRepository
166 179
             $schedSeatList[$key]['gongxian'] = $pcYanglaojinGongxian['gongxian'];
167 180
             $schedSeatList[$key]['relation_id'] = $relation_id; // 场次ID
168 181
             $schedSeatList[$key]['sched_sign'] = $sched_sign; // 场次编码
182
+            if ($value['status'] == 1) {
183
+                $schedSeatList[$key]['status'] = isset($sched_seatList[$value['seatSign']]) ? 0 : 1;
184
+            }
169 185
 
170 186
             $seat[$value['rowNo']][] = $schedSeatList[$key];
171 187
         }
@@ -200,6 +216,9 @@ class MovieRepository extends BaseRepository
200 216
         if (json_last_error()) throw new ValidateException('锁座下单失败');
201 217
 
202 218
         $order_price = bcmul((string)$channel_sn['price'], (string)count($sched_seat), 2);
219
+        Db::name('log')->insert(['data' => '---电影票支付订单数据---' . json_encode([
220
+                $params['phone'] ?? $userinfo->phone, $channel_sn['channel_type'], $params['sched_sign'], array_column($sched_seat, 'seat_sign'), $order_sn, $order_price
221
+            ])]);
203 222
         $submitOrder = DouHuoMallFilmApiRequest::submitOrder($params['phone'] ?? $userinfo->phone, $channel_sn['channel_type'], $params['sched_sign'], array_column($sched_seat, 'seat_sign'), $order_sn, $order_price);
204 223
         if (!empty($submitOrder) && isset($submitOrder['code']) && ($submitOrder['code'] == ApiResponseService::DEFAULT_SUCCESS_CODE) && isset($submitOrder['data']['plat_order'])) {
205 224
             /** @var CinemaRepository $cinemaRepository */