=', 1]; } else { $where[] = ['b.state', '=', 0]; } $list = Billions::alias('b')->where($where) ->join('order o', 'o.id = b.order_id') ->join('goods g', 'g.id = b.goods_id') ->join('shop s', 's.id = b.shop_id') ->field('b.*, o.order_sn, s.name') ->page($page,$size)->select(); $count = Billions::alias('b')->where($where) ->alias('b') ->join('order o', 'o.id = b.order_id') ->join('goods g', 'g.id = b.goods_id') ->join('shop s', 's.id = b.shop_id') ->count(); // 消费订单笔数 $historyOrder = Billions::where('user_id', $user_id)->count(); // 商家最高补贴 $highSubsidy = Billions::where('user_id', $user_id)->sum('order_price', false); $more = is_more($count, $page, $size); //是否有下一页 $data = [ 'list' => $list, 'page_no' => $page, 'page_size' => $size, 'count' => $count, 'more' => $more, 'historyOrder' => $historyOrder, 'highSubsidy' => $highSubsidy ]; return $data; } // 获取排名 public static function getRanking($billions_id){ $where[] = ['billions_id', '<=', $billions_id]; $where[] = ['state', '=', 0]; return Billions::where($where)->count(); } // 提现进行记录 public static function withdrawRecord($id, $user_id){ Db::startTrans(); try { $billions = Billions::where([ 'billions_id' => $id, 'state' => 0 ])->find(); if ($billions) { Billions::where([ 'billions_id' => $id, 'user_id' => $user_id, ])->update(['state' => 1]); // 查看用户是否有过余额添加记录 $subsidy = SubsidyWithdrawal::where(['user_id' => $user_id])->find(); if ($subsidy) { $subsidy_id = $subsidy->id; SubsidyWithdrawal::where(['user_id' => $user_id])->inc('total_amount', $billions->subsidy_price)->update(); } else { $subsidy_id = SubsidyWithdrawal::insert([ 'user_id' => $user_id, 'total_amount' => $billions->subsidy_price ]); } // 增加余额记录日志 SubsidyWithdrawalRecord::insert([ 'subsidy_withdrawal_id' => $subsidy_id, 'user_id' => $user_id, 'billions_id' => $id, 'type' => 1, 'way' => 0, 'money' => $billions->subsidy_price, 'create_time' => date('Y-m-d H:i:s') ]); } Db::commit(); return true; } catch (Exception $e) { Db::rollback(); return false; } } public static function getSubsidyWithdraw($user_id) { $data['type'] = array( 0 => [ 'name' => '微信零钱', 'value' => 1, ], // 1 => [ // 'name' => '银行卡', // 'value' => 5, // ], 1 => [ 'name' => '东龙汇余额账户', 'value' => 1, ] ); // 手续费 $data['commission'] = self::COMMISSION . '%'; // 提现规则 $data['rule'] = '提现规则'; // 最小提现金额 $data['min_withdraw'] = self::MINIMUM_WITHDRAWAL; $subsidy = SubsidyWithdrawal::where(['user_id' => $user_id])->find(); $data['able_withdraw'] = $subsidy->total_amount; return $data; } public static function balanceapply($user_id, $post) { Db::startTrans(); try { // // 1. 减少余额 // SubsidyWithdrawal::where(['user_id' => $user_id])->dec('total_amount', $post['money'])->update(); // // // 2.先记录到日志下 $commission_money = $post['money'] * (BillionsLogic::COMMISSION / 100); // 需要扣除手续费的金额 $take_money = $post['money'] - ($post['money'] * (BillionsLogic::COMMISSION / 100)); // 实际到手的金额 // SubsidyWithdrawalRecord::insert([ // 'subsidy_withdrawal_id' => 0, // 'user_id' => $user_id, // 'billions_id' => 0, // 'type' => 2, // 'commission_money' => $commission_money, // 'commission' => BillionsLogic::COMMISSION . '%', // 'take_money' => $take_money, // 'way' => $post['type'], // 'money' => $post['money'], // 'create_time' => date('Y-m-d H:i:s') // ]); // 提现到微信零钱 if ($post['type'] == 1) { $withdraw['sn'] = self::createSn(); $withdraw['left_money'] = $take_money; $withdraw['batch_no'] = self::createSn('SJZZ', 7); dump($withdraw); die; // //微信零钱接口: 商家转账到零钱 // WechatMerchantTransferLogic::transfer($withdraw); } die; // 提现到平台余额 if ($post['type'] == 3) { $user = User::find($user_id); $user->user_money = ['inc', $take_money]; $user->save(); return [ 'code' => 1, 'msg' => '提现至钱包余额成功' ]; } Db::commit(); } catch (Exception $e) { Db::rollback(); throw new Exception($e->getMessage()); } } // 创建订单号 private static function createSn($prefix = '', $length = 11) { $suffix = ''; for ($i = 0; $i < $length; $i++) { if (empty($pool)) { $suffix .= rand(0, 9); } else { $suffix .= $pool[array_rand($pool)]; } } return $prefix . date('YmdHis') . $suffix; } }