|
|
@@ -23,33 +23,25 @@ use fast\Http;
|
|
|
* 团队奖励发放逻辑
|
|
|
* 定时任务,定时发放,每天一次,一般在凌晨12一过开始
|
|
|
*/
|
|
|
-class TeamRewards
|
|
|
+class BonusRewards
|
|
|
{
|
|
|
/**
|
|
|
* 奖励名称及类型ID
|
|
|
* @var array
|
|
|
*/
|
|
|
private array $rewards_type = [
|
|
|
- 'power' => [
|
|
|
+ 'community' => [
|
|
|
'type_id' => 1,
|
|
|
- 'type_name' => "团队算力奖励"
|
|
|
+ 'type_name' => "社区建设津贴"
|
|
|
],
|
|
|
- 'usdt' => [
|
|
|
+ 'service' => [
|
|
|
'type_id' => 2,
|
|
|
- 'type_name' => "加权分红"
|
|
|
+ 'type_name' => "服务津贴"
|
|
|
],
|
|
|
- 'market' => [
|
|
|
+ 'together' => [
|
|
|
'type_id' => 3,
|
|
|
- 'type_name' => "团队在、系统领导人加权分红"
|
|
|
- ],
|
|
|
- 'team' => [
|
|
|
- 'type_id' => 4,
|
|
|
- 'type_name' => "社区长业绩分红"
|
|
|
- ],
|
|
|
- 'allocate' => [
|
|
|
- 'type_id' => 5,
|
|
|
- 'type_name' => "算力拨币"
|
|
|
- ],
|
|
|
+ 'type_name' => "共创津贴"
|
|
|
+ ]
|
|
|
];
|
|
|
|
|
|
/**
|
|
|
@@ -61,17 +53,15 @@ class TeamRewards
|
|
|
*/
|
|
|
public function powerRewards()
|
|
|
{
|
|
|
- $date = $this->getExeDate($this->rewards_type['power']['type_id']);
|
|
|
-
|
|
|
- if(empty($date)){
|
|
|
- return "本次没有可用时间";
|
|
|
- }
|
|
|
+ $date = $this->getExeDate($this->rewards_type['community']['type_id']);
|
|
|
+ if(empty($date)) return "本次没有可用时间";
|
|
|
+
|
|
|
|
|
|
//创建定时任务执行日志
|
|
|
$TimedTaskLog = new TimedTaskLogModel();
|
|
|
$log_id = $TimedTaskLog->insertGetId([
|
|
|
- 'type_id' => $this->rewards_type['power']['type_id'],
|
|
|
- 'type_name' => $this->rewards_type['power']['type_name'],
|
|
|
+ 'type_id' => $this->rewards_type['community']['type_id'],
|
|
|
+ 'type_name' => $this->rewards_type['community']['type_name'],
|
|
|
'date_time' => $date,
|
|
|
'create_time' => date('Y-m-d H:i:s'),
|
|
|
|
|
|
@@ -142,61 +132,7 @@ class TeamRewards
|
|
|
return $log_id;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取可用日期
|
|
|
- * @var array
|
|
|
- */
|
|
|
- protected function getExeDate($type_id = 1)
|
|
|
- {
|
|
|
- $today = date('Y-m-d',strtotime("-1day"));//当前时间减一天为最后一次可用时间
|
|
|
-
|
|
|
- $dateInfo = DB::table('timed_task_log')
|
|
|
- ->where('type_id' ,$type_id)
|
|
|
- ->where('status', 1)
|
|
|
- ->order('date_time', 'desc')
|
|
|
- ->find();
|
|
|
- if(empty($dateInfo)){//首次
|
|
|
- return $today;
|
|
|
- }
|
|
|
|
|
|
- $new_date = date('Y-m-d',strtotime("+1day",strtotime($dateInfo['date_time'])));//最后一次发放日期+1天为本次执行时间
|
|
|
-
|
|
|
- if($new_date > $today){//超过今天
|
|
|
- return "";
|
|
|
- }
|
|
|
- return $new_date;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 插入或更新收益统计信息
|
|
|
- * @var array
|
|
|
- */
|
|
|
- protected function createData($uids, $amount, $date)
|
|
|
- {
|
|
|
- foreach ($uids as $user_id) {
|
|
|
- $check = DB::table('team_rewards')
|
|
|
- ->field('id')
|
|
|
- ->where('user_id', $user_id)
|
|
|
- ->where('date_time', $date)
|
|
|
- ->find();
|
|
|
- if ($check) {//存在,则更新
|
|
|
- DB::table('team_rewards')
|
|
|
- ->where('id', $check['id'])
|
|
|
- ->update([
|
|
|
- 'today_power' => Db::raw('today_power+' . $amount),
|
|
|
- 'update_time' => date('Y-m-d H:i:s')
|
|
|
- ]);
|
|
|
- } else {//新增
|
|
|
- DB::table('team_rewards')
|
|
|
- ->insert([
|
|
|
- 'user_id' => $user_id,
|
|
|
- 'date_time' => $date,
|
|
|
- 'today_power' => Db::raw('today_power+' . $amount),
|
|
|
- 'create_time' => date('Y-m-d H:i:s')
|
|
|
- ]);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* 计算理论收益
|
|
|
@@ -236,19 +172,6 @@ class TeamRewards
|
|
|
'update_time' => date('Y-m-d H:i:s')
|
|
|
]);
|
|
|
|
|
|
-// //更新所有上级的 team_commission
|
|
|
-// $path = (new UserPathModel())
|
|
|
-// ->where('user_id', $info['user_id'])
|
|
|
-// ->column('parent_id');
|
|
|
-//
|
|
|
-// DB::table('team_rewards')
|
|
|
-// ->where('user_id', 'in', $path)
|
|
|
-// ->where('date_time', $info['date_time'])
|
|
|
-// ->update([
|
|
|
-// 'team_commission' => DB::raw("team_commission+" . $amount),
|
|
|
-// 'update_time' => date('Y-m-d H:i:s')
|
|
|
-// ]);
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -316,7 +239,6 @@ class TeamRewards
|
|
|
}else{
|
|
|
Log::info("分红等级" . $level['level_id'] . "在" . $date . "分红金额为0;当日新增业绩:" . $amount . ",分红比例:" . $level['weight_dividend']. ",分红人数" . dump($levels_info[$level['level_id']]));
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
return $log_id;
|
|
|
@@ -538,30 +460,6 @@ class TeamRewards
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-// foreach ($community_user_list as $info) {
|
|
|
-// //取该社区长下新增服务器算力
|
|
|
-// $next_ids = (new UserPathModel())->where('parent_id', $info['id'])->column('user_id');
|
|
|
-// $recharge_power = OfflineRechargeRecordModel::where('user_id', 'in', $next_ids)
|
|
|
-// //->where('order_type', 2)
|
|
|
-// ->where('status', 1)
|
|
|
-// ->whereBetween('create_time', $between_time)
|
|
|
-// ->sum('power');
|
|
|
-// $recharge_power = $community_rewards_arr[0] * $recharge_power;//取新增业绩的8%
|
|
|
-// if($recharge_power < 1){
|
|
|
-// (new Output())->writeln("会员:" . $info['id'] . ",本次没有可用新增数据:" . $date);
|
|
|
-// continue;
|
|
|
-// }
|
|
|
-// $reward_power = $recharge_power * $community_rewards_arr[1];
|
|
|
-// $reward_usdt = $recharge_power * $community_rewards_arr[2] * 8;//算力折算成U
|
|
|
-// dump(['用户ID:' . $info['id'],'新增业绩:' . $recharge_power, '算力收益:' . $reward_power, 'U收益:' . $reward_usdt]);
|
|
|
-//
|
|
|
-// //发放分红
|
|
|
-// (new LedgerWalletModel)->changeWalletAccount($info['id'], Asset::POWER, $reward_power, Action::PowerCommunityBonusAward);
|
|
|
-//
|
|
|
-// (new LedgerWalletModel)->changeWalletAccount($info['id'], Asset::USDT, $reward_usdt, Action::UsdtCmmunityBonus);
|
|
|
-// }
|
|
|
-
|
|
|
return $log_id;
|
|
|
}
|
|
|
|
|
|
@@ -619,4 +517,58 @@ class TeamRewards
|
|
|
|
|
|
return $log_id;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取可用日期
|
|
|
+ * @var array
|
|
|
+ */
|
|
|
+ protected function getExeDate($type_id = 1)
|
|
|
+ {
|
|
|
+ $today = date('Y-m-d',strtotime("-1day"));//当前时间减一天为最后一次可用时间
|
|
|
+
|
|
|
+ $dateInfo = DB::table('timed_task_log')
|
|
|
+ ->where('type_id' ,$type_id)
|
|
|
+ ->where('status', 1)
|
|
|
+ ->order('date_time', 'desc')
|
|
|
+ ->find();
|
|
|
+ if(empty($dateInfo)){//首次
|
|
|
+ return $today;
|
|
|
+ }
|
|
|
+ $new_date = date('Y-m-d',strtotime("+1day",strtotime($dateInfo['date_time'])));//最后一次发放日期+1天为本次执行时间
|
|
|
+ if($new_date > $today){//超过今天
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ return $new_date;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 插入或更新收益统计信息
|
|
|
+ * @var array
|
|
|
+ */
|
|
|
+ protected function createData($uids, $amount, $date)
|
|
|
+ {
|
|
|
+ foreach ($uids as $user_id) {
|
|
|
+ $check = DB::table('team_rewards')
|
|
|
+ ->field('id')
|
|
|
+ ->where('user_id', $user_id)
|
|
|
+ ->where('date_time', $date)
|
|
|
+ ->find();
|
|
|
+ if ($check) {//存在,则更新
|
|
|
+ DB::table('team_rewards')
|
|
|
+ ->where('id', $check['id'])
|
|
|
+ ->update([
|
|
|
+ 'today_power' => Db::raw('today_power+' . $amount),
|
|
|
+ 'update_time' => date('Y-m-d H:i:s')
|
|
|
+ ]);
|
|
|
+ } else {//新增
|
|
|
+ DB::table('team_rewards')
|
|
|
+ ->insert([
|
|
|
+ 'user_id' => $user_id,
|
|
|
+ 'date_time' => $date,
|
|
|
+ 'today_power' => Db::raw('today_power+' . $amount),
|
|
|
+ 'create_time' => date('Y-m-d H:i:s')
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|