Takecash.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. namespace app\admin\controller;
  3. use app\common\controller\Backend;
  4. use think\Db;
  5. /**
  6. * 用户提现申请
  7. *
  8. * @icon fa fa-circle-o
  9. */
  10. class Takecash extends Backend
  11. {
  12. /**
  13. * Takecash模型对象
  14. * @var \app\admin\model\Takecash
  15. */
  16. protected $model = null;
  17. public function _initialize()
  18. {
  19. parent::_initialize();
  20. $this->model = new \app\admin\model\Takecash;
  21. $this->view->assign("typeList", $this->model->getTypeList());
  22. $this->view->assign("statusList", $this->model->getStatusList());
  23. }
  24. public function import()
  25. {
  26. parent::import();
  27. }
  28. /**
  29. * 查看
  30. */
  31. public function index()
  32. {
  33. //当前是否为关联查询
  34. $this->relationSearch = true;
  35. //设置过滤方法
  36. $this->request->filter(['strip_tags', 'trim']);
  37. if ($this->request->isAjax()) {
  38. //如果发送的来源是Selectpage,则转发到Selectpage
  39. if ($this->request->request('keyField')) {
  40. return $this->selectpage();
  41. }
  42. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  43. $list = $this->model
  44. ->with(['user'])
  45. ->where($where)
  46. ->order($sort, $order)
  47. ->paginate($limit);
  48. foreach ($list as $row) {
  49. $row->getRelation('user')->visible(['username','nickname']);
  50. }
  51. $list2 = collection($list->items())->toArray();
  52. foreach($list2 as $key => &$info){
  53. $account_info = json_decode($info['acount_json'],true);
  54. if($info['type'] == 2){
  55. $info['account_info'] = '姓名:'.$account_info['truename'].',身份证:'.$account_info['idcard'].',账号:'.$account_info['bank_no'];
  56. }else{
  57. $info['account_info'] = '姓名:'.$account_info['truename'].',身份证:'.$account_info['idcard'].',账号:'.$account_info['pay_no'];
  58. }
  59. }
  60. $result = array("total" => $list->total(), "rows" => $list2);
  61. return json($result);
  62. }
  63. return $this->view->fetch();
  64. }
  65. /**
  66. * 审核
  67. */
  68. public function audit(){
  69. $id = input('id');
  70. $info = Db::name('take_cash')
  71. ->where('id',$id)
  72. ->find();
  73. if ($this->request->isPost()) {
  74. $status = input('status',0);
  75. $data = [
  76. 'status' => $status,
  77. 'auditremark' => input('auditremark',''),
  78. 'audittime' => strtotime(input('audittime','')),
  79. 'updatetime' => time(),
  80. ];
  81. Db::startTrans();
  82. $rs = Db::name('take_cash')->where('id',$id)->update($data);
  83. if($status == 1){
  84. //系统消息
  85. $msg_id = \app\common\model\Message::addMessage($info['user_id'],'提现审核','提现审核已经通过');
  86. $shouyi_result = $this->takecash($info['user_id'],$info['jewel'],'take_cash',$id);
  87. if($shouyi_result !== true){
  88. Db::rollback();
  89. $this->error($shouyi_result);
  90. }
  91. }elseif($status == 2){
  92. //还钱
  93. $wallet_rs = model('wallet')->lockChangeAccountRemain($info['user_id'],'jewel',$info['jewel'],31,'提现被拒返回:'.$info['jewel'],'take_cash',$info['id']);
  94. if($wallet_rs['status'] === false){
  95. Db::rollback();
  96. $this->error($wallet_rs['msg']);
  97. }
  98. //系统消息
  99. $msg_id = \app\common\model\Message::addMessage($info['user_id'],'提现审核','提现审核已经被拒绝');
  100. }
  101. Db::commit();
  102. $this->success('审核完成');
  103. }
  104. $account_info = json_decode($info['acount_json'],true);
  105. if($info['type'] == 2){
  106. $info['account_info'] = '姓名:'.$account_info['truename'].',身份证:'.$account_info['idcard'].',账号:'.$account_info['bank_no'];
  107. }else{
  108. $info['account_info'] = '姓名:'.$account_info['truename'].',身份证:'.$account_info['idcard'].',账号:'.$account_info['pay_no'];
  109. }
  110. $this->assign('row',$info);
  111. return $this->view->fetch();
  112. }
  113. //普通邀请关系,提现
  114. public function takecash($user_id,$gold,$table,$table_id){
  115. //精确小数点
  116. bcscale(1);
  117. //收益者本人
  118. $userinfo = Db::name('user')->field('username,invite_uid')->where('id',$user_id)->find();
  119. //提现往上(直推)返一级
  120. if(!empty($userinfo['invite_uid'])){
  121. $takecash_invite_rate = config('site.invite_takecash_rate');
  122. $jewel = bcdiv(bcmul($gold,$takecash_invite_rate),100);
  123. $result = model('Wallet')->lockChangeAccountRemain($userinfo['invite_uid'],'jewel',$jewel,42, $userinfo['username'].'提现',$table,$table_id);
  124. if($result['status']===false)
  125. {
  126. return $result['msg'];
  127. }
  128. }
  129. return true;
  130. }
  131. }