where('id', $subsidy_id)->field('id,type,level_name,total_gift_price,money')->where('is_delete', 1)->order('id asc')->select(); $last_week_time = strtotime('-1 week last sunday', time()); //获取所有公会上周流水 $map = []; $map[] = ['type', '=', 1]; $last_week_income = db::name('room_guild_charm_count_day')->where($map)->field('guild_id,sum(amount) as amount')->whereTime('add_time', 'last week')->group('guild_id')->select(); $insert_all = []; if(!empty($last_week_income)){ foreach ($last_week_income as $k => $v){ //上周补贴奖励金额 $subsidy_money = 0; foreach ($room_subsidy_info as $a => &$b){ $money = $b['money']; if($b['total_gift_price'] > $v['amount']){ break; }else{ if($b['type'] == 1){ $subsidy_money = $b['money']; }else{ $subsidy_money = $v['amount'] * $money * 0.001; } } } //上周是否已添加 $where = []; $where[] = ['guild_id', '=', $v['guild_id']]; $where[] = ['subsidy_id', '=', $subsidy_id]; $where[] = ['type', '=', 1]; $where[] = ['last_week_time', '=', $last_week_time]; $info = db::name('guild_week_earnings_log')->where($where)->find(); if(empty($info)){ $insert = []; $insert['guild_id'] = $v['guild_id']; $insert['type'] = 1; $insert['subsidy_id'] = $subsidy_id; $insert['change_value'] = $v['amount']; $insert['earnings'] = $subsidy_money; $insert['add_time'] = time(); $insert['last_week_time'] = $last_week_time; $insert_all[] = $insert; } } if(!empty($insert_all)){ $reslut = db::name('guild_week_earnings_log')->insertAll($insert_all); if(!$reslut){ echo date('Y-m-d H:i:s').'执行失败'; } } } echo date('Y-m-d H:i:s').'执行成功'; } //统计公会长收益 public function gives_user_guild_week_earnings($subsidy_id){ set_time_limit(0); ini_set('memory_limit', '1024M'); $last_week_time = strtotime('-1 week last sunday', time()); //获取未发送的公会上周收益 $map = []; $map[] = ['subsidy_id', '=', $subsidy_id]; $map[] = ['type', '=', 1]; $map[] = ['is_delete', '=', 1]; $map[] = ['last_week_time', '=', $last_week_time]; $list = db::name('guild_week_earnings_log')->where($map)->select(); if(!empty($list)){ foreach ($list as $k => $v){ if($v['earnings'] > 0){ Db::startTrans(); try { $insert_all = []; //公会长获取公会补贴 $deacon_uid = db::name('guild')->where('id', $v['guild_id'])->value('uid'); $surplus_ratio = 100; $owner_subsidy_money = $v['earnings'] * $surplus_ratio * 0.01; // $reslut = model('admin/User')->change_user_money_by_uid($room_owner_uid, $owner_subsidy_money, 1, $user_money_log, $remarks, $room_owner_uid, 0, $v['rid']); // if ($reslut['code'] == 201) { // Db::rollback(); // return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null]; // } $insert = []; $insert['type'] = 1; $insert['user_type'] = 1; $insert['guild_id'] = $v['guild_id']; $insert['subsidy_id'] = $subsidy_id; $insert['uid'] = $deacon_uid; $insert['ratio'] = $surplus_ratio; $insert['change_value'] = $v['change_value']; $insert['room_earnings'] = $v['earnings']; $insert['user_earnings'] = $owner_subsidy_money; $insert['add_time'] = time(); $insert['is_delete'] = 1; $insert['last_week_time'] = $last_week_time; $insert_all[] = $insert; $reslut = db::name('user_guild_week_earnings')->insertAll($insert_all); if(!$reslut){ Db::rollback(); return ['code' => 201, 'msg' => '失败', 'data' => null]; } $reslut = db::name('guild_week_earnings_log')->where('id', $v['id'])->update(['is_delete' => 2, 'update_time' => time()]); if(!$reslut){ Db::rollback(); return ['code' => 201, 'msg' => '失败', 'data' => null]; } Db::commit(); } catch (\Exception $e) { // 回滚事务 Db::rollback(); } }else{ db::name('guild_week_earnings_log')->where('id', $v['id'])->update(['is_delete' => 2, 'update_time' => time()]); } } } echo date('Y-m-d H:i:s').'执行成功'; } }