添加我的账户相关记录接口
parent
0a7460e983
commit
3fd16aa4d1
|
|
@ -45,6 +45,7 @@ class OrderService
|
|||
$orderService->paySuccess($order, [
|
||||
'pay_sn' => date('YmdHis').sprintf('%02d', mt_rand(1, 99)),
|
||||
'pay_way' => Order::PAY_WAY_OFFLINE,
|
||||
'out_trade_no' => date('YmdHis').sprintf('%02d', mt_rand(1, 99)),
|
||||
'pay_at' => now(),
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Controllers\Account;
|
||||
|
||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||
use App\Endpoint\Api\Http\Resources\DistributionPreIncomeResource;
|
||||
use App\Endpoint\Api\Http\Resources\WalletLogResource;
|
||||
use App\Helpers\Paginator as PaginatorHelper;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class WalletController extends Controller
|
||||
{
|
||||
/**
|
||||
* 账户明细
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
return response()->json([
|
||||
'distribution_pre' => $request->user()->distributionPreIncomes()->pending()->sum('total_revenue'),
|
||||
'wallet_balance'=> $request->user()->wallet?->balance ?? 0,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 预收益明细
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function distributionLogs(Request $request)
|
||||
{
|
||||
$perPage = PaginatorHelper::resolvePerPage('per_page', 20, 50);
|
||||
$distributionLogs = $request->user()->distributionPreIncomes()
|
||||
->with('logs')
|
||||
->pending()
|
||||
->latest('id')
|
||||
->simplePaginate($perPage);
|
||||
|
||||
return DistributionPreIncomeResource::collection($distributionLogs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 可提明细
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function walletLogs(Request $request)
|
||||
{
|
||||
$perPage = PaginatorHelper::resolvePerPage('per_page', 20, 50);
|
||||
$walletLogs = $request->user()->wallet()->logs()
|
||||
->latest('id')
|
||||
->simplePaginate($perPage);
|
||||
|
||||
return WalletLogResource::collection($walletLogs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 余额明细
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function balanceLogs(Request $request)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class DistributionPreIncomeLogResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'remarks' => $this->remarks,
|
||||
'change_amount' => $this->change_amount,
|
||||
'change_revenue'=> $this->change_revenue,
|
||||
'created_at' => $this->created_at->toDateTimeString(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class DistributionPreIncomeResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'remarks' => $this->remarks,
|
||||
'logs' => DistributionPreIncomeLogResource::collection($this->whenLoaded('logs')),
|
||||
'created_at'=> $this->created_at->toDateTimeString(),
|
||||
'total_revenue' => $this->total_revenue,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class WalletLogResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'remarks' => $this->remarks,
|
||||
'created_at' => $this->created_at->toDateTimeString(),
|
||||
'fee' => $this->fee_format,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
use App\Endpoint\Api\Http\Controllers\Account\ChangePasswordController;
|
||||
use App\Endpoint\Api\Http\Controllers\Account\UserController;
|
||||
use App\Endpoint\Api\Http\Controllers\Account\WalletController;
|
||||
use App\Endpoint\Api\Http\Controllers\Account\WalletPasswordController;
|
||||
use App\Endpoint\Api\Http\Controllers\AdController;
|
||||
use App\Endpoint\Api\Http\Controllers\AfterSaleController;
|
||||
|
|
@ -86,6 +87,11 @@ Route::group([
|
|||
//安全密码
|
||||
Route::post('wallet-password/reset', [WalletPasswordController::class, 'reset']);//重置或设置安全密码
|
||||
|
||||
//我的账户
|
||||
Route::get('wallet', [WalletController::class, 'index']);
|
||||
Route::get('wallet/distribution-logs', [WalletController::class, 'distributionLogs']);
|
||||
Route::get('wallet/wallet-logs', [WalletController::class, 'walletLogs']);
|
||||
|
||||
//银行卡
|
||||
Route::get('user-bank', [UserBankController::class, 'show']);
|
||||
Route::put('user-bank', [UserBankController::class, 'update']);
|
||||
|
|
|
|||
|
|
@ -42,6 +42,15 @@ class DistributionPreIncome extends Model
|
|||
self::TYPE_LEVEL_DIFF => '级差奖金',
|
||||
];
|
||||
|
||||
/**
|
||||
* 待结算预收益
|
||||
*
|
||||
*/
|
||||
public function scopePending($query)
|
||||
{
|
||||
return $query->where('status', '=', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 此预收益的变更记录
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -188,6 +188,14 @@ class User extends Model implements AuthorizableContract, AuthenticatableContrac
|
|||
return $this->hasOne(Wallet::class, 'user_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户的预收益
|
||||
*/
|
||||
public function distributionPreIncomes()
|
||||
{
|
||||
return $this->hasMany(DistributionPreIncome::class, 'user_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 禁用用户
|
||||
*
|
||||
|
|
|
|||
|
|
@ -42,6 +42,15 @@ class Wallet extends Model
|
|||
'withdrawable' => 'bool',
|
||||
];
|
||||
|
||||
/**
|
||||
* 资产日志
|
||||
*
|
||||
*/
|
||||
public function logs()
|
||||
{
|
||||
return $this->hasMany(WalletLog::class, 'wallet_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置此用户的安全密码
|
||||
*
|
||||
|
|
|
|||
|
|
@ -2,8 +2,18 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Helpers\Numeric;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class WalletLog extends Model
|
||||
{
|
||||
/**
|
||||
* 获取变动金额
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getFeeFormatAttribute()
|
||||
{
|
||||
return Numeric::trimTrailingZero(bcdiv($this->attributes['fee'], 100, 2));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue