| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- namespace addons\CloudStock\common\logic\reward;
- use addons\CloudStock\common\enums\CloudStockEnum;
- use addons\CloudStock\common\models\CloudStockAgent;
- use addons\CloudStock\common\models\CloudStockLevel;
- use addons\CloudStock\common\services\EqualAwardService;
- 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) CloudStockAgent::sendUserWalletQueue($insert_wallet);
- if (!empty($insert_wallet)) {
- (new EqualAwardService(['mall_id' => $this->mall_id]))->setStatistics($insert_wallet, UserWalletEnum::EQUAL);
- }
- }
- /**
- * 获取对应等级商品奖励金额单价
- */
- public function getRewardUnitPrice()
- {
- switch ($this->equal_level){
- case 1:
- $config_key = CloudStockEnum::CONFIG_KEY_EQUAL_LEVEL_ONE;
- break;
- case 2:
- $config_key = CloudStockEnum::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 = CloudStockLevel::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 = !empty($value['config_value']) ? $value['config_value'] : 0;
- return ;
- }
- }
- }
- $this->reward_unit_price = 0;
- }
- }
|