| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace addons\CloudStockTwo\common\logic\reward;
- use addons\CloudStockTwo\common\enums\CloudStockTwoEnum;
- use addons\CloudStockTwo\common\models\CloudStockTwoAgent;
- use addons\CloudStockTwo\common\models\CloudStockTwoLevel;
- use common\enums\StatusEnum;
- use common\enums\UserWalletEnum;
- class EqualReward extends Reward
- {
- public $equal_level;//发放奖励代理商平级层级
- /**
- * 记录奖励
- */
- protected function addRewardLog()
- {
- $this->getRewardUnitPrice();
- //奖励金额,不记录
- if ($this->reward_unit_price == 0) return false;
- //扣库存数量为0;没有奖励
- if ($this->goods_num == 0) return false;
- if($this->is_job) return true;
- $insert_wallet = $this->getInsertWallet(UserWalletEnum::EQUAL);
- //投递到资产队列
- if ($insert_wallet) CloudStockTwoAgent::sendUserWalletQueue($insert_wallet);
- }
- /**
- * 获取对应等级商品奖励金额单价
- */
- public function getRewardUnitPrice()
- {
- switch ($this->equal_level){
- case 1:
- $config_key = CloudStockTwoEnum::CONFIG_KEY_EQUAL_LEVEL_ONE;
- break;
- case 2:
- $config_key = CloudStockTwoEnum::CONFIG_KEY_EQUAL_LEVEL_TWO;
- break;
- default:
- $this->reward_unit_price = 0;
- }
- $equal_level_list = json_decode($this->stock_goods['equal_level_list'], true);
- //校验该等级存不存
- $level = CloudStockTwoLevel::findOne(['mall_id' => $this->mall_id, 'level' =>$this->bonus_agent['level'], 'status' => StatusEnum::ENABLED]);
- if(!empty($level)){
- foreach ($equal_level_list as $value) {
- if ($value['level'] == $this->bonus_agent['level']&&$value['config_key']==$config_key) {
- $this->reward_unit_price = $value['config_value'];
- return ;
- }
- }
- }
- $this->reward_unit_price = 0;
- }
- }
|