70 lines
2.7 KiB
PHP
70 lines
2.7 KiB
PHP
<?php
|
|
namespace app\common\logic\finance;
|
|
|
|
use app\common\enum\user\AccountLogEnum;
|
|
use app\common\logic\AccountLogLogic;
|
|
use app\common\model\Company;
|
|
use app\common\model\user\User;
|
|
use think\facade\Db;
|
|
use think\facade\Log;
|
|
|
|
class ShareProfit
|
|
{
|
|
public function first($data)
|
|
{
|
|
$company=Company::where('id',$data['company_id'])->field('id,deposit,company_money,user_id')->find();// 可能要判断预存金是否满足
|
|
|
|
$master_maoney=bcdiv($data['money'],2,2);
|
|
$master_maoney_user=bcdiv($master_maoney,2,2);
|
|
$company_money=$master_maoney_user;
|
|
|
|
$userAll=User::where('company_id',$data['company_id'])->where('admin_id',0)->field('id,user_money')->select();
|
|
$yser_all_count=count($userAll);
|
|
|
|
$merber_money=bcdiv(bcsub($data['money'],$master_maoney,2),$yser_all_count,2);
|
|
$member_maoney_user=bcdiv($merber_money,2,2);
|
|
|
|
//负责人
|
|
Db::startTrans();
|
|
try {
|
|
$arr=[$company['user_id'], AccountLogEnum::UM_INC_TASK, AccountLogEnum::INC,$master_maoney_user,$data['sn'],$data['msg'].'获得收益'.$master_maoney_user.'元',['company_id'=>$data['company_id']]];
|
|
$this->master($arr);
|
|
|
|
|
|
$arr=[$company['user_id'], AccountLogEnum::UM_INC_TASKUSER, AccountLogEnum::INC,$master_maoney_user,$data['sn'],$data['msg'].'获得账户余额'.$master_maoney_user.'元',['company_id'=>$data['company_id']]];
|
|
$this->master($arr);
|
|
|
|
//成员
|
|
foreach ($userAll as $key => $value) {
|
|
$company_money+=$member_maoney_user;
|
|
$arr=[$value['id'], AccountLogEnum::UM_INC_TASK, AccountLogEnum::INC,$member_maoney_user,$data['sn'],$data['msg'].'获得收益'.$member_maoney_user.'元',['company_id'=>$data['company_id']]];
|
|
$this->member($arr);
|
|
$arr=[$value['id'], AccountLogEnum::UM_INC_TASKUSER, AccountLogEnum::INC,$member_maoney_user,$data['sn'],$data['msg'].'获得账户余额'.$member_maoney_user.'元',['company_id'=>$data['company_id']]];
|
|
$this->member($arr);
|
|
}
|
|
//公司
|
|
Company::where('id',$data['company_id'])->update(['company_money'=>$company_money,'deposit'=>$company_money]);
|
|
|
|
Db::commit();
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
Db::rollback();
|
|
Log::error('任务结算失败:'.$e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**负责人的分润
|
|
* @param $data
|
|
*/
|
|
private function master($data){
|
|
return AccountLogLogic::add($data[0],$data[1],$data[2],$data[3],$data[4],$data[5],$data[6]);
|
|
}
|
|
|
|
/**成员分润
|
|
* @param $data
|
|
*/
|
|
private function member($data){
|
|
return AccountLogLogic::add($data[0],$data[1],$data[2],$data[3],$data[4],$data[5],$data[6]);
|
|
}
|
|
} |