Commit ca824f15 authored by renjie's avatar renjie

日志功能

iplist
parent 0b50e2d7
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import com.edgec.browserbackend.browser.dto.LoginHistoryDto;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
@Document(collection = "loginhistory") @Document(collection = "loginhistory")
public class LoginHistory { public class LoginHistory {
private String account; private String account;
...@@ -9,6 +15,27 @@ public class LoginHistory { ...@@ -9,6 +15,27 @@ public class LoginHistory {
private String loginIp; private String loginIp;
private String loginPlace; private String loginPlace;
private long loginTime; private long loginTime;
private String administrator;
public LoginHistory () {
}
public LoginHistory(LoginHistoryDto loginHistoryDto) {
if (loginHistoryDto.getAccount() != null)
this.account = loginHistoryDto.getAccount();
if (loginHistoryDto.getNickname() != null)
this.nickname = loginHistoryDto.getNickname();
if (loginHistoryDto.getLoginIp() != null)
this.loginIp = loginHistoryDto.getLoginIp();
if (loginHistoryDto.getLoginPlace() != null)
this.loginPlace = loginHistoryDto.getLoginPlace();
if (loginHistoryDto.getLoginTime() != null) {
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(loginHistoryDto.getLoginTime(), format);
this.loginTime = localDateTime.toInstant(ZoneOffset.UTC).toEpochMilli();
}
}
public String getNickname() { public String getNickname() {
return nickname; return nickname;
...@@ -49,4 +76,12 @@ public class LoginHistory { ...@@ -49,4 +76,12 @@ public class LoginHistory {
public void setLoginTime(long loginTime) { public void setLoginTime(long loginTime) {
this.loginTime = loginTime; this.loginTime = loginTime;
} }
public String getAdministrator() {
return administrator;
}
public void setAdministrator(String administrator) {
this.administrator = administrator;
}
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import com.edgec.browserbackend.browser.dto.OperationHistoryDto;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
@Document(collection = "operationhistory") @Document(collection = "operationhistory")
public class OperationHistory { public class OperationHistory {
private String account; private String account;
...@@ -10,6 +15,29 @@ public class OperationHistory { ...@@ -10,6 +15,29 @@ public class OperationHistory {
private String loginPlace; private String loginPlace;
private String operation; private String operation;
private long operationTime; private long operationTime;
private String administrator;
public OperationHistory() {
}
public OperationHistory(OperationHistoryDto operationHistoryDto) {
if (operationHistoryDto.getAccount() != null)
this.account = operationHistoryDto.getAccount();
if (operationHistoryDto.getNickname() != null)
this.nickname = operationHistoryDto.getNickname();
if (operationHistoryDto.getLoginIp() != null)
this.loginIp = operationHistoryDto.getLoginIp();
if (operationHistoryDto.getLoginPlace() != null)
this.loginPlace = operationHistoryDto.getLoginPlace();
if (operationHistoryDto.getOperation() != null)
this.operation = operationHistoryDto.getOperation();
if (operationHistoryDto.getOperationTime() != null) {
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(operationHistoryDto.getOperationTime(), format);
this.operationTime = localDateTime.toInstant(ZoneOffset.UTC).toEpochMilli();
}
}
public String getAccount() { public String getAccount() {
return account; return account;
...@@ -58,4 +86,12 @@ public class OperationHistory { ...@@ -58,4 +86,12 @@ public class OperationHistory {
public void setOperation(String operation) { public void setOperation(String operation) {
this.operation = operation; this.operation = operation;
} }
public String getAdministrator() {
return administrator;
}
public void setAdministrator(String administrator) {
this.administrator = administrator;
}
} }
package com.edgec.browserbackend.browser.domain;
public enum Platform {
}
package com.edgec.browserbackend.browser.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class HistoryListRequestDto {
private int day;
private int page;
private int amount;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
}
package com.edgec.browserbackend.browser.dto; package com.edgec.browserbackend.browser.dto;
import com.edgec.browserbackend.browser.domain.LoginHistory;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class LoginHistoryDto { public class LoginHistoryDto {
private String account; private String account;
...@@ -10,6 +16,23 @@ public class LoginHistoryDto { ...@@ -10,6 +16,23 @@ public class LoginHistoryDto {
private String loginPlace; private String loginPlace;
private String loginTime; private String loginTime;
public LoginHistoryDto(){
}
public LoginHistoryDto(LoginHistory loginHistory) {
if (loginHistory.getAccount() != null)
this.account = loginHistory.getAccount();
if (loginHistory.getNickname() != null)
this.nickname = loginHistory.getNickname();
if (loginHistory.getLoginIp() != null)
this.loginIp = loginHistory.getLoginIp();
if (loginHistory.getLoginPlace() != null)
this.loginPlace = loginHistory.getLoginPlace();
if (loginHistory.getLoginTime() != 0)
this.loginTime = Instant.ofEpochMilli(loginHistory.getLoginTime()).atZone(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
public String getNickname() { public String getNickname() {
return nickname; return nickname;
} }
......
package com.edgec.browserbackend.browser.dto;
import com.edgec.browserbackend.browser.domain.OperationHistory;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.time.Instant;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
@JsonIgnoreProperties(ignoreUnknown = true)
public class OperationHistoryDto {
private String account;
private String nickname;
private String loginIp;
private String loginPlace;
private String operation;
private String operationTime;
public OperationHistoryDto(){
}
public OperationHistoryDto(OperationHistory operationHistory) {
if (operationHistory.getAccount() != null)
this.account = operationHistory.getAccount();
if (operationHistory.getNickname() != null)
this.nickname = operationHistory.getNickname();
if (operationHistory.getLoginIp() != null)
this.loginIp = operationHistory.getLoginIp();
if (operationHistory.getLoginPlace() != null)
this.loginPlace = operationHistory.getLoginPlace();
if (operationHistory.getOperation() != null)
this.operation = operationHistory.getOperation();
if (operationHistory.getOperationTime() != 0)
this.operationTime = Instant.ofEpochMilli(operationHistory.getOperationTime()).atZone(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getLoginIp() {
return loginIp;
}
public void setLoginIp(String loginIp) {
this.loginIp = loginIp;
}
public String getLoginPlace() {
return loginPlace;
}
public void setLoginPlace(String loginPlace) {
this.loginPlace = loginPlace;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public String getOperationTime() {
return operationTime;
}
public void setOperationTime(String operationTime) {
this.operationTime = operationTime;
}
}
...@@ -15,6 +15,7 @@ public interface IpResourceRepository extends MongoRepository<IpResource, String ...@@ -15,6 +15,7 @@ public interface IpResourceRepository extends MongoRepository<IpResource, String
List<IpResource> findByIdInAndIsDeleted(List<String> ipIds, boolean isDeleted); List<IpResource> findByIdInAndIsDeleted(List<String> ipIds, boolean isDeleted);
Page<IpResource> findByIdInAndIsDeletedOrderByPurchasedTimeDesc(List<String> ipIds, boolean isDeleted, Pageable pageable); Page<IpResource> findByIdInAndIsDeletedOrderByPurchasedTimeDesc(List<String> ipIds, boolean isDeleted, Pageable pageable);
List<IpResource> findByOwnerAndIsDeletedAndShopIdIsNull(String owner, boolean isDeleted); List<IpResource> findByOwnerAndIsDeletedAndShopIdIsNull(String owner, boolean isDeleted);
List<IpResource> findByOwnerAndStatusIsNotAndIsDeletedAndShopIdIsNull(String owner, int status, boolean isDeleted);
List<IpResource> findByOwnerAndStatusAndIsDeletedAndShopIdIsNull(String owner, int status, boolean isDeleted); List<IpResource> findByOwnerAndStatusAndIsDeletedAndShopIdIsNull(String owner, int status, boolean isDeleted);
List<IpResource> findByStatusAndIdInAndIsDeleted(int status, List<String> ipIds, boolean isDeleted); List<IpResource> findByStatusAndIdInAndIsDeleted(int status, List<String> ipIds, boolean isDeleted);
Page<IpResource> findByAddrLikeAndIdInAndIsDeletedOrderByPurchasedTimeDesc(String addr, List<String> ipIds, boolean isDeleted, Pageable pageable); Page<IpResource> findByAddrLikeAndIdInAndIsDeletedOrderByPurchasedTimeDesc(String addr, List<String> ipIds, boolean isDeleted, Pageable pageable);
......
...@@ -6,6 +6,6 @@ import org.springframework.data.domain.Pageable; ...@@ -6,6 +6,6 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.MongoRepository;
public interface LoginHistoryRepository extends MongoRepository<LoginHistory, String> { public interface LoginHistoryRepository extends MongoRepository<LoginHistory, String> {
Page<LoginHistory> findByAccountOrderByLoginTimeDesc(String account, Pageable pageable); Page<LoginHistory> findByAdministratorOrderByLoginTime(String account, Pageable pageable);
} }
...@@ -2,16 +2,22 @@ package com.edgec.browserbackend.browser.service; ...@@ -2,16 +2,22 @@ package com.edgec.browserbackend.browser.service;
import com.edgec.browserbackend.browser.domain.LoginHistory; import com.edgec.browserbackend.browser.domain.LoginHistory;
import com.edgec.browserbackend.browser.domain.OperationHistory; import com.edgec.browserbackend.browser.domain.OperationHistory;
import com.edgec.browserbackend.browser.dto.HistoryListRequestDto;
import com.edgec.browserbackend.browser.dto.HistoryPageResultDto; import com.edgec.browserbackend.browser.dto.HistoryPageResultDto;
import com.edgec.browserbackend.browser.dto.LoginHistoryDto; import com.edgec.browserbackend.browser.dto.LoginHistoryDto;
import com.edgec.browserbackend.browser.dto.OperationHistoryDto;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import java.util.List; import java.util.List;
public interface HistoryService { public interface HistoryService {
HistoryPageResultDto getLoginHistories(String username, int day); void addLoginHistory(String username, LoginHistoryDto loginHistoryDto);
HistoryPageResultDto getOperationHistories(String username, int day); void addOperationHistory(String username, OperationHistoryDto operationHistoryDto);
HistoryPageResultDto getLoginHistories(String username, HistoryListRequestDto historyListRequestDto);
HistoryPageResultDto getOperationHistories(String username, HistoryListRequestDto historyListRequestDto);
} }
package com.edgec.browserbackend.browser.service.Impl; package com.edgec.browserbackend.browser.service.Impl;
import com.edgec.browserbackend.browser.dto.HistoryPageResultDto; import com.edgec.browserbackend.browser.domain.LoginHistory;
import com.edgec.browserbackend.browser.domain.OperationHistory;
import com.edgec.browserbackend.browser.dto.*;
import com.edgec.browserbackend.browser.repository.LoginHistoryRepository;
import com.edgec.browserbackend.browser.repository.OperationHistoryRepository;
import com.edgec.browserbackend.browser.service.HistoryService; import com.edgec.browserbackend.browser.service.HistoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
public class HistoryServiceImpl implements HistoryService { public class HistoryServiceImpl implements HistoryService {
@Autowired
private LoginHistoryRepository loginHistoryRepository;
@Autowired
private OperationHistoryRepository operationHistoryRepository;
@Override
public void addLoginHistory(String username, LoginHistoryDto loginHistoryDto) {
LoginHistory loginHistory = new LoginHistory(loginHistoryDto);
loginHistory.setLoginTime(Instant.now().toEpochMilli());
loginHistoryRepository.save(loginHistory);
}
@Override @Override
public HistoryPageResultDto getLoginHistories(String username, int day) { public void addOperationHistory(String username, OperationHistoryDto operationHistoryDto) {
}
@Override
public HistoryPageResultDto getLoginHistories(String username, HistoryListRequestDto historyListRequestDto) {
if (historyListRequestDto.getAmount() > 100)
historyListRequestDto.setAmount(100);
Pageable pageable = PageRequest.of(historyListRequestDto.getPage(), historyListRequestDto.getAmount());
HistoryPageResultDto historyPageResultDto = new HistoryPageResultDto(); HistoryPageResultDto historyPageResultDto = new HistoryPageResultDto();
return null; Page<LoginHistory> loginHistoryPage = loginHistoryRepository.findByAdministratorOrderByLoginTime(username, pageable);
List<LoginHistoryDto> loginHistoryDtoList = new ArrayList<>();
loginHistoryPage.getContent().forEach(x -> {
loginHistoryDtoList.add(new LoginHistoryDto(x));
});
historyPageResultDto.setHistory(loginHistoryDtoList);
PageInfo pageInfo = new PageInfo();
pageInfo.setCurrentPage(loginHistoryPage.getNumber());
pageInfo.setTotalPages(loginHistoryPage.getTotalPages());
pageInfo.setTotalItems((int)loginHistoryPage.getTotalElements());
historyPageResultDto.setHistoryPage(pageInfo);
return historyPageResultDto;
} }
@Override @Override
public HistoryPageResultDto getOperationHistories(String username, int day) { public HistoryPageResultDto getOperationHistories(String username, HistoryListRequestDto historyListRequestDto) {
return null; return null;
} }
} }
...@@ -530,7 +530,7 @@ public class IpResourceServiceImpl implements IpResourceService { ...@@ -530,7 +530,7 @@ public class IpResourceServiceImpl implements IpResourceService {
notUsed = ipResourceRepository.findByOwnerAndStatusAndIsDeletedAndShopIdIsNull(username, 1, false); notUsed = ipResourceRepository.findByOwnerAndStatusAndIsDeletedAndShopIdIsNull(username, 1, false);
break; break;
case 4: case 4:
notUsed = ipResourceRepository.findByOwnerAndIsDeletedAndShopIdIsNull(username, false); notUsed = ipResourceRepository.findByOwnerAndStatusIsNotAndIsDeletedAndShopIdIsNull(username, 3,false);
break; break;
} }
if (notUsed != null) if (notUsed != null)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment