|
|
<?php
|
|
|
|
|
|
|
|
|
function handleOrder($orderInfo) {
|
|
|
try {
|
|
|
if(!is_array($orderInfo)) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
$orderInfo['other'] = json_decode($orderInfo['other'], true);
|
|
|
if($orderInfo['type'] == 1) { // 打赏
|
|
|
$user = new \app\api\model\User();
|
|
|
$userInfo = $user->infoAndLockById($orderInfo['other']['user_id']);
|
|
|
if(!$userInfo) {
|
|
|
return false;
|
|
|
}
|
|
|
$insertData = [
|
|
|
'user_id' => $orderInfo['other']['user_id'],
|
|
|
'money' => $orderInfo['other']['money'],
|
|
|
'memo' => '收到打赏',
|
|
|
'createtime' => time(),
|
|
|
];
|
|
|
$userMoneyLog = new \app\api\model\UserMoneyLog();
|
|
|
$res = $userMoneyLog->addOne($insertData);
|
|
|
if(!$res) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
$updateData = [
|
|
|
'money' => bcadd($userInfo['money'], $orderInfo['other']['money'], 2)
|
|
|
];
|
|
|
$res = $user->updateOne($orderInfo['other']['user_id'], $updateData);
|
|
|
if(!$res) {
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
} elseif ($orderInfo['type'] == 2) { // 购买vip
|
|
|
$student = new \app\api\model\Student();
|
|
|
$studentInfo = $student->infoByUserId($orderInfo['other']['user_id']);
|
|
|
if(!$student) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
if($studentInfo['vip_endtime']) {
|
|
|
if($studentInfo['vip_level'] == $orderInfo['other']['vip_level']) {
|
|
|
$vipEndTime = bcadd($studentInfo['vip_endtime'], bcmul($orderInfo['other']['keep'], bcmul(3600, 24, 0), 0), 0);
|
|
|
} else {
|
|
|
$vipEndTime = bcmul($orderInfo['other']['keep'], bcmul(3600, 24, 0), 0);
|
|
|
}
|
|
|
} else {
|
|
|
$vipEndTime = bcmul($orderInfo['other']['keep'], bcmul(3600, 24, 0), 0);
|
|
|
}
|
|
|
$updateData = [
|
|
|
'vip_level' => $orderInfo['other']['vip_level'],
|
|
|
'vip_endtime' => $vipEndTime,
|
|
|
];
|
|
|
$res = $student->updateOne($studentInfo['id'], $updateData);
|
|
|
if(!$res) {
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
|
} catch (\Exception $e) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|