Kan.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. namespace addons\shopro\controller\activity;
  3. use addons\shopro\controller\Common;
  4. use addons\shopro\service\goods\GoodsService;
  5. use addons\shopro\facade\Activity as ActivityFacade;
  6. use think\Db;
  7. class Kan extends Common
  8. {
  9. protected $noNeedLogin = ['index', 'detail'];
  10. protected $noNeedRight = ['*'];
  11. //砍价商品列表
  12. public function kan_productsku_list(){
  13. $category_id = $this->request->param('category_id');
  14. $list = Db::name('shopro_activity_sku_price')->alias('asp')
  15. ->field([
  16. 'asp.activity_id','asp.goods_sku_price_id','asp.goods_id','asp.price',
  17. 'a.rules',
  18. 'g.title','g.image',
  19. 'gsp.goods_sku_text','gsp.image as sku_image','gsp.price as old_price']
  20. )
  21. ->join('shopro_activity a','asp.activity_id = a.id','LEFT')
  22. ->join('shopro_goods g' ,'asp.goods_id = g.id','LEFT')
  23. ->join('shopro_goods_sku_price gsp','asp.goods_sku_price_id = gsp.id','LEFT')
  24. ->where('asp.status','up')
  25. ->where('a.deletetime',NULL)->where('a.type','kan')
  26. ->where('g.deletetime',NULL)->whereIn('g.status', ['up', 'hidden'])
  27. ->where('gsp.status','up');
  28. if(!empty($category_id)){
  29. $list->where('find_in_set(:category_ids,g.category_ids)', ['category_ids' => $category_id]);
  30. }
  31. $list = $list->order('a.end_time asc')->autopage()->select();
  32. $list = list_domain_image($list,['image','sku_image']);
  33. foreach($list as $key => $val){
  34. //sku图片代替主图
  35. if(!empty($val['sku_image'])){
  36. $val['image'] = $val['sku_image'];
  37. }
  38. unset($val['sku_image']);
  39. $val['team_num'] = json_decode($val['rules'],true)['team_num'];//砍价人数上限
  40. unset($val['rules']);
  41. $list[$key] = $val;
  42. }
  43. $this->success('获取成功',$list);
  44. }
  45. //发起砍价
  46. public function kan_newone(){
  47. $user = auth_user();
  48. $nowtime = time();
  49. $goods_id = $this->request->param('goods_id');
  50. $goods_sku_price_id = $this->request->param('goods_sku_price_id');
  51. $activity_id = $this->request->param('activity_id');
  52. //活动
  53. $activity = Db::name('shopro_activity')->where('id',$activity_id)->find();
  54. if($activity['end_time'] < time()){
  55. $this->error('该砍价活动已结束');
  56. }
  57. $rules = json_decode($activity['rules'],true);
  58. //活动商品
  59. $map_sku = [
  60. 'activity_id' => $activity_id,
  61. 'goods_id' => $goods_id,
  62. 'goods_sku_price_id' => $goods_sku_price_id,
  63. 'status' => 'up',
  64. ];
  65. $activity_sku_price = Db::name('shopro_activity_sku_price')->where($map_sku)->find();
  66. if(empty($activity_sku_price)){
  67. $this->error('不存在的活动商品');
  68. }
  69. if($activity_sku_price['sales'] >= $activity_sku_price['stock']){
  70. $this->error('该活动商品已售罄');
  71. }
  72. //写入
  73. $data = [
  74. 'user_id' => $user['id'],
  75. 'goods_id' => $goods_id,
  76. 'goods_sku_price_id' => $goods_sku_price_id,
  77. 'activity_id' => $activity_id,
  78. 'num' => $rules['team_num'],
  79. 'current_num' => 0,
  80. 'status' => 'ing',
  81. 'expire_time' => $nowtime + $rules['valid_time']*3600,
  82. 'finish_time' => 0,
  83. 'createtime' => $nowtime,
  84. 'updatetime' => $nowtime,
  85. 'total_kan_price' => 0,
  86. 'activity_sku_price' => $activity_sku_price['price'],
  87. ];
  88. $kan_id = Db::name('shopro_activity_kan')->insertGetId($data);
  89. $this->success('操作成功',$kan_id);
  90. }
  91. //帮好友砍价
  92. public function kan_kan(){
  93. }
  94. //某个已发起的砍价详情
  95. public function kan_info(){
  96. $kan_id = $this->request->param('kan_id');
  97. $kan = Db::name('shopro_activity_kan')->alias('kan')
  98. ->field(['kan.*',
  99. 'g.title','g.image',
  100. 'gsp.goods_sku_text','gsp.image as sku_image','gsp.price as old_price',
  101. '','','','','','','','','','','','','','','','','','','','','','','','','',''])
  102. ->join('shopro_goods g','kan.goods_id = g.id','LEFT')
  103. ->join('shopro_goods_sku_price gsp','kan.goods_sku_price_id = gsp.id','LEFT')
  104. ->where('kan.id',$kan_id)
  105. ->find();
  106. //砍价记录
  107. Db::name('shopro_')
  108. }
  109. }