LuckyCalc.php 1.4 KB

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