59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace app\model; | ||
|  | 
 | ||
|  | use app\exception\RepositoryException; | ||
|  | use app\service\Math; | ||
|  | 
 | ||
|  | /** | ||
|  |  * 用户佣金提现记录 | ||
|  |  * | ||
|  |  * Class AccountWithdrawalCommission | ||
|  |  * @package app\controller\manager | ||
|  |  */ | ||
|  | class AccountWithdrawalCommission extends Base | ||
|  | { | ||
|  | 
 | ||
|  |     static $status_default = 0;//待审核
 | ||
|  |     static $status_success = 1;//审核通过
 | ||
|  |     static $status_fail = 2;//审核失败
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      *  客户 | ||
|  |      */ | ||
|  |     public function account() | ||
|  |     { | ||
|  |         return $this->hasOne(Account::class, 'id', 'account_id'); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 转换佣金和金额 | ||
|  |      * @param $num int 金额或者佣金 单位为分 | ||
|  |      * @param $type string commission/money  需要获得的金额或者佣金 单位分 | ||
|  |      * | ||
|  |      * @throws RepositoryException | ||
|  |      */ | ||
|  |     public static function convertCommissionOrMoney(int $num, string $type) | ||
|  |     { | ||
|  |         \think\facade\Config::load('extra/commission_withdrawal', 'commission_withdrawal'); | ||
|  |         $config = config('commission_withdrawal')['withdrawal_proportion'] ?? []; | ||
|  | 
 | ||
|  |         if (!$config) { | ||
|  |             throw new RepositoryException("提现比例未配置,请先联系平台"); | ||
|  |         } | ||
|  | 
 | ||
|  |         if ($config["commission"] <= 0 || $config["money"] <= 0) { | ||
|  |             throw new RepositoryException("提现失败,系统错误"); | ||
|  |         } | ||
|  | 
 | ||
|  |         //如果想得到佣金 或者 金额 单位分
 | ||
|  |         if ($type == AccountDataLog::TYPE_COMMISSION) { | ||
|  |             $total = Math::fen2Yuan($num) * ($config["commission"]) / ($config["money"]); | ||
|  |         } else { | ||
|  |             $total = $num * ($config["money"]) / ($config["commission"]); | ||
|  |         } | ||
|  | 
 | ||
|  |         return ceil($total); | ||
|  |     } | ||
|  | } |