$userId],$field); if(empty($info)){ return 2122; } if(!in_array($status, [2,3])){ return 2127; } //var_dump($info); // 审核处理 $sceneNames = ['idcard'=>'身份证','education'=> '学历','position'=> '工作']; switch($scene){ case 'idcard': // 身份认证审核 // 验证状态 $idcardCheck = isset($info['idcard_check'])? intval($info['idcard_check']) : 0; if($idcardCheck != 0 && $idcardCheck != 1 && $status == 2){ return 2123; } $data = [ 'idcard_check'=> $status, 'idcard_online_check'=> $status==3? 0 : 1, 'idcard_fail'=> $failRemark? trim($failRemark) : '', ]; break; case 'education': // 学历认证审核 // 验证状态 $educationCheck = isset($info['education_check'])? intval($info['education_check']) : 0; if($educationCheck != 0 && $educationCheck != 1 && $status == 2){ return 2123; } $data = [ 'education_check'=> $status, 'education_fail'=> $failRemark? trim($failRemark) : '', ]; break; case 'position': // 工作认证审核 // 验证状态 $positionCheck = isset($info['position_check'])? intval($info['position_check']) : 0; if($positionCheck != 0 && $positionCheck != 1 && $status == 2){ return 2123; } $data = [ 'position_check'=> $status, 'position_fail'=> $failRemark? trim($failRemark) : '', ]; break; default: return 2126; break; } // 更新数据处理 Db::startTrans(); if(!UserProfile::saveData(['userid'=> $userId], $data)){ Db::rollback(); return 2125; } // 审核通过奖励处理 $remark = ''; $sceneName = isset($sceneNames[$scene])? $sceneNames[$scene] : '信息'; $field = 'id,openid,user_nickname,real_name,redheart'; $memberInfo = MemberModel::getInfo(['id'=> $userId], $field); if($status == 2){ // 身份认证更新生日 $idcard = isset($info['idcard'])? trim($info['idcard']) : ''; if($scene == 'idcard' && $idcard){ $birthday = substr($idcard, 6,8); $birthday = substr($birthday,0,4).'-'.substr($birthday,4,2).'-'.substr($birthday,6,2); $birthday = $birthday? strtotime($birthday) : 0; if($birthday){ MemberModel::saveData(['id'=> $userId], ['birthday'=> $birthday]); } } $siteInfo = cmf_get_site_info(); $awardNum = isset($siteInfo[$scene.'_award_redheart'])? intval($siteInfo[$scene.'_award_redheart']) : 0; if($awardNum){ $redheart = isset($memberInfo['redheart'])? intval($memberInfo['redheart']) : 0; if(!MemberModel::saveData(['id'=> $userId], ['redheart'=> intval($redheart + $awardNum)])){ Db::rollback(); return 2125; } // 账户明细 $remark = "{$sceneName}认证成功奖励{$awardNum}个爱心"; $accountData = [ 'type' => 4, 'account_type' => 1, 'change_type' => 1, 'user_id' => $userId, 'money' => $awardNum, 'balance' => $redheart, 'created_at' => date('Y-m-d H:i:s'), 'remark' => "{$sceneName}认证成功奖励{$awardNum}个爱心", ]; AccountLog::insertGetId($accountData); } } Db::commit(); // 推送审核信息 $openid = isset($memberInfo['openid'])? $memberInfo['openid'] : ''; if ($openid) { $realname = isset($memberInfo['real_name']) ? $memberInfo['real_name'] : ''; $checkTime = date('Y.m.d H:i'); $remark = $status==2? "感谢您的使用,点击进入公众号,遇见一段爱情!" : '请修改后重新提交'; $params = [ 'title' => $status==2? "恭喜!您的{$sceneName}认证已经通过审核!\n\n审核时间:\t{$checkTime}" : $failRemark."\n\n审核时间:\t{$checkTime}", 'remark' => $remark, 'type' => 'auth', 'keywords' => [ /*'keyword1' => [ 'value' => $realname, 'color' => '#173177', ],*/ 'keyword1' => [ 'value' => "{$sceneName}认证", 'color' => '#173177', ], 'keyword2' => [ 'value' => $status==2? '审核通过' : '认证失败', 'color' => '#173177', ], ], 'url' => $status==2? url('/weixin/match/index', '', '', true) : url('/weixin/auth/' . $scene, '', '', true), ]; PRedis::set('auths:message:u_'.$userId, ['result' => $memberInfo, 'params' => $params], 600); Wechat::sendTplMsg($openid, $params); } // 认证分销收益结算 $inviteInfo = MemberModel::getInviteInfo($userId); $inviteId = isset($inviteInfo['invite_id'])? $inviteInfo['invite_id'] : 0; if($inviteInfo && $inviteId>0 && $status == 2){ PRedis::set('markets:auth:entry:' . $scene.'_'.$userId, ['inviteInfo'=> $inviteInfo, 'memberInfo' => $memberInfo], 7200); $types = ['idcard'=> 5, 'education'=> 6, 'position'=> 7]; $type = isset($types[$scene])? $types[$scene] : 0; if($type && !UserBalanceLog::checkHasMarket($inviteId, $userId, $type)){ Award::marketAward($inviteId, $userId, $type); } } return ['id'=> $userId]; } catch (\Exception $exception){ // var_dump($exception); return 1015; } } /** * 投诉用户审核奖励 * @param $userId 举报用户ID * @param array $info 举报数据:至少含举报用户、被举报用户、举报类型、举报内容、举报时间 * @return array|false * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public static function checkComplain($userId, $info = []) { $cid = isset($info['id'])? $info['id'] : 0; if(empty($cid) || Complain::where(['id'=> $cid])->value('status') != 1){ return false; } $userInfo = MemberModel::where(['id' => $userId, 'user_status' => 1]) ->field('id,user_login,user_nickname,openid,redheart') ->find(); $nickname = isset($userInfo['user_nickname']) ? $userInfo['user_nickname'] : ''; $redheart = isset($userInfo['redheart']) ? floatval($userInfo['redheart']) : 0; if (empty($userInfo)) { return false; } $siteInfo = cmf_get_site_info(); $awardNum = isset($siteInfo['complain_award_redheart']) ? intval($siteInfo['complain_award_redheart']) : 0; if ($awardNum > 0) { $cuid = isset($info['c_uid'])? $info['c_uid'] : 0; $cUserInfo = MemberModel::alias('u') ->leftJoin('sg_user_profile sp','sp.userid=u.id') ->where(['u.id' => $cuid, 'u.user_status' => 1]) ->field('u.id,u.openid,u.user_login,u.user_nickname,u.openid,u.redheart,sp.wechat_code') ->find(); if (empty($cUserInfo)){ return false; } // 更新状态 //Complain::where(['id'=> $cid])->update(['status'=> 2]); //Db::startTrans(); // 冻结被举报用户,2021,加多一个字段,顺便放入冻结选项 $freezing = isset($info['remark'])? $info['remark'] : '被人举报'; $result1=MemberModel::where(['id'=> $cuid,'user_type'=> 2])->update(['user_status'=> 0,'freezing'=> $freezing,'freezing_choose'=>$info['freezing_choose']]); // 奖励入账 $result2= MemberModel::where(['id' => $userId])->update(['redheart' => moneyFormat($redheart + $awardNum), 'updated_at' => date('Y-m-d H:i:s')]); // echo $cuid.'::'.$userId;die(); // 账户明细 $dateTime = date('Y-m-d H:i:s'); $cNickname = isset($cUserInfo['user_nickname']) ? $cUserInfo['user_nickname'] : ''; $logData = [ 'user_id' => $userId, 'type' => 4, 'account_type' => 1, 'change_type' => 1, 'money' => $awardNum, 'balance' => $redheart, 'remark' => "举报用户[ID:$cuid],昵称[{$cNickname}]审核通过奖励", 'created_at' => $dateTime, ]; $result3=db('account_log')->insertGetId($logData); //if($result1 && $result2 && $result3){Db::commit();}else{Db::rollback();} // 发送模板消息给举报用户 $openid = isset($userInfo['openid'])? $userInfo['openid'] : ''; if($openid){ $wechatCode = isset($cUserInfo['wechat_code'])? $cUserInfo['wechat_code'] : '暂无'; $params = [ 'title' => "尊敬的{$nickname}用户,您举报的用户经平台核实已审核通过,请谨慎与该用户联系\n\n被举报用户:\t{$cNickname}(昵称)\n\n对方微信号: \t{$wechatCode}\n\n申请时间:\t{$dateTime}", 'remark' => "脱单需主动,交友需谨慎!", 'type' => 'confirm', 'keywords' => [ 'keyword1' => [ 'value' => '举报用户', 'color' => '#173177', ], 'keyword2' => [ 'value' => '已审核', 'color' => '#173177', ], ], ]; Wechat::sendTplMsg($openid, $params); } // 被举报用户通知 $cOpenid = isset($cUserInfo['openid'])? $cUserInfo['openid'] : ''; $cnickname = isset($cUserInfo['user_nickname'])? $cUserInfo['user_nickname'] : ''; if($cOpenid){ $params = [ 'title' => "尊敬的{$cnickname}用户,由于您的账号被多人举报经平台已经将您的账号冻结,若有疑问请联系平台客服\n\n举报原因:\t{$freezing}", 'remark' => "脱单需主动,交友需真诚!", 'type' => 'confirm', 'keywords' => [ 'keyword1' => [ 'value' => '举报反馈', 'color' => '#173177', ], 'keyword2' => [ 'value' => '已审核', 'color' => '#173177', ], ], ]; Wechat::sendTplMsg($cOpenid, $params); } return true; } return false; } /** * 获取认证记录 * @return \think\db\Query|null * @throws \think\Exception\DbException */ public static function getAuthNotices(){ return AuthLog::alias('a') ->leftJoin('user u','u.id=a.user_id') ->where(['u.user_type'=> 2,'u.user_status'=> 1, 'a.status'=> 1]) ->where('u.id','>', 0) ->where('a.created_at','>=', date('Y-m-d')) ->field('a.user_id,a.type,a.created_at,u.avatar,u.user_nickname as nickname') ->order('a.created_at','desc') ->limit(0,10) ->all() ->each(function($item, $k){ $item['avatar'] = $item['avatar']? cmf_get_image_preview_url($item['avatar']) : ''; $item['nickname'] = $item['nickname']? formatName($item['nickname']) : ''; }); } }