LuckyCalc.php 1.4 KB

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