welfareRongyao($params, 5, 61); break; case 211: case 212: $welfare = [ 6 => 104, 30 => 105, 98 => 106, 198 => 107, 328 => 108, 648 => 109, 1000 => 110, 2000 => 111, 5000 => 112, 10000 => 113, 20000 => 114, 8 => 126, 38 => 163, 48 => 164, 50 => 165, 128 => 166, 2888 => 167, 1 => 168, 120 => 176, 18 => 177, ]; $welfareVoluntarily = model('common/WelfareVoluntarily')->whereRaw(sprintf('FIND_IN_SET(%s,game_id)', $params['gameid']))->where(['condition'=>$params['amount']])->find(); //太古神王单笔返利 if ($welfareVoluntarily) { $this->welfareRongyao($params, $welfareVoluntarily['grant_type_id'], $welfareVoluntarily['welfare_id']); } // //太古神王单笔返利 // if (isset($welfare[intval($params['amount'])])) { // $this->welfareRongyao($params, 3, $welfare[intval($params['amount'])]); // } else { $template = '【玩家福利】太古神王自动发放异常:订单号' . $params['orderid'] . '错误信息' . '福利金额不存在'; curlDD($template, Env::get('notice_weelfar_url'), true); } break; } } /** * 荣耀每日首充礼包发放 太古神王单笔返利 * @param $params */ public function welfareRongyao($params, $grant_type_id, $welfare_id) { $payInfo = cache('PayNotify:updateOrder:' . $params['orderid']); if (!$payInfo) { return false; } $data = [ 'ids' => $payInfo['id'], 'game_id' => $params['gameid'], 'grant_type_id' => $grant_type_id, 'welfare_id' => $welfare_id, 'server_id' => '', 'channel_id' => '', 'username' => '', 'rolename' => '', 'roleid' => '', 'orderid' => '', 'login_start_time' => '', 'login_end_time' => '', 'cycle_id' => '1', 'login_time' => date('Y-m-d'), 'page' => 1, 'pageSize' => 10, 'time' => time(), ]; $checkResult = $this->validate($data, 'Welfare.applySingleGrandWelfare'); if (true !== $checkResult) { $this->result([], 0, $checkResult, 'json'); } $page = isset($data['page']) ? $data['page'] : 1; $pageSize = isset($data['pageSize']) ? $data['pageSize'] : 10; $welfareService = new WelfareService(); if ($data['channel_id']) { $data['channel_id'] = [$data['channel_id']]; } $channelList = $this->getChannelList($params['gameid']); $result = $welfareService->wefare($data['grant_type_id'], $data['game_id'], array_column(json_decode(json_encode($channelList), true), 'id'), $channelList, $page, $pageSize, $data, true, false); if ($result['code'] == 20000) { return true; } else { $template = '【玩家福利】发放异常:订单号' . $params['orderid'] . '错误信息' . $result['msg']; curlDD($template, Env::get('notice_weelfar_url'), true); } } private function getChannelList($game_id) { if ($gameBand = model('GameBand')->whereOr('android_game_id', $game_id)->whereOr('ios_game_id', $game_id)->find()) { $where = [$gameBand['android_game_id'], $gameBand['ios_game_id']]; } else { $where = [$game_id]; } return model('SdkGameList')->join('nw_channel', 'nw_channel.id=cy_sdkgamelist.channel_id')->whereIn('cy_sdkgamelist.gameid', $where)->cache('welfare:welfareGrant:getChannelList:' . md5(json_encode($where)), 300)->field('nw_channel.id,nw_channel.name as value')->group('id')->select(); } public function validate($data, $validate, $message = [], $batch = false, $callback = null) { if (is_array($validate)) { $v = new \app\common\library\ValidateExtend; //调用Validate的扩展类 $v->rule($validate); } else { // 支持场景 if (strpos($validate, '.')) { list($validate, $scene) = explode('.', $validate); } $v = \think\Loader::validate($validate); !empty($scene) && $v->scene($scene); } // 是否批量验证 if ($batch || $this->batchValidate) { $v->batch(true); } if (is_array($message)) { $v->message($message); } if ($callback && is_callable($callback)) { call_user_func_array($callback, [$v, &$data]); } if (!$v->check($data)) { if ($this->failException) { throw new ValidateException($v->getError()); } else { return $v->getError(); } } else { return true; } } }