文件
mashangyoujiu/Application/Delivery/Controller/PosterMoneyController.class.php

182 行
6.1 KiB
PHP
可执行文件

<?php
namespace app\api\controller\delivery\poster;
use addons\paotui\service\Poster;
use app\admin\model\paotui\Posterextract;
use app\admin\model\paotui\PosterExtractType;
use think\Db;
use think\Validate;
/**
* 佣金接口
*/
class Money extends PosterApi
{
// 无需登录的接口,*表示全部
protected $noNeedLogin = [];
// 无需鉴权的接口,*表示全部
protected $noNeedRight = "*";
public function _initialize()
{
parent::_initialize();
}
/**
* 获取可提现金额、今日收益、今日完成订单、本周收益
*/
public function info(){
$posterService = new Poster();
$data['allowExtractMoney'] = $posterService->getAllowExtractMoney($this->auth->id); //可提现金额
$data['weekMoney'] = $posterService->getWeekMoney($this->auth->id); //获取本周收益
$data['todayMoney'] = $posterService->getTodayMoney($this->auth->id); //今日收益
$this->success("请求成功",$data);
}
/**
* 获取最少提现金额
*/
public function getMinExtractMoney(){
$posterModel = new \app\admin\model\paotui\Poster();
$posterInfo = $posterModel->where(['id'=>$this->auth->id,'status'=>1])->find();
if(empty($posterInfo)){
$this->error("当前账号已被锁定,请联系客服");
}
$minExtractMoney = \addons\paotui\service\Config::get('min_extract_money');
$this->success("请求成功",$minExtractMoney);
}
/**
* 获取服务费率
*/
public function fee_scale(){
$this->success("请求成功",round(\addons\paotui\service\Config::get('fee_scale')/100,2));
}
/**
* 佣金记录
*/
public function index(){
$page = $this->request->post("page");
$limit = $this->request->post("limit");
$where = ['money_log.poster_id'=>$this->auth->id];
$posterService = new Poster();
$data = $posterService->getMoneyLogList($where,$page,$limit);
$this->success("请求成功",$data);
}
/**
* 提现记录
*/
public function extract_list(){
$page = $this->request->post("page");
$limit = $this->request->post("limit");
$where = ['poster_id'=>$this->auth->id];
$posterService = new Poster();
$data = $posterService->getExtractList($where,$page,$limit);
$this->success("请求成功",$data);
}
/**
* 申请提现
*/
public function extract(){
$money = $this->request->post("money");
$type = $this->request->post("type");
$posterModel = new \app\admin\model\paotui\Poster();
$posterInfo = $posterModel->where(['id'=>$this->auth->id,'status'=>1])->find();
if(empty($posterInfo)){
$this->error("当前账号已被锁定,请联系客户");
}
//查看最小提交金额
$minExtractMoney = \addons\paotui\service\Config::get('min_extract_money');
if($money < $minExtractMoney){
$this->error("最小提现金额为".$minExtractMoney."元");
}
Db::startTrans();
$posterService = new Poster();
$allowExtractMoney = $posterService->getAllowExtractMoney($this->auth->id);
if($money > $allowExtractMoney){
$this->error("当前最大可提现金额为".$allowExtractMoney."元");
}
$extractTypeModel = new PosterExtractType();
$extractTypeInfo = $extractTypeModel->where(['poster_id'=>$this->auth->id])->find();
if(empty($extractTypeInfo)){
$this->error("请先维护提现信息!");
}
switch ($type){
case 1: //微信
$data['wechat'] = $extractTypeInfo['wechat'];
$rule = [
'wechat' => 'require',
];
break;
case 2: //支付宝
$data['alipay'] = $extractTypeInfo['alipay'];
$data['alipay_name'] = $extractTypeInfo['alipay_name'];
$rule = [
'alipay' => 'require',
'alipay_name' => 'require',
];
break;
case 3: //银行卡
$data['bank_name'] = $extractTypeInfo['bank_name'];
$data['bank_code'] = $extractTypeInfo['bank_code'];
$data['name'] = $extractTypeInfo['name'];
$rule = [
'bank_name' => 'require',
'bank_code' => 'require',
'name'=>'require',
];
break;
default:
$this->error("请选择提现方式!");
break;
}
$msg = [
'bank_name.require' => '请完善开户行!',
'bank_code.require' => '请完善银行卡号!',
'name.require' => '请完善账户名称!',
'wechat.require' => '请完善微信号!',
'alipay.require' => '请完善支付宝账号!',
'alipay_name.require' => '请完善支付宝姓名!'
];
$validate = new Validate($rule, $msg);
$result = $validate->check($data);
if (!$result) {
$this->error(__($validate->getError()), null,[]);
}
$data['type'] = $type;
$data['poster_id'] = $this->auth->id;
$data['extract_price'] = $money;
$data['fee_scale'] = bcmul(round(\addons\paotui\service\Config::get('fee_scale')/100,4),100);
$data['true_price'] = bcsub($money,$money*round(\addons\paotui\service\Config::get('fee_scale')/100,4),2);
$data['mark'] = "佣金提现";
$posterExtractModel = new Posterextract();
if(!$posterExtractModel->save($data)){
$this->error("提现申请失败,请稍候再试或联系客服");
}
Db::commit();
$this->success("提现申请成功,请等待审核通过");
}
}