DeductionJob.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace addons\CloudStockTwo\common\logic\deduction;
  3. use addons\CloudStockTwo\common\models\CloudStockTwoAgent;
  4. use addons\CloudStockTwo\common\models\CloudStockTwoBuyingOrder;
  5. use addons\CloudStockTwo\common\models\CloudStockTwoFillOrder;
  6. use addons\CloudStockTwo\common\models\CloudStockTwoGoodsStockLog;
  7. use common\enums\StatusEnum;
  8. use common\models\user\User;
  9. use common\enums\AddonsEnum;
  10. use addons\CloudStockTwo\common\logic\reward\AgentReward;
  11. class DeductionJob
  12. {
  13. public function handleSync($data)
  14. {
  15. \Yii::error('执行限时补货补货');
  16. $user_parent_agent = CloudStockTwoAgent::findOne(['user_id' => $data['agent_user_id'], 'mall_id' => $data['mall_id'], 'status' => StatusEnum::ENABLED]);
  17. switch ($data['order_type']) {
  18. case 'buying':
  19. $order = CloudStockTwoBuyingOrder::findOne(['id'=>$data['order_id']]);
  20. $class = BuyDeductionLogic::class;
  21. break;
  22. case 'fill':
  23. $order = CloudStockTwoFillOrder::findOne(['id'=>$data['order_id']]);
  24. $class = FillDeductionLogic::class;
  25. break;
  26. default:
  27. }
  28. if (!empty($class) && !empty($order)) {
  29. $user = User::findOne(['id' => $data['user_id']]);
  30. $stock_log = CloudStockTwoGoodsStockLog::findOne(['id'=>$data['stock_log_id']]);
  31. $deduction_logic = new $class($user, $user_parent_agent, $stock_log, $order, $data['not_yet_num'],$data['reward_list'],$data['parent_agent_list'],$data['wait_deduct_equal_money'],$data['order_type'],
  32. $data['time_limit_fill_user_ids'], 1);
  33. $deduction_logic->order_type = $data['order_type'];
  34. $deduction_logic->deduct();
  35. }
  36. }
  37. }