763 lines
34 KiB
PHP
763 lines
34 KiB
PHP
<?php
|
|
|
|
|
|
namespace Yunshop\TeamDividend;
|
|
|
|
use Config;
|
|
use Yunshop\TeamDividend\Common\models\StoreManagerModel;
|
|
use Yunshop\TeamDividend\Listener\BalanceRechargedListener;
|
|
use Yunshop\TeamDividend\Listener\MemberFirstChildrenLinstener;
|
|
use Yunshop\TeamDividend\Listener\OrderCreatedListener;
|
|
use Yunshop\TeamDividend\Listener\OrderFailureListener;
|
|
use Yunshop\TeamDividend\Listener\OrderPaidListener;
|
|
use Yunshop\TeamDividend\Listener\OrderReceiveListener;
|
|
use Yunshop\TeamDividend\Listener\RegisterByAgentListener;
|
|
use Yunshop\TeamDividend\models\TeamDividendAgencyModel;
|
|
use Yunshop\TeamDividend\services\GoodsDetailService;
|
|
|
|
class PluginApplication extends \app\common\services\PluginApplication
|
|
{
|
|
public function getIncomePageItems()
|
|
{
|
|
return [
|
|
'teamDividend' => [
|
|
'class' => 'Yunshop\TeamDividend\services\IncomePageService',
|
|
'type' => 'marketing'
|
|
]
|
|
];
|
|
}
|
|
|
|
public function incomePageIdentity($memberId)
|
|
{
|
|
$levelModel = TeamDividendAgencyModel::uniacid()->select('uid', 'level')
|
|
->with(['hasOneLevel' => function ($query) {
|
|
$query->select('id', 'level_name');
|
|
}])
|
|
->whereUid($memberId)->first();
|
|
if ($levelModel && $levelModel->hasOneLevel && $levelModel->hasOneLevel->level_name) {
|
|
return [$levelModel->hasOneLevel->level_name];
|
|
}
|
|
return [];
|
|
}
|
|
|
|
public function getTemplateItems()
|
|
{
|
|
return ['team_dividend_become_agent' => [
|
|
'title' => '经销商(成为经销商通知)',
|
|
'subtitle' => '成为经销商通知',
|
|
'value' => 'team_dividend_become_agent',
|
|
'param' => [
|
|
'昵称', '时间', '经销商等级'
|
|
]
|
|
], 'team_dividend_agent_level' => [
|
|
'title' => '经销商(经销商升级通知)',
|
|
'subtitle' => '经销商升级通知',
|
|
'value' => 'team_dividend_agent_level',
|
|
'param' => [
|
|
'昵称', '时间', '旧等级', '新等级', '新等级提成比例', '旧等级提成比例'
|
|
]
|
|
], 'team_dividend_lower_team_agent' => [
|
|
'title' => '经销商(新增直属经销商通知)',
|
|
'subtitle' => '新增直属经销商通知',
|
|
'value' => 'team_dividend_lower_team_agent',
|
|
'param' => [
|
|
'昵称', '时间', '经销商等级', '直属经销商昵称', '直属经销商等级'
|
|
]
|
|
], 'team_dividend_dividend_order' => [
|
|
'title' => '经销商(经销订单通知)',
|
|
'subtitle' => '经销订单通知',
|
|
'value' => 'team_dividend_dividend_order',
|
|
'param' => [
|
|
'昵称', '时间', '下单人昵称', '订单金额', '经销结算金额', '经销比例', '直属经销商提成比例', '提成金额', '订单号', '提成ID'
|
|
]
|
|
], 'team_dividend_dividend' => [
|
|
'title' => '经销商(经销结算通知)',
|
|
'subtitle' => '经销结算通知',
|
|
'value' => 'team_dividend_dividend',
|
|
'param' => [
|
|
'昵称', '时间', '订单金额', '经销结算金额', '经销比例', '直属经销商提成比例', '提成金额', '下单人昵称', '订单号', '提成ID'
|
|
]
|
|
], 'team_dividend_activation_grant' => [
|
|
'title' => '经销商(激活码发放通知)',
|
|
'subtitle' => '激活码发放通知',
|
|
'value' => 'team_dividend_activation_grant',
|
|
'param' => [
|
|
'昵称', '时间', '激活码', '数量', '等级'
|
|
]
|
|
], 'team_dividend_activation_use' => [
|
|
'title' => '经销商(激活码使用通知)',
|
|
'subtitle' => '激活码使用通知',
|
|
'value' => 'team_dividend_activation_use',
|
|
'param' => [
|
|
'昵称', '时间', '激活码', '等级'
|
|
]
|
|
], 'team_dividend_flat_prize' => [
|
|
'title' => '经销商(获得平级奖通知)',
|
|
'subtitle' => '获得平级奖通知',
|
|
'value' => 'team_dividend_flat_prize',
|
|
'param' => [
|
|
'昵称', '时间', '订单金额', '提成结算金额', '奖励比例', '平级奖金额', '提成ID'
|
|
]
|
|
], 'team_dividend_award_gratitude' => [
|
|
'title' => '经销商(获得感恩奖通知)',
|
|
'subtitle' => '获得感恩奖通知',
|
|
'value' => 'team_dividend_award_gratitude',
|
|
'param' => [
|
|
'昵称', '时间', '订单金额', '直属经销商提成比例', '奖励比例', '感恩奖金额', '直属经销商等级', '提成ID'
|
|
]
|
|
], 'team_dividend_red_pack_message' => [
|
|
'title' => '经销商(红包奖励通知)',
|
|
'subtitle' => '红包奖励通知',
|
|
'value' => 'team_dividend_red_pack_message',
|
|
'param' => [
|
|
'昵称', '时间'
|
|
]
|
|
], 'team_dividend_balance_recharged' => [
|
|
'title' => '经销商(团队充值通知)',
|
|
'subtitle' => '团队充值通知',
|
|
'value' => 'team_dividend_balance_recharged',
|
|
'param' => [
|
|
'充值者昵称', '充值金额', '经销商等级', '充值时间'
|
|
]
|
|
]];
|
|
}
|
|
|
|
public function getWidgetItems()
|
|
{
|
|
return [
|
|
'withdraw.tab_team_dividend' => [
|
|
'title' => trans('Yunshop\TeamDividend::index.withdraw'),
|
|
'class' => 'Yunshop\TeamDividend\widgets\TeamDividendWithdrawWidget'
|
|
],
|
|
'vue-goods.team_dividend' => [
|
|
'title' => trans('Yunshop\TeamDividend::index.title'),
|
|
'class' => \Yunshop\TeamDividend\widgets\DividendVueWidget::class
|
|
],
|
|
'lang.team_dividend' => [
|
|
'title' => '语言设置',
|
|
'class' => \Yunshop\TeamDividend\widgets\TeamDividendLangWidget::class,
|
|
]
|
|
];
|
|
}
|
|
|
|
public function getFrontendWidgetConfig(): array
|
|
{
|
|
return [
|
|
'goods_detail.team-dividend' => GoodsDetailService::class,
|
|
];
|
|
}
|
|
|
|
protected function setConfig()
|
|
{
|
|
\app\common\modules\shop\ShopConfig::current()->set('manual_arr.team_dividend_and_level', [
|
|
'uidColumn' => 'uid',
|
|
'levelNameColumn' => 'level_name',
|
|
'relationsColumn' => 'level',
|
|
'enableLevel' => true,
|
|
'type_name' => '经销商',
|
|
'role_type' => 'team_dividend_and_level'
|
|
]);
|
|
|
|
\app\common\modules\shop\ShopConfig::current()->set('manual_arr_cfg.team_dividend_and_level', [
|
|
'roleTableClass' => \Yunshop\TeamDividend\models\TeamDividendAgencyModel::class,
|
|
'levelTableClass' => \Yunshop\TeamDividend\models\TeamDividendLevelModel::class
|
|
]);
|
|
|
|
\app\common\modules\shop\ShopConfig::current()->set('plugin.teamDividend', [
|
|
'title' => trans('Yunshop\TeamDividend::index.title'),
|
|
'ico' => 'icon-team-bonus',
|
|
'type' => 'team_dividend',
|
|
'class' => 'Yunshop\TeamDividend\models\TeamDividendModel',
|
|
'order_class' => '',
|
|
'agent_class' => 'Yunshop\TeamDividend\models\TeamDividendAgencyModel',
|
|
'agent_name' => 'getAgentByUidId',
|
|
'agent_status' => '',
|
|
]);
|
|
\app\common\modules\shop\ShopConfig::current()->set('observer.goods.team_dividend', [
|
|
'class' => 'Yunshop\TeamDividend\models\GoodsTeamDividend',
|
|
'function_validator' => 'relationValidator',
|
|
'function_save' => 'relationSave'
|
|
]);
|
|
|
|
// 手动分红配置
|
|
Config::set('manual_arr.team_dividend_and_level', [
|
|
'uidColumn' => 'uid',
|
|
'levelNameColumn' => 'level_name',
|
|
'relationsColumn' => 'level',
|
|
'enableLevel' => true,
|
|
'type_name' => '经销商',
|
|
'role_type' => 'team_dividend_and_level'
|
|
]);
|
|
|
|
Config::set('manual_arr_cfg.team_dividend_and_level', [
|
|
'roleTableClass' => \Yunshop\TeamDividend\models\TeamDividendAgencyModel::class,
|
|
'levelTableClass' => \Yunshop\TeamDividend\models\TeamDividendLevelModel::class
|
|
]);
|
|
|
|
}
|
|
|
|
protected function setMenuConfig()
|
|
{
|
|
\app\backend\modules\menu\Menu::current()->setPluginMenu('team_dividend', [
|
|
'name' => '经销商管理',
|
|
'type' => 'marketing',
|
|
'url' => 'plugin.team-dividend.admin.team-agency.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'top_show' => 0,
|
|
'left_first_show' => 0,
|
|
'left_second_show' => 1,
|
|
'icon' => 'fa-american-sign-language-interpreting',
|
|
'list_icon' => 'team_dividend',
|
|
'item' => 'team_dividend',
|
|
'parents' => [],
|
|
'child' => [
|
|
'team_dividend_team_agency' => [
|
|
'name' => '经销商管理',
|
|
'url' => 'plugin.team-dividend.admin.team-agency.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'team_dividend',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
|
|
'team_dividend_team_agency_index' => [
|
|
'name' => '浏览列表',
|
|
'url' => 'plugin.team-dividend.admin.team-agency.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_team_agency_index',
|
|
'parents' => ['team_dividend', 'team_dividend_team_agency'],
|
|
],
|
|
|
|
'team_dividend_team_agency_add' => [
|
|
'name' => '添加经销商',
|
|
'url' => 'plugin.team-dividend.admin.team-agency.add',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_team_agency_add',
|
|
'parents' => ['team_dividend', 'team_dividend_team_agency'],
|
|
],
|
|
|
|
'team_dividend_team_agency_black' => [
|
|
'name' => '设置/取消黑名单',
|
|
'url' => 'plugin.team-dividend.admin.team-agency.setBlack',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_team_agency_black',
|
|
'parents' => ['team_dividend', 'team_dividend_team_agency'],
|
|
],
|
|
|
|
'team_dividend_team_agency_edit_level' => [
|
|
'name' => '修改等级',
|
|
'url' => 'plugin.team-dividend.admin.team-agency.change',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_team_agency_edit_level',
|
|
'parents' => ['team_dividend', 'team_dividend_team_agency'],
|
|
],
|
|
|
|
'team_dividend_team_agency_del' => [
|
|
'name' => '删除经销商',
|
|
'url' => 'plugin.team-dividend.admin.team-agency.daletedAgency',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_team_agency_del',
|
|
'parents' => ['team_dividend', 'team_dividend_team_agency'],
|
|
],
|
|
|
|
'team_dividend_team_agency_export' => [
|
|
'name' => '导出 EXCEL',
|
|
'url' => 'plugin.team-dividend.admin.team-agency.export',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_team_agency_export',
|
|
'parents' => ['team_dividend', 'team_dividend_team_agency'],
|
|
]
|
|
]
|
|
],
|
|
'plugin_team_dividend_level' => [
|
|
'name' => '经销商等级',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend-level-set.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_level',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
|
|
'plugin_team_dividend_level_add' => [
|
|
'name' => '添加等级',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend-level-set.add',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_level_add',
|
|
'parents' => ['team_dividend', 'plugin_team_dividend_level'],
|
|
],
|
|
|
|
'plugin_team_dividend_level_edit' => [
|
|
'name' => '修改等级',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend-level-set.edit',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_level_edit',
|
|
'parents' => ['team_dividend', 'plugin_team_dividend_level'],
|
|
],
|
|
|
|
'plugin_team_dividend_level_delete' => [
|
|
'name' => '删除等级',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend-level-set.deleted',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_level_deleted',
|
|
'parents' => ['team_dividend', 'plugin_team_dividend_level'],
|
|
],
|
|
|
|
'plugin_team_dividend_level_order_by' => [
|
|
'name' => '权重排序',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend-level-set.displayorder',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_level_order_by',
|
|
'parents' => ['team_dividend', 'plugin_team_dividend_level'],
|
|
],
|
|
|
|
|
|
'plugin_team_dividend_goods_search_many' => [
|
|
'name' => '购买指定商品之一查询',
|
|
'url' => 'goods.goods.get-search-goods-by-dividend',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_goods_search_many',
|
|
'parents' => ['team_dividend', 'plugin_team_dividend_level'],
|
|
],
|
|
]
|
|
],
|
|
'plugin_team_dividend_code_record' => [
|
|
'name' => '激活码记录',
|
|
'url' => 'plugin.team-dividend.admin.code-record.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_code_record',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
|
|
'plugin_team_dividend_code_record_index' => [
|
|
'name' => '浏览记录',
|
|
'url' => 'plugin.team-dividend.admin.code-record.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_code_record_index',
|
|
'parents' => ['team_dividend', 'plugin_team_dividend_code_record'],
|
|
],
|
|
|
|
'plugin_team_dividend_code_record_details' => [
|
|
'name' => '浏览详情',
|
|
'url' => 'plugin.team-dividend.admin.code-record.details',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_code_record_index',
|
|
'parents' => ['team_dividend', 'plugin_team_dividend_code_record'],
|
|
],
|
|
|
|
'plugin_team_dividend_code_record_export' => [
|
|
'name' => '浏览记录',
|
|
'url' => 'plugin.team-dividend.admin.code-record.export',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_code_record_export',
|
|
'parents' => ['team_dividend', 'plugin_team_dividend_code_record'],
|
|
],
|
|
]
|
|
],
|
|
'team_dividend_admin_dividend' => [
|
|
'name' => '提成明细',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend.get-list',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_admin_dividend',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
|
|
'team_dividend_admin_dividend_index' => [
|
|
'name' => '浏览列表',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend.get-list',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_admin_dividend_index',
|
|
'parents' => ['team_dividend', 'team_dividend_admin_dividend'],
|
|
],
|
|
|
|
'plugin_team_dividend_level_export' => [
|
|
'name' => '导出 EXCEL',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend.export',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_level_export',
|
|
'parents' => ['team_dividend', 'team_dividend_admin_dividend'],
|
|
],
|
|
'plugin_team_dividend_level_details' => [
|
|
'name' => '分红详情',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend.details',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'plugin_team_dividend_level_details',
|
|
'parents' => ['team_dividend', 'team_dividend_admin_dividend'],
|
|
],
|
|
]
|
|
],
|
|
'team_dividend_admin_redpack' => [
|
|
'name' => '红包奖励记录',
|
|
'url' => 'plugin.team-dividend.admin.RedpackLog.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_admin_redpack',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
'team_dividend_admin_redpack_info' => [
|
|
'name' => '详情',
|
|
'url' => 'plugin.team-dividend.admin.RedPack.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_admin_redpack_info',
|
|
'parents' => ['team_dividend', 'team_dividend_admin_redpack'],
|
|
]
|
|
]
|
|
],
|
|
// 'plugin.team-dividend.admin.reward' => [
|
|
// 'name' => '直推奖记录',
|
|
// 'permit' => 1,
|
|
// 'menu' => 1,
|
|
// 'icon' => '',
|
|
// 'url' => 'plugin.team-dividend.admin.team-reward.index',
|
|
// 'url_params' => '',
|
|
// 'parents'=>['team-dividend'],
|
|
// 'child' => []
|
|
// ],
|
|
'team_dividend_set' => [
|
|
'name' => '基础设置',
|
|
'url' => 'plugin.team-dividend.admin.team-dividend-set.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_set',
|
|
'parents' => ['team_dividend'],
|
|
],
|
|
'team_dividend_uplog' => [
|
|
'name' => '升级日志',
|
|
'url' => 'plugin.team-dividend.admin.uplog.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_uplog',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
'team_dividend_uplog_before_level_set' => [
|
|
'name' => '升级前基础设置',
|
|
'url' => 'plugin.team-dividend.admin.uplog.beforeDetail',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_uplog_before_level_set',
|
|
'parents' => ['team_dividend', 'team_dividend_uplog'],
|
|
],
|
|
'team_dividend_uplog_after_level_set' => [
|
|
'name' => '升级后基础设置',
|
|
'url' => 'plugin.team-dividend.admin.uplog.afterDetail',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_uplog_after_level_set',
|
|
'parents' => ['team_dividend', 'team_dividend_uplog'],
|
|
],
|
|
'team_dividend_uplog_condition' => [
|
|
'name' => '达成条件',
|
|
'url' => 'plugin.team-dividend.admin.uplog.complete',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_uplog_condition',
|
|
'parents' => ['team_dividend', 'team_dividend_uplog'],
|
|
],
|
|
],
|
|
],
|
|
'team_dividend_statistics' => [
|
|
'name' => '业绩统计',
|
|
'url' => 'plugin.team-dividend.admin.statistics.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_statistics',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
'team_dividend_statistics_export' => [
|
|
'name' => '导出',
|
|
'url' => 'plugin.team-dividend.admin.statistics.export',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_statistics_export',
|
|
'parents' => ['team_dividend_statistics'],
|
|
]
|
|
],
|
|
],
|
|
'team_dividend_team_statistics' => [
|
|
'name' => '团队业绩统计',
|
|
'url' => 'plugin.team-dividend.admin.team-statistics.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_team_statistics',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
'team_dividend_team_statistics_export' => [
|
|
'name' => '导出',
|
|
'url' => 'plugin.team-dividend.admin.team-statistics.export',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_team_statistics_export',
|
|
'parents' => ['team_dividend_team_statistics'],
|
|
]
|
|
],
|
|
],
|
|
// 店长管理
|
|
'team_dividend_store_manager' => [
|
|
'name' => '店长管理',
|
|
'url' => 'plugin.team-dividend.admin.store-manager.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 1,
|
|
'icon' => '',
|
|
'item' => 'team_dividend',
|
|
'parents' => ['team_dividend'],
|
|
'child' => [
|
|
'team_dividend_store_manager_index' => [
|
|
'name' => '店长列表',
|
|
'url' => 'plugin.team-dividend.admin.store-manager.index',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_store_manager_index',
|
|
'parents' => ['team_dividend', 'team_dividend_store_manager'],
|
|
],
|
|
'team_dividend_store_manager_addInfo' => [
|
|
'name' => '添加店长',
|
|
'url' => 'plugin.team-dividend.admin.store-manager.addInfo',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_store_manager_addInfo',
|
|
'parents' => ['team_dividend', 'team_dividend_store_manager'],
|
|
],
|
|
'team_dividend_store_manager_change_status' => [
|
|
'name' => '删除店长',
|
|
'url' => 'plugin.team-dividend.admin.store-manager.change-status',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_store_manager_change_status',
|
|
'parents' => ['team_dividend', 'team_dividend_store_manager'],
|
|
],
|
|
'team_dividend_store_manager_change_see_info' => [
|
|
'name' => '查看店补',
|
|
'url' => 'plugin.team-dividend.admin.store-manager.see-info',
|
|
'url_params' => '',
|
|
'permit' => 1,
|
|
'menu' => 0,
|
|
'icon' => '',
|
|
'item' => 'team_dividend_store_manager_see_info',
|
|
'parents' => ['team_dividend', 'team_dividend_store_manager'],
|
|
],
|
|
|
|
]
|
|
],
|
|
]
|
|
]);
|
|
}
|
|
|
|
public function getIncomeItems()
|
|
{
|
|
$lang = \Setting::get('shop.lang', ['lang' => 'zh_cn'])['zh_cn']['team_dividend'];
|
|
$title = $lang['title'] ?: trans('Yunshop\TeamDividend::index.name');
|
|
$dividend = $lang['dividend'] ?: trans('Yunshop\TeamDividend::index.dividend');
|
|
return [
|
|
'teamDividend' => [
|
|
'title' => $lang['title'] ?: trans('Yunshop\TeamDividend::index.title'),
|
|
'type' => 'teamDividend',
|
|
'type_name' => $title.$dividend,
|
|
'class' => 'Yunshop\TeamDividend\models\TeamDividendModel',
|
|
],
|
|
'storeManager' => [
|
|
'title' => '店补',
|
|
'type' => 'storeManager',
|
|
'type_name' => '店长店补',
|
|
'class' => 'Yunshop\TeamDividend\Common\models\StoreManagerRecordModel',
|
|
]
|
|
];
|
|
}
|
|
|
|
|
|
public function boot()
|
|
{
|
|
$events = app('events');
|
|
/**
|
|
* 收入提现扣除爱心值
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\WithdrawApplyListener::class);
|
|
/**
|
|
* 创建订单
|
|
* OrderCreatedListener
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\OrderCreatedListener::class);
|
|
/**
|
|
* 订单支付
|
|
* OrderPaidListener
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\OrderPaidListener::class);
|
|
/**
|
|
* 订单完成
|
|
* OrderReceiveListener
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\OrderReceiveListener::class);
|
|
/**
|
|
* 订单失效
|
|
* OrderReceiveListener
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\OrderFailureListener::class);
|
|
|
|
/**
|
|
* 经销商升级
|
|
* OrderReceiveListener
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\RegisterByAgentListener::class);
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\MemberFirstChildrenLinstener::class);
|
|
// $events->subscribe(\Yunshop\TeamDividend\Listener\LoveChangeListener::class);
|
|
|
|
/**
|
|
* 经销商下级充值通知
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\BalanceRechargedListener::class);
|
|
|
|
/**
|
|
* 等级变化监听
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\LevelChangeListener::class);
|
|
/**
|
|
* 等级变化监听
|
|
*/
|
|
$events->subscribe(\Yunshop\TeamDividend\Listener\AreaDividendListener::class);
|
|
|
|
// 店长相关
|
|
\Event::listen('cron.collectJobs', function () {
|
|
// 每天0点30 执行一次店长信息统计
|
|
\Cron::add('Team-dividend-store-manager', '30 0 * * *', function () {
|
|
\Log::debug('--- 经销商 - 店长统计 - 开始 ----');
|
|
(new StoreManagerModel())->infoStatistics();
|
|
return;
|
|
});
|
|
// 每天1点30 执行一次店长信息统计
|
|
\Cron::add('Team-dividend-store-manager-settlement', '30 1 * * *', function () {
|
|
\Log::debug('--- 经销商 - 店长结算 - 开始 ----');
|
|
(new StoreManagerModel())->settlement();
|
|
return;
|
|
});
|
|
});
|
|
|
|
|
|
}
|
|
|
|
public function cronConfig()
|
|
{
|
|
\Event::listen('cron.collectJobs', function () {
|
|
// 经销商佣金结算 由10分钟执行一次修改为1分钟执行一次 2023-9-25
|
|
\Cron::add('Team-dividend', '*/1 * * * *', function () {
|
|
(new \Yunshop\TeamDividend\services\TimedTaskService)->handle();
|
|
return;
|
|
});
|
|
});
|
|
\Event::listen('cron.collectJobs', function () {
|
|
\Cron::add('Team-dividend-send-redpack', '0 3 * * *', function () {
|
|
(new \Yunshop\TeamDividend\services\SendRedPackService())->handle();
|
|
return;
|
|
});
|
|
});
|
|
\Event::listen('cron.collectJobs', function () {
|
|
\Cron::add('Team-dividend-send-redpack-failure', '*/10 * * * *', function () {
|
|
(new \Yunshop\TeamDividend\services\RedpackFailureService())->handle();
|
|
return;
|
|
});
|
|
});
|
|
\Event::listen('cron.collectJobs', function () {
|
|
\Cron::add('TeamAutoWithdraw', '*/10 * * * *', function () {
|
|
(new \Yunshop\TeamDividend\services\AutoWithdrawService())->handle();
|
|
return;
|
|
});
|
|
});
|
|
\Event::listen('cron.collectJobs', function () {
|
|
\Cron::add('Team-dividend-ClearTable', '0 1 1 * *', function () {
|
|
(new \Yunshop\TeamDividend\services\ClearTableService())->handle();
|
|
return;
|
|
});
|
|
});
|
|
|
|
}
|
|
} |