| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- <?php
- namespace app\api\service;
- use think\Env;
- use app\common\model\MemberCoinInfo;
- use app\common\model\MemberCoinPay;
- use app\common\model\Members;
- use app\service\WelfareService;
- use think\Db;
- use think\exception\ValidateException;
- class SpecialService
- {
- protected $batchValidate = false;
- protected $failException = false;
- public function welfare($params)
- {
- switch ($params['gameid']) {
- case 157:
- case 158:
- $this->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;
- }
- }
- }
|