Files
midi-php/application/api/model/UserData.php

731 lines
30 KiB
PHP
Raw Normal View History

2025-08-13 10:43:56 +08:00
<?php
namespace app\api\model;
use think\Db;
use think\Log;
use think\Model;
class UserData extends Model
{
private $redis;
public function __construct($data = [])
{
parent::__construct($data);
$this->redis = \think\Cache::store('redis')->handler();
}
//获取腾讯IM
public function get_tencent_im($user_id)
{
$tencent_im = $this->where('user_id', $user_id)->value('tencent_im');
if(empty($tencent_im)){
$tencent_im = model('Tencent')->tencent_user_sig_info('u'.$user_id);
$data = [
'nick' => db::name('user')->where('id', $user_id)->value('nickname'),
'face_url' => db::name('user')->where('id', $user_id)->value('avatar'),
];
model('Tencent')->account_import($user_id,$data);
if(empty($tencent_im)){
return ['code' => 0, 'msg' => '获取腾讯IM唯一标识失败','data' =>null];
}
//更新腾讯IM唯一标识
$this->where(['user_id' => $user_id])->update(['tencent_im' => $tencent_im]);
}
return $tencent_im;
}
//第一次修改用户信息
public function modify_fist_user_info($nick_name, $birthday, $sex, $head_pic,$reg_code,$uid)
{
$text = $nick_name;
if(!empty($text)) {
$result = model('Tencent')->content_moderation('Text', $text);
if($result['code'] != 1) {
return ['code' => 0, 'msg' => '昵称有违禁词!','data' =>null];
}
}
$data = [];
$data['id'] = $uid;
if (!empty($nick_name)) {
$data['nickname'] = $nick_name;
2025-09-18 15:40:00 +08:00
$nick_name_info = db::name('user')->where(['nickname' => $nick_name,'status' => ['<>',0]])->find();
2025-08-13 10:43:56 +08:00
if(!empty($nick_name_info)){
if($uid != $nick_name_info['id']){
return['code' => 0, 'msg' => '该昵称已被占用','data' =>null];
}
}
if(mb_strlen($nick_name) > 24){
return['code' => 0, 'msg' => '昵称长度不能超过24个字符','data' =>null];
}
2025-09-18 16:14:32 +08:00
//名称中不能有 系统管理 等关键字
if(!nickname_filter($nick_name)){
return ['code' => 0, 'msg' => '名称中不能有 系统、管理、官方 等相关字', 'data' => null];
}
2025-08-13 10:43:56 +08:00
}
if (!empty($birthday)) {
$data['birthday'] = $birthday;
}
if (!empty($reg_code)) {
// $data['init_code'] = $reg_code;
//绑定
$reslut = model('api/Invited')->invited_bind($reg_code, $uid);
if ($reslut['code'] == 0) {
return v($reslut['code'], $reslut['msg'], $reslut['data']);
}
}
if (!empty($head_pic)) {
$data['avatar'] = $head_pic;
}
$data['sex'] =$sex;
$data['updatetime'] = time();
$reslut = model('User')->update($data);
if ($reslut) {
$user_info = model('User')->where('id', $uid)->field('id,nickname,avatar,user_code')->find();
//给腾讯同步用户信息
$member_name = $user_info['nickname'];
$member_face_url = $user_info['avatar'];
model('Tencent')->modify_user_infos($uid, $member_name, $member_face_url);
2025-08-13 10:43:56 +08:00
return ['code' => 1, 'msg' => '修改成功', 'data' => $user_info];
} else {
return ['code' => 0, 'msg' => '修改失败,','data' =>null];
}
}
//根据性别选择用户头像
public function modify_pic_user_info($sex)
{
if (empty($sex)){
return ['code' => 0, 'msg' => '选择性别!','data' =>null];
}
if ($sex==1){
$impag = Db::name('user_head_pic')
->where('sex',1)->where('is_delete',1)->orderRaw('rand()')->find();
if(empty($impag)){
return ['code' => 0, 'msg' => '暂无头像','data' =>null];
}
return ['code' => 1, 'msg' => '男生图像', 'data' => $impag['head_pic']];
}
if ($sex==2){
$impag = Db::name('user_head_pic')
->where('sex',2)->where('is_delete',1)->orderRaw('rand()')->find();
if(empty($impag)){
return ['code' => 0, 'msg' => '暂无头像','data' =>null];
}
return ['code' => 1, 'msg' => '女生图像', 'data' => $impag['head_pic']];
}
return ['code' => 0, 'msg' => '获取失败','data' =>null];
}
//修改用户 信息
public function modify_user_info($uid, $nick_name, $birthday, $sex, $head_pic, $images, $autograph,$tag_id)
{
$text = $nick_name . $autograph ;
if(!empty($text)) {
$result = model('Tencent')->content_moderation('Text', $text);
if($result['code'] != 1) {
return ['code' => 0, 'msg' => '昵称或简介有违禁词!','data' =>null];
}
}
$data = [];
$data['uid'] = $uid;
if (!empty($nick_name)) {
$data['nick_name'] = $nick_name;
2025-09-18 15:40:00 +08:00
$nick_name_info = db::name('user')->where(['nickname' => $nick_name,'status' => ['<>',0]])->find();
2025-08-13 10:43:56 +08:00
if(!empty($nick_name_info)){
if($uid != $nick_name_info['uid']){
return['code' => 0, 'msg' => '该昵称已被占用','data' =>null];
}
}
if(mb_strlen($nick_name) > 24){
return['code' => 0, 'msg' => '昵称长度不能超过24个字符','data' =>null];
}
}
if (!empty($birthday)) {
$data['birthday'] = $birthday;
$constellation = $this->get_user_constellation($birthday);
$data['constellation'] = $constellation['data'];
}
if (!empty($head_pic)) {
// $data['head_pic'] = $param['path'];
$filepath_url = get_filepath_url();
$params = parse_url($filepath_url);
$param = parse_url($head_pic);
if(isset($param['host'])) {
if (!empty($param['path'])) {
if($params['host'] == $param['host']) {
$head_pic = $param['path'];
$head_pic = trim($head_pic, '/');
}
$data['head_pic'] = $head_pic;
}
} else {
$data['head_pic'] = $head_pic;
}
}
if (!empty($autograph)) {
$data['autograph'] = $autograph;
}
$validate = validate('admin/User');
$reslut = $validate->scene('apiEditInfo')->check($data);
if ($reslut !== true) {
return ['code' => 0, 'msg' => $validate->getError(),'data' =>null];
}
$data['sex'] = $sex;
$data['update_time'] = time();
$images_data = explode(',', json_decode($images));
//开启事务
db::startTrans();
try{
$reslut = db::name('user')->where('uid', $uid)->update($data);
if (!$reslut) {
db::rollback();
return ['code' => 0, 'msg' => '修改失败','data' =>null];
}
$tag_data = [];
if(!empty($tag_id)){
//删除之前的标签
$deldt['tag_id'] = '';
$delres = db::name('user_data')->where('uid', $uid)->update($deldt);
if (!$delres) {
db::rollback();
return ['code' => 0, 'msg' => '修改失败','data' =>null];
}
$tag_data['tag_id'] = $tag_id;
$tareslut = db::name('user_data')->where('uid', $uid)->update($tag_data);
if (!$tareslut) {
db::rollback();
return ['code' => 0, 'msg' => '修改失败','data' =>null];
}
}
if (!empty($images_data)) {
//删除之前的图片
$deldata['is_delete'] = 2;
$deldata['delete_time'] = time();
$reslutd = db::name('user_home_bgimages')->where('uid', $uid)->update($deldata);
if($reslutd){
//循环插入图片
$dd['uid'] = $uid;
$dd['add_time'] = time();
$dd['update_time'] = time();
foreach ($images_data as $key => $value) {
$dd['image'] = $value;
db::name('user_home_bgimages')->insert($dd);
}
}else {
db::rollback();
return ['code' => 0, 'msg' => '修改失败','data' =>null];
}
}
Db::commit();
return ['code' => 1, 'msg' => '修改成功','data' =>null];
} catch (\Exception $e) {
db::rollback();
return ['code' => 0, 'msg' => '修改失败','data' =>null];
}
}
//修改,设置用户密码
public function modify_password($password,$user_id)
{
if (empty($user_id)) {
return ['code' => 0, 'msg' => '登录失效,请重新登录','data' =>null];
}
$reslut = db::name('user')->where('id' , $user_id)->update(['password' => md5($password)]);
if ($reslut) {
return ['code' => 1, 'msg' => '修改成功','data' =>null];
} else {
return ['code' => 0, 'msg' => '修改失败','data' =>null];
}
}
//修改手机号
public function modify_mobile($new_mobile,$user_id)
{
2025-09-17 22:47:11 +08:00
//查询新手机号绑定的数量
$new_mobile_num = db::name('user')->where(['username' => $new_mobile,'status' => ['neq', 0]])->count();
if ($new_mobile_num >= 3) {
return ['code' => 0, 'msg' => '该手机号已达绑定上限','data' =>null];
}
2025-08-13 10:43:56 +08:00
//查询旧手机号
2025-08-15 14:11:31 +08:00
$mobile = db::name('user')->where(['id' => $user_id])->value('username');
2025-08-13 10:43:56 +08:00
//查询是否实名
$is_real = db::name('user_auth')->where(['mobile' => $mobile,'is_real' => 1])->find();
if($is_real){
//开启事务
db::startTrans();
//修改实名手机号
$red = db::name('user_auth')->where(['id' => $is_real['id']])->update(['mobile' => $new_mobile]);
2025-08-15 16:24:11 +08:00
$reslut = db::name('user')->where(['id' => $user_id])->update(['username' => $new_mobile,'mobile' => $new_mobile]);
2025-08-13 10:43:56 +08:00
if ($reslut && $red) {
Db::commit();
return ['code' => 1, 'msg' => '修改成功','data' =>null];
} else {
db::rollback();
return ['code' => 0, 'msg' => '修改失败','data' =>null];
}
}else{
2025-08-15 16:24:11 +08:00
$reslut = db::name('user')->where(['id' => $user_id])->update(['username' => $new_mobile,'mobile' => $new_mobile]);
2025-08-13 10:43:56 +08:00
if ($reslut) {
return ['code' => 1, 'msg' => '修改成功','data' =>null];
}
}
return ['code' => 0, 'msg' => '修改失败','data' =>null];
}
//实名认证
public function real_name($user_id,$real_name,$id_card)
{
$user_mobile = db::name('user')->where(['id' => $user_id,'status'=>1])->value('mobile');
if(empty($user_mobile)){
return ['code' => 0, 'msg' => '请先绑定手机号','data' =>null];
}
2025-09-17 22:39:05 +08:00
$card_id_count = db::name('user_auth')->where(['card_id' => $id_card,'is_real' => 1])->count();
if($card_id_count >= 3){
return ['code' => 0, 'msg' => '该身份证实名已达上限!','data' =>null];
}
2025-09-17 11:15:35 +08:00
//查询是否已经提交过数据了
2025-09-17 22:39:05 +08:00
$is_real = db::name('user_auth')->where(['card_id' => $id_card,'is_real' => 1,'mobile' =>$user_mobile])->find();
2025-09-17 11:15:35 +08:00
if($is_real){
2025-09-17 22:39:05 +08:00
return ['code' => 0, 'msg' => '已经审核通过!请勿重复提交!','data' =>null];
2025-09-17 11:15:35 +08:00
}
2025-09-17 22:39:05 +08:00
2025-08-13 10:43:56 +08:00
$auth = [
'mobile' => $user_mobile,
'real_name' => $real_name,
'card_id' => $id_card,
'is_real' => 3
];
db::name('user_auth')->insert($auth);
2025-09-23 19:26:18 +08:00
$res = $this->real_name_verify($real_name,$id_card);
if($res['code'] == 200){
2025-09-24 15:01:54 +08:00
//修改状态
db::name('user_auth')->where(['real_name' => $real_name,'card_id' => $id_card])->update(['is_real' => 1]);
2025-09-23 19:26:18 +08:00
return ['code' => 1, 'msg' => '验证通过!','data' =>null];
}else{
return ['code' => 0, 'msg' => $res['msg'],'data' =>null];
}
// $config = get_system_config();
// //获取Access Token
// $access_token = $this->redis->get('access_token_'.$config['tencent_app_id']);
// //判断是否过期
// if(empty($access_token)){
// $access_token = model('Tencent')->getAccessToken($config['tencent_app_id'],$config['tencent_app_secret']);
// $this->redis->set('access_token_'.$config['tencent_app_id'],$access_token,1000);
// sleep(1);
// //获取SignTicket
// $sign_ticket = model('Tencent')->getSignTicket($access_token,$config['tencent_app_id']);
// $this->redis->set('sign_ticket_'.$config['tencent_app_id'],$sign_ticket,1100);
// }
// $sign_ticket = $this->redis->get('sign_ticket_'.$config['tencent_app_id']);
//
// //获取NONCE Ticket
// $nonce_ticket = model('Tencent')->getNonceTicket($access_token,$user_id,$config['tencent_app_id']);
// //获取随机字符串
// $nonceStr = generateRandom(32);
// //生成一个订单号 并保存在redis
// $orderNo = generateRandom(12);
// //保存在redis
// $this->redis->set('order_no_tencent_'.$user_id,$orderNo,3600);
// //生成签名
// $sign = model('Tencent')->getSign($user_id,$nonceStr,$sign_ticket,$config['tencent_app_id']);
// //生成faceId
// $faceId = model('Tencent')->getFaceId($orderNo,$real_name,$id_card,$sign,$user_id,$config['tencent_app_id'],$nonceStr);
// if(isset($faceId['code'])){
// return ['code' => 0, 'msg' => $faceId['msg'],'data' =>null];
// }
//
// $data = [
// 'userid' => 'u'.$user_id,
// 'nonce' => $nonceStr,
// 'sign' => $sign,
// 'appid' => $config['tencent_app_id'],
// 'orderNo' => $orderNo,
// 'apiVersion'=>'1.0.0',
// 'licence'=>$config['tencent_licence'],
// 'faceId' => $faceId
// ];
// return ['code' => 1, 'msg' => '获取成功','data' =>$data];
2025-08-13 10:43:56 +08:00
}
//实名认证结果
public function real_name_result($user_id,$orderNo)
{
$user_mobile = db::name('user')->where(['id' => $user_id,'status'=>1])->value('mobile');
2025-09-17 22:39:05 +08:00
$id = db::name('user_auth')->where(['mobile' => $user_mobile,'is_real' => 3])->value('id');
if($id){
$res = db::name('user_auth')->where(['id' => ['<>',$id],'mobile' => $user_mobile])->select();
if($res){
foreach ($res as $key => $value) {
db::name('user_auth')->where('id' , $value['id'])->delete();
}
}
}
2025-08-13 10:43:56 +08:00
//修改状态
2025-09-17 22:39:05 +08:00
$reslut = db::name('user_auth')->where('id' , $id)->update(['is_real' => 1]);
2025-08-13 10:43:56 +08:00
if(!$reslut){
return ['code' => 0, 'msg' => '实名失败','data' =>null];
}
2025-09-17 11:02:33 +08:00
2025-08-13 10:43:56 +08:00
return ['code' => 1, 'msg' => '实名成功','data' =>null];
}
//实名认证后的信息
public function real_name_info($user_id)
{
$mobile = db::name('user')->where(['id' => $user_id,'status'=>1])->value('mobile');
$data = db::name('user_auth')->where('mobile' , $mobile)->field('real_name,card_id,is_real,mobile')->find();
if(!$data){
return ['code' => 0, 'msg' => '未实名','data' =>null];
}
$datas = [
'real_name' => name_format($data['real_name']),
'card_id' => id_format($data['card_id']),
'mobile' => $data['mobile'],
'is_real' => $data['is_real']
];
return ['code' => 1, 'msg' => '获取成功','data' =>$datas];
}
//用户的财富等级和经验值
public function user_wealth_icon($user_id)
{
$data = $this->field('wealth_level,wealth_exp')->where('user_id',$user_id)->find();
if(!$data){
return localpath_to_netpath('data/default/xin.png');
}
$icon = db::name('vs_wealth_level')->where('level',$data['wealth_level'])->value('image');
if($icon == ''){
return localpath_to_netpath('data/default/xin.png');
}
return $icon;
}
//用户的魅力等级和经验值
public function user_charm_icon($user_id)
{
$data = $this->field('charm_level,charm_exp')->where('user_id',$user_id)->find();
if(!$data){
return localpath_to_netpath('data/default/xin.png');
}
$icon = db::name('vs_charm_level')->where('level',$data['charm_level'])->value('image');
if($icon == ''){
return localpath_to_netpath('data/default/xin.png');
}
return $icon;
}
//房间历史足迹
public function user_room_history_list($uid,$page,$page_limit){
$list = db::name('user_visit_log')->alias('a')->join('fa_vs_room b','a.to_id = b.id')
->field('b.id as room_id,b.room_number,b.room_name,b.room_cover,b.room_intro,b.label_id,b.room_password,b.is_show_room,b.today_hot_value as hot_value')
->where('a.from_uid',$uid)
->where('a.type',2)
->where('b.type_id','<>',6)
->where('b.room_status',1)
->order('a.id desc')
->page($page,$page_limit)
->select();
if($list){
foreach($list as &$item){
if($item['is_show_room'] == 2){ //是否显示房间 1是2否
//查询当前房间是否有主持在麦上
$room_host_info = db::name('vs_room_pit')->where(['room_id' => $item['room_id'], 'pit_number' => 9])->value('user_id');
if($room_host_info == 0){
unset($list[$item]);
continue;
}
}
$item['label_icon'] = db::name('vs_room_label')->where('id',$item['label_id'])->value('label_icon');
//获取房间用户总数
$item['user_count'] = db::name('vs_room_visitor')->where('room_id',$item['room_id'])->count();
//房间是否有靓号 7房间靓号
$item['room_number'] = model('Decorate')->user_decorate_detail($item['room_id'],7);
// $item['hot_value'] = $item['hot_value'] * 10;
}
$list = array_values((array)$list);
}else{
$list = [];
}
return ['code' => 1, 'msg' => '获取成功','data' =>$list];
}
//删除房间历史足迹
public function delete_room_history($uid){
$reslut = db::name('user_visit_log')->where(['from_uid' => $uid,'type' => 2])->delete();
if($reslut){
return ['code' => 1, 'msg' => '删除成功','data' =>null];
}
return ['code' => 0, 'msg' => '删除失败','data' =>null];
}
//绑定提现账户的信息
public function bind_withdraw_account($user_id,$system='')
{
if($system == 'iOS'){
$lists['ali']['name'] = "支付宝";
$lists['wx']['name'] = "微信";
$lists['bank']['name'] = "银行卡";
2025-10-09 20:32:18 +08:00
2025-08-13 10:43:56 +08:00
$lists['ali_tl']['name'] = "支付宝(通联)";
$lists['wx_tl']['name'] = "微信(通联)";
2025-10-09 20:32:18 +08:00
$lists['xlx_wx']['name'] = "微信(西来喜)";
$lists['xlx_ali']['name'] = "支付宝(西来喜)";
$lists['xlx_bank']['name'] = "云闪付(西来喜)";
2025-08-13 10:43:56 +08:00
$lists['ali']['icon'] = localpath_to_netpath('data/default/alipay.png');
$lists['wx']['icon'] = localpath_to_netpath('data/default/wxpay.png');
$lists['bank']['icon'] = localpath_to_netpath('data/default/bankpay.png');
2025-10-09 20:32:18 +08:00
2025-08-13 10:43:56 +08:00
$lists['ali_tl']['icon'] = localpath_to_netpath('data/default/alipay.png');
$lists['wx_tl']['icon'] = localpath_to_netpath('data/default/wxpay.png');
2025-10-09 20:32:18 +08:00
$lists['xlx_ali']['icon'] = localpath_to_netpath('data/default/alipay.png');
$lists['xlx_wx']['icon'] = localpath_to_netpath('data/default/wxpay.png');
$lists['xlx_bank']['icon'] = localpath_to_netpath('data/default/wxpay.png');
2025-08-13 10:43:56 +08:00
$lists['ali']['is_with_draw_open'] = get_system_config_value('withdraw_ali');
$lists['wx']['is_with_draw_open'] = get_system_config_value('withdraw_wx');
$lists['bank']['is_with_draw_open'] = get_system_config_value('withdraw_bank');
2025-10-09 20:32:18 +08:00
2025-08-13 10:43:56 +08:00
$lists['ali_tl']['is_with_draw_open'] = 0;
$lists['wx_tl']['is_with_draw_open'] = 0;
2025-10-09 20:32:18 +08:00
$lists['xlx_ali']['is_with_draw_open'] = 0;
$lists['xlx_wx']['is_with_draw_open'] = 0;
$lists['xlx_bank']['is_with_draw_open'] = 0;
2025-08-13 10:43:56 +08:00
$lists['ali']['is_bind'] = db::name('user_data')->where('user_id',$user_id)->value('alipay_account') ? 1 : 0;
$lists['wx']['is_bind'] = 0;
$lists['bank']['is_bind'] = db::name('user_data')->where('user_id',$user_id)->value('bank_card_number') ? 1 : 0;
2025-10-09 20:32:18 +08:00
2025-08-13 10:43:56 +08:00
$lists['ali_tl']['is_bind'] = 0;
$lists['wx_tl']['is_bind'] = 0;
2025-10-09 20:32:18 +08:00
$lists['xlx_ali']['is_bind'] =0;
$lists['xlx_wx']['is_bind'] = 0;
$lists['xlx_bank']['is_bind'] = 0;
2025-08-13 10:43:56 +08:00
$lists['ali']['type'] = 2;
$lists['wx']['type'] = 1;
$lists['bank']['type'] = 3;
2025-10-09 20:32:18 +08:00
2025-08-13 10:43:56 +08:00
$lists['ali_tl']['type'] = 4;
$lists['wx_tl']['type'] = 5;
2025-10-09 20:32:18 +08:00
//6-西来喜微信7-西来喜支付宝8-西来喜QQ钱包9-西来喜云闪付
$lists['xlx_ali']['type'] = 7;
$lists['xlx_wx']['type'] = 6;
$lists['xlx_bank']['type'] = 9;
2025-08-13 10:43:56 +08:00
// $lists['ali']['is_pay_open'] = 0;
// $lists['wx']['is_pay_open'] = 0;
// $lists['bank']['is_pay_open'] = 0;
// $lists['ali_tl']['is_pay_open'] = 0;
// $lists['wx_tl']['is_pay_open'] = 0;
$lists['ali']['is_pay_open'] = get_system_config_value('pay_open_ali');
$lists['wx']['is_pay_open'] = get_system_config_value('pay_open_wx');
$lists['bank']['is_pay_open'] = get_system_config_value('pay_open_bank');
2025-10-09 20:32:18 +08:00
2025-08-13 10:43:56 +08:00
$lists['ali_tl']['is_pay_open'] = get_system_config_value('pay_open_ali_tl');
$lists['wx_tl']['is_pay_open'] = get_system_config_value('pay_open_wx_tl');
2025-10-09 20:32:18 +08:00
$lists['xlx_ali']['is_pay_open'] = get_system_config_value('pay_open_xlx_ali');
$lists['xlx_wx']['is_pay_open'] = get_system_config_value('pay_open_xlx_wx');
$lists['xlx_bank']['is_pay_open'] = get_system_config_value('pay_open_xlx_bank');
2025-08-13 10:43:56 +08:00
}else{
$lists['ali']['name'] = "支付宝";
$lists['wx']['name'] = "微信";
$lists['bank']['name'] = "银行卡";
$lists['ali_tl']['name'] = "支付宝(通联)";
$lists['wx_tl']['name'] = "微信(通联)";
2025-10-09 20:32:18 +08:00
$lists['xlx_wx']['name'] = "微信(西来喜)";
$lists['xlx_ali']['name'] = "支付宝(西来喜)";
$lists['xlx_bank']['name'] = "云闪付(西来喜)";
2025-08-13 10:43:56 +08:00
$lists['ali']['icon'] = localpath_to_netpath('data/default/alipay.png');
$lists['wx']['icon'] = localpath_to_netpath('data/default/wxpay.png');
$lists['bank']['icon'] = localpath_to_netpath('data/default/bankpay.png');
$lists['ali_tl']['icon'] = localpath_to_netpath('data/default/alipay.png');
$lists['wx_tl']['icon'] = localpath_to_netpath('data/default/wxpay.png');
2025-10-09 20:32:18 +08:00
$lists['xlx_ali']['icon'] = localpath_to_netpath('data/default/alipay.png');
$lists['xlx_wx']['icon'] = localpath_to_netpath('data/default/wxpay.png');
$lists['xlx_bank']['icon'] = localpath_to_netpath('data/default/wxpay.png');
2025-08-13 10:43:56 +08:00
$lists['ali']['is_with_draw_open'] = get_system_config_value('withdraw_ali');
$lists['wx']['is_with_draw_open'] = get_system_config_value('withdraw_wx');
$lists['bank']['is_with_draw_open'] = get_system_config_value('withdraw_bank');
$lists['ali_tl']['is_with_draw_open'] = 0;
$lists['wx_tl']['is_with_draw_open'] = 0;
2025-10-09 20:32:18 +08:00
$lists['xlx_ali']['is_with_draw_open'] = 0;
$lists['xlx_wx']['is_with_draw_open'] = 0;
$lists['xlx_bank']['is_with_draw_open'] = 0;
2025-08-13 10:43:56 +08:00
$lists['ali']['is_bind'] = db::name('user_data')->where('user_id',$user_id)->value('alipay_account') ? 1 : 0;
$lists['wx']['is_bind'] = 0;
$lists['bank']['is_bind'] = db::name('user_data')->where('user_id',$user_id)->value('bank_card_number') ? 1 : 0;
$lists['ali_tl']['is_bind'] = 0;
$lists['wx_tl']['is_bind'] = 0;
2025-10-09 20:32:18 +08:00
$lists['xlx_ali']['is_bind'] =0;
$lists['xlx_wx']['is_bind'] = 0;
$lists['xlx_bank']['is_bind'] = 0;
2025-08-13 10:43:56 +08:00
$lists['ali']['type'] = 2;
$lists['wx']['type'] = 1;
$lists['bank']['type'] = 3;
$lists['ali_tl']['type'] = 4;
$lists['wx_tl']['type'] = 5;
2025-10-09 20:32:18 +08:00
//6-西来喜微信7-西来喜支付宝8-西来喜QQ钱包9-西来喜云闪付
$lists['xlx_ali']['type'] = 7;
$lists['xlx_wx']['type'] = 6;
$lists['xlx_bank']['type'] = 9;
2025-08-13 10:43:56 +08:00
$lists['ali']['is_pay_open'] = get_system_config_value('pay_open_ali');
$lists['wx']['is_pay_open'] = get_system_config_value('pay_open_wx');
$lists['bank']['is_pay_open'] = get_system_config_value('pay_open_bank');
$lists['ali_tl']['is_pay_open'] = get_system_config_value('pay_open_ali_tl');
$lists['wx_tl']['is_pay_open'] = get_system_config_value('pay_open_wx_tl');
2025-10-09 20:32:18 +08:00
$lists['xlx_ali']['is_pay_open'] = get_system_config_value('pay_open_xlx_ali');
$lists['xlx_wx']['is_pay_open'] = get_system_config_value('pay_open_xlx_wx');
$lists['xlx_bank']['is_pay_open'] = get_system_config_value('pay_open_xlx_bank');
2025-08-13 10:43:56 +08:00
}
return ['code' => 1, 'msg' => '获取成功','data' =>$lists];
}
//绑定
public function bind_xinxi($user_id,$type,$alipay_account,$bank_card_number,$bank_user_name,$bank_card,$open_bank)
{
if($type == 2){
$data = [
// 'alipay_name' => $alipay_name,// 姓名
'alipay_account' => $alipay_account,// 支付宝账号
];
$reslut = db::name('user_data')->where('user_id',$user_id)->update($data);
if(!$reslut){
return ['code' => 0, 'msg' => '绑定失败','data' =>null];
}
}
if($type == 3){
$data = [
'bank_card_number' => $bank_card_number,
'bank_user_name' => $bank_user_name,
'bank_card' => $bank_card,
'open_bank' => $open_bank,
];
$reslut = db::name('user_data')->where('user_id',$user_id)->update($data);
if(!$reslut){
return ['code' => 0, 'msg' => '绑定失败','data' =>null];
}
}
// if($type == 3){
// $data = [
// 'user_id' => $user_id,
// ];
// $reslut = db::name('user_data')->where('user_id',$user_id)->update($data);
// if(!$reslut){
// return ['code' => 0, 'msg' => '绑定失败','data' =>null];
// }
// }
return ['code' => 1, 'msg' => '绑定成功','data' =>null];
}
//绑定的详情
public function bind_xinxi_detail($user_id,$type)
{
2025-09-25 03:42:21 +08:00
$data = null;
2025-08-13 10:43:56 +08:00
if($type == 2){
$data = db::name('user_data')->where('user_id',$user_id)->field('id,alipay_name,alipay_account')->find();
}
if($type == 3){
$data = db::name('user_data')->where('user_id',$user_id)->field('id,bank_card_number,bank_user_name,bank_card,open_bank')->find();
}
return ['code' => 1, 'msg' => '获取成功','data' =>$data];
}
2025-09-23 19:26:18 +08:00
//身份证二要素认证
public function real_name_verify($real_name, $card_id)
{
// 云市场分配的密钥Id
$secretId = '1QMATmzeRHC7Auz8';
// 云市场分配的密钥Key
$secretKey = 'FKeTuxiKC76DrdPMAu4nhsppLZ1mI93l';
// 签名
$datetime = gmdate('D, d M Y H:i:s T');
$signStr = sprintf("x-date: %s", $datetime);
$sign = base64_encode(hash_hmac('sha1', $signStr, $secretKey, true));
$auth = sprintf('{"id": "%s", "x-date": "%s" , "signature": "%s"}', $secretId, $datetime, $sign);
// 请求方法
$method = 'GET';
// 请求头
$headers = array(
'Authorization' => $auth,
);
// 查询参数
$queryParams = array (
'cardNo' => $card_id,
'realName' => $real_name,
);
// body参数POST方法下
$bodyParams = array (
);
$sendData = http_build_query($bodyParams);
// url参数拼接
$url = 'https://ap-beijing.cloudmarket-apigw.com/service-hcgajsa5/idcard/VerifyIdcardv2';
if (count($queryParams) > 0) {
$url .= '?' . http_build_query($queryParams);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
if (in_array($method, array('POST', 'PUT', 'PATCH'), true)) {
$headers['Content-Type'] = 'application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_POSTFIELDS, $sendData);
}
curl_setopt($ch, CURLOPT_HTTPHEADER, array_map(function ($v, $k) {
return $k . ': ' . $v;
}, array_values($headers), array_keys($headers)));
// $data = json_decode(curl_exec($ch), true);
$result = curl_exec($ch);
if($result) {
$data = json_decode($result, true);
// var_dump($data);exit;
if ($data['error_code'] == 0) {
if ($data['result']['isok']) {
return ['code' => 200, 'msg' => '验证成功', 'data' => null];
} else {
return ['code' => 201, 'msg' => '信息有误' . json_encode($data), 'data' => null];
}
} else {
return ['code' => 201, 'msg' => '信息有误' . json_encode($data), 'data' => null];
}
}
return ['code' => 201, 'msg' => '信息有误', 'data' => null];
}
2025-08-13 10:43:56 +08:00
}