Browse Source

пельмень апдейт 3.5.6a

master
gsd 1 month ago
parent
commit
e8d2328fdc
  1. 2
      src/main/java/app/controllers/admin/BanController.java
  2. 4
      src/main/java/app/controllers/user/MessagesController.java
  3. 31
      src/main/java/app/controllers/user/PublicController.java
  4. 2
      src/main/java/app/entities/PlayerProfile.java
  5. 17
      src/main/java/app/entities/SearchFilter.java
  6. 3
      src/main/java/app/entities/db/ban/Ban.java
  7. 35
      src/main/java/app/entities/db/ban/BanSearchFilter.java
  8. 29
      src/main/java/app/repositories/BanRepository.java
  9. 2
      src/main/java/app/repositories/MessageRepository.java
  10. 2
      src/main/java/app/services/ProfileService.java
  11. 5
      src/main/java/app/services/db/BanService.java

2
src/main/java/app/controllers/admin/BanController.java

@ -3,7 +3,7 @@ package app.controllers.admin;
import app.annotations.enums.AuthMethod;
import app.annotations.enums.CollectStages;
import app.annotations.interfaces.*;
import app.entities.db.Ban;
import app.entities.db.ban.Ban;
import app.services.ProfileService;
import app.services.db.BanService;
import app.services.db.PermitionService;

4
src/main/java/app/controllers/user/MessagesController.java

@ -68,8 +68,8 @@ public class MessagesController {
Page<Message> messages = messageRepository.getMessages(
pageable,
filter.getAccounts(profileService),
filter.getBegin(),
filter.getEnd(),
filter.getBeginUnixTime(),
filter.getEndUnixTime(),
filter.getMessage(),
filter.getServerId()
);

31
src/main/java/app/controllers/user/PublicController.java

@ -4,7 +4,10 @@ import app.annotations.enums.AuthMethod;
import app.annotations.interfaces.CheckWebAccess;
import app.annotations.interfaces.CollectStatistic;
import app.annotations.interfaces.WaitAfterNext;
import app.entities.db.Ban;
import app.entities.db.ban.Ban;
import app.entities.db.ban.BanSearchFilter;
import app.repositories.BanRepository;
import app.services.ProfileService;
import app.services.db.BanService;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
@ -13,10 +16,7 @@ import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@ -29,6 +29,12 @@ public class PublicController {
BanService banService;
@Autowired
private BanRepository banRepository;
@Autowired
private ProfileService profileService;
@Autowired
public PublicController(BanService banService) {
this.banService = banService;
@ -51,16 +57,19 @@ public class PublicController {
}}, HttpStatus.OK);
}
@GetMapping("/banlist/pages")
@PostMapping("/banlist")
@CheckWebAccess(auth_method = AuthMethod.STEAM64)
@WaitAfterNext(order = "banlist")
@CollectStatistic
public ResponseEntity<Page<Ban>> getBanListWithFilters(Pageable pageable) {
public ResponseEntity<Page<Ban>> getBanListWithFilters(Pageable pageable, @RequestBody BanSearchFilter banSearchFilter) {
return new ResponseEntity<>(
new PageImpl<>(
banService.getLastBans(pageable.getPageSize(), pageable.getOffset()),
pageable,
banService.getBansCount())
banRepository.getBans(pageable,
banSearchFilter.getBan_ids(),
banSearchFilter.getAccounts(profileService),
banSearchFilter.getBeginTimestamp(),
banSearchFilter.getEndTimestamp(),
banSearchFilter.getActive(),
banSearchFilter.getAdminIds(profileService))
, HttpStatus.OK);
}
}

2
src/main/java/app/entities/PlayerProfile.java

@ -1,6 +1,6 @@
package app.entities;
import app.entities.db.Ban;
import app.entities.db.ban.Ban;
import app.entities.db.DonateStat;
import app.entities.db.Permition;
import app.entities.other.SteamID;

17
src/main/java/app/entities/SearchFilter.java

