<?php
namespace App\Models;
use App\Http\Controllers\WeChatController;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;
use mysql_xdevapi\Exception;
class Receive extends Model
{
protected $table = "receive";
public function getReceiveCountOfTheDay()
{
$sql = "SELECT count(*) AS count FROM `receive` WHERE to_days(`receive_date`) = to_days(now())";
return DB::select($sql);
}
public function getAllByPaginate($openid = null, $status = null)
{
if ($openid == null && $status == null) {
return DB::table($this->table)->orderBy('id', 'desc')->paginate(10);
} else {
return DB::table($this->table)
->where('openid', 'like', trim($openid) == "" ? "%" : $openid)
->where('status', 'like', trim($status) == "" ? "%" : $status)
->orderBy('id', 'desc')
->paginate(10);
}
}
public function receivePass($id)
{
try {
date_default_timezone_set("Asia/Shanghai");
$receive=DB::table($this->table)->where('id',$id)->first();
DB::beginTransaction();
DB::table($this->table)
->where('id', $id)
->update([
'status' => 1,
'process_time' => date('Y-m-d H:i:s', time())
]);
DB::commit();
app(WeChatController::class)->sendReceiveTemplateMessage($receive->openid,"您的提现申请已受理完成",$receive->amount,"提现成功");
return 1;
} catch (Exception $e) {
DB::rollBack();
}
}
public function receiveRefuse($id,$reason)
{
$receive = DB::table($this->table)->where('id', $id)->first();
$user = app(Users::class)->getUserById($receive->openid);
try {
date_default_timezone_set("Asia/Shanghai");
$time = date('Y-m-d H:i:s', time());
DB::beginTransaction();
app(Users::class)->updateAvailable_balance($receive->openid,$user->available_balance+$receive->amount);
app(BalanceRecord::class)->setRecord($user->id, "提现被拒绝返还".$receive->amount."元",$receive->amount);
DB::table($this->table)
->where('id', $id)
->update([
'status' => -1,
'process_time' => $time,
'reason' => $reason
]);
DB::commit();
app(WeChatController::class)->sendReceiveTemplateMessage($receive->openid,"您的提现申请被拒绝,余额已返还",$receive->amount,$reason);
return 1;
} catch (Exception $e) {
DB::rollBack();
return 0;
}
}
public function getReceiveStatus($openid)
{
return DB::table($this->table)
->where("openid",$openid)
->orderBy('id', 'desc')
->first();
}
public function applyReceive($openid,$amount,$nickname){
date_default_timezone_set("Asia/Shanghai") DB::table($this->table)
->insert([
'openid' => $openid,
'amount' => $amount,
'nickname' => $nickname,
'receive_date' => date('Y-m-d h:i:s', time())
]);
app(WeChatController::class)->sendReceiveTemplateMessage($openid,"提现申请已收到",$amount,"等待处理");
}
}