Closed Bobrokrot closed 2 years ago
Вопрос. У нас уже есть табличка Locations в базе данных, если мне не изменяет память. Являются ли эти локации тем же самым, или это локации для карты?
Вопрос. У нас уже есть табличка Locations в базе данных, если мне не изменяет память. Являются ли эти локации тем же самым, или это локации для карты?
Да. Надо эндпоинты проверить, всё ли возвращается.
Сделано. Локации были в очень сыром состоянии, можно сказать что они переделаны с нуля. Регионы для юзабилити и для использования в перcпективе вынесены в простую табличку. Это только на уровне ДБ, потому что занимает меньше места на диске и более гибко, в будущем можно будет расширить табличку, если понадятся дополнительные операции с регионами, или они станут самостоятельной сущностью.
@Bobrokrot @Jagerente
Таблица Regions состоит из 2 полей. Id и Name. Добавление в таблицу:
insert into regions(name) values
('Локация 1'),
('Локация 2')
Таблица Locations обновлена и теперь имеет следующий вид: Id | name | description | mapgenieid | regionid
Добавление в таблицу:
insert into locations(name, description, mapgenieid, regionid) values
('Локация 1', 'Описание локации 1', 1111, 1),
('Локация 2', 'Описание локации 2', 2222, 1)
Связь локаций с предметами реализована как многие-ко-многим, организуется через таблицу - посредник itemlocations, которая имеет столбец itemid для предмета и столбец locationid для локации.
Добавление в таблицу: В примере, предмет с id 1 выпадает на локациях с id 1, 5, 7
insert into itemlocations(itemid, locationid) values
(1, 1),
(1, 5),
(1, 7)
@Jagerente Было добавлено 2 эндпоинта:
Список всех локаций /api/location/list
Список всех регионов /api/location/regions
Структуры json
Location:
{
"id": 1,
"name": "LocationName"
"description": "Location Description",
"mapgenieId": 1111,
"region": "RegionName",
"loot": [ 1, 5, 7 ]
}
loot содержит id предметов которые выпадают на этой локации
Region:
{
"id": 1,
"name": "RegionName"
}
Таблица локаций, лута и координат. Полностью готова, и есть очень простая функциональность: При выборе предмета, например, Whetstone, найти все локации, в которых фармится Whetstone. Это локации с id 3,5,15,20,21,79. Берётся соответствующий им mapgenie id и генерируется ссылка, где mapgenie id тупо перечисляется через запятую: https://mapgenie.io/v-rising/maps/vardoran?locationIds=178238,178237,178444,178379,178390,178370
Ну и всё, это ссылка просто вставляется в разделе Information у предмета Whetstone.
Единственная трудность состоит в non-item вроде Horse, но пофиг, добавим лошадь как предмет.
Сама таблица на странице locations. https://docs.google.com/spreadsheets/d/1R-Re2Xszgm2UDUvNVrYwZES5eAN9gIJqCEi6FGA4XPo/edit?usp=sharing