Ver Fonte

Merge remote-tracking branch 'origin/master'

whitefang há 1 ano atrás
pai
commit
7367cc043e

+ 2 - 4
app/adminapi/logic/coupon/CouponRulesLogic.php

@@ -47,10 +47,9 @@ class CouponRulesLogic extends BaseLogic
                 'code' => generate_sn(CouponRules::class,'code'),
                 'code' => generate_sn(CouponRules::class,'code'),
                 'amount' => $params['amount'],
                 'amount' => $params['amount'],
                 'amount_require' => $params['amount_require'],
                 'amount_require' => $params['amount_require'],
-                'begin_use' => $params['begin_use'] ? strtotime($params['begin_use']) :0,
                 'discount_ratio' => $params['discount_ratio'],
                 'discount_ratio' => $params['discount_ratio'],
                 'event_name' => $params['event_name'],
                 'event_name' => $params['event_name'],
-                'expire_time' =>  $params['expire_time']  ? strtotime($params['expire_time']) :0,
+                'expire_time' =>  $params['expire_time']  ?: 0,
                 'max_deductible_price' => $params['max_deductible_price'],
                 'max_deductible_price' => $params['max_deductible_price'],
                 'mold_type' => $params['mold_type'],
                 'mold_type' => $params['mold_type'],
                 'server_category_name' => $params['server_category_name'],
                 'server_category_name' => $params['server_category_name'],
@@ -90,10 +89,9 @@ class CouponRulesLogic extends BaseLogic
                 'coupon_type'=> $params['coupon_type'],
                 'coupon_type'=> $params['coupon_type'],
                 'amount' => $params['amount'],
                 'amount' => $params['amount'],
                 'amount_require' => $params['amount_require'],
                 'amount_require' => $params['amount_require'],
-                'begin_use' => $params['begin_use'] ? strtotime($params['begin_use']) :0,
                 'discount_ratio' => $params['discount_ratio'],
                 'discount_ratio' => $params['discount_ratio'],
                 'event_name' => $params['event_name'],
                 'event_name' => $params['event_name'],
-                'expire_time' => $params['expire_time']  ? strtotime($params['expire_time']) :0,
+                'expire_time' => $params['expire_time']  ?: 0,
                 'max_deductible_price' => $params['max_deductible_price'],
                 'max_deductible_price' => $params['max_deductible_price'],
                 'mold_type' => $params['mold_type'],
                 'mold_type' => $params['mold_type'],
                 'server_category_name' => $params['server_category_name'],
                 'server_category_name' => $params['server_category_name'],

+ 15 - 2
app/api/controller/UserCouponController.php

@@ -8,6 +8,7 @@ use app\api\validate\UserCouponValidate;
 
 
 class UserCouponController extends BaseApiController
 class UserCouponController extends BaseApiController
 {
 {
+    public array $notNeedLogin = ['categoryCouponList'];
     /**
     /**
      * 我的优惠卷列表
      * 我的优惠卷列表
      * @return \think\response\Json
      * @return \think\response\Json
@@ -41,12 +42,24 @@ class UserCouponController extends BaseApiController
     }
     }
 
 
 
 
-    public function CategoryCouponList()
+    public function categoryCouponLists()
     {
     {
         $params = (new UserCouponValidate())->goCheck('category',[
         $params = (new UserCouponValidate())->goCheck('category',[
             'user_id'=>$this->userId
             'user_id'=>$this->userId
         ]);
         ]);
-        $result = UserCouponLogic::categoryCouponList($params);
+        $result = UserCouponLogic::categoryCouponLists($params);
+        if (false === $result) {
+            return $this->fail(UserCouponLogic::getError());
+        }
+        return $this->data($result);
+    }
+
+    public function categoryWithAmountLists()
+    {
+        $params = (new UserCouponValidate())->goCheck('categoryWithAmountList',[
+            'user_id'=>$this->userId
+        ]);
+        $result = UserCouponLogic::categoryWithAmountLists($params);
         if (false === $result) {
         if (false === $result) {
             return $this->fail(UserCouponLogic::getError());
             return $this->fail(UserCouponLogic::getError());
         }
         }

+ 30 - 1
app/api/logic/UserCouponLogic.php

@@ -126,7 +126,7 @@ class UserCouponLogic extends BaseLogic
      * @param $params
      * @param $params
      * @return array|false
      * @return array|false
     */
     */
-    public static function categoryCouponList($params)
+    public static function categoryCouponLists($params)
     {
     {
         try{
         try{
             $data =  CouponRules::alias('cr')
             $data =  CouponRules::alias('cr')
@@ -151,4 +151,33 @@ class UserCouponLogic extends BaseLogic
             return false;
             return false;
         }
         }
     }
     }
+
+    public static function categoryWithAmountLists($params)
+    {
+        try{
+            $data = UserCoupon::alias('uc')
+                ->where('user_id',$params['user_id'])
+                ->leftJoin('coupon_rules cr','uc.code=cr.code')
+                ->leftJoin('coupon_category cc','cc.coupon_id=cr.id')
+                ->where('cc.goods_category_id',$params['goods_category_id'])
+                ->where('uc.user_id',$params['user_id'])
+                ->where('uc.begin_use','<=',time())
+                ->where('uc.expire_time','>',time())
+                ->where('uc.voucher_count','>',0)
+                ->where('uc.voucher_status',0)
+                ->where('uc.amount_require','<=',$params['amount'])
+                ->field(['uc.id','uc.code','uc.amount','uc.amount_require','uc.discount_ratio','uc.server_category_name',
+                    'uc.event_name','uc.expire_time','uc.begin_use','uc.max_deductible_price','uc.mold_type','uc.server_category_name'])
+                ->select()
+                ->toArray();
+            foreach($data as $k => $v){
+                $data[$k]['begin_use'] = date("Y-m-d H:i:s",$v['begin_use'] );
+                $data[$k]['expire_time'] = date("Y-m-d H:i:s",$v['expire_time'] );
+            }
+            return $data;
+        } catch(\Exception $e){
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
 }
 }

+ 8 - 1
app/api/validate/UserCouponValidate.php

@@ -10,12 +10,14 @@ class UserCouponValidate extends BaseValidate {
     protected $rule = [
     protected $rule = [
         'codes' => 'require',
         'codes' => 'require',
         'goods_category_id'=> 'require',
         'goods_category_id'=> 'require',
-        'voucher_status'=>'require'
+        'voucher_status'=>'require',
+        'amount' =>'require',
     ];
     ];
     protected $field = [
     protected $field = [
         'codes' => '优惠券编码组',
         'codes' => '优惠券编码组',
         'goods_category_id'=>'分类ID',
         'goods_category_id'=>'分类ID',
         'voucher_status'=>'参数',
         'voucher_status'=>'参数',
+        'amount' => '金额',
     ];
     ];
     public function sceneAdd()
     public function sceneAdd()
     {
     {
@@ -31,4 +33,9 @@ class UserCouponValidate extends BaseValidate {
     {
     {
         return $this->only(['goods_category_id']);
         return $this->only(['goods_category_id']);
     }
     }
+
+    public function sceneCategoryWithAmountList()
+    {
+        return $this->only(['goods_category_id','amount']);
+    }
 }
 }