123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <?php
- namespace app\admin\service\order;
- use app\admin\service\member\MemberService;
- use app\model\Member;
- use app\model\MemberAccount;
- use app\model\MemberAccountList;
- use app\model\SysConfig;
- use support\Log;
- class CommissionService
- {
-
-
- public static function commission($config, $memberId, $orderId, $amount, $accountListCategory)
- {
- Log::info("开始处理提成", ['member_id' => $memberId, 'amount' => $amount]);
- try {
- $member = Member::where('member_id', $memberId)->first();
- $configParams1 = [];
- $configParams2 = [];
- if (!empty($member->join_invite_member_id)) {
- $member1 = Member::where('member_id', $member->join_invite_member_id)->first();
- if ($member1->member_is_partner == 'Y') {
- $config1 = SysConfig::where('config_key', 'app-identity-partner-config')->first();
- } else if ($member1->member_is_referrer == 'Y') {
- $config1 = SysConfig::where('config_key', 'app-identity-referrer-config')->first();
- } else if ($member1->member_is_franchisee == 'Y'){
- $config1 = SysConfig::where('config_key','app-identity-franchisee-config')->first();
- }
- if (!empty($config1)) {
- $configParams1 = json_decode($config1->config_value_json, true);
- Log::info("一级提成参数", ['config' => $configParams1]);
- }
- if (!empty($member1->join_invite_member_id)) {
- $member2 = Member::where('member_id', $member1->join_invite_member_id)->first();
- if ($member2->member_is_partner == 'Y') {
- $config2 = SysConfig::where('config_key', 'app-identity-partner-config')->first();
- } else if ($member1->member_is_referrer == 'Y') {
- $config2 = SysConfig::where('config_key', 'app-identity-referrer-config')->first();
- } else if ($member1->member_is_franchisee == 'Y') {
- $config2 = SysConfig::where('config_key', 'app-identity-franchisee-config')->first();
- }
- if (!empty($config2)) {
- $configParams2 = json_decode($config2->config_value_json, true);
- Log::info("二级提成参数", ['config' => $configParams2]);
- }
- }
- }
- if (empty($configParams1) && empty($configParams2)) {
- Log::info("提成失败,提成参数异常", ['member_id' => $memberId, 'amount' => $amount]);
- }
-
- $accountListJson = [
- 'line' => 'relate-consum',
- 'amount' => $amount,
- 'order_id' => $orderId,
- 'master_member_id' => $memberId
- ];
-
- if (!empty($member1) && ($member1->member_is_partner == 'Y' || $member1->member_is_referrer == 'Y' || $member1->member_is_franchisee == 'Y') && !empty($configParams1)) {
- $accountListJson['identity'] = MemberService::getIdentity($member1->member_is_partner, $member1->member_is_referrer,$member1->member_is_franchisee);
- $accountListJson['line'] = 'direct';
- $member1CommissionAmount = $configParams1['commission']['direct'] * $amount;
- self::commissionToMember($member1->member_id, $accountListJson, $member1CommissionAmount, $accountListCategory);
- Log::info("直属提成参数", ['member_id' => $member1->member_id, 'account_list_json' => $accountListJson, 'amount' => $member1CommissionAmount, 'category' => $accountListCategory]);
- }
-
- if (!empty($member2) && ($member2->member_is_partner == 'Y' || $member2->member_is_referrer == 'Y' || $member1->member_is_franchisee == 'Y') && !empty($configParams2)) {
- $accountListJson['identity'] = MemberService::getIdentity($member2->member_is_partner, $member2->member_is_referrer,$member2->member_is_franchisee);
- $accountListJson['line'] = 'indirect';
- $member2CommissionAmount = $configParams2['commission']['indirect'] * $amount;
- self::commissionToMember($member2->member_id, $accountListJson, $member2CommissionAmount, $accountListCategory);
- Log::info("间属提成参数", ['member_id' => $member2->member_id, 'account_list_json' => $accountListJson, 'amount' => $member2CommissionAmount, 'category' => $accountListCategory]);
- }
- } catch (\Exception $e) {
- Log::error("提成处理失败", ['msg' => $e->getMessage()]);
- _syslog("提成处理失败", '提成处理失败');
- }
- }
-
- private static function commissionToMember($memberId, $accountListJson, $money, $accountListCategory)
- {
- $account = MemberAccount::where('join_account_member_id', $memberId)->where('member_account_classify', 'CASH')->first();
- $account->member_account_income = $account->member_account_income + $money;
- $account->member_account_surplus = $account->member_account_surplus + $money;
- $account->save();
- MemberAccountList::insert([
- 'join_list_member_account_nbr' => $memberId . '-CASH',
- 'join_member_account_list_member_id' => $memberId,
- 'member_account_list_status' => 'ACTIVED',
- 'member_account_list_attr' => 'IN',
- 'member_account_list_classify' => $accountListJson['identity'],
- 'member_account_list_category' => $accountListCategory,
- 'member_account_list_datetime' => date('Y-m-d H:i:s'),
- 'member_account_list_amount' => $money,
- 'member_account_list_json' => json_encode($accountListJson),
- 'member_account_list_addtimes' => time()
- ]);
- }
- }
|