@ -2,6 +2,7 @@ package app.entities;
import app.services.ProfileService;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
@ -25,12 +26,20 @@ public abstract class SearchFilter {
return filtered.isEmpty() ? null : filtered;
}
public Long getBegin() {
return begin == null ? null : begin.atZone(ZoneId.systemDefault()).toInstant().getEpochSecond();
public Long getBeginUnixTime() {
return begin == null ? null : Timestamp.valueOf(begin).getTime()/1000;
}
public Long getEnd() {
return end == null ? null : end.atZone(ZoneId.systemDefault()).toInstant().getEpochSecond();
public Long getEndUnixTime() {
return end == null ? null : Timestamp.valueOf(end).getTime()/1000;
}
public Timestamp getBeginTimestamp() {
return begin == null ? null : Timestamp.valueOf(begin);
}
public Timestamp getEndTimestamp() {
return end == null ? null : Timestamp.valueOf(end);
}
public String getServerId() {

3
src/main/java/app/entities/db/Ban.java → src/main/java/app/entities/db/ban/Ban.java

@ -1,5 +1,6 @@
package app.entities.db;
package app.entities.db.ban;
import app.entities.db.AdminInfo;
import app.entities.other.SteamID;
import app.services.db.PermitionService;
import app.utils.CryptedCookie;

35
src/main/java/app/entities/db/ban/BanSearchFilter.java

@ -0,0 +1,35 @@
package app.entities.db.ban;
import app.entities.SearchFilter;
import app.services.ProfileService;
import java.util.List;
import java.util.Objects;
public class BanSearchFilter extends SearchFilter {
private List<Long> ban_ids;
private Boolean active;
private List<String> admin_ids;
public BanSearchFilter() {
}
public List<Long> getBan_ids() {
return ban_ids == null || ban_ids.isEmpty() ? null : ban_ids;
}
public Boolean getActive() {
return active;
}
public List<String> getAdminIds(ProfileService profileService) {
if (admin_ids == null || admin_ids.isEmpty()) return null;
List<String> filtered = admin_ids.stream()
.map(profileService::GetSteamIDFromAnyData)
.filter(Objects::nonNull)
.map(sId -> sId.steam3)
.toList();
return filtered.isEmpty() ? null : filtered;
}
}

29
src/main/java/app/repositories/BanRepository.java

@ -0,0 +1,29 @@
package app.repositories;
import app.entities.db.ban.Ban;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import java.sql.Timestamp;
import java.util.List;
public interface BanRepository extends PagingAndSortingRepository<Ban, Long> {
@Query(value = "select b from Ban b where " +
"(:ban_ids is null or b.id in :ban_ids) and " +
"(:account_ids is null or b.account_id in :accounts_ids) and " +
"(:begin_date is null or b.timestamp >= :begin_date) and " +
"(:end_date is null or :end_date <= b.timestamp) and " +
"(:active is null or b.active = :active) and " +
"(:admin_ids is null or b.unbanned_by_id in :admin_ids)")
Page<Ban> getBans(Pageable pageable,
@Param(value = "ban_ids")List<Long> ban_ids,
@Param(value = "account_ids") List<Long> account_ids,
@Param(value = "begin_date") Timestamp begin_date,
@Param(value = "end_date") Timestamp end_date,
@Param(value = "active") Boolean active,
@Param(value = "admin_ids") List<String> admin_ids);
}

2
src/main/java/app/repositories/MessageRepository.java

@ -13,7 +13,7 @@ public interface MessageRepository extends PagingAndSortingRepository<Message, L
@Query(value = "select m from Message m where " +
"(:account_ids is null or m.account_id in :account_ids) and " +
"(:begin_date is null or :begin_date >= m.utime) and " +
"(:begin_date is null or m.utime >= :begin_date) and " +
"(:end_date is null or :end_date <= m.utime) and " +
"(:message_contain is null or m.message like :message_contain) and " +
"(:server_id is null or m.server_id like :server_id) order by m.id desc ")

2
src/main/java/app/services/ProfileService.java

@ -1,7 +1,7 @@
package app.services;
import app.entities.PlayerProfile;
import app.entities.db.Ban;
import app.entities.db.ban.Ban;
import app.entities.Killfeed;
import app.entities.other.SteamID;
import app.entities.report.ReportCount;

5
src/main/java/app/services/db/BanService.java

@ -1,18 +1,15 @@
package app.services.db;
import app.entities.PlayerProfile;
import app.entities.db.Ban;
import app.entities.db.ban.Ban;
import app.entities.other.SteamID;
import app.services.ServerService;
import app.utils.CryptedCookie;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
@Service

Loading…
Cancel
Save