Files
spacestation/agent/admin/controllers/pingan/user/UserInfo.php
T
2025-10-13 11:36:35 +08:00

154 lines
5.6 KiB
PHP

<?php
defined('BASEPATH') or exit('No direct script access allowed');
require_once APPPATH . 'controllers/pingan/BaseController.php';
class UserInfo extends BaseController
{
public function __construct()
{
parent::__construct();
$this->load->model('agent/pingan/pingan_users_data_model', 'userData');
$this->load->model('agent/pingan/pingan_users_model');
$this->load->model('agent/users_auth_model');
$this->load->helper('image');
$this->load->library('carHome/daiFu');
}
public function index_get()
{
$userId = $_SESSION['id'];
$row = $this->userData->get(['userId' => $userId]);
if (!$row) {
$dataId = $this->userData->add([
'userId' => $userId,
'createTime' => date('Y-m-d H:i:s'),
]);
if (!$dataId) {
$this->return_json("创建用户资料失败");
}
$row['id'] = $dataId;
}
$where = [
'userId' => $userId,
'type' => Users_auth_model::TYPE_PING_AN,
'status' => Users_auth_model::STATUS_NORMAL
];
$authRows = $this->users_auth_model->select($where, 'id desc');
$authRow = $authRows ? $authRows[0] : [];
$signStatus = $authStatus = '未提交认证';
if ($authRow) {
$authStatus = Users_auth_model::AUTH_TYPE_LIST[$authRow['authStatus']] ?: '未知状态';
$signStatus = Users_auth_model::SIGN_TYPE_LIST[$authRow['signStatus']] ?: '';
if ($authRow['authStatus'] == Users_auth_model::AUTH_TYPE_IDENTIFY_FAIL) {
$authStatus .= " ({$authRow['failReason']})";
}
}
$data = [
'id' => $row['id'],
'cardId' => $row['cardId'] ?: '',
'bankCardNum' => $row['bankCardNum'] ?: '',
'bankName' => $row['bankName'] ?: '',
'cardA' => $row['cardA'] ? changeImg(explode(',', $row['cardA'])) : [],
'cardB' => $row['cardB'] ? changeImg(explode(',', $row['cardB'])) : [],
'mobile' => $row['mobile'],
'authStatus' => $authStatus,
'signStatus' => $signStatus,
'cti' => $row['cti']
];
$this->return_response($data);
}
public function index_put()
{
$userId = $_SESSION['id'];
$authStatusList = [Users_auth_model::AUTH_TYPE_ACCEPT, Users_auth_model::AUTH_TYPE_IDENTIFY_SUCCESS];
$authStatus = implode("','", $authStatusList);
$where = [
'userId' => $userId,
'type' => Users_auth_model::TYPE_PING_AN,
"authStatus in('{$authStatus}')" => null,
'status' => Users_auth_model::STATUS_NORMAL
];
$row = $this->users_auth_model->get($where);
if ($row) {
$this->return_json("当前状态无法修改");
}
$user = $this->pingan_users_model->get(['id' => $userId]);
$mobile = $user['mobile'];
$username = $user['username'];
if (!$mobile) {
$this->return_json("手机号未绑定");
}
$params = $this->input_param();
$cardA = getImageFromArray($params['cardA']);
$cardB = getImageFromArray($params['cardB']);
if (!valid_id_card($params['cardId'])) {
$this->return_json("请输入正确身份证号");
}
$upData = [
'cardId' => $params['cardId'],
'bankCardNum' => $params['bankCardNum'],
'bankName' => $params['bankName'],
'cardA' => $cardA[0] ?: '',
'cardB' => $cardB[0] ?: '',
];
$res = $this->userData->update($upData, ['userId' => $userId]);
if (!$res) {
$this->return_json("更新失败");
}
//提交实名认证签约
$daiFu = new DaiFu();
$requestId = create_order_no(350200, 'pingan');
$frontImageUrl = build_qiniu_image_url($upData['cardA']);
$backImageUrl = build_qiniu_image_url($upData['cardB']);
$idCard = $upData['cardId'];
$realName = $username;
$cellPhone = $mobile;
$bankName = $upData['bankName'];
$bankCard = $upData['bankCardNum'];
$req = $daiFu->uploadIdCardImage($requestId, $frontImageUrl, $backImageUrl, $idCard, $realName, $cellPhone, $bankName, $bankCard);
if (!$req->isSuccess()) {
$this->return_json($req->getMessage());
}
$reqData = $req->getData();
$userAuthData = [
'requestId' => $requestId,
'userId' => $userId,
'realName' => $realName,
'idCard' => $idCard,
'frontImage' => $upData['cardA'],
'backImage' => $upData['cardB'],
'bankCard' => $bankCard,
'bankName' => $bankName,
'cellphone' => $cellPhone,
'type' => Users_auth_model::TYPE_PING_AN,
'authStatus' => Users_auth_model::AUTH_TYPE_ACCEPT,
'signStatus' => Users_auth_model::SIGN_TYPE_UN_SING,
];
$resLog = $this->users_auth_model->add($userAuthData);
if (!$resLog) {
$this->return_json("保存认证失败");
}
$this->return_response();
}
/**
* 修改手机号
* @return void
*/
public function mobile_put()
{
$userId = $_SESSION['id'];
$params = $this->input_param();
$upData = [
'mobile' => $params['mobile'] ?: '',
'cti' => $params['cti'] ?: ''
];
$res = $this->userData->update($upData, ['userId' => $userId]);
if (!$res) {
$this->return_json("更新失败");
}
$this->return_response();
}
}