StoreBargain.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. /**
  3. *
  4. * @author: xaboy<365615158@qq.com>
  5. * @day: 2017/12/18
  6. */
  7. namespace app\routine\model\store;
  8. use basic\ModelBasic;
  9. use traits\ModelTrait;
  10. class StoreBargain extends ModelBasic
  11. {
  12. use ModelTrait;
  13. /**
  14. * 正在开启的砍价活动
  15. * @return $this
  16. */
  17. public static function validWhere($status = 1){
  18. return self::where('is_del',0)->where('status',$status)->where('start_time','LT',time())->where('stop_time','GT',time());
  19. }
  20. /**
  21. * 判断砍价产品是否开启
  22. * @param int $bargainId
  23. * @return int|string
  24. */
  25. public static function validBargain($bargainId = 0){
  26. $model = self::validWhere();
  27. return $model->where('id',$bargainId)->count();
  28. }
  29. /**
  30. * 获取正在进行中的砍价产品
  31. * @param string $field
  32. */
  33. public static function getList($field = 'id,product_id,title,price,min_price,image'){
  34. $model = self::validWhere();
  35. $list = $model->field($field)->select();
  36. if($list) return $list->toArray();
  37. else return [];
  38. }
  39. /**
  40. * 获取一条正在进行中的砍价产品
  41. * @param int $bargainId
  42. * @param string $field
  43. * @return array
  44. */
  45. public static function getBargainTerm($bargainId = 0,$field = 'id,product_id,bargain_num,num,unit_name,image,title,price,min_price,image,description,start_time,stop_time,rule'){
  46. if(!$bargainId) return [];
  47. $model = self::validWhere();
  48. $bargain = $model->field($field)->where('id',$bargainId)->find();
  49. if($bargain) return $bargain->toArray();
  50. else return [];
  51. }
  52. /**
  53. * 获取一条砍价产品
  54. * @param int $bargainId
  55. * @param string $field
  56. * @return array
  57. */
  58. public static function getBargain($bargainId = 0,$field = 'id,product_id,title,price,min_price,image'){
  59. if(!$bargainId) return [];
  60. $model = new self();
  61. $bargain = $model->field($field)->where('id',$bargainId)->find();
  62. if($bargain) return $bargain->toArray();
  63. else return [];
  64. }
  65. /**
  66. * 获取最高价和最低价
  67. * @param int $bargainId
  68. * @return array
  69. */
  70. public static function getBargainMaxMinPrice($bargainId = 0){
  71. if(!$bargainId) return [];
  72. return self::where('id',$bargainId)->field('bargain_min_price,bargain_max_price')->find()->toArray();
  73. }
  74. /**
  75. * 获取砍价次数
  76. * @param int $bargainId
  77. * @return mixed
  78. */
  79. public static function getBargainNum($bargainId = 0){
  80. return self::where('id',$bargainId)->value('bargain_num');
  81. }
  82. /**
  83. * 判断当前砍价是否活动进行中
  84. * @param int $bargainId
  85. * @return bool
  86. */
  87. public static function setBargainStatus($bargainId = 0){
  88. $model = self::validWhere();
  89. $count = $model->where('id',$bargainId)->count();
  90. if($count) return true;
  91. else return false;
  92. }
  93. /**
  94. * 获取库存
  95. * @param int $bargainId
  96. * @return mixed
  97. */
  98. public static function getBargainStock($bargainId = 0){
  99. return self::where('id',$bargainId)->value('stock');
  100. }
  101. /**
  102. * 修改销量和库存
  103. * @param $num
  104. * @param $CombinationId
  105. * @return bool
  106. */
  107. public static function decBargainStock($num,$bargainId)
  108. {
  109. $res = false !== self::where('id',$bargainId)->dec('stock',$num)->inc('sales',$num)->update();
  110. return $res;
  111. }
  112. /**
  113. * 获取所有砍价产品的浏览量
  114. * @return array|false|\PDOStatement|string|\think\Model
  115. */
  116. public static function getBargainLook(){
  117. return self::field('sum(look) as look')->find();
  118. }
  119. /**
  120. * 获取所有砍价产品的分享量
  121. * @return array|false|\PDOStatement|string|\think\Model
  122. */
  123. public static function getBargainShare(){
  124. return self::field('sum(share) as share')->find();
  125. }
  126. /**
  127. * 添加砍价产品分享次数
  128. * @param int $id
  129. * @return bool
  130. */
  131. public static function addBargainShare($id = 0){
  132. if(!$id) return false;
  133. return self::where('id',$id)->inc('share',1)->update();
  134. }
  135. /**
  136. * 添加砍价产品浏览次数
  137. * @param int $id
  138. * @return bool
  139. */
  140. public static function addBargainLook($id = 0){
  141. if(!$id) return false;
  142. return self::where('id',$id)->inc('look',1)->update();
  143. }
  144. }