admin/addon/fenxiao/api/controller/Withdraw.php

210 lines
8.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* ThinkShop商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 成都云之牛科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.cdcloudshop.com
* =========================================================
*/
namespace addon\fenxiao\api\controller;
use addon\fenxiao\model\Config as ConfigModel;
use addon\fenxiao\model\Fenxiao as FenxiaoModel;
use addon\fenxiao\model\FenxiaoWithdraw;
use app\api\controller\BaseApi;
use app\model\member\Member;
use app\model\member\Member as MemberModel;
/**
* 分销提现
*/
class Withdraw extends BaseApi
{
// /**
// * 申请提现
// */
// public function apply()
// {
// $token = $this->checkToken();
// if ($token['code'] < 0) return $this->response($token);
//
// $member_id = $this->member_id;
// $money = isset($this->params['money']) ? $this->params['money'] : '';
//
// if (empty($money)) {
// return $this->response($this->error('', 'REQUEST_MONEY'));
// }
//
// $data = [
// 'member_id' => $member_id,
// 'money' => $money,
// 'site_id' => $this->site_id
// ];
//
// $withdraw_model = new FenxiaoWithdraw();
// $res = $withdraw_model->addFenxiaoWithdraw($data);
//
// return $this->response($res);
// }
/**
* 提现记录分页
* @return false|string
*/
public function page()
{
$token = $this->checkToken();
if ($token['code'] < 0) return $this->response($token);
$page = isset($this->params['page']) ? $this->params['page'] : 1;
$page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS;
$status = isset($this->params['status']) ? $this->params['status'] : 0;// 当前状态 1待审核 2待转账 3已转账 -1 已拒绝
$condition = [
['member_id', '=', $this->member_id]
];
if (!empty($status)) {
$condition[] = ['status', '=', $status];
}
$order = 'id desc';
$withdraw_model = new FenxiaoWithdraw();
$list = $withdraw_model->getFenxiaoWithdrawPageList($condition, $page, $page_size, $order);
foreach($list['data']['list'] as $k => $v){
$list['data']['list'][$k] = $withdraw_model->tran($v);
}
return $this->response($list);
}
/**
* 获取转账方式
* @return false|string
*/
public function transferType()
{
$token = $this->checkToken();
if ($token[ 'code' ] < 0) return $this->response($token);
$member_model = new Member();
$member_info = $member_model->getMemberInfo([ [ 'member_id', '=', $token[ 'data' ][ 'member_id' ] ] ], 'site_id,wx_openid,weapp_openid');
$withdraw_config_model = new \addon\fenxiao\model\Config();
$transfer_type_list = $withdraw_config_model->getTransferType($member_info[ 'data' ][ 'site_id' ], 'shop');
if (empty($member_info[ 'data' ][ 'wx_openid' ]) && empty($member_info[ 'data' ][ 'weapp_openid' ])) {
unset($transfer_type_list[ 'wechatpay' ]);
}
return $this->response($this->success($transfer_type_list));
}
/**
* 申请提现
* @return mixed
*/
public function apply()
{
$token = $this->checkToken();
if ($token[ 'code' ] < 0) return $this->response($token);
$apply_money = $this->params[ 'apply_money' ] ?? 0;
$transfer_type = $this->params[ 'transfer_type' ] ?? '';//提现方式
$realname = $this->params[ 'realname' ] ?? '';//真实姓名
$bank_name = $this->params[ 'bank_name' ] ?? '';//银行名称
$account_number = $this->params[ 'account_number' ] ?? '';//账号名称
$mobile = $this->params[ 'mobile' ] ?? '';//手机号
$app_type = $this->params[ 'app_type' ];
$fenxiao_withdraw_model = new FenxiaoWithdraw();
$data = array (
'member_id' => $this->member_id,
'transfer_type' => $transfer_type,
'realname' => $realname,
'bank_name' => $bank_name,
'account_number' => $account_number,
'apply_money' => $apply_money,
'mobile' => $mobile,
'app_type' => $app_type
);
$result = $fenxiao_withdraw_model->apply($data, $this->site_id, 'shop');
return $this->response($result);
}
/**
* 提现详情
* @return mixed
*/
public function detail()
{
$token = $this->checkToken();
if ($token[ 'code' ] < 0) return $this->response($token);
$id = $this->params[ 'id' ] ?? 0;
$fenxiao_withdraw_model = new FenxiaoWithdraw();
$params = array (
'id' => $id,
'site_id' => $this->site_id
);
$result = $fenxiao_withdraw_model->getFenxiaoWithdrawDetail($params);
return $this->response($result);
}
/**
* Common: 桑果转赠
* Author: wu-hui
* Time: 2023/02/16 17:05
* @return false|string
*/
public function integralMoneyTransfer(){
// 用户登录
$token = $this->checkToken();
if ($token['code'] < 0) return $this->response($token);
// 参数获取
$to_username = input('username');
$apply_money = abs(input('apply_money'));
if($apply_money % 100 != 0){
return $this->response($this->error('','金额需为100的整数倍'));
}
$to_where = [
['site_id', '=', $this->site_id],
['username|mobile|rcode', '=', $to_username],
];
if ($to_username) {
$res = (new ConfigModel())->getFenxiaoWithdrawConfig($this->site_id)['data']['value'];
// 获取赠送人信息
$currentMemberInfo = (new MemberModel())->getMemberInfo([['member_id','=',$this->member_id]],'member_id,username,status')['data'];
// 获取接受者会员账号信息
$memberInfo = (new MemberModel())->getMemberInfo($to_where,'member_id,username,status,pay_password')['data'];
if(empty($memberInfo) || $memberInfo['status'] != 1) return $this->response($this->error('会员账号不存在!'));
// 获取接受者分销商信息
$fenXiaoInfo = (new FenxiaoModel())->getFenxiaoInfo([['member_id','=',$memberInfo['member_id']]],'member_id,fenxiao_name,fenxiao_id,status,parent')['data'];
if (empty($fenXiaoInfo) || $fenXiaoInfo['status'] != 1) return $this->response($this->error('当前会员不是分销商,不能接收桑果!'));
// // 根据 桑果转让限制 进行对应的判断操作 1=推荐关系2=亲属线关系3=全平台
// if(in_array((int)$res['co_money_transfer_limit'],[1,2])){
// $data['member_id'] = $this->member_id;
// $data['site_id'] = $this->site_id;
// $data['field'] = 'member_id';
// $lower = event('UserNodeDownAll',$data,TRUE);
// $mIds = [];
// if(!empty($lower)) $mIds = array_column($lower,'member_id');
// // if(!in_array($memberInfo['member_id'],$mIds) && $res['co_money_transfer_limit'] == 1) return $this->response($this->error('非下属不可转让'));
// $p = event('UserUpNodeData',$data,TRUE);
// $pmIds = [];
// if(!empty($p)) $pmIds = array_column($p,'member_id');
// // if(!in_array($memberInfo['member_id'],array_merge($mIds,$pmIds)) && $res['co_money_transfer_limit'] == 2) return $this->response($this->error('非亲属关系无法转账'));
// }
// 判断是否转让给自己
$fenXiaoInfo['username'] = $memberInfo['username'];
if ($this->member_id == $memberInfo['member_id']) return $this->response($this->error('不能转账给自己'));
// 转赠操作
$result = (new FenxiaoWithdraw())->integralMoneyTransfer($fenXiaoInfo, $this->member_id, abs($apply_money), $this->site_id);
return $this->response($result);
} else {
return $this->response($this->error('转入账号不能为空'));
}
}
}