TransitWalletCoinController.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. namespace App\Http\Controllers\Admin\Transit;
  3. use Illuminate\Http\Request;
  4. use App\Services\AipHttpClient;
  5. use App\Http\Controllers\Controller;
  6. use Illuminate\Support\Facades\DB;
  7. use App\Models\Transit\TransitWallet;
  8. use App\Models\Transit\TransitWalletCoin;
  9. use App\Http\Services\RsaServices;
  10. class TransitWalletCoinController extends Controller
  11. {
  12. public $Coinname = ['trx' => 'trx','usdt' => 'usdt'];
  13. public $IsRealtimeRate = ['1' => '实时(直减)','2' => '固定','3' => '实时(百分比)'];
  14. public function index(Request $request)
  15. {
  16. $Coinname = $this->Coinname;
  17. $IsRealtimeRate = $this->IsRealtimeRate;
  18. $walletData = TransitWallet::pluck('receive_wallet','rid');
  19. return view('admin.transit.walletcoin.index',compact("Coinname","walletData","IsRealtimeRate"));
  20. }
  21. //列表
  22. public function getData(Request $request)
  23. {
  24. $model = TransitWalletCoin::from('transit_wallet_coin as a')
  25. ->join('transit_wallet as b','a.transit_wallet_id','b.rid')
  26. ->where(function($query) use ($request){
  27. if ($request->receive_wallet != '') {
  28. $query->where('receive_wallet', 'like' ,"%" . $request->receive_wallet ."%");
  29. }
  30. if ($request->send_wallet != '') {
  31. $query->where('send_wallet', 'like' ,"%" . $request->send_wallet ."%");
  32. }
  33. });
  34. $count = $model->count();
  35. $limit = $request->limit ?? 15;
  36. $offset = $request->page ? ($request->page - 1) * $limit : 0;
  37. $data = $model->limit($limit)->offset($offset)->select('a.*','b.receive_wallet')->orderBy('a.rid','desc')->get();
  38. $data = $data->map(function($query){
  39. $query->is_realtime_rate_val = $this->IsRealtimeRate[$query->is_realtime_rate];
  40. return $query;
  41. });
  42. return ['code' => '0', 'data' => $data, 'count' => $count];
  43. }
  44. //添加
  45. public function add(Request $request)
  46. {
  47. llog('--添加闪兑币种汇率--');
  48. llog($request->All());
  49. if($request->profit_rate < 0 || $request->profit_rate >= 1 || $request->exchange_rate > 10 || $request->exchange_rate < 0 || $request->kou_out_amount < 0){
  50. return $this->responseData(400, '汇率不能大于10且扣回款金额不能小于0');
  51. }
  52. $data = TransitWalletCoin::where('transit_wallet_id', $request->transit_wallet_id)->where('in_coin_name', $request->in_coin_name)->first();
  53. if(!empty($data)){
  54. return $this->responseData(400, '闪兑钱包币种已存在');
  55. }
  56. if($request->in_coin_name == $request->out_coin_name){
  57. return $this->responseData(400, '转入和回款币名不能一样');
  58. }
  59. $res = TransitWalletCoin::create([
  60. 'transit_wallet_id' => $request->transit_wallet_id,
  61. 'in_coin_name' => $request->in_coin_name,
  62. 'out_coin_name' => $request->out_coin_name,
  63. 'is_realtime_rate' => $request->is_realtime_rate,
  64. 'profit_rate' => $request->profit_rate ?? 0.1,
  65. 'exchange_rate' => $request->exchange_rate ?? 1,
  66. 'kou_out_amount' => $request->kou_out_amount ?? 0,
  67. 'min_transit_amount' => $request->min_transit_amount ?? 1,
  68. 'max_transit_amount' => $request->max_transit_amount ?? 1000,
  69. 'comments' => $request->comments,
  70. 'create_time' => nowDate()
  71. ]);
  72. return $res ? $this->responseData(200, '添加成功') : $this->responseData(400, '添加失败');
  73. }
  74. //删除
  75. public function delete(Request $request)
  76. {
  77. $res = TransitWalletCoin::where('rid', $request->rid)->delete();
  78. return $res ? $this->responseData(200, '删除成功') : $this->responseData(400, '删除失败');
  79. }
  80. //编辑
  81. public function update(Request $request)
  82. {
  83. llog('--修改闪兑币种汇率--');
  84. llog($request->All());
  85. if($request->profit_rate < 0 || $request->profit_rate >= 1 || $request->exchange_rate > 10 || $request->exchange_rate < 0 || $request->kou_out_amount < 0){
  86. return $this->responseData(400, '汇率不能大于10且扣回款金额不能小于0');
  87. }
  88. $data = TransitWalletCoin::where('transit_wallet_id', $request->transit_wallet_id)->where('in_coin_name', $request->in_coin_name)->where('rid','<>',$request->rid)->first();
  89. if(!empty($data)){
  90. return $this->responseData(400, '闪兑钱包币种已存在');
  91. }
  92. if($request->in_coin_name == $request->out_coin_name){
  93. return $this->responseData(400, '转入和回款币名不能一样');
  94. }
  95. DB::beginTransaction();
  96. try {
  97. $data = TransitWalletCoin::where('rid', $request->rid)->first();
  98. $data->in_coin_name = $request->in_coin_name;
  99. $data->out_coin_name = $request->out_coin_name;
  100. $data->is_realtime_rate = $request->is_realtime_rate;
  101. $data->profit_rate = $request->profit_rate ?? 0.1;
  102. $data->exchange_rate = $request->exchange_rate ?? 1;
  103. $data->kou_out_amount = $request->kou_out_amount ?? 0;
  104. $data->min_transit_amount = $request->min_transit_amount ?? 1;
  105. $data->max_transit_amount = $request->max_transit_amount ?? 1000;
  106. $data->comments = $request->comments;
  107. $data->update_time = nowDate();
  108. $data->save();
  109. DB::commit();
  110. return $this->responseData(200, '更新成功');
  111. } catch (\Exception $e) {
  112. DB::rollBack();
  113. return $this->responseData(400, '更新失败'.$e->getMessage());
  114. }
  115. }
  116. }