86 lines
2.6 KiB
PHP
86 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace app\dao;
|
|
|
|
use App\model\Users;
|
|
use App\model\BankLog;
|
|
use plugin\admin\app\model\User;
|
|
|
|
class BankDao {
|
|
/**
|
|
* 转账函数
|
|
*
|
|
* @param int $senderAccountId - 发送账户ID
|
|
* @param int $receiverAccountId - 接收账户手机号
|
|
* @param float $amount - 转账金额
|
|
* @return array - 返回转账结果
|
|
*/
|
|
public static function transfer($senderAccountId, $receiverAccountId, $amount) {
|
|
// 假设账户数据存储在一个简单的数组或数据库中
|
|
// 模拟账户余额数据(实际应用中应查询数据库)
|
|
$senderAccount=Users::where('id',$senderAccountId)->first();
|
|
$receiverAccount=Users::where('phone',$receiverAccountId)->first();
|
|
|
|
// 检查接收账户是否存在
|
|
if (!isset($receiverAccount)) {
|
|
return ['status' => 'error', 'message' => '接收账户不存在'];
|
|
}
|
|
|
|
// 检查转账金额是否合法
|
|
if ($amount <= 0) {
|
|
return ['status' => 'error', 'message' => '时间币必须大于0'];
|
|
}
|
|
|
|
// 检查发送账户余额是否足够
|
|
if ($senderAccount->timecoin < $amount) {
|
|
return ['status' => 'error', 'message' => '时间币余额不足'];
|
|
}
|
|
|
|
// 执行转账操作
|
|
self::add($senderAccount->id,$amount-$amount*2,"赠送给 $receiverAccountId 时间币 $amount");
|
|
self::add($receiverAccount->id,$amount,"收到 $senderAccount->phone 赠予 时间币 $amount");
|
|
|
|
return [
|
|
'status' => 'success',
|
|
'message' => '转账成功',
|
|
];
|
|
}
|
|
/**
|
|
* 增加时间币 传入负数就是减法
|
|
*
|
|
* @param [type] $userid 用户id
|
|
* @param [type] $amount 金额
|
|
* @param [type] $remark 备注
|
|
* @return void
|
|
*/
|
|
public static function add($userid, $amount,$remark) {
|
|
$user = Users::where('id',$userid)->first();
|
|
$log=new BankLog();
|
|
$log->userid=$userid;
|
|
$log->money=$amount;
|
|
$log->remark=$remark;
|
|
$log->save();
|
|
$user->timecoin+=$amount;
|
|
$user->Save();
|
|
|
|
}
|
|
/**
|
|
* 减少用户时间币 好像废弃了
|
|
*
|
|
* @param [type] $userid 用户id
|
|
* @param [type] $amount 金额
|
|
* @param [type] $remark 备注
|
|
* @return void
|
|
*/
|
|
public static function subtraction($userid, $amount,$remark) {
|
|
$user = Users::where('id',$userid)->first('timecoin');
|
|
$log=new BankLog();
|
|
$log->userid=$userid;
|
|
$log->money=$amount;
|
|
$log->remark=$remark;
|
|
$log->save();
|
|
$user->timecoin-=$amount;
|
|
$user->Save();
|
|
}
|
|
}
|