123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use think\Db;
- /**
- * 会员中心
- */
- class Money extends Api
- {
- protected $noNeedLogin = [];
- protected $noNeedRight = '*';
- //配置
- public function withdraw_config(){
- $data = [
- 'score' => model('wallet')->getWallet($this->auth->id,'score'),
- 'score_bufen' => model('wallet')->getWallet($this->auth->id,'shouyi'),
- 'min_withdrawal_money' => 1,
- 'max_withdrawal_money' => 50000,
- 'type_1' => Db::name('user_withdraw')->where('user_id',$this->auth->id)->where('type',1)->where('status',1)->field('realname,banknumber,bankname')->find(),
- 'type_2' => Db::name('user_withdraw')->where('user_id',$this->auth->id)->where('type',2)->where('status',1)->field('realname,banknumber,bankname')->find(),
- 'type_3' => Db::name('user_withdraw')->where('user_id',$this->auth->id)->where('type',3)->where('status',1)->field('realname,banknumber,bankname')->find(),
- ];
- $this->success(1,$data);
- }
- //提现
- public function scorewithdraw() {
- $type = input('type', 0, 'intval'); //类型:1=支付宝,2=微信,3=银行
- $from = input('from','all');
- if(!in_array($type,[1,2,3])){
- $this->error('参数错误');
- }
- if(!in_array($from,['all','bufen'])){
- $this->error('参数错误');
- }
- $check = Db::name('user_withdraw')->where('user_id',$this->auth->id)->where('status',0)->find();
- if($check){
- $this->error('目前还有兑换在审核中,请稍后在兑换');
- }
- //开启事务
- Db::startTrans();
- //余额查询
- if($from == 'all'){
- $user_money = model('wallet')->getWallet($this->auth->id,'score');
- }else{
- $user_money = model('wallet')->getWallet($this->auth->id,'shouyi');
- }
- if ($user_money <= 0) {
- Db::rollback();
- $this->error('积分不足');
- }
- $data = [];
- $data['order_no'] = createUniqueNo('T',$this->auth->id);
- $data['user_id'] = $this->auth->id;
- $data['score'] = $user_money;
- $data['type'] = $type;
- $data['realname'] = input('realname','');
- $data['banknumber'] = input('banknumber','');
- $data['bankname'] = input('bankname','');
- $data['createtime'] = time();
- $data['status'] = 0;
- $data['from'] = ($from == 'all') ? 1 : 2; //all=1,bufen=2
- //添加提现记录
- $log_id = Db::name('user_withdraw')->insertGetId($data);
- if (!$log_id) {
- Db::rollback();
- $this->error('申请兑换失败');
- }
- //扣收益
- if($from == 'bufen'){
- $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id,'shouyi',-$data['score'],2,'积分兑换','user_withdraw',$log_id);
- if ($rs_wallet['status'] == false) {
- $this->error($rs_wallet['msg']);
- Db::rollback();
- }
- }
- //扣积分
- $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id,'score',-$data['score'],2,'积分兑换','user_withdraw',$log_id);
- if ($rs_wallet['status'] == false) {
- $this->error($rs_wallet['msg']);
- Db::rollback();
- }
- Db::commit();
- $this->success('申请兑换成功,请等待审核');
- }
- //废弃的提现
- public function old_scorewithdraw() {
- $type = input('type', 0, 'intval'); //类型:1=支付宝,2=微信,3=银行
- /*$money = input('score', '', 'intval');
- if ($money <= 0) {
- $this->error('请输入正确兑换积分');
- }*/
- $check = Db::name('user_withdraw')->where('user_id',$this->auth->id)->where('status',0)->find();
- if($check){
- $this->error('目前还有兑换在审核中,请稍后在兑换');
- }
- //余额查询
- $user_money = model('wallet')->getWallet($this->auth->id,'score');
- /*if ($user_money < $money) {
- $this->error('余额不足');
- }*/
- if ($user_money <= 0) {
- $this->error('积分不足');
- }
- //查询最低最高提现金额
- /*$min_withdrawal_money = config('site.min_withdrawal_money') ? config('site.min_withdrawal_money') : 1;
- $max_withdrawal_money = config('site.max_withdrawal_money') ? config('site.max_withdrawal_money') : 50000;
- if ($money < $min_withdrawal_money) {
- $this->error('最低提现金额' . $min_withdrawal_money . '元');
- }
- if ($money > $max_withdrawal_money) {
- $this->error('最高提现金额' . $max_withdrawal_money . '元');
- }*/
- $data['order_no'] = createUniqueNo('T',$this->auth->id);
- $data['user_id'] = $this->auth->id;
- // $data['score'] = $money;
- $data['score'] = $user_money;
- $data['type'] = $type;
- $data['realname'] = input('realname','');
- $data['banknumber'] = input('banknumber','');
- $data['bankname'] = input('bankname','');
- $data['createtime'] = time();
- $data['status'] = 0;
- //开启事务
- Db::startTrans();
- //添加提现记录
- $log_id = Db::name('user_withdraw')->insertGetId($data);
- if (!$log_id) {
- Db::rollback();
- $this->error('申请兑换失败');
- }
- $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id,'score',-$data['score'],2,'积分兑换','user_withdraw',$log_id);
- if ($rs_wallet['status'] == false) {
- $this->error($rs_wallet['msg']);
- Db::rollback();
- }
- Db::commit();
- $this->success('申请兑换成功,请等待审核');
- }
- //用户钱包流水
- public function scorelog(){
- $list = Db::name('user_score_log')->field('id,change_value,log_type,createtime')->where('user_id',$this->auth->id)->autopage()->order('id desc')->select();
- foreach($list as $key => &$val){
- $val['log_type_text'] = model('wallet')->getlogtype($val['log_type']);
- }
- $this->success('success',$list);
- }
- }
|