|
@@ -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_')
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|