EqualReward.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace addons\CloudStockTwo\common\logic\reward;
  3. use addons\CloudStockTwo\common\enums\CloudStockTwoEnum;
  4. use addons\CloudStockTwo\common\models\CloudStockTwoAgent;
  5. use addons\CloudStockTwo\common\models\CloudStockTwoLevel;
  6. use common\enums\StatusEnum;
  7. use common\enums\UserWalletEnum;
  8. class EqualReward extends Reward
  9. {
  10. public $equal_level;//发放奖励代理商平级层级
  11. /**
  12. * 记录奖励
  13. */
  14. protected function addRewardLog()
  15. {
  16. $this->getRewardUnitPrice();
  17. //奖励金额,不记录
  18. if ($this->reward_unit_price == 0) return false;
  19. //扣库存数量为0;没有奖励
  20. if ($this->goods_num == 0) return false;
  21. if($this->is_job) return true;
  22. $insert_wallet = $this->getInsertWallet(UserWalletEnum::EQUAL);
  23. //投递到资产队列
  24. if ($insert_wallet) CloudStockTwoAgent::sendUserWalletQueue($insert_wallet);
  25. }
  26. /**
  27. * 获取对应等级商品奖励金额单价
  28. */
  29. public function getRewardUnitPrice()
  30. {
  31. switch ($this->equal_level){
  32. case 1:
  33. $config_key = CloudStockTwoEnum::CONFIG_KEY_EQUAL_LEVEL_ONE;
  34. break;
  35. case 2:
  36. $config_key = CloudStockTwoEnum::CONFIG_KEY_EQUAL_LEVEL_TWO;
  37. break;
  38. default:
  39. $this->reward_unit_price = 0;
  40. }
  41. $equal_level_list = json_decode($this->stock_goods['equal_level_list'], true);
  42. //校验该等级存不存
  43. $level = CloudStockTwoLevel::findOne(['mall_id' => $this->mall_id, 'level' =>$this->bonus_agent['level'], 'status' => StatusEnum::ENABLED]);
  44. if(!empty($level)){
  45. foreach ($equal_level_list as $value) {
  46. if ($value['level'] == $this->bonus_agent['level']&&$value['config_key']==$config_key) {
  47. $this->reward_unit_price = $value['config_value'];
  48. return ;
  49. }
  50. }
  51. }
  52. $this->reward_unit_price = 0;
  53. }
  54. }