Files
repo-backend/app/Http/Controllers/Admin/BossController.php
T

268 lines
9.7 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\BossAccount;
use App\LhDepositOrder;
use App\LhBankAccount;
use App\LhLoanOrder;
use App\AccountLog;
use App\Currency;
use App\UsersWallet;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class BossController extends Controller
{
//管理员取消订单 存量超过一天结算收益扣除违约金
public function cancelOrder(Request $request){
$orderId = $request->get('id');
$order = LhDepositOrder::find($orderId);
if(!$order){
return $this->error('找不到存单');
}
if($order->status!=1){
return $this->error('存单状态不可操作');
}
$legal = UsersWallet::where("user_id", $order->user_id)
->where("currency", $order->currency_id) //usdt
->lockForUpdate()
->first();
DB::beginTransaction();
try{
//扣钱
$returnAmount = $order->amount-$order->cancel_fee;
$order->status = 2;
$order->is_cancel = 1;
$order->save();
$result = change_wallet_balance(
$legal,
4,
$returnAmount,
AccountLog::MINING_BUY,
'锁仓返还',
false,
0,
0,
serialize([])
);
DB::commit();
}catch (\Exception $e){
DB::rollBack();
return $this->error($e->getMessage());
}
return $this->success('毁约成功');
}
public function bossList(Request $request){
$limit = $request->get('limit', 20);
$account = $request->get('phone','');
$pid = $request->get('p_id','');
$where = [];
if($pid){
$where['p_uid'] = $pid;
}
$res = BossAccount::join('users as u','uid','=','u.id')
->leftJoin('users as dad','dad.id','=','p_uid')
->select(['u.id','boss_account.p_uid','u.account_number','u.email','dad.phone as parent_phone','dad.account_number as parent_account','u.phone','total_invited','total_active','total_profit','balance'])
->where(function($q)use($account){
if($account){
$q->where('u.account_number','=',$account)->orWhere('u.email','=',$account);
}
})->where($where)
->orderBy('p_uid','asc')
->paginate($limit);
return $this->layuiData($res);
return $this->success(['list' => $res]);
}
public function bossListView(){
return view('admin.boss.boss_list');
}
public function depositOrderList(Request $request){
$limit = $request->get('limit', 20);
$where = [];
$account = $request->get('search');
$status = $request->get('status');
$cancel = $request->get('is_cancel',null);
if($status){
$where['lh_deposit_order.status'] = $status;
}
if($cancel !== null){
$where['is_cancel'] = $cancel;
}
$res = LhDepositOrder::join('currency as c','c.id','=','currency_id')
->join('users as u','user_id','=','u.id')
->where(function($q)use($account){
if($account){
$q->where('u.account_number','=',$account)->orWhere('u.email','=',$account);
}
})->where($where)
->select(['u.id as uid','u.account_number','u.email','u.phone','lh_deposit_order.*','c.name as currency_name'])
->orderBy('lh_deposit_order.id','desc')
->paginate($limit);
return $this->layuiData($res);
}
public function depositOrderView(){
return view('admin.boss.lh_order_list');
}
public function depositConfig(Request $request){
$currencyId = $request->get('currency_id');
$limit = $request->get('limit', 20);
// var_dump($currencyId);exit;
$where = [];
if($where){
$where['currency_id'] = $currencyId;
}
$list = DB::table('lh_deposit_config')->join('currency','currency.id','=','currency_id')->where($where)->select(['currency.name as currency_name','lh_deposit_config.*'])->orderBy('lh_deposit_config.id', 'asc')->paginate($limit);
return $this->layuiData($list);
}
public function addConfig(Request $request){
$currencyId = $request->get('currency_id');
$day = $request->get('day');
$rate = $request->get('rate');
$intro = $request->get('intro');
$save_min = $request->get('save_min');
// $output = $request->get('out_currency_id');
$res = DB::table('lh_deposit_config')->where('currency_id',$currencyId)->where('day',$day)->first();
if($res){
return $this->error('存在重复的期限');
}
DB::table('lh_deposit_config')->insert([
'day' => $day,
'interest_rate' => $rate,
'intro' => $intro,
'currency_id' => $currencyId,
'save_min' => $save_min,
'created_at' => date('Y-m-d H:i:s')
]);
return $this->success('创建成功');
}
public function depositConfigView(){
return view('admin.boss.config');
}
public function depositConfigAddView(){
$currency = Currency::all();
return view('admin.boss.config_add',['currencies'=>$currency]);
}
public function depositConfigEditView(Request $request){
$configId = $request->get('id');
$model = DB::table('lh_deposit_config')->where('id',$configId)->first();
$currency = Currency::where('id',$model->currency_id)->first();
$model->currency_name = $currency->name;
return view('admin.boss.config_edit',['model' => $model]);
}
public function depositConfigDelete(Request $request){
$configId = $request->get('id');
DB::table('lh_deposit_config')->where('id',$configId)->delete();
return $this->success('删除成功');
}
public function editConfig(Request $request){
$configId = $request->get('id');
$day = $request->get('day');
$rate = $request->get('rate');
$intro = $request->get('intro');
$save_min = $request->get('save_min');
$model = DB::table('lh_deposit_config')->where('id',$configId)->first();
if(!$model){
return $this->error('找不到此期限');
}
$res = DB::table('lh_deposit_config')->where('id','<>',$configId)->where('currency_id',$model->currency_id)->where('day',$day)->first();
if($res){
return $this->error('存在重复的期限');
}
DB::table('lh_deposit_config')->where('id',$configId)->update([
'day' => $day,
// 'total_rate' => $rate,
'interest_rate' => $rate,
'save_min' => $save_min,
'intro' => $intro
// 'created_at' => date('Y-m-d H:i:s')
]);
return $this->success('编辑成功');
}
public function loanOrderView(){
return view('admin.boss.loan_list');
}
public function loanOrderList(Request $request){
$limit = $request->get('limit', 20);
$where = [];
$account = $request->get('search');
$status = $request->get('status');
if($status){
$where['lh_loan_order.status'] = $status;
}
$res = LhLoanOrder::join('lh_bank_account as b','bank_account_id','=','b.id')
->join('users as u','uid','=','u.id')
->where(function($q)use($account){
if($account){
$q->where('u.account_number','=',$account)->orWhere('u.email','=',$account);
}
})->where($where)
->select(['u.id as uid','u.account_number','u.email','u.phone','lh_loan_order.*'])
->orderBy('lh_loan_order.id','desc')
->paginate($limit);
return $this->layuiData($res);
}
public function lhAccount(Request $request){
$user_id = $request->get('user_id');
$account = LhBankAccount::where('uid',$user_id)->first();
if(!$account){
return [];
}
return $this->success($account);
}
public function editLhAccountView(){
return view('admin.boss.edit_lh_account');
}
public function editLhAccount(Request $request){
$id = $request->get('id');
$account = LhBankAccount::where('id',$id)->first();
if(!$account){
return $this->error('找不到账户');
}
$account->df_balance = $request->get('df_balance');
$account->usdt_balance = $request->get('usdt_balance');
$account->save();
return $this->success('');
}
public function unlockOrder(Request $request){
$account = $request->get('search');
$limit = $request->get('limit', 20);
$res = DB::table('wallet_unlock_order')->join('users as u','user_id','=','u.id')
->where(function($q)use($account){
if($account){
$q->where('u.account_number','=',$account)->orWhere('u.email','=',$account);
}
})->orderBy('wallet_unlock_order.id','desc')
->select(['u.account_number','u.email','u.phone','wallet_unlock_order.*'])
->paginate($limit);
return $this->layuiData($res);
}
public function unlockOrderView(){
return view('admin.boss.unlock_order');
}
}