game2006api/webapp/models/BattleSettlement.php
hujiabin 278402d3fc 1
2023-03-30 20:35:20 +08:00

171 lines
5.0 KiB
PHP

<?php
namespace models;
use mt;
use phpcommon\SqlHelper;
class BattleSettlement extends BaseModel
{
const ROOM_MODE_PVP = 0;
// const MATCH_MODE_MATCH = 1;
const ROOM_MODE_PVE = 1;
const MATCH_MODE_PVP = 0;
const MATCH_MODE_RANK = 1;
public static function add($battleUuid, $data)
{
SqlHelper::upsert
(myself()->_getSelfMysql(),
't_battle_settlement',
array(
'account_id' => myself()->_getAccountId(),
'battle_uniid' => $battleUuid,
),
array(),
array(
'account_id' => myself()->_getAccountId(),
'battle_uniid' => $battleUuid,
'data' => $data,
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
)
);
}
public static function find($battleUuid)
{
$row = SqlHelper::ormSelectOne
(myself()->_getSelfMysql(),
't_battle_settlement',
array(
'account_id' => myself()->_getAccountId(),
'battle_uniid' => $battleUuid,
)
);
return $row;
}
public static function addSingle($battleUuid, $roomUuid, $data)
{
SqlHelper::upsert
(myself()->_getSelfMysql(),
't_battle_settlement_single',
array(
'account_id' => myself()->_getAccountId(),
'battle_uuid' => $battleUuid,
),
array(),
array(
'account_id' => myself()->_getAccountId(),
'battle_uuid' => $battleUuid,
'room_uuid' => $roomUuid,
'data' => json_encode($data),
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
)
);
}
public static function getSingleList($accountId,$roomMode, $matchMode)
{
$rows = SqlHelper::ormSelect
(myself()->_getSelfMysql(),
't_battle_settlement_single',
array(
'account_id' => $accountId,
)
);
$pvpMatchList = array();
$pvpRankList = array();
$pveMatchList = array();
foreach ($rows as $row) {
$data = emptyReplace(json_decode($row['data'], true), array());
if ($data['room_mode'] == self::ROOM_MODE_PVP && $data['pvp_mode'] == self::MATCH_MODE_PVP) {
array_push($pvpMatchList, self::singleDto($row));
} else if ($data['room_mode'] == self::ROOM_MODE_PVP && $data['pvp_mode'] == self::MATCH_MODE_RANK) {
array_push($pvpRankList, self::singleDto($row));
} else if ($data['room_mode'] == self::ROOM_MODE_PVE) {
array_push($pveMatchList, self::singleDto($row));
}
}
switch ($roomMode) {
case self::ROOM_MODE_PVP :
{
switch ($matchMode) {
case self::MATCH_MODE_PVP :
{
return $pvpMatchList;
}
case self::MATCH_MODE_RANK :
{
return $pvpRankList;
}
}
}
case self::ROOM_MODE_PVE :
{
return $pveMatchList;
}
}
}
public static function singleDto($row){
$data = emptyReplace(json_decode($row['data'], true), array());
$data['room_uuid'] = $row['room_uuid'];
$data['idx'] = $row['idx'];
return $data;
}
public static function addTeam($battleUuid, $roomUuid, $data)
{
SqlHelper::upsert
(myself()->_getSelfMysql(),
't_battle_settlement_team',
array(
'battle_uuid' => $battleUuid,
'room_uuid' => $roomUuid,
),
array(
'data' => json_encode($data)
),
array(
'battle_uuid' => $battleUuid,
'room_uuid' => $roomUuid,
'data' => json_encode($data),
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
)
);
}
public static function findTeam($battleUuid, $roomUuid)
{
$row = SqlHelper::ormSelectOne
(myself()->_getSelfMysql(),
't_battle_settlement_team',
array(
'battle_uuid' => $battleUuid,
'room_uuid' => $roomUuid,
)
);
return $row;
}
public static function findTeamByTargetId($targetId,$battleUuid, $roomUuid)
{
$row = SqlHelper::ormSelectOne
(myself()->_getMysql($targetId),
't_battle_settlement_team',
array(
'battle_uuid' => $battleUuid,
'room_uuid' => $roomUuid,
)
);
return $row;
}
}