123 lines
3.5 KiB
PHP
123 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace models;
|
|
|
|
require_once('mt/Item.php');
|
|
require_once('mt/GunQuality.php');
|
|
|
|
use mt;
|
|
use phpcommon\SqlHelper;
|
|
|
|
class Gun extends BaseModel {
|
|
|
|
public static function find($itemId)
|
|
{
|
|
$row = SqlHelper::ormSelectOne(
|
|
myself()->_getSelfMysql(),
|
|
't_gun',
|
|
array(
|
|
'account_id' => myself()->_getAccountId(),
|
|
'gun_id' => $itemId,
|
|
)
|
|
);
|
|
return $row;
|
|
}
|
|
|
|
public static function toDto($row)
|
|
{
|
|
$attr = emptyReplace(json_decode($row['rand_attr'], true), array());
|
|
return array(
|
|
'gun_uniid' => $row['idx'],
|
|
'gun_id' => $row['gun_id'],
|
|
'state' => $row['state'],
|
|
'gun_lv' => $row['gun_lv'],
|
|
'quality' => $row['quality'],
|
|
'try_count' => $row['try_count'],
|
|
'lock_type' => $lockType,
|
|
'lock_time' => $lockTime,
|
|
'trade_locktime' => $tradeLocktime,
|
|
'attr' => $attr,
|
|
);
|
|
}
|
|
|
|
public static function all()
|
|
{
|
|
$itemList = array();
|
|
SqlHelper::ormSelect(
|
|
myself()->_getSelfMysql(),
|
|
't_bag',
|
|
array(
|
|
'account_id' => myself()->_getAccountId()
|
|
),
|
|
function ($row) use(&$itemList) {
|
|
if ($row['item_num'] > 0) {
|
|
array_push($itemList, Bag::toDto($row));
|
|
}
|
|
}
|
|
);
|
|
return $itemList;
|
|
}
|
|
|
|
public static function getItemCount($itemId)
|
|
{
|
|
$itemDb = self::find($itemId);
|
|
return $itemDb ? $itemDb['item_num'] : 0;
|
|
}
|
|
|
|
public static function addItem($itemId, $itemNum)
|
|
{
|
|
if (myself()->_isVirtualItem($itemId)) {
|
|
return;
|
|
}
|
|
if ($itemNum <= 0) {
|
|
return;
|
|
}
|
|
$itemMeta = mt\Item::get($itemId);
|
|
if (!$itemMeta) {
|
|
return;
|
|
}
|
|
if ($itemMeta['cannot_stack']) {
|
|
$randAttr = array();
|
|
if (mt\Item::isRandAttrItem($itemMeta)) {
|
|
$qualityMeta = mt\ChipQuality::getByQuality($itemMeta['quality']);
|
|
if ($qualityMeta) {
|
|
$randAttr = mt\ChipQuality::getRandAttr($qualityMeta);
|
|
}
|
|
}
|
|
SqlHelper::insert
|
|
(myself()->_getSelfMysql(),
|
|
't_bag',
|
|
array(
|
|
'account_id' => myself()->_getAccountId(),
|
|
'item_id' => $itemId,
|
|
'item_num' => 1,
|
|
'rand_attr' => json_encode($randAttr),
|
|
'createtime' => myself()->_getNowTime(),
|
|
'modifytime' => myself()->_getNowTime()
|
|
)
|
|
);
|
|
} else {
|
|
SqlHelper::upsert
|
|
(myself()->_getSelfMysql(),
|
|
't_bag',
|
|
array(
|
|
'account_id' => myself()->_getAccountId(),
|
|
'item_id' => $itemId
|
|
),
|
|
array(
|
|
'item_num' => function () use($itemNum) { return "item_num + {$itemNum}";},
|
|
'modifytime' => myself()->_getNowTime(),
|
|
),
|
|
array(
|
|
'account_id' => myself()->_getAccountId(),
|
|
'item_id' => $itemId,
|
|
'item_num' => $itemNum,
|
|
'createtime' => myself()->_getNowTime(),
|
|
'modifytime' => myself()->_getNowTime()
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
}
|