Browse Source

account frozen

master
chuan 1 month ago
parent
commit
102e255da4
  1. 8
      app/admin/controller/User.php
  2. 1
      app/admin/route/app.php
  3. 42
      app/admin/service/UserService.php
  4. 2
      app/admin/validate/UserValidate.php
  5. 6
      app/home/service/PayService.php
  6. 6
      app/home/service/WalletService.php
  7. 8
      app/model/AccountFrozenModel.php

8
app/admin/controller/User.php

@ -35,6 +35,14 @@ class User extends AdminBaseController
return json($result);
}
// 账号冻结与解冻
public function frozen()
{
$service = new UserService();
$result = $service->frozen($this->request->param(),$this->getAdminId());
return json($result);
}
// 用户资金管理
public function change()
{

1
app/admin/route/app.php

@ -169,6 +169,7 @@ Route::group('/', function () {
Route::post('/user/index', 'User/index');
Route::post('/user/real_list', 'User/RealList');
Route::post('/user/status', 'User/status');
Route::post('/user/frozen', 'User/frozen');
Route::post('/user/change', 'User/change')->middleware('admin_log');
Route::post('/user/relation', 'User/relation');
Route::post('/user/reg_phone', 'User/reg_phone')->middleware('admin_log');

42
app/admin/service/UserService.php

@ -4,6 +4,7 @@ namespace app\admin\service;
use app\admin\validate\UserValidate;
use app\home\service\BaseHomeService;
use app\model\AccountFrozenModel;
use app\model\AdminModel;
use app\model\CountryModel;
use app\model\FileModel;
@ -212,7 +213,12 @@ class UserService extends AdminBaseService
->column('usable_num,frozen_num', 'user_id');
}
// 查询用户冻结状态
$accountFrozenList = [];
if ($userIdArr) {
$accountFrozenList = AccountFrozenModel::where('user_id', 'in', $userIdArr)
->column('frozen_state', 'user_id');
}
//最近登录IP、最近登录国家
@ -222,10 +228,12 @@ class UserService extends AdminBaseService
->join([$subQuery => 'w'], 'a.user_id=w.user_id AND a.login_date=w.last_login_date')->column(['id', 'ip', 'country', 'city'], 'a.user_id');
foreach ($userList as $item) {
$frozenState = isset($accountFrozenList[$item['user_id']]) ? $accountFrozenList[$item['user_id']] : 0;
$key = 'LEVERAGE:' . $item['user_id'];
$leverage_num=empty(Cache::store('redis')->get($key))? 1: Cache::store('redis')->get($key);
$userRow= [
'id' => $item['user_id'],
'frozen_state' => $frozenState,
'user_no' => $item['user_no'],
'nickname' => $item['nick_name'],
'regTime' => $item['create_time'],
@ -485,6 +493,38 @@ class UserService extends AdminBaseService
}
}
// 账号冻结与解冻
public function frozen($param, $adminId)
{
try {
// 参数校验
validate(UserValidate::class)->scene('frozen_state')->check($param);
$userId = $param['id'];
$frozenState = $param['frozen_state']; //1-冻结;0-解冻
$frozenReason = $param['frozen_reason']?? ""; //冻结原因
$user = UserModel::where('user_id', $userId)->find();
if (empty($user)) {
return $this->toData('1', '用户不存在');
}
$bool = $this->checkUserIdInAgent($adminId, $userId);
if (!$bool) {
return $this->toData('1', '无权操作');
}
// 查询冻结记录表
$accountFrozen = AccountFrozenModel::where('user_id', $userId)->find();
if (empty($accountFrozen)) {
AccountFrozenModel::create(['user_id'=>$userId, 'frozen_state' => $frozenState, 'frozen_reason'=>$frozenReason]);
} else {
AccountFrozenModel::update(['frozen_state' => $frozenState, 'frozen_reason' => $frozenReason], ['user_id' => $userId]);
}
return $this->toData('0', 'SUCCESS');
} catch (ValidateException $validateException) {
$message = $validateException->getError();
return $this->toData('1', $message);
} catch (\Exception $exception) {
return $this->toData('1', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]);
}
}
// 资产修改
public function change($param, $adminId)

2
app/admin/validate/UserValidate.php

@ -14,6 +14,7 @@ class UserValidate extends AdminBaseValidate
'user_no' => 'alphaNum',
'email' => 'email',
'status' => 'require|in:1,2,3',
'frozen_state' => 'require|in:1,0',
'nation'=>'require',
'password'=>'require',
'id' =>'require|integer',
@ -47,6 +48,7 @@ class UserValidate extends AdminBaseValidate
protected $scene = [
'index' => ['page','limit','user_no', 'email', 'phone', 'start_time', 'end_time'],
'status' => ['id','status'],
'frozen_state' => ['id','frozen_state'],
'change' => ['id','amount'],
'relation' => ['page','limit','user_no'],
'add_phone' =>['nation','phone','password'],

6
app/home/service/PayService.php

@ -2,6 +2,7 @@
namespace app\home\service;
use app\model\AccountFrozenModel;
use app\model\PaymentListModel;
use app\model\RechargeApplyModel;
use app\model\StockMarketModel;
@ -34,6 +35,11 @@ class PayService extends BaseHomeService
*/
public function insertRechargeApply(array $data): array
{
//判断账号是否冻结
$isFrozen = AccountFrozenModel::where('user_id', $data['user_id'])->find();
if (!empty($isFrozen) && $isFrozen->frozen_state == 1) {
return $this->toData('100110', 'The current account has been frozen', []);
}
$channel = PaymentListModel::getPaymentInfo([
'id' => $data['recharge_channel']
]);

6
app/home/service/WalletService.php

@ -5,6 +5,7 @@ namespace app\home\service;
use app\admin\service\AdminBaseService;
use app\home\validate\BankValidate;
use app\home\validate\WalletValidate;
use app\model\AccountFrozenModel;
use app\model\DrawalSettingModel;
use app\model\FeeSettingModel;
use app\model\RechargeApplyModel;
@ -998,6 +999,11 @@ class WalletService extends BaseHomeService
*/
public function dealDrawalApply(array $data): array
{
//判断账号是否冻结
$isFrozen = AccountFrozenModel::where('user_id', $data['user_id'])->find();
if (!empty($isFrozen) && $isFrozen->frozen_state == 1) {
return $this->toData('100110', 'The current account has been frozen', []);
}
//校验交易密码
$salt = env('ENCRYPT.SALT');
$name = env('WALLET.NAME');

8
app/model/AccountFrozenModel.php

@ -0,0 +1,8 @@
<?php
namespace app\model;
class AccountFrozenModel extends BaseModel
{
protected $name = 'account_frozen';
}
Loading…
Cancel
Save