LuckyCalc.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace tw\async\activities;
  3. use think\facade\Config;
  4. class LuckyCalc extends ActivityCalc{
  5. protected static $NAME = 'lucky';
  6. protected function getId() {
  7. return Config::get('activity.lucky_cate_id');
  8. }
  9. protected function getName() {
  10. return self::$NAME;
  11. }
  12. protected function getNameCN() {
  13. return '幸运2021';
  14. }
  15. protected function repRate() {
  16. return 0.3;
  17. }
  18. protected function getMinimalProductNum()
  19. {
  20. return 1;
  21. }
  22. protected function getResult($leftwin=true) {
  23. return $leftwin ? 20 : 21;
  24. }
  25. /**
  26. * 20 分类到左边
  27. * 这里严格要求商品必须设置 20 21 属性
  28. */
  29. protected function leaningJudge($index, $product, $attr) {
  30. $suk = isset($attr['suk']) ? $attr['suk'] : 'any';
  31. $flag = $this->searchActiveInSuk($suk);
  32. return $flag == 20;
  33. }
  34. /**
  35. * 从商品的 sku 信息中找到用户选择的 20/21
  36. * @param $suk
  37. * @return bool|string
  38. */
  39. private function searchActiveInSuk($suk) {
  40. $parts = explode(",", $suk);
  41. if (count($parts) <= 0) {
  42. return false;
  43. }
  44. foreach ($parts as $part) {
  45. $t = trim($part);
  46. if ($t == 20 || $t == 21) {
  47. return $t;
  48. }
  49. }
  50. return false;
  51. }
  52. }