浏览代码

砍价接口

lizhen_gitee 3 月之前
父节点
当前提交
2388d30fa7
共有 3 个文件被更改,包括 155 次插入0 次删除
  1. 135 0
      addons/shopro/controller/activity/Kan.php
  2. 18 0
      活动表字段rules.txt
  3. 2 0
      队列命令.txt

+ 135 - 0
addons/shopro/controller/activity/Kan.php

@@ -0,0 +1,135 @@
+<?php
+
+namespace addons\shopro\controller\activity;
+
+use addons\shopro\controller\Common;
+use addons\shopro\service\goods\GoodsService;
+use addons\shopro\facade\Activity as ActivityFacade;
+use think\Db;
+class Kan extends Common
+{
+
+    protected $noNeedLogin = ['index', 'detail'];
+    protected $noNeedRight = ['*'];
+
+    //砍价商品列表
+    public function kan_productsku_list(){
+        $category_id = $this->request->param('category_id');
+
+        $list = Db::name('shopro_activity_sku_price')->alias('asp')
+            ->field([
+                    'asp.activity_id','asp.goods_sku_price_id','asp.goods_id','asp.price',
+                    'a.rules',
+                    'g.title','g.image',
+                    'gsp.goods_sku_text','gsp.image as sku_image','gsp.price as old_price']
+            )
+            ->join('shopro_activity a','asp.activity_id = a.id','LEFT')
+            ->join('shopro_goods g'   ,'asp.goods_id    = g.id','LEFT')
+            ->join('shopro_goods_sku_price gsp','asp.goods_sku_price_id = gsp.id','LEFT')
+            ->where('asp.status','up')
+            ->where('a.deletetime',NULL)->where('a.type','kan')
+            ->where('g.deletetime',NULL)->whereIn('g.status', ['up', 'hidden'])
+            ->where('gsp.status','up');
+
+        if(!empty($category_id)){
+            $list->where('find_in_set(:category_ids,g.category_ids)', ['category_ids' => $category_id]);
+        }
+
+        $list = $list->order('a.end_time asc')->autopage()->select();
+        $list = list_domain_image($list,['image','sku_image']);
+        foreach($list as $key => $val){
+            //sku图片代替主图
+            if(!empty($val['sku_image'])){
+                $val['image'] = $val['sku_image'];
+            }
+            unset($val['sku_image']);
+
+            $val['team_num'] = json_decode($val['rules'],true)['team_num'];//砍价人数上限
+            unset($val['rules']);
+
+            $list[$key] = $val;
+        }
+
+        $this->success('获取成功',$list);
+    }
+
+    //发起砍价
+    public function kan_newone(){
+        $user = auth_user();
+        $nowtime = time();
+
+        $goods_id           = $this->request->param('goods_id');
+        $goods_sku_price_id = $this->request->param('goods_sku_price_id');
+        $activity_id        = $this->request->param('activity_id');
+
+        //活动
+        $activity = Db::name('shopro_activity')->where('id',$activity_id)->find();
+        if($activity['end_time'] < time()){
+            $this->error('该砍价活动已结束');
+        }
+        $rules = json_decode($activity['rules'],true);
+
+
+        //活动商品
+        $map_sku = [
+            'activity_id'        => $activity_id,
+            'goods_id'           => $goods_id,
+            'goods_sku_price_id' => $goods_sku_price_id,
+            'status'             => 'up',
+        ];
+        $activity_sku_price = Db::name('shopro_activity_sku_price')->where($map_sku)->find();
+        if(empty($activity_sku_price)){
+            $this->error('不存在的活动商品');
+        }
+        if($activity_sku_price['sales'] >= $activity_sku_price['stock']){
+            $this->error('该活动商品已售罄');
+        }
+
+
+        //写入
+        $data = [
+            'user_id' => $user['id'],
+            'goods_id' => $goods_id,
+            'goods_sku_price_id' => $goods_sku_price_id,
+            'activity_id' => $activity_id,
+            'num' => $rules['team_num'],
+            'current_num' => 0,
+            'status' => 'ing',
+            'expire_time' => $nowtime + $rules['valid_time']*3600,
+            'finish_time' => 0,
+            'createtime' => $nowtime,
+            'updatetime' => $nowtime,
+            'total_kan_price' => 0,
+            'activity_sku_price' => $activity_sku_price['price'],
+        ];
+
+        $kan_id = Db::name('shopro_activity_kan')->insertGetId($data);
+
+        $this->success('操作成功',$kan_id);
+    }
+
+    //帮好友砍价
+    public function kan_kan(){
+
+    }
+
+    //某个已发起的砍价详情
+    public function kan_info(){
+        $kan_id          = $this->request->param('kan_id');
+
+        $kan = Db::name('shopro_activity_kan')->alias('kan')
+            ->field(['kan.*',
+                'g.title','g.image',
+                'gsp.goods_sku_text','gsp.image as sku_image','gsp.price as old_price',
+                '','','','','','','','','','','','','','','','','','','','','','','','','',''])
+            ->join('shopro_goods g','kan.goods_id = g.id','LEFT')
+            ->join('shopro_goods_sku_price gsp','kan.goods_sku_price_id = gsp.id','LEFT')
+            ->where('kan.id',$kan_id)
+            ->find();
+
+        //砍价记录
+        Db::name('shopro_')
+    }
+
+
+}

+ 18 - 0
活动表字段rules.txt

@@ -0,0 +1,18 @@
+
+String parse JS eval
+{
+"is_commission":"0",    是否参与分销
+"is_free_shipping":"0",        是否包邮
+"sales_show_type":"goods",  销量展示
+"team_num":"2",        成团人数
+"is_alone":"1",         单独成团
+"is_fictitious":"1",    虚拟成团
+"fictitious_num":"1",   最多虚拟人数
+"fictitious_time":"1",  虚拟成团时间
+"is_team_card":"1",     参团卡显示
+"is_leader_discount":"0",   团长优惠
+"valid_time":"24",      拼团解散时间
+"limit_num":"5",         限购数量
+"refund_type":"back",     退款方式
+"order_auto_close":"5"   订单支付时间
+}

+ 2 - 0
队列命令.txt

@@ -0,0 +1,2 @@
+/www/server/php/74/bin/php think queue:listen --queue shopro-high
+/www/server/php/74/bin/php think queue:listen --queue shopro