Files
juipphp/app/agent/controller/Userinfo.php

369 lines
12 KiB
PHP
Raw Normal View History

2021-02-17 18:42:35 +08:00
<?php
namespace app\agent\controller;
use fastphp\base\Controller;
use app\agent\model\AgentUser;
2021-02-21 18:18:26 +08:00
use app\agent\model\ProductUserPrice;
2021-05-11 15:00:13 +08:00
use app\agent\model\ProductPackage;
use app\agent\model\Product as ProductModel;
2021-02-21 18:18:26 +08:00
use app\agent\model\AgentPrice as AgentPriceModel;
2021-02-17 18:42:35 +08:00
use app\agent\model\User as UserModel;
2021-02-26 11:01:06 +08:00
use app\agent\model\AgentScore as AgentScoreModel;
2021-04-20 15:25:00 +08:00
use app\user\model\ProductPriceScheme;
2021-02-26 11:01:06 +08:00
use app\agent\model\CashOut as CashOutModel;
2021-02-17 18:42:35 +08:00
class Userinfo extends Controller
{
//代理商首页
public function index()
{
$agent_user_model = new AgentUser;
2021-04-20 15:25:00 +08:00
$discount_model = new ProductPriceScheme;
2021-02-17 18:42:35 +08:00
$userinfo = $agent_user_model->getOne(['id'=>$this->userinfo['OperaterID']]);
$userinfo['id'] = base64_encode($userinfo['id']);
2021-04-20 15:25:00 +08:00
$userinfo['discount'] = $discount_model->getOne(['Id'=>$userinfo['discount_id']])['Name'];
2021-02-17 18:42:35 +08:00
$info = [
'Code'=>10000,
'data'=>$userinfo
];
echo json_encode($info);
}
2021-02-21 18:18:26 +08:00
//代理商修改密码
public function updatePass()
{
$data = json_decode(file_get_contents("php://input"), true);
$agent_user_model = new AgentUser;
$userinfo = $agent_user_model->getOne(['id'=>$this->userinfo['OperaterID']]);
if($userinfo['password'] != cToMd5($data['old_pass'])){
$info = [
'Code' => -10000,
'Message' => '旧密码错误',
];
echo json_encode($info);
die;
}
$update = [
'password' => cToMd5($data['new_pass'])
];
if($agent_user_model->updateOne(['id'=>$this->userinfo['OperaterID']],$update)){
$info = [
'Code' => 10000,
'Message' => '更新成功',
];
echo json_encode($info);
die;
} else {
$info = [
'Code' => -10000,
'Message' => '更新失败',
];
echo json_encode($info);
}
}
2021-02-26 11:01:06 +08:00
//提现
public function cashOut()
{
$post = json_decode(file_get_contents("php://input"), true);
$data = [];
$data['userid'] = $this->userinfo['OperaterID'];
$data['username'] = $this->userinfo['LoginName'];
$data['money'] = $post['cash_out_money'];
$data['apply_reason'] = $post['reason'];
$data['alipay_account'] = $post['alipay_account'];
$data['real_name'] = $post['real_name'];
$data['is_agent'] = 1;
$agent_user_model = new AgentUser;
$agent_info = $agent_user_model->getOne(['id'=>$data['userid']]);
$user_rest = $agent_info['account'];
$rest = $user_rest - $post['cash_out_money'];
if ($rest < 0){
echo json_encode(['Code'=>-10000,]);
die;
} else {
$agent_user_model->where(['id'=>$data['userid']])->update(['account'=>$rest]);
$cash = new CashOutModel;
$status = $cash->add($data);
$score_model = new AgentScoreModel;
$score['agent_id'] = $data['userid'];
$score['order_id'] = 0;
$score['score_type'] = 4;
$score['score_value'] = $data['money'];
$score['agent_name'] = $this->userinfo['LoginName'];
$score['op_user'] = $this->userinfo['LoginName'];
$score['rest_amount1'] = $agent_info['account'];
$score['rest_amount2'] = $rest;
$score['remark'] = '提现扣除';
$score_model->add($score);
}
echo json_encode(['Code'=>10000,]);
}
2021-02-21 18:18:26 +08:00
//验证是否是该代理的用户
public function verify()
{
$data = json_decode(file_get_contents("php://input"), true);
$user_id = $data['user_id'];
$agent_id = $this->userinfo['OperaterID'];
$user_model = new UserModel;
$userinfo = $user_model->getOne(['Id'=>$user_id]);
if($userinfo['agent_id'] != $agent_id){
die;
}
$info = [
'Code' => 20000,
'Message' => '请正确操作',
];
echo json_encode($info);
}
2021-02-17 18:42:35 +08:00
//代理商下的用户
public function getList ()
{
$page = 0;
if (isset($_GET['PageIndex'])) {
$page = ($_GET['PageIndex'] - 1) * 50;
}
$where = [];
if(!empty($_GET['keyWord'])){
$where['LoginCode'] = $_GET['keyWord'];
}
$where['agent_id'] = $this->userinfo['OperaterID'];
$user_model = new UserModel;
2021-04-20 15:25:00 +08:00
$discount_model = new ProductPriceScheme;
2021-02-17 18:42:35 +08:00
$user_list = $user_model->getListPage($where, '*', 'id desc', "$page,50");
2021-04-20 15:25:00 +08:00
//折扣列表
$discount_data = $discount_model->getList();
$discount_list = [];
$discount_list[0] = '原价';
2021-05-11 15:00:13 +08:00
$discount_list[-1] = '专项优惠';
2021-04-20 15:25:00 +08:00
foreach($discount_data as $info) {
$discount_list[$info['Id']] = $info['Name'];
}
2021-02-17 18:42:35 +08:00
foreach ($user_list as &$info){
$info['Password'] = '';
if(empty($info['id_code'])){
$info['is_verify'] = '未认证';
} else {
$info['id_code'] = substr($info['id_code'], 0, 6) . '***';
$info['is_verify'] = $info['is_verify']?'认证成功':'认证失败';
}
2021-04-20 15:25:00 +08:00
$info['discount'] = $discount_list[$info['discount_id']];
2021-02-17 18:42:35 +08:00
}
$data = [
'Code' => 10000,
'Data' => $user_list,
'Message' => '',
'TotalCount' => (int)$user_model->getCount($where)['count'],
];
echo json_encode($data);
}
2021-02-21 18:18:26 +08:00
//获取代理最低价
public function getAgentPrice()
{
$data = json_decode(file_get_contents("php://input"), true);
2021-05-11 15:26:51 +08:00
$agent_user_model = new AgentUser;
$package_model = new ProductPackage;
$product_model = new ProductModel;
$discount_model = new ProductPriceScheme;
2021-02-21 18:18:26 +08:00
$agent_id = $this->userinfo['OperaterID'];
2021-05-11 15:26:51 +08:00
$agent_info = $agent_user_model->getOne(['id'=>$agent_id]);
//套餐价
$package_price = $package_model->getOne(['Id' => $data['Id']]);
2021-02-21 18:18:26 +08:00
2021-05-11 15:26:51 +08:00
//退款价
$refund_price = $product_model->getOne(['Id' => $data['ProductId']]);
2021-07-07 18:29:51 +08:00
$discount = $discount_model->getOne(['Id'=>$agent_info['discount_id']]);
2021-05-11 15:26:51 +08:00
if (empty($discount)){
$retuen_data = [
'Code' => -10000,
'Message' => '请联系管理员设置您的代理价!',
];
echo json_encode($retuen_data);
die;
}
$user_set_price = $package_price['LinePrice'] * $discount['discount'] / 100;
$user_refund_price = $refund_price['RefundDayPrice'] * $discount['discount'] / 100;
$price = [
'price' => $user_set_price,
'refund' => $user_refund_price
];
2021-02-21 18:18:26 +08:00
$retuen_data = [
'Code' => 30000,
'Data' => $price,
'Message' => '',
];
echo json_encode($retuen_data);
}
//设置价格
public function setPrice()
{
$data = json_decode(file_get_contents("php://input"), true);
$price_model = new ProductUserPrice;
2021-05-11 15:00:13 +08:00
$discount_model = new ProductPriceScheme;
$agent_user_model = new AgentUser;
$package_model = new ProductPackage;
$product_model = new ProductModel;
2021-05-11 15:30:16 +08:00
$user_model = new UserModel;
2021-02-21 18:18:26 +08:00
$agent_id = $this->userinfo['OperaterID'];
$where = [
'agent_id' => $agent_id,
'package_id' => $data['PackageId']
];
2021-05-11 15:00:13 +08:00
$agent_info = $agent_user_model->getOne(['id'=>$agent_id]);
$discount = $discount_model->getOne($agent_info['discount_id']);
if (empty($discount)){
$retuen_data = [
'Code' => -10000,
'Message' => '请联系管理员设置您的代理价!',
];
echo json_encode($retuen_data);
die;
}
//套餐价
2021-05-11 15:26:51 +08:00
$package_price = $package_model->getOne(['Id' => $data['PackageId']]);
2021-05-11 15:00:13 +08:00
//退款价
2021-05-11 15:26:51 +08:00
$refund_price = $product_model->getOne(['Id' => $data['ProductId']]);
2021-05-11 15:00:13 +08:00
$user_set_price = $package_price['LinePrice'] * $discount['discount'] / 100;
$user_refund_price = $refund_price['RefundDayPrice'] * $discount['discount'] / 100;
2021-02-21 18:18:26 +08:00
2021-05-11 15:26:51 +08:00
2021-05-11 15:00:13 +08:00
if($data['UserPrice']<$user_set_price || $data['RefundDayPrice']<$user_refund_price){
2021-02-21 18:18:26 +08:00
$retuen_data = [
'Code' => -10000,
2021-05-11 15:00:13 +08:00
'Message' => '低于您的代理价',
2021-02-21 18:18:26 +08:00
];
echo json_encode($retuen_data);
die;
}
$update_data = [
'TenantId' => 0,
'ProductId' => $data['ProductId'],
'PackageId' => $data['PackageId'],
'UserId' => $data['UserId'],
2021-05-11 15:00:13 +08:00
'UserPrice' => abs($data['UserPrice']),
'RefundDayPrice' => abs($data['RefundDayPrice']),
2021-02-21 18:18:26 +08:00
'Status' => 1,
'DeleteTag' => 0
];
$where = [
'PackageId' => $data['PackageId'],
'UserId' => $data['UserId']
];
$user_price = $price_model->getOne($where);
if(empty($user_price)){
$price_model->add($update_data);
} else {
$price_model->updateOne($where,$update_data);
}
2021-05-11 15:30:16 +08:00
$user_model->updateOne(['Id'=>$data['UserId']],['discount_id'=>-1]);
2021-02-21 18:18:26 +08:00
$retuen_data = [
'Code' => 10000,
'Message' => '',
];
echo json_encode($retuen_data);
}
2021-04-20 15:25:00 +08:00
2021-04-20 17:18:17 +08:00
//获取折扣
public function getDiscount()
{
$discount_model = new ProductPriceScheme;
$user_model = new UserModel;
$agent_user_model = new AgentUser;
$agent_id = $this->userinfo['OperaterID'];
$agent_info = $agent_user_model->getOne(['id'=>$agent_id]);
2021-05-11 15:36:35 +08:00
$list = $discount_model->getList(['Id'=>['<',$agent_info['discount_id']]],'*','id asc');
2021-04-20 17:18:17 +08:00
$info = [
'Code' => 10000,
'Data' => $list,
'Message' => '',
'TotalCount' => 8
];
echo json_encode($info);
}
2021-04-20 15:25:00 +08:00
//代理折扣
public function setUserDiscount()
{
$data = json_decode(file_get_contents("php://input"), true);
// dump($data);
if(!isset($data['schemeId'])){
die;
}
$user_model = new UserModel;
$agent_user_model = new AgentUser;
$discount_model = new ProductPriceScheme;
$agent_id = $this->userinfo['OperaterID'];
$agent_info = $agent_user_model->getOne(['id'=>$agent_id]);
//原始折扣
$discount_old = $discount_model->getList(['Id'=>['in',[$data['schemeId'],$agent_info['discount_id']]]],'Id,discount');
$discount_list = [];
foreach($discount_old as $info){
$discount_list[$info['Id']] = $info["discount"];
}
if($discount_list[$data['schemeId']]<=$discount_list[$agent_info['discount_id']]){
$info = [
'Code' => -10000,
'Data' => '',
'Message' => '不能低于您的折扣!',
];
echo json_encode($info);
die;
}
$discount_data = [
'discount_id' => $data['schemeId']
];
$user_model->updateOne(['Id'=>$data['userId']],$discount_data);
$info = [
'Code' => 10000,
'Data' => '',
'Message' => '',
];
echo json_encode($info);
}
2021-02-17 18:42:35 +08:00
}