gorden преди 6 месеца
родител
ревизия
0cd723f554
променени са 2 файла, в които са добавени 47 реда и са изтрити 4 реда
  1. 46 4
      app/admin/controller/coupon/CouponDetailController.php
  2. 1 0
      route/admin.php

+ 46 - 4
app/admin/controller/coupon/CouponDetailController.php

@@ -4,6 +4,7 @@ namespace app\admin\controller\coupon;
 
 use app\admin\service\member\MemberService;
 use app\controller\Curd;
+use app\model\Coupon;
 use app\model\CouponDetail;
 use support\Request;
 use support\Response;
@@ -18,9 +19,23 @@ class CouponDetailController extends Curd
     public function select(Request $request): Response
     {
         [$where, $format, $limit, $field, $order] = $this->selectInput($request);
-        $where['join_coupon_detail_member_id'] = ['<>', ''];
+//        $where['join_coupon_detail_member_id'] = ['<>', ''];
         $order = $request->get('order', 'desc');
         $field = $field ?? 'coupon_detail_addtimes';
+
+        $couponName = $request->get('coupon_name','');
+        if (!empty($couponName)){
+            $couponIds = Coupon::where('coupon_name','like','%'.$couponName.'%')->pluck('coupon_id')->toArray();
+            $where['join_detail_coupon_id'] = ['in',$couponIds];
+        }
+        $addTimes = $request->get('coupon_detail_addtimes',[]);
+        if (!empty($addTimes)){
+            $addTimes[0] = isset($addTimes[0]) ? strtotime($addTimes[0]) : time();
+            $addTimes[1] = isset($addTimes[1]) ? strtotime($addTimes[1]) : time();
+
+            $where['coupon_detail_addtimes'] = $addTimes;
+        }
+
         $query = $this->doSelect($where, $field, $order);
         return $this->doFormat($query, $format, $limit);
     }
@@ -29,7 +44,7 @@ class CouponDetailController extends Curd
     {
         $model = $this->model->with([
             'detail' => function ($query) {
-                $query->select('join_detail_coupon_id', 'coupon_detail_status','coupon_detail_gain_datetime','coupon_detail_used_datetime','coupon_detail_remark');
+                $query->select('join_detail_coupon_id', 'coupon_detail_status', 'coupon_detail_gain_datetime', 'coupon_detail_used_datetime', 'coupon_detail_remark');
             },
             'coupon',
             'member' => function ($query) {
@@ -96,7 +111,7 @@ class CouponDetailController extends Curd
 
             $item['member_used'] = 0;
             foreach ($item['detail'] as $detail) {
-                if ($detail['coupon_detail_status'] == 'USED'){
+                if ($detail['coupon_detail_status'] == 'USED') {
                     $item['member_used'] += 1;
                 }
             }
@@ -105,7 +120,34 @@ class CouponDetailController extends Curd
         return $items;
     }
 
-    public function updateStatus(){
+    /**
+     * @Desc 修改状态
+     * @Author Gorden
+     * @Date 2024/8/22 8:44
+     *
+     * @param Request $request
+     * @return Response
+     */
+    public function updateStatus(Request $request)
+    {
+        $detailId = $request->post('coupon_detail_id','');
+        $status = $request->post('status','');
 
+        $detail = CouponDetail::where('coupon_detail_id',$detailId)->first();
+        if (!$detail){
+            return json_fail('数据不存在');
+        }
+        //状态 INIT|PENDING=等待领取|ACTIVED=可用|WAITING=已占用(待完成)|USED=已使用|DISABLED|CANCEL|EXPIRED
+        if (!in_array($status,['INIT','PENDING','ACTIVED','WAITING','USED','DISABLED','CANCEL','EXPIRED'])){
+            return json_fail("状态异常");
+        }
+        try {
+            CouponDetail::where('coupon_detail_id',$detailId)->update(['coupon_detail_status'=>$status]);
+
+            return json_success('success');
+        }catch (\Exception $e){
+            dump($e->getMessage());
+            return json_fail('数据修改失败');
+        }
     }
 }

+ 1 - 0
route/admin.php

@@ -877,6 +877,7 @@ Route::group('/admin', function () {
         Route::group('/detail', function () {
             Route::get('/list', [\app\admin\controller\coupon\CouponDetailController::class, 'select']);
             Route::get('/info', [\app\admin\controller\coupon\CouponDetailController::class, 'info']);
+            Route::post('/updateStatus', [\app\admin\controller\coupon\CouponDetailController::class, 'updateStatus']);
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);