248 lines
8.5 KiB
PHP
248 lines
8.5 KiB
PHP
<?php
|
|
|
|
namespace app\api\controller\user;
|
|
|
|
use app\api\controller\BaseApiController;
|
|
use app\api\logic\user\UserLogic;
|
|
use app\api\service\UserTokenService;
|
|
use app\api\validate\UserValidate;
|
|
use app\common\enum\PayEnum;
|
|
use app\common\logic\PaymentLogic;
|
|
use app\common\model\user\User;
|
|
use app\common\model\user_sign\UserSign;
|
|
use support\Cache;
|
|
use think\Exception;
|
|
|
|
|
|
/**
|
|
* 用户控制器
|
|
* Class UserController
|
|
* @package app\api\controller
|
|
*/
|
|
class UserController extends BaseApiController
|
|
{
|
|
public $notNeedLogin = ['login_sms'];
|
|
// #[
|
|
// ApiDoc\Title('获取小程序手机号'),
|
|
// ApiDoc\url('/api/user/user/getMobileByMnp'),
|
|
// ApiDoc\Method('POST'),
|
|
// ApiDoc\Param(name: "code", type: "string", require: true, desc: "换取手机的code"),
|
|
// ApiDoc\NotHeaders(),
|
|
// ApiDoc\Header(name: "token", type: "string", require: true, desc: "token"),
|
|
// ApiDoc\ResponseSuccess("data", type: "array"),
|
|
// ]
|
|
public function getMobileByMnp()
|
|
{
|
|
$params = (new UserValidate())->post()->goCheck('getMobileByMnp');
|
|
$params['user_id'] = $this->userId;
|
|
$result = UserLogic::getMobileByMnp($params);
|
|
if ($result === false) {
|
|
return $this->fail(UserLogic::getError());
|
|
}
|
|
if($result && is_numeric($result)){
|
|
$data = UserLogic::info($result);
|
|
$userInfo = UserTokenService::setToken($result, 1);
|
|
$data['token'] = $userInfo['token'];
|
|
}else{
|
|
$data = UserLogic::info($this->userId);
|
|
}
|
|
|
|
return $this->success('绑定成功', $data, 1, 1);
|
|
}
|
|
|
|
|
|
// #[
|
|
// ApiDoc\Title('用户个人信息'),
|
|
// ApiDoc\url('/api/user/user/info'),
|
|
// ApiDoc\Method('POST'),
|
|
// ApiDoc\Param(),
|
|
// ApiDoc\NotHeaders(),
|
|
// ApiDoc\Header(name: "token", type: "string", require: true, desc: "token"),
|
|
// ApiDoc\ResponseSuccess("data", type: "array"),
|
|
// ]
|
|
public function info()
|
|
{
|
|
return $this->success('success', UserLogic::info($this->userId));
|
|
|
|
}
|
|
|
|
// #[
|
|
// ApiDoc\Title('充值金额'),
|
|
// ApiDoc\url('/api/user/user/rechange_amount'),
|
|
// ApiDoc\Method('Get'),
|
|
// ApiDoc\Param(),
|
|
// ApiDoc\NotHeaders(),
|
|
// ApiDoc\Header(name: "token", type: "string", require: true, desc: "token"),
|
|
// ApiDoc\ResponseSuccess("data", type: "array"),
|
|
// ]
|
|
public function rechange_amount()
|
|
{
|
|
$res = UserLogic::rechange_level();
|
|
return $this->success('ok',$res);
|
|
}
|
|
|
|
// #[
|
|
// ApiDoc\Title('小程序充值'),
|
|
// ApiDoc\url('/api/user/user/recharge'),
|
|
// ApiDoc\Method('POST'),
|
|
// ApiDoc\Param(name: "price", type: "string", require: true, desc: "金额"),
|
|
// ApiDoc\NotHeaders(),
|
|
// ApiDoc\Header(name: "token", type: "string", require: true, desc: "token"),
|
|
// ApiDoc\ResponseSuccess("data", type: "array"),
|
|
// ]
|
|
public function recharge()
|
|
{
|
|
$params = (new UserValidate())->post()->goCheck('rechargeMoney');
|
|
$params['uid'] = $this->userId;
|
|
$params['channel_type'] = $this->userInfo['terminal'];
|
|
$order = UserLogic::recharge($params);
|
|
$redirectUrl = $params['redirect'] ?? '/pages/payment/payment';
|
|
$result = PaymentLogic::pay(PayEnum::WECHAT_PAY_MINI, 'recharge', $order, $this->userInfo['terminal'], $redirectUrl);
|
|
if (PaymentLogic::hasError()) {
|
|
return $this->fail(PaymentLogic::getError(), $params);
|
|
}
|
|
return $this->success('', $result);
|
|
}
|
|
|
|
// #[
|
|
// ApiDoc\Title('会员账户详情'),
|
|
// ApiDoc\url('/api/user/user/capital_flow'),
|
|
// ApiDoc\Method('POST'),
|
|
// ApiDoc\Param(name: "page_no", type: "int", require: true, desc: "默认1页数"),
|
|
// ApiDoc\Param(name: "page_size", type: "int", require: false, desc: "条数默认15"),
|
|
// ApiDoc\NotHeaders(),
|
|
// ApiDoc\Header(name: "token", type: "string", require: true, desc: "token"),
|
|
// ApiDoc\ResponseSuccess("data", type: "array"),
|
|
// ]
|
|
public function capital_flow()
|
|
{
|
|
$page_no = (int)$this->request->post('page_no',1);
|
|
$page_size = (int)$this->request->post('page_size',15);
|
|
$params['page_no'] = $page_no;
|
|
$params['page_size'] = $page_size;
|
|
if(empty($page_no) || empty($page_size)){
|
|
$params['page_no'] = 1;
|
|
$params['page_size'] = 15;
|
|
}
|
|
$res = UserLogic::capital_list($this->userId,$params);
|
|
|
|
$res['page_no'] =$params['page_no'];
|
|
$res['page_size'] =$params['page_size'];
|
|
return $this->success('ok',$res);
|
|
}
|
|
|
|
// #[
|
|
// ApiDoc\Title('会员账户统计'),
|
|
// ApiDoc\url('/api/user/user/capital_count'),
|
|
// ApiDoc\Method('POST'),
|
|
// ApiDoc\Param(),
|
|
// ApiDoc\NotHeaders(),
|
|
// ApiDoc\Header(name: "token", type: "string", require: true, desc: "token"),
|
|
// ApiDoc\ResponseSuccess("data", type: "array"),
|
|
// ]
|
|
public function capital_count()
|
|
{
|
|
$res = UserLogic::capital_count($this->userId);
|
|
return $this->success('ok',$res);
|
|
}
|
|
|
|
public function send_sms()
|
|
{
|
|
$res = (new UserLogic())->dealSendSms($this->userId);
|
|
if ($res){
|
|
return $this->success('发送成功');
|
|
}
|
|
return $this->fail('发送失败');
|
|
}
|
|
|
|
//登录
|
|
public function login_sms()
|
|
{
|
|
$params = (new UserValidate())->post()->goCheck('login');
|
|
$res = (new UserLogic())->dealLoginSms($params['account']);
|
|
if ($res){
|
|
return $this->success('发送成功');
|
|
}
|
|
return $this->fail('发送失败');
|
|
|
|
}
|
|
|
|
//报备
|
|
public function reporting_sms()
|
|
{
|
|
$params = (new UserValidate())->post()->goCheck('login');
|
|
$res = (new UserLogic())->dealReportingSms($params['account']);
|
|
if ($res){
|
|
return $this->success('发送成功',[],1,1);
|
|
}
|
|
return $this->fail('发送失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function set_payPassword()
|
|
{
|
|
$params = (new UserValidate())->post()->goCheck('setPayPassword');
|
|
$remark = $this->userId.'_payPassword';
|
|
$code = Cache::get($remark);
|
|
if ($code && isset($params['code']) && $code !== $params['code']) {
|
|
throw new Exception('验证码错误');
|
|
}
|
|
if ($params['rePassword'] !== $params['password'])
|
|
return $this->fail('两次密码不一致');
|
|
$result = UserLogic::dealPayPassword($params,$this->userId);
|
|
if (!$result) {
|
|
return $this->fail('设置失败');
|
|
}
|
|
return $this->success('设置成功');
|
|
}
|
|
|
|
|
|
|
|
//修改
|
|
// public function withdrawalPassword()
|
|
// {
|
|
// $data = $this->request->params(['repassword', 'password', 'sms_code']);
|
|
// $sms_code = app()->make(SmsService::class)->checkSmsCode($this->user->phone, $data['sms_code'], 'change_pwd');
|
|
// if (!$data['sms_code'] || !$sms_code) {
|
|
// return app('json')->fail('验证码不正确');
|
|
// }
|
|
// if (!$this->user->phone)
|
|
// return app('json')->fail('请先绑定手机号');
|
|
// if (empty($data['repassword']) || empty($data['password']))
|
|
// return app('json')->fail('请输入提现密码');
|
|
// if ($data['repassword'] !== $data['password'])
|
|
// return app('json')->fail('两次密码不一致');
|
|
// $password = $this->repository->encodePassword($data['password']);
|
|
// $this->repository->update($this->request->uid(), ['withdrawal_pwd' => $password]);
|
|
// return app('json')->success('绑定成功');
|
|
//
|
|
// }
|
|
|
|
//采购款明细、余额明细、礼品券明细、返还金明细
|
|
public function fundList()
|
|
{
|
|
(new UserValidate())->get()->goCheck('fund');
|
|
$page_no = (int)$this->request->get('page_no', 1);
|
|
$page_size = (int)$this->request->get('page_size', 15);
|
|
$params = $this->request->get();
|
|
$params['page_no'] = $page_no > 0 ? $page_no : 1;
|
|
$params['page_size'] = $page_size > 0 ? $page_size : 15;
|
|
$res = UserLogic::dealDetails($params,$this->userId);
|
|
$integral = User::where('id',$this->userId)->value('integral');
|
|
$number = UserSign::where('id',$this->userId)->where('status',0)->sum('number');
|
|
$res['page_no'] = $params['page_no'];
|
|
$res['page_size'] = $params['page_size'];
|
|
$res['extend'] = [
|
|
'integral'=>$integral,
|
|
'number'=>$number
|
|
];
|
|
return $this->success('ok', $res);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|