Browse Source

优化代理信息

master
wanghongjun 3 years ago
parent
commit
0d9340bb24
  1. 48
      app/controller/AgentTeam.php
  2. 107
      app/controller/Passport.php
  3. 3
      app/middleware/CheckAgent.php
  4. 7
      app/validate/Agent.php

48
app/controller/AgentTeam.php

@ -6,8 +6,8 @@ namespace app\controller;
use app\BaseController;
use app\middleware\CheckAgent;
use app\model\AgentDownScoresRecords;
use app\model\AgentInfo;
use app\model\AgentUpScoresRecords;
use app\model\AgentUser;
use app\model\RechargeRecords;
use app\model\Setting as SettingModel;
use app\model\User;
@ -16,7 +16,6 @@ use app\model\CustomerService as CustomerServiceModel;
use app\model\WithdrawalRecords;
use app\validate\Agent;
use think\exception\ValidateException;
use think\facade\Cache;
use think\facade\Db;
use think\facade\Request;
use think\facade\Session;
@ -62,7 +61,7 @@ class AgentTeam extends BaseController
}
# 查询用户列表
$field = 'id,aid,phone,avatar,balance,withdrawal_balance';
$field = 'id,aid,phone,avatar,balance,withdrawal_balance,identity';
$userRes = $UserModel->field($field)->where($where)->order('id desc')->paginate($limit);
$list = $userRes->items();
@ -70,8 +69,10 @@ class AgentTeam extends BaseController
foreach ($list as &$item) {
$item['phone'] = format_phone_number($item['phone']);
#$item['phone'] = format_phone_number($item['phone']);
$item['avatar'] = get_image_url($item['avatar']);
$item['identity_str'] = $UserModel->identityArr[$item['identity']];
unset($item['identity']);
}
return $this->renderSuccess('数据返回成功',['list' => $list, 'total' => $total]);
@ -84,25 +85,24 @@ class AgentTeam extends BaseController
*/
public function rechargeRecords()
{
$agentData = $this->request->userInfo;
$userData = $this->request->userInfo;
$data = Request::param();
$limit = $data['limit'] ?: 10;
$list = Db::name('agent_recharge_records')
->where('aid',$agentData['id'])
$RechargeRecords = new RechargeRecords();
$list = Db::name('recharge_records')
->where('user_id',$userData['id'])
->field('recharge_amount,residue_amount,trade_type,recharge_time')
->order('id' ,'desc')
->paginate($limit);
$listArr = $list->items();
$trade_type = [1 => '上分', 3 => '支付宝'];
foreach ($listArr as &$item) {
give_symbol($item['recharge_amount']);
$item['trade_type'] = $trade_type[$item['trade_type']];
$item['trade_type'] = $RechargeRecords->tradeType[$item['trade_type']];
$item['recharge_time'] = date("m月d日 H:i",strtotime($item['recharge_time']));
}
@ -125,19 +125,21 @@ class AgentTeam extends BaseController
$agentUser = $this->request->userInfo;
validate(Agent::class)->scene('scores')->check($request);
$checkCodeRes = validate(Agent::class)->validateUserInfo($agentUser['id'],$request['user_id']);
if ($checkCodeRes !== true) return $this->renderError($checkCodeRes);
$user_id = $request['user_id']; # 用户id
$quota = $request['quota']; # 额度
# 检测代理余额是否足够
$inspectRes = AgentUser::inspectBalance($agentUser['id'],$quota);
$inspectRes = User::inspectBalance($agentUser['id'],$quota);
if (!$inspectRes['status']) throw new ValidateException($inspectRes['msg']);
# 开启事务
$connection->startTrans();
# 扣减代理余额
$agentBalance = AgentUser::decrBalance($agentUser['id'],$quota);
$agentBalance = User::decrBalance($agentUser['id'],$quota);
# 用户上分记录
AgentUpScoresRecords::createRecords($agentUser['id'],$user_id,$quota,$agentBalance);
@ -146,7 +148,7 @@ class AgentTeam extends BaseController
$userBalance = User::incrBalance($user_id,$quota);
# 用户充值记录-上分
RechargeRecords::createRecords($user_id,$quota,$userBalance,1);
RechargeRecords::createRecords($user_id,$quota,$userBalance,1,1,$agentUser['id']);
$connection->commit();
return $this->renderSuccess('上分成功');
@ -173,6 +175,8 @@ class AgentTeam extends BaseController
try {
$agentUser = $this->request->userInfo;
validate(Agent::class)->scene('scores')->check($request);
$checkCodeRes = validate(Agent::class)->validateUserInfo($agentUser['id'],$request['user_id']);
if ($checkCodeRes !== true) return $this->renderError($checkCodeRes);
$user_id = $request['user_id']; # 用户id
$quota = $request['quota']; # 额度
@ -185,7 +189,7 @@ class AgentTeam extends BaseController
$connection->startTrans();
# 增加代理可提余额
$agentBalance = AgentUser::incrWithdrawalBalance($agentUser['id'],$quota);
$agentBalance = User::incrWithdrawalBalance($agentUser['id'],$quota);
# 用户下分记录
AgentDownScoresRecords::createRecords($agentUser['id'],$user_id,$quota,$agentBalance);
@ -194,7 +198,7 @@ class AgentTeam extends BaseController
$userBalance = User::decrWithdrawalBalance($user_id,$quota);
# 用户提现记录-下分
WithdrawalRecords::createRecords($user_id,$quota,$userBalance,1);
WithdrawalRecords::createRecords($user_id,$quota,$userBalance,1,1,$agentUser['id']);
$connection->commit();
return $this->renderSuccess('下分成功');
@ -216,9 +220,9 @@ class AgentTeam extends BaseController
{
$agentUser = $this->request->userInfo;
$user = AgentUser::find($agentUser['id']);
$userInfo = AgentInfo::where('aid',$agentUser['id'])->find();
return $this->renderSuccess('数据返回成功',['code' => $user->invite_code]);
return $this->renderSuccess('数据返回成功',['code' => $userInfo->invite_code]);
}
/**
@ -232,7 +236,7 @@ class AgentTeam extends BaseController
{
$agentUser = $this->request->userInfo;
$user = AgentUser::find($agentUser['id']);
$user = User::find($agentUser['id']);
return $this->renderSuccess('数据返回成功',[
'aid' => $user->id,
@ -258,9 +262,9 @@ class AgentTeam extends BaseController
// 验证代理输入
validate(Agent::class)->scene('modifyPassword')->check($data);
$userModel = new AgentUser();
$userModel = new User();
$user = $userModel->retrieve(['password' => $data['password'],'aid' => $this->request->userInfo['id']]);
$user = $userModel->retrieve(['password' => $data['password'],'user_id' => $this->request->userInfo['id']]);
if ($user['status']) {
return $this->renderSuccess('修改成功');
@ -363,9 +367,7 @@ class AgentTeam extends BaseController
*/
public function LogOut()
{
Session::delete('login_agent_user_data');
// $login_agent_user_data = Cache::store('redis')->get('login_agent_user_data');
// if ($login_agent_user_data) Cache::store('redis')->delete('login_agent_user_data');
Session::delete('login_user_data');
return $this->renderSuccess('退出登陆成功');
}
}

107
app/controller/Passport.php

@ -6,7 +6,6 @@ use app\BaseController;
use app\common\lib\sms\AliSms\AliSms;
use app\logic\InitData;
use app\model\AdminUser;
use app\model\AgentUser;
use app\model\Pincode;
use app\model\User as UserModel;
use app\validate\Passport as PassportValidate;
@ -268,48 +267,55 @@ class Passport extends BaseController
*/
public function agentLogin()
{
$data = Request::param();
$count = 0;
$defaultCount = 3;# 默认登陆三次提示验证码
try {
$cookie_name = 'login_count'.$_SERVER['HTTP_HOST'];
// 验证用户输入
validate(PassportValidate::class)->scene('agentLogin')->check($data);
# 验证码验证
if ($count = Cookie::get($cookie_name) ?: 0) {
Cookie::set($cookie_name,$count+1);
} else {
Cookie::set($cookie_name,1);
}
if ($count > $defaultCount) {
$this->validate($data,['captcha|验证码'=>'require|captcha']);
}
// 管理员登陆
$agentUser = AgentUser::login($data);
if ($agentUser['status'] == 1) {
$userinfo = ['id' => $agentUser['data']['id'], 'avatar' => get_image_url($agentUser['data']['avatar']), 'time' => time()];
$token = ['token'=>signToken($userinfo)];
Cookie::delete($cookie_name);
return $this->renderSuccess('登陆成功',$token);
} else {
throw new ValidateException($agentUser['msg']);
}
} catch (ValidateException $exception) {
$data = ['captcha_img' => ''];
if ($count >= $defaultCount) $data['captcha_img'] = captcha_src();
return $this->renderError($exception->getMessage(),$data);
}
return $this->renderError('已弃用');
// $data = Request::param();
//
// $count = 0;
// $defaultCount = 3;# 默认登陆三次提示验证码
// try {
//
// $cookie_name = 'login_count'.$_SERVER['HTTP_HOST'];
// // 验证用户输入
// validate(PassportValidate::class)->scene('agentLogin')->check($data);
//
// # 验证码验证
// if ($count = Cookie::get($cookie_name) ?: 0) {
// Cookie::set($cookie_name,$count+1);
// } else {
// Cookie::set($cookie_name,1);
// }
// if ($count > $defaultCount) {
// $this->validate($data,['captcha|验证码'=>'require|captcha']);
// }
//
// // 管理员登陆
// $agentUser = AgentUser::login($data);
//
// if ($agentUser['status'] == 1) {
//
// $userinfo = ['id' => $agentUser['data']['id'], 'avatar' => get_image_url($agentUser['data']['avatar']), 'time' => time()];
// $token = ['token'=>signToken($userinfo)];
//
// Cookie::delete($cookie_name);
// return $this->renderSuccess('登陆成功',$token);
// } else {
// throw new ValidateException($agentUser['msg']);
// }
// } catch (ValidateException $exception) {
//
// $data = ['captcha_img' => ''];
// if ($count >= $defaultCount) $data['captcha_img'] = captcha_src();
// return $this->renderError($exception->getMessage(),$data);
// }
}
/**
* 统一登录接口
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function mixedLogin()
{
@ -340,14 +346,19 @@ class Passport extends BaseController
$this->validate($param,['captcha|验证码'=>'require|captcha']);
}
# 登录
# 用户 代理 登录
$data = $param;
$data['phone'] = $param['account_number'];
$userModel = new UserModel();
$user = $userModel->login($data);
if ($user['status']) {
$userinfo = ['id' => $user['data']['id'], 'avatar' => get_image_url($user['data']['avatar']), 'time' => time()];
$token = ['token'=>signToken($userinfo),'type' => 3];
$userinfo = [
'id' => $user['data']['id'],
'avatar' => get_image_url($user['data']['avatar']),
'time' => time(),
'identity' => $user['data']['identity']
];
$token = ['token'=>signToken($userinfo),'type' => $user['data']['identity']];
Cookie::delete($cookie_name);
return $this->renderSuccess('登陆成功',$token);
}
@ -359,14 +370,6 @@ class Passport extends BaseController
Cookie::delete($cookie_name);
return $this->renderSuccess('登陆成功',$token);
}
// 代理登陆
$agentUser = AgentUser::login($data);
if ($agentUser['status']) {
$userinfo = ['id' => $agentUser['data']['id'], 'avatar' => get_image_url($agentUser['data']['avatar']), 'time' => time()];
$token = ['token'=>signToken($userinfo),'type' => 2];
Cookie::delete($cookie_name);
return $this->renderSuccess('登陆成功',$token);
}
throw new ValidateException('账号或密码,不正确');
} catch (ValidateException $validateException) {

3
app/middleware/CheckAgent.php

@ -29,8 +29,7 @@ class CheckAgent
if (!Session::get('login_user_data')) {
throw new Exception('代理未登陆,请先登陆后操作',201);
}
$user = User::find($userinfo['data']['id']);
if ($user['identity'] != 2) {
if ($userinfo['data']['identity'] != 2) {
throw new Exception('非代理身份无法操作',400);
}
}

7
app/validate/Agent.php

@ -38,4 +38,11 @@ class Agent extends Validate
'register' => ['phone','password','rebate_ratio'],
'modifyPassword' => ['password','repassword'],
];
public function validateUserInfo($aid,$user_id)
{
$query = \app\model\User::where('aid',$aid)->where('id',$user_id)->find();
if (!$query) return '当前用户不在你管理之下';
return true;
}
}

Loading…
Cancel
Save