startTrans(); $field = 'np.promoter_id,np.promoter_shop_name,np.uid,np.promoter_level,np.parent_promoter,np.regidter_time,np.audit_time,np.lock_time,npl.level_name'; $join = [ [ 'nfx_promoter_level npl', 'np.promoter_level = npl.level_id', 'left' ], ]; // 查询v3分销商表 $list = $this->getPageList('nfx_promoter', [ [ 'is_audit', '=', '1' ] ], $field, $page_index, $page_size, 'np', $join); $data = []; if (!empty($list)) { if ($page_index == 1) { // 首次清空分销商表 $prefix = config('database')['connections']['mysql']['prefix']; model('fenxiao')->execute("TRUNCATE TABLE {$prefix}fenxiao"); } foreach ($list as $item) { // 分销商编号 $time_str = date('YmdHi'); $max_no = Cache::get('fenxiao_no_' . $time_str); if (empty($max_no)) { $max_no = 1; } else { $max_no += 1; } $fenxiao_no = $time_str . sprintf('%04d', $max_no); // 上上级分销商id $grand_parent = 0; if (!empty($item[ 'parent_promoter' ])) { $parent_promoter_info = $this->getInfo('nfx_promoter', [ [ 'promoter_id', '=', $item[ 'parent_promoter' ] ] ], 'parent_promoter'); if (!empty($parent_promoter_info) && !empty($parent_promoter_info[ 'parent_promoter' ])) { $grand_parent = $parent_promoter_info[ 'parent_promoter' ]; } } // 查询分销商账户数据 $account_info = $this->getInfo('nfx_user_account', [ [ 'uid', '=', $item[ 'uid' ] ] ], 'commission,commission_cash,commission_withdraw'); $data[] = [ 'fenxiao_id' => $item['promoter_id'], 'site_id' => 1, 'fenxiao_no' => $fenxiao_no, 'fenxiao_name' => $item['promoter_shop_name'], 'member_id' => $item['uid'], 'level_id' => $item['promoter_level'], 'level_name' => $item['level_name'], 'parent' => $item['parent_promoter'], 'grand_parent' => $grand_parent, 'account' => $account_info['commission_cash'] ?? 0, 'account_withdraw' => $account_info['commission_withdraw'] ?? 0, 'total_commission' => $account_info['commission'] ?? 0, 'create_time' => $item['regidter_time'], 'audit_time' => $item['audit_time'], 'lock_time' => $item['lock_time'] ]; } } // 添加到v4分销商表 model('fenxiao')->addList($data); model('fenxiao')->commit(); return $this->success(); } catch (\Exception $e) { model('fenxiao')->rollback(); return $this->error('', $e->getMessage()); } } /** * 获取需要同步的分销商的数量 */ public function getFenxiaoCount() { return $this->getCount('nfx_promoter', [ [ 'is_audit', '=', '1' ] ], 'promoter_id'); } /** * 同步待审核分销商数据 * @param $page_index * @param $page_size */ public function getFenxiaoApplyList($page_index, $page_size) { try { model('fenxiao_apply')->startTrans(); $field = 'np.promoter_shop_name,np.parent_promoter,np.uid,np.promoter_level,np.regidter_time,npl.level_name,su.user_tel,su.nick_name,su.user_headimg,su.reg_time,su.user_name'; $join = [ [ 'nfx_promoter_level npl', 'np.promoter_level = npl.level_id', 'left' ], [ 'sys_user su', 'su.uid = np.uid', 'left' ] ]; // 查询v3分销商表 $list = $this->getPageList('nfx_promoter', [ [ 'is_audit', '=', '0' ] ], $field, $page_index, $page_size, 'np', $join); $data = []; if (!empty($list)) { if ($page_index == 1) { // 首次清空分销商申请表 $prefix = config('database')['connections']['mysql']['prefix']; model('fenxiao_apply')->execute("TRUNCATE TABLE {$prefix}fenxiao_apply"); } foreach ($list as $item) { $user_info = $this->getInfo('sys_user', [ [ 'uid', '=', $item[ 'uid' ] ] ]); if ($user_info) { $data[] = [ 'site_id' => 1, 'fenxiao_name' => $item['promoter_shop_name'], 'parent' => $item['parent_promoter'], 'member_id' => $item['uid'], 'mobile' => $item['user_tel'] ?? 0, 'nickname' => $item['nick_name'] ?? $item['user_name'], 'headimg' => $item['user_headimg'], 'level_id' => $item['promoter_level'], 'level_name' => $item['level_name'], 'reg_time' => $item['reg_time'], 'create_time' => $item['regidter_time'] ]; } } } // 添加到v4分销商申请表 model('fenxiao_apply')->addList($data); model('fenxiao_apply')->commit(); return $this->success(); } catch (\Exception $e) { model('fenxiao_apply')->rollback(); return $this->error('', $e->getMessage()); } } /** * 获取需要同步的待审核分销商的数量 */ public function getFenxiaoApplyCount() { return $this->getCount('nfx_promoter', [ [ 'is_audit', '=', '0' ] ], 'promoter_id'); } /** * 同步分销商等级数据 */ public function getFenxiaoLevelList($page_index, $page_size) { try { model('fenxiao_level')->startTrans(); if ($page_index == 1) { $field = 'level_id,level_name,level_0,level_1,level_2,level_money,create_time'; // 查询v3分销商表 $list = $this->getList('nfx_promoter_level', [], $field, 'level_money asc'); $data = []; if (!empty($list)) { // 首次清空分销商申请表 $prefix = config('database')['connections']['mysql']['prefix']; model('fenxiao_level')->execute("TRUNCATE TABLE {$prefix}fenxiao_level"); foreach ($list as $key => $item) { $data[] = [ 'level_id' => $item['level_id'], 'level_num' => ($key + 1), 'site_id' => 1, 'level_name' => $item['level_name'], 'one_rate' => $item['level_0'], 'two_rate' => $item['level_1'], 'three_rate' => $item['level_2'], 'upgrade_type' => 1, 'order_money' => $item['level_money'], 'create_time' => $item['create_time'], 'status' => 1 ]; } // 添加到v4分销商等级表 model('fenxiao_level')->addList($data); } // 添加默认分销商等级 $default_level = [ 'site_id' => 1, 'level_name' => '默认等级', 'level_num' => 0, 'one_rate' => 0, 'two_rate' => 0, 'three_rate' => 0, 'upgrade_type' => 1, 'order_money' => 0, 'create_time' => time(), 'status' => 1, 'is_default' => 1 ]; model('fenxiao_level')->add($default_level); } model('fenxiao_level')->commit(); return $this->success(); } catch (\Exception $e) { model('fenxiao_level')->rollback(); return $this->error('', $e->getMessage()); } } /** * 获取需要同步的分销商等级的数量 */ public function getFenxiaoLevelCount() { return $this->getCount('nfx_promoter_level', [], 'level_id'); } }