'全部', self::Stop => '停用', self::Normal => '正常' ]; //发放推广奖励 public static function sendPromotionReward(int $user_id, array $product_ids, int $product_num, $bonus, int $promotion_one, int $promotion_two, int $promotion_three){ $pathId = UserPathModel::where('user_id', $user_id)->order('distance', 'asc')->limit(3)->column('parent_id'); $ledgerWalletModel = new LedgerWalletModel(); $productOrder = new ProductOrder(); $ratio = 0; foreach ($pathId as $key=> $pid) { switch ($key) { case 1: $ratio = $promotion_two; break; case 2: $ratio = $promotion_three; break; default: $ratio = $promotion_one; break; } //如果比例大于0 if($ratio > 0){ //查询上级持有量 $num = $productOrder->isBuyHoldProduct($product_ids, $pid); if($num >= $product_num){ //发放奖励 $amount = $bonus* bcdiv($ratio, 100, 3); if( $amount > 0) $ledgerWalletModel->changeWalletAccount($pid, Asset::TOKEN, $amount, LedgerTOKENChangeModel::Promotion, 0); } } } } public function getCreateTimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['create_time']) ? $data['create_time'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } protected function setCreateTimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } public function getUpdateTimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['update_time']) ? $data['update_time'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } protected function setUpdateTimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } public function getStartTimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['start_time']) ? $data['start_time'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } public function getEndTimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['end_time']) ? $data['end_time'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } protected function setStartTimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } protected function setEndTimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } }