Commit d5b01f29 authored by xuxin's avatar xuxin

部分代码添加注释

parent 89b62bef
...@@ -8,13 +8,16 @@ public class AccountServicePool { ...@@ -8,13 +8,16 @@ public class AccountServicePool {
private static final int POOL_COUNT = 10; private static final int POOL_COUNT = 10;
public static final ExecutorService taskPool = Executors.newFixedThreadPool(POOL_COUNT, new ThreadFactory() { public static final ExecutorService taskPool = Executors.newFixedThreadPool(
POOL_COUNT,
new ThreadFactory() {
int count = 1; int count = 1;
@Override @Override
public Thread newThread(Runnable runnable) { public Thread newThread(Runnable runnable) {
return new Thread(runnable, "account-service-pool" + count++); return new Thread(runnable, "account-service-pool" + count++);
} }
}); }
);
} }
...@@ -36,8 +36,7 @@ public class OAuthResponseExceptionTranslator extends DefaultWebResponseExceptio ...@@ -36,8 +36,7 @@ public class OAuthResponseExceptionTranslator extends DefaultWebResponseExceptio
headers.set("WWW-Authenticate", String.format("%s %s", OAuth2AccessToken.BEARER_TYPE, e.getSummary())); headers.set("WWW-Authenticate", String.format("%s %s", OAuth2AccessToken.BEARER_TYPE, e.getSummary()));
} }
ResponseEntity<OAuth2Exception> response = new ResponseEntity<OAuth2Exception>(ex, headers, ResponseEntity<OAuth2Exception> response = new ResponseEntity<OAuth2Exception>(ex, headers, HttpStatus.valueOf(status));
HttpStatus.valueOf(status));
return response; return response;
} }
......
package com.edgec.browserbackend.auth.config; package com.edgec.browserbackend.auth.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
...@@ -13,14 +9,12 @@ import org.springframework.security.oauth2.config.annotation.web.configuration.R ...@@ -13,14 +9,12 @@ import org.springframework.security.oauth2.config.annotation.web.configuration.R
@EnableResourceServer @EnableResourceServer
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter { public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
private Logger logger = LoggerFactory.getLogger(ResourceServerConfiguration.class);
@Override @Override
public void configure(HttpSecurity http) throws Exception { public void configure(HttpSecurity http) throws Exception {
http http
.authorizeRequests() .authorizeRequests()
.antMatchers("/oauth/**").permitAll() .antMatchers("/oauth/**").permitAll()
.antMatchers("/shop/**","/ip/**","/group/**","/0xadministrator/**","/user/**","/history/**").authenticated() .antMatchers("/shop/**", "/ip/**", "/group/**", "/0xadministrator/**", "/user/**", "/history/**").authenticated()
.and() .and()
//关闭跨站请求防护 //关闭跨站请求防护
.csrf().disable(); .csrf().disable();
......
...@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler; ...@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.context.request.WebRequest; import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
@Deprecated
@ControllerAdvice @ControllerAdvice
public class AuthErrorHandler extends ResponseEntityExceptionHandler { public class AuthErrorHandler extends ResponseEntityExceptionHandler {
......
package com.edgec.browserbackend.auth.domain.mongo; package com.edgec.browserbackend.auth.domain.mongo;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.PersistenceConstructor; import org.springframework.data.annotation.PersistenceConstructor;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
...@@ -8,6 +11,9 @@ import java.time.Instant; ...@@ -8,6 +11,9 @@ import java.time.Instant;
import java.util.Arrays; import java.util.Arrays;
import java.util.Objects; import java.util.Objects;
@NoArgsConstructor
@Getter
@Setter
@Document @Document
public class MongoOAuth2AccessToken { public class MongoOAuth2AccessToken {
...@@ -21,8 +27,6 @@ public class MongoOAuth2AccessToken { ...@@ -21,8 +27,6 @@ public class MongoOAuth2AccessToken {
private String refreshToken; private String refreshToken;
private long createdAt; private long createdAt;
public MongoOAuth2AccessToken() {
}
@PersistenceConstructor @PersistenceConstructor
public MongoOAuth2AccessToken(final String tokenId, public MongoOAuth2AccessToken(final String tokenId,
...@@ -42,33 +46,6 @@ public class MongoOAuth2AccessToken { ...@@ -42,33 +46,6 @@ public class MongoOAuth2AccessToken {
this.createdAt = Instant.now().toEpochMilli(); this.createdAt = Instant.now().toEpochMilli();
} }
public String getTokenId() {
return tokenId;
}
public byte[] getToken() {
return token;
}
public String getAuthenticationId() {
return authenticationId;
}
public String getUsername() {
return username;
}
public String getClientId() {
return clientId;
}
public byte[] getAuthentication() {
return authentication;
}
public String getRefreshToken() {
return refreshToken;
}
@Override @Override
public int hashCode() { public int hashCode() {
...@@ -100,11 +77,4 @@ public class MongoOAuth2AccessToken { ...@@ -100,11 +77,4 @@ public class MongoOAuth2AccessToken {
'}'; '}';
} }
public long getCreatedAt() {
return createdAt;
}
public void setCreatedAt(long createdAt) {
this.createdAt = createdAt;
}
} }
package com.edgec.browserbackend.auth.domain.mongo; package com.edgec.browserbackend.auth.domain.mongo;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
...@@ -9,6 +12,9 @@ import org.springframework.data.mongodb.core.mapping.Document; ...@@ -9,6 +12,9 @@ import org.springframework.data.mongodb.core.mapping.Document;
import java.time.Instant; import java.time.Instant;
@Getter
@Setter
@NoArgsConstructor
@Document @Document
public class MongoOAuth2RefreshToken { public class MongoOAuth2RefreshToken {
...@@ -18,8 +24,6 @@ public class MongoOAuth2RefreshToken { ...@@ -18,8 +24,6 @@ public class MongoOAuth2RefreshToken {
private byte[] authentication; private byte[] authentication;
private long createdAt; private long createdAt;
public MongoOAuth2RefreshToken() {
}
@PersistenceConstructor @PersistenceConstructor
public MongoOAuth2RefreshToken(final String tokenId, public MongoOAuth2RefreshToken(final String tokenId,
...@@ -31,18 +35,6 @@ public class MongoOAuth2RefreshToken { ...@@ -31,18 +35,6 @@ public class MongoOAuth2RefreshToken {
this.createdAt = Instant.now().toEpochMilli(); this.createdAt = Instant.now().toEpochMilli();
} }
public String getTokenId() {
return tokenId;
}
public byte[] getToken() {
return token;
}
public byte[] getAuthentication() {
return authentication;
}
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o) return true;
...@@ -75,12 +67,4 @@ public class MongoOAuth2RefreshToken { ...@@ -75,12 +67,4 @@ public class MongoOAuth2RefreshToken {
.append("authentication", authentication) .append("authentication", authentication)
.toString(); .toString();
} }
public long getCreatedAt() {
return createdAt;
}
public void setCreatedAt(long createdAt) {
this.createdAt = createdAt;
}
} }
...@@ -27,6 +27,9 @@ public class IpControlloer { ...@@ -27,6 +27,9 @@ public class IpControlloer {
@Autowired @Autowired
private IpResourceService ipResourceService; private IpResourceService ipResourceService;
/**
* 购买IP资源
*/
@RequestMapping(value = "/buy", method = RequestMethod.POST) @RequestMapping(value = "/buy", method = RequestMethod.POST)
public ResultDto buyIp(Principal principal, @RequestBody IpResourceRequestDto ipResourceRequestDto) { public ResultDto buyIp(Principal principal, @RequestBody IpResourceRequestDto ipResourceRequestDto) {
ResultDto resultDto = new ResultDto(); ResultDto resultDto = new ResultDto();
...@@ -72,6 +75,9 @@ public class IpControlloer { ...@@ -72,6 +75,9 @@ public class IpControlloer {
return resultDto; return resultDto;
} }
/**
* 删除指定IP资源
*/
@RequestMapping(value = "/del", method = RequestMethod.POST) @RequestMapping(value = "/del", method = RequestMethod.POST)
public ResultDto deleteIp(Principal principal, @RequestBody IpResourceRequestDto ipResourceRequestDto) { public ResultDto deleteIp(Principal principal, @RequestBody IpResourceRequestDto ipResourceRequestDto) {
ResultDto resultDto = new ResultDto(); ResultDto resultDto = new ResultDto();
......
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import java.io.Serializable; import lombok.Data;
import java.util.StringTokenizer;
@Data
public class BindHistory { public class BindHistory {
private String shopName; private String shopName;
private String ip; private String ip;
private String platform; private String platform;
private String unbindTime; private String unbindTime;
public BindHistory(){
}
public String getShopName() {
return shopName;
}
public void setShopName(String shopName) {
this.shopName = shopName;
}
public String getIp() {
return ip;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public String getPlatform() {
return platform;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getUnbindTime() {
return unbindTime;
}
public void setUnbindTime(String unbindTime) {
this.unbindTime = unbindTime;
}
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import org.apache.commons.lang3.StringUtils; import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.util.StringUtils;
import java.util.List; @Getter
@Setter
@Document(collection = "groups") @Document(collection = "groups")
public class Group { public class Group {
/**
* 组 id
*/
@Id @Id
private String id; private String id;
/**
* 组名
*/
private String name; private String name;
/**
* 组创建者
*/
private String owner; private String owner;
/**
* 组详情
*/
private String details; private String details;
public void of(Group group){ public void of(Group group) {
if (StringUtils.isNotBlank(group.getId())) if (!StringUtils.isEmpty(group.getId())) {
this.setId(group.getId()); this.setId(group.getId());
if (StringUtils.isNotBlank(group.getOwner()))
this.setOwner(group.getOwner());
if (StringUtils.isNotBlank(group.getDetails()))
this.setDetails(group.getDetails());
if (StringUtils.isNotBlank(group.getName()))
this.setName(group.getName());
} }
public String getId() { if (!StringUtils.isEmpty(group.getOwner())) {
return id; this.setOwner(group.getOwner());
}
public void setId(String id) {
this.id = id;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getName() {
return name;
} }
public void setName(String name) { if (!StringUtils.isEmpty(group.getDetails())) {
this.name = name; this.setDetails(group.getDetails());
} }
public String getDetails() { if (!StringUtils.isEmpty(group.getName())) {
return details; this.setName(group.getName());
} }
public void setDetails(String details) {
this.details = details;
} }
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
@Data
@Document(collection = "ipcountrecord") @Document(collection = "ipcountrecord")
public class IpCountRecord { public class IpCountRecord {
private String username;
private long timestamp;
private long ip_using;
private long ip_all;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public long getIp_all() { private String username;
return ip_all;
}
public void setIp_all(long ip_all) {
this.ip_all = ip_all;
}
public long getIp_using() {
return ip_using;
}
public void setIp_using(long ip_using) { private long timestamp;
this.ip_using = ip_using;
}
public long getTimestamp() { private long ip_using;
return timestamp;
}
public void setTimestamp(long timestamp) { private long ip_all;
this.timestamp = timestamp;
}
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
...@@ -11,6 +13,9 @@ import java.util.Map; ...@@ -11,6 +13,9 @@ import java.util.Map;
* @Author jason * @Author jason
* @CreateTime 2020/3/12 10:30 上午 * @CreateTime 2020/3/12 10:30 上午
**/ **/
@Getter
@Setter
@Document("ipOptions") @Document("ipOptions")
public class IpOptions { public class IpOptions {
...@@ -25,35 +30,5 @@ public class IpOptions { ...@@ -25,35 +30,5 @@ public class IpOptions {
private List<String> ipDurations; private List<String> ipDurations;
public List<String> getIpDurations() {
return ipDurations;
}
public void setIpDurations(List<String> ipDurations) {
this.ipDurations = ipDurations;
}
public Map<String, List<String>> getIpPlatForm() {
return ipPlatForm;
}
public void setIpPlatForm(Map<String, List<String>> ipPlatForm) {
this.ipPlatForm = ipPlatForm;
}
public Map<String, List<String>> getIpRegion() {
return ipRegion;
}
public void setIpRegion(Map<String, List<String>> ipRegion) {
this.ipRegion = ipRegion;
}
public Map<String, Map<String, List<String>>> getSupportedPlatForm() {
return supportedPlatForm;
}
public void setSupportedPlatForm(Map<String, Map<String, List<String>>> supportedPlatForm) {
this.supportedPlatForm = supportedPlatForm;
}
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
...@@ -9,6 +12,9 @@ import java.util.ArrayList; ...@@ -9,6 +12,9 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@Getter
@Setter
@NoArgsConstructor
@Document(collection = "ipresource") @Document(collection = "ipresource")
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class IpResource implements Serializable { public class IpResource implements Serializable {
...@@ -53,270 +59,14 @@ public class IpResource implements Serializable { ...@@ -53,270 +59,14 @@ public class IpResource implements Serializable {
private String unit; private String unit;
private int period; private int period;
public IpResource() {
}
public String getDetails() {
return details;
}
public void setDetails(String details) {
this.details = details;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
public String getRegionCn() {
return regionCn;
}
public void setRegionCn(String regionCn) {
this.regionCn = regionCn;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public IpType getIpType() {
return ipType;
}
public void setIpType(IpType ipType) {
this.ipType = ipType;
}
public List<BindHistory> getBindHistory() {
return bindHistory;
}
public void setBindHistory(List<BindHistory> bindHistory) {
this.bindHistory = bindHistory;
}
public long getPurchasedTime() {
return purchasedTime;
}
public void setPurchasedTime(long purchasedTime) {
this.purchasedTime = purchasedTime;
}
public long getValidTime() {
return validTime;
}
public void setValidTime(long validTime) {
this.validTime = validTime;
}
public Vendor getVendor() {
return vendor;
}
public void setVendor(Vendor vendor) {
this.vendor = vendor;
}
public boolean isDeleted() {
return isDeleted;
}
public void setDeleted(boolean deleted) {
isDeleted = deleted;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public List<String> getPort() {
return port;
}
public void setPort(List<String> port) {
this.port = port;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getUserParent() {
return userParent;
}
public void setUserParent(String userParent) {
this.userParent = userParent;
}
public List<String> getProtocol() {
return protocol;
}
public void setProtocol(List<String> protocol) {
this.protocol = protocol;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public boolean isLocked() {
return isLocked;
}
public void setLocked(boolean locked) {
isLocked = locked;
}
public long getLockTimestamp() {
return lockTimestamp;
}
public void setLockTimestamp(long lockTimestamp) {
this.lockTimestamp = lockTimestamp;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public int getPeriod() {
return period;
}
public void setPeriod(int period) {
this.period = period;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public List<String> getShopIds() {
return shopIds;
}
public void setShopIds(List<String> shopIds) {
this.shopIds = shopIds;
}
public String getVendorCn() {
return vendorCn;
}
public void setVendorCn(String vendorCn) {
this.vendorCn = vendorCn;
}
public String getProxyPassword() {
return proxyPassword;
}
public void setProxyPassword(String proxyPassword) {
this.proxyPassword = proxyPassword;
}
public String getProxyUsername() {
return proxyUsername;
}
public void setProxyUsername(String proxyUsername) {
this.proxyUsername = proxyUsername;
}
public boolean isSpecialLine() {
return specialLine;
}
public void setSpecialLine(boolean specialLine) {
this.specialLine = specialLine;
}
public long getHealthLockTimestamp() {
return healthLockTimestamp;
}
public void setHealthLockTimestamp(long healthLockTimestamp) {
this.healthLockTimestamp = healthLockTimestamp;
}
public boolean isUsingSpecialLine() {
return usingSpecialLine;
}
public void setUsingSpecialLine(boolean usingSpecialLine) {
this.usingSpecialLine = usingSpecialLine;
}
public boolean isBind() {
return bind;
}
public void setBind(boolean bind) {
this.bind = bind;
}
public String getShopId() {
return shopId;
}
public void setShopId(String shopId) {
this.shopId = shopId;
}
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o) {
if (!(o instanceof IpResource)) return false; return true;
}
if (!(o instanceof IpResource)) {
return false;
}
IpResource that = (IpResource) o; IpResource that = (IpResource) o;
return Objects.equals(getId(), that.getId()); return Objects.equals(getId(), that.getId());
} }
......
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
public class IpSummary { import lombok.Data;
private int total;
private int unbind;
private int willExpire;
private int expired;
public int getExpired() {
return expired;
}
public void setExpired(int expired) { @Data
this.expired = expired; public class IpSummary {
}
public int getTotal() {
return total;
}
public void setTotal(int total) { /**
this.total = total; * ip 总数
} */
private int total;
public int getUnbind() { /**
return unbind; * 未绑定 ip 数
} */
private int unbind;
public void setUnbind(int unbind) { /**
this.unbind = unbind; * 将要过期的 ip 数
} */
private int willExpire;
public int getWillExpire() { /**
return willExpire; * 已过期的 ip 数
} */
private int expired;
public void setWillExpire(int willExpire) {
this.willExpire = willExpire;
}
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
public enum IpType { public enum IpType {
/**
* 本地ip,即 ip 地址没有设置任何代理
*/
LOCAL, LOCAL,
/**
* ip代理
*/
VENDOR, VENDOR,
/**
* 自有ip,即该ip不是从我们系统购买的
*/
OWN; OWN;
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import com.edgec.browserbackend.browser.dto.OperationHistoryDto; import com.edgec.browserbackend.browser.dto.OperationHistoryDto;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
...@@ -8,6 +11,9 @@ import java.time.LocalDateTime; ...@@ -8,6 +11,9 @@ import java.time.LocalDateTime;
import java.time.ZoneOffset; import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@Getter
@Setter
@NoArgsConstructor
@Document(collection = "operationhistory") @Document(collection = "operationhistory")
public class OperationHistory { public class OperationHistory {
@Id @Id
...@@ -20,89 +26,31 @@ public class OperationHistory { ...@@ -20,89 +26,31 @@ public class OperationHistory {
private long operationTime; private long operationTime;
private String administrator; private String administrator;
public OperationHistory() {
}
public OperationHistory(OperationHistoryDto operationHistoryDto) { public OperationHistory(OperationHistoryDto operationHistoryDto) {
if (operationHistoryDto.getAccount() != null) if (operationHistoryDto.getAccount() != null) {
this.username = operationHistoryDto.getAccount(); this.username = 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 getId() {
return id;
}
public void setId(String id) {
this.id = id;
} }
public String getUsername() { if (operationHistoryDto.getNickname() != null) {
return username; this.nickname = operationHistoryDto.getNickname();
}
public void setUsername(String username) {
this.username = username;
}
public long getOperationTime() {
return operationTime;
}
public void setOperationTime(long operationTime) {
this.operationTime = operationTime;
}
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) { if (operationHistoryDto.getLoginIp() != null) {
this.nickname = nickname; this.loginIp = operationHistoryDto.getLoginIp();
} }
public String getOperation() { if (operationHistoryDto.getLoginPlace() != null) {
return operation; this.loginPlace = operationHistoryDto.getLoginPlace();
} }
public void setOperation(String operation) { if (operationHistoryDto.getOperation() != null) {
this.operation = operation; this.operation = operationHistoryDto.getOperation();
} }
public String getAdministrator() { if (operationHistoryDto.getOperationTime() != null) {
return administrator; 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 void setAdministrator(String administrator) {
this.administrator = administrator;
} }
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import org.springframework.data.annotation.Id; import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -11,26 +11,13 @@ import java.util.Map; ...@@ -11,26 +11,13 @@ import java.util.Map;
* @Author jason * @Author jason
* @CreateTime 2020/3/12 11:44 上午 * @CreateTime 2020/3/12 11:44 上午
**/ **/
@Getter
@Setter
@Document("platformoptions") @Document("platformoptions")
public class PlatformOptions { public class PlatformOptions {
private String platform; private String platform;
private Map<String, String> subPlatform; private Map<String, String> subPlatform;
public Map<String, String> getSubPlatform() {
return subPlatform;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public String getPlatform() {
return platform;
}
public void setSubPlatform(Map<String, String> subPlatform) {
this.subPlatform = subPlatform;
}
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@Document(collection = "proxyconfig") @Document(collection = "proxyconfig")
public class ProxyConfig { public class ProxyConfig {
private long timestamp; private long timestamp;
private String configFileId; private String configFileId;
public long getTimestamp() {
return timestamp;
}
public void setConfigFileId(String configFileId) {
this.configFileId = configFileId;
}
public String getConfigFileId() {
return configFileId;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import com.alibaba.fastjson.JSONObject;
import com.edgec.browserbackend.browser.dto.ShopResultDto; import com.edgec.browserbackend.browser.dto.ShopResultDto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
@Getter
@Setter
@NoArgsConstructor
@Document(collection = "shop") @Document(collection = "shop")
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class Shop { public class Shop {
/**
* 商铺 id
*/
@Id @Id
private String shopId; private String shopId;
/**
* 商铺名称
*/
private String shopName; private String shopName;
/**
* 商铺拥有者,谁创建谁拥有
*/
private String owner; private String owner;
/**
* 商铺 id
*/
private TransferStatus transferStatus; private TransferStatus transferStatus;
/**
* 商铺url
*/
private String shopUrl; private String shopUrl;
/**
* 商铺所在的平台
*/
private String shopPlatform; private String shopPlatform;
/**
* 商铺账号
*/
private String shopAccount; private String shopAccount;
/**
* 商铺密码
*/
private String shopPassword; private String shopPassword;
/**
* 商铺平台(操作系统 + 浏览器版本)
*/
private String shopUA; private String shopUA;
/**
* 商铺的 cookie 信息
*/
private String shopCookie; private String shopCookie;
/**
* 商铺创建时间
*/
private long createTime; private long createTime;
public Shop(){ /**
* 创建店铺使用
*/
public Shop of(ShopResultDto shopResultDto) {
if (shopResultDto.getShopUrl() != null) {
this.setShopUrl(shopResultDto.getShopUrl());
}
if (shopResultDto.getOwner() != null) {
this.setOwner(shopResultDto.getOwner());
}
if (shopResultDto.getShopPlatform() != null) {
this.setShopPlatform(shopResultDto.getShopPlatform());
}
if (shopResultDto.getShopName() != null) {
this.setShopName(shopResultDto.getShopName());
}
if (shopResultDto.getTransferStatus() != null) {
this.setTransferStatus(shopResultDto.getTransferStatus());
}
if (shopResultDto.getShopAccount() != null) {
this.setShopAccount(shopResultDto.getShopAccount());
}
if (shopResultDto.getShopPassword() != null) {
this.setShopPassword(shopResultDto.getShopPassword());
}
if (shopResultDto.getShopUA() != null) {
this.setShopUA(shopResultDto.getShopUA());
}
if (shopResultDto.getShopCookie() != null) {
this.setShopCookie(shopResultDto.getShopCookie());
}
if (shopResultDto.getCreateTime() != 0) {
this.setCreateTime(shopResultDto.getCreateTime());
} }
//创建店铺使用
public Shop of(ShopResultDto shop) {
if (shop.getShopUrl() != null)
this.setShopUrl(shop.getShopUrl());
if (shop.getOwner() != null)
this.setOwner(shop.getOwner());
if (shop.getShopPlatform() != null)
this.setShopPlatform(shop.getShopPlatform());
if (shop.getShopName() != null)
this.setShopName(shop.getShopName());
if (shop.getTransferStatus() != null)
this.setTransferStatus(shop.getTransferStatus());
if (shop.getShopAccount() != null)
this.setShopAccount(shop.getShopAccount());
if (shop.getShopPassword() != null)
this.setShopPassword(shop.getShopPassword());
if (shop.getShopUA() != null)
this.setShopUA(shop.getShopUA());
if (shop.getShopCookie() != null)
this.setShopCookie(shop.getShopCookie());
if (shop.getCreateTime() != 0)
this.setCreateTime(shop.getCreateTime());
return this; return this;
} }
...@@ -83,95 +139,7 @@ public class Shop { ...@@ -83,95 +139,7 @@ public class Shop {
this.setShopCookie(shop.getShopCookie()); this.setShopCookie(shop.getShopCookie());
if (shop.getCreateTime() != 0) if (shop.getCreateTime() != 0)
this.setCreateTime(shop.getCreateTime()); this.setCreateTime(shop.getCreateTime());
return this;
}
public String getShopId() { return this;
return shopId;
}
public String getShopUrl() {
return shopUrl;
}
public String getOwner() {
return owner;
}
public String getShopPlatform() {
return shopPlatform;
}
public String getShopName() {
return shopName;
}
public TransferStatus getTransferStatus() {
return transferStatus;
}
public void setShopId(String shopId) {
this.shopId = shopId;
}
public void setShopUrl(String shopUrl) {
this.shopUrl = shopUrl;
}
public void setOwner(String owner) {
this.owner = owner;
}
public void setShopPlatform(String shopPlatform) {
this.shopPlatform = shopPlatform;
}
public void setShopName(String shopName) {
this.shopName = shopName;
}
public void setTransferStatus(TransferStatus transferStatus) {
this.transferStatus = transferStatus;
}
public String getShopAccount() {
return shopAccount;
}
public void setShopAccount(String shopAccount) {
this.shopAccount = shopAccount;
}
public String getShopPassword() {
return shopPassword;
}
public void setShopPassword(String shopPassword) {
this.shopPassword = shopPassword;
}
public String getShopCookie() {
return shopCookie;
}
public void setShopCookie(String shopCookie) {
this.shopCookie = shopCookie;
}
public String getShopUA() {
return shopUA;
}
public void setShopUA(String shopUA) {
this.shopUA = shopUA;
}
public long getCreateTime() {
return createTime;
}
public void setCreateTime(long createTime) {
this.createTime = createTime;
} }
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
public class ShopSummary {
private int total;
private int unbind;
private int willExpire;
private int expired;
public int getExpired() {
return expired;
}
public void setExpired(int expired) { import lombok.Getter;
this.expired = expired; import lombok.Setter;
}
public int getTotal() { @Getter
return total; @Setter
} public class ShopSummary {
public void setTotal(int total) {
this.total = total;
}
public int getUnbind() { /**
return unbind; * 商铺 总数
} */
private int total;
public void setUnbind(int unbind) { /**
this.unbind = unbind; * 未绑定商铺数
} */
private int unbind;
public int getWillExpire() { /**
return willExpire; * 即将过期商铺数
} */
private int willExpire;
public void setWillExpire(int willExpire) { /**
this.willExpire = willExpire; * 已过期商铺数
} */
private int expired;
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List; import java.util.List;
@Getter
@Setter
@Document("specialline") @Document("specialline")
public class SpecialLine { public class SpecialLine {
/**
* 专线 id
*/
@Id @Id
private String Id; private String Id;
/**
* 专线 ip
*/
private String ip; private String ip;
private List<String> proxyProtocol; //专线使用的协议 /**
private List<String> proxyPort; //专线使用的端口 * 专线使用的协议
*/
private String username; //专线代理服务器用户名 private List<String> proxyProtocol;
private String password; //专线代理服务器密码
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
public List<String> getProxyProtocol() {
return proxyProtocol;
}
public void setProxyProtocol(List<String> proxyProtocol) {
this.proxyProtocol = proxyProtocol;
}
public List<String> getProxyPort() {
return proxyPort;
}
public void setProxyPort(List<String> proxyPort) {
this.proxyPort = proxyPort;
}
public String getPassword() { /**
return password; * 专线使用的端口
} */
private List<String> proxyPort;
public void setPassword(String password) { /**
this.password = password; * 专线代理服务器用户名
} */
private String username;
public String getUsername() { /**
return username; * 专线代理服务器密码
} */
private String password;
public void setUsername(String username) {
this.username = username;
}
} }
package com.edgec.browserbackend.browser.domain; package com.edgec.browserbackend.browser.domain;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List; @Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "usershop") @Document(collection = "usershop")
public class UserShop { public class UserShop {
...@@ -17,56 +23,13 @@ public class UserShop { ...@@ -17,56 +23,13 @@ public class UserShop {
private String groupId; private String groupId;
public UserShop(){
}
public UserShop(String username, String shopId) { public UserShop(String username, String shopId) {
this.username = username; this.username = username;
this.shopId = shopId; this.shopId = shopId;
} }
public UserShop(String username, String shopId, String groupId) { public UserShop(String username, String shopId, String groupId) {
this.username = username; this(username, shopId);
this.shopId = shopId;
this.groupId = groupId;
}
public UserShop(String username, String shopId, String groupId, String ipId) {
this.username = username;
this.shopId = shopId;
this.groupId = groupId;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getShopId() {
return shopId;
}
public void setShopId(String shopId) {
this.shopId = shopId;
}
public String getGroupId() {
return groupId;
}
public void setGroupId(String groupId) {
this.groupId = groupId; this.groupId = groupId;
} }
} }
...@@ -4,13 +4,31 @@ package com.edgec.browserbackend.browser.domain; ...@@ -4,13 +4,31 @@ package com.edgec.browserbackend.browser.domain;
* @Desc * @Desc
* @Author jason * @Author jason
* @CreateTime 2020/3/12 4:01 下午 * @CreateTime 2020/3/12 4:01 下午
**/ */
public enum Vendor { public enum Vendor {
aliyun("阿里云"), JDCLOUD("京东云"), aws("亚马逊云"), awscn("亚马逊中国"), tencent("腾讯云"), local("本地"), own("自有");
/**
* 本平台提供的代理ip
*/
aliyun("阿里云"),
JDCLOUD("京东云"),
aws("亚马逊云"),
awscn("亚马逊中国"),
tencent("腾讯云"),
/**
* 本地ip,即 ip 地址没有设置任何代理
*/
local("本地"),
/**
* 用户自己已经拥有的代理ip
*/
own("自有");
private String value; private String value;
private Vendor(String value) { Vendor(String value) {
this.value = value; this.value = value;
} }
......
...@@ -2,12 +2,14 @@ package com.edgec.browserbackend.browser.dto; ...@@ -2,12 +2,14 @@ package com.edgec.browserbackend.browser.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.ArrayList;
import java.util.List;
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class IpListRequestDto { public class IpListRequestDto {
/**
* 1: 全部;  2: 即将过期 ; 3: 已过期; 4: 未绑定; 5: 已分配
*/
private int groupType; private int groupType;
private int page; private int page;
private int amount; private int amount;
private IpFilterDto filter; private IpFilterDto filter;
......
...@@ -357,39 +357,25 @@ public class ShopServiceImpl implements ShopService { ...@@ -357,39 +357,25 @@ public class ShopServiceImpl implements ShopService {
throw new ClientRequestException(AccountErrorCode.NOPERMISSION); throw new ClientRequestException(AccountErrorCode.NOPERMISSION);
} }
List<String> shopIds = new ArrayList<>();
// 根据 groupId 与 username 来查询 shopIds
List<String> allIds = null;
if ("-1".equals(groupId)) { if ("-1".equals(groupId)) {
if (shopFilterDto.getBindIp() == 0) { allIds = userShopRepository.findByUsername(username).stream()
// 获取当前用户下所有的商铺id
shopIds = userShopRepository.findByUsername(username).stream()
.map(UserShop::getShopId).collect(Collectors.toList());
} else if (shopFilterDto.getBindIp() == 1) {
List<String> allIds = userShopRepository.findByUsername(username).stream()
.map(UserShop::getShopId).collect(Collectors.toList()); .map(UserShop::getShopId).collect(Collectors.toList());
shopIds = ipResourceRepository.findShopIdInList(allIds, false).stream() // 如果分组
.flatMap((x -> x.getShopIds().stream())).collect(Collectors.toList());
} else { } else {
List<String> allIds = userShopRepository.findByUsername(username).stream() allIds = userShopRepository.findByUsernameAndGroupId(username, groupId).stream()
.map(UserShop::getShopId).collect(Collectors.toList()); .map(UserShop::getShopId).collect(Collectors.toList());
for (String id : allIds) {
IpResource ipResource = ipResourceRepository.findFirstByShopIdsIsAndIsDeleted(id, false);
if (ipResource == null) {
shopIds.add(id);
}
} }
}
} else { List<String> shopIds = null;
if (shopFilterDto.getBindIp() == 0) { if (shopFilterDto.getBindIp() == 0) {
shopIds = userShopRepository.findByUsernameAndGroupId(username, groupId).stream(). shopIds = allIds;
map(UserShop::getShopId).collect(Collectors.toList());
} else if (shopFilterDto.getBindIp() == 1) { } else if (shopFilterDto.getBindIp() == 1) {
List<String> allIds = userShopRepository.findByUsernameAndGroupId(username, groupId).stream()
.map(UserShop::getShopId).collect(Collectors.toList());
shopIds = ipResourceRepository.findShopIdInList(allIds, false).stream() shopIds = ipResourceRepository.findShopIdInList(allIds, false).stream()
.flatMap((x -> x.getShopIds().stream())).collect(Collectors.toList()); .flatMap((x -> x.getShopIds().stream())).collect(Collectors.toList());
} else { } else {
List<String> allIds = userShopRepository.findByUsernameAndGroupId(username, groupId).stream()
.map(UserShop::getShopId).collect(Collectors.toList());
for (String id : allIds) { for (String id : allIds) {
IpResource ipResource = ipResourceRepository.findFirstByShopIdsIsAndIsDeleted(id, false); IpResource ipResource = ipResourceRepository.findFirstByShopIdsIsAndIsDeleted(id, false);
if (ipResource == null) { if (ipResource == null) {
...@@ -397,14 +383,11 @@ public class ShopServiceImpl implements ShopService { ...@@ -397,14 +383,11 @@ public class ShopServiceImpl implements ShopService {
} }
} }
} }
}
if (amount > 100) { amount = amount > 100 ? 100 : amount;
amount = 100;
}
Pageable pageable = PageRequest.of(pageNum, amount); Pageable pageable = PageRequest.of(pageNum, amount);
Page<Shop> shops; Page<Shop> shops;
// 根据商铺ids 与 过滤条件 得到商铺
if (StringUtils.isNotBlank(shopFilterDto.getIpRegion())) { if (StringUtils.isNotBlank(shopFilterDto.getIpRegion())) {
List<String> filter = ipResourceRepository.findShopIdInListAndRegionLike(shopIds, false, shopFilterDto.getIpRegion()) List<String> filter = ipResourceRepository.findShopIdInListAndRegionLike(shopIds, false, shopFilterDto.getIpRegion())
.stream().flatMap((x -> x.getShopIds().stream())).collect(Collectors.toList()); .stream().flatMap((x -> x.getShopIds().stream())).collect(Collectors.toList());
...@@ -418,18 +401,21 @@ public class ShopServiceImpl implements ShopService { ...@@ -418,18 +401,21 @@ public class ShopServiceImpl implements ShopService {
} }
ShopPageResultDto<ShopResultDto> shopPageResultDto = new ShopPageResultDto<>(); ShopPageResultDto<ShopResultDto> shopPageResultDto = new ShopPageResultDto<>();
if (shops == null || shops.getNumberOfElements() < 1) { if (shops != null && shops.getNumberOfElements() >= 1) {
return shopPageResultDto;
} else {
List<ShopResultDto> shopResultDtos = new ArrayList<>(); List<ShopResultDto> shopResultDtos = new ArrayList<>();
shops.getContent().stream().forEach(x -> { shops.getContent().stream().forEach(
x -> {
IpResource ipResource = ipResourceRepository.findFirstByShopIdsIsAndIsDeleted(x.getShopId(), false); IpResource ipResource = ipResourceRepository.findFirstByShopIdsIsAndIsDeleted(x.getShopId(), false);
// 如果 ip资源非空 且 addr 也非空
if (ipResource != null && StringUtils.isNotBlank(ipResource.getAddr())) { if (ipResource != null && StringUtils.isNotBlank(ipResource.getAddr())) {
// 1. ip资源在未来七天内到期 且 ip 资源的状态不是 3(正在分配)、5(已失效)、6(未分配),则将 ip 资源设置为 2(即将过期)
if (ipResource.getValidTime() <= Instant.now().plusSeconds(60 * 60 * 24 * 7).toEpochMilli() && ipResource.getValidTime() > Instant.now().toEpochMilli()) { if (ipResource.getValidTime() <= Instant.now().plusSeconds(60 * 60 * 24 * 7).toEpochMilli() && ipResource.getValidTime() > Instant.now().toEpochMilli()) {
if (ipResource.getStatus() != 5 && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) { if (ipResource.getStatus() != 5 && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) {
ipResource.setStatus(2); ipResource.setStatus(2);
ipResourceRepository.save(ipResource); ipResourceRepository.save(ipResource);
} }
// 2. ip资源在七天前到期,且 ip 资源的状态不是 3(正在分配)、6(未分配),则删除 ip 资源
} else if (ipResource.getValidTime() <= Instant.now().minusSeconds(60 * 60 * 24 * 7).toEpochMilli() && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) { } else if (ipResource.getValidTime() <= Instant.now().minusSeconds(60 * 60 * 24 * 7).toEpochMilli() && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) {
if (ipResource.getIpType() == IpType.VENDOR) { if (ipResource.getIpType() == IpType.VENDOR) {
IpResourceRequestDto ipResourceRequestDto1 = new IpResourceRequestDto(); IpResourceRequestDto ipResourceRequestDto1 = new IpResourceRequestDto();
...@@ -449,34 +435,28 @@ public class ShopServiceImpl implements ShopService { ...@@ -449,34 +435,28 @@ public class ShopServiceImpl implements ShopService {
} }
} }
return; return;
// 3. ip资源到期,且 ip 资源的状态不是 3(正在分配)、6(未分配),则设置 ip 资源的状态为 1(已过期)
} else if (ipResource.getValidTime() <= Instant.now().toEpochMilli() && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) { } else if (ipResource.getValidTime() <= Instant.now().toEpochMilli() && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) {
ipResource.setStatus(1); ipResource.setStatus(1);
ipResourceRepository.save(ipResource); ipResourceRepository.save(ipResource);
// 4. 其他
} else { } else {
if ((ipResource.getStatus() == 0 || ipResource.getStatus() == 1 || ipResource.getStatus() == 2) && ipResource.getVendor() != Vendor.local) { if ((ipResource.getStatus() == 0 || ipResource.getStatus() == 1 || ipResource.getStatus() == 2) && ipResource.getVendor() != Vendor.local) {
ipResource.setStatus(0); ipResource.setStatus(0);
ipResourceRepository.save(ipResource);
} else if (ipResource.getIpType().equals(IpType.LOCAL) && (ipResource.getStatus() == 1 || ipResource.getStatus() == 2) && ipResource.getAddr().equals("本地Ip未使用")) { } else if (ipResource.getIpType().equals(IpType.LOCAL) && (ipResource.getStatus() == 1 || ipResource.getStatus() == 2) && ipResource.getAddr().equals("本地Ip未使用")) {
ipResource.setStatus(4); ipResource.setStatus(4);
ipResourceRepository.save(ipResource);
} }
ipResourceRepository.save(ipResource);
} }
} }
if (ipResource == null) {
ipResource = new IpResource();
}
String group1 = userShopRepository.findByUsernameAndShopId(username, x.getShopId()).getGroupId(); ShopResultDto shopResultDto = getShopResultDto(username, x, ipResource);
ShopResultDto shopResultDto = null;
if (ipResource.isSpecialLine()) {
SpecialLine specialLine = specialLineRepository.findAll().get(0);
shopResultDto = ShopResultDto.of(x, group1, new IpResourceDto(ipResource, null, false, specialLine));
} else {
shopResultDto = ShopResultDto.of(x, group1, new IpResourceDto(ipResource, null, false));
}
shopResultDtos.add(shopResultDto); shopResultDtos.add(shopResultDto);
}); }
);
Page<ShopResultDto> shopDtoPage = new PageImpl<>(shopResultDtos, pageable, shopIds.size()); Page<ShopResultDto> shopDtoPage = new PageImpl<>(shopResultDtos, pageable, shopIds.size());
shopPageResultDto.setShopList(shopDtoPage.getContent()); shopPageResultDto.setShopList(shopDtoPage.getContent());
...@@ -485,8 +465,24 @@ public class ShopServiceImpl implements ShopService { ...@@ -485,8 +465,24 @@ public class ShopServiceImpl implements ShopService {
pageInfo.setTotalPages(shopDtoPage.getTotalPages()); pageInfo.setTotalPages(shopDtoPage.getTotalPages());
pageInfo.setTotalItems(shopIds.size()); pageInfo.setTotalItems(shopIds.size());
shopPageResultDto.setShopPage(pageInfo); shopPageResultDto.setShopPage(pageInfo);
}
return shopPageResultDto; return shopPageResultDto;
} }
private ShopResultDto getShopResultDto(String username, Shop x, IpResource ipResource) {
if (ipResource == null) {
ipResource = new IpResource();
}
String group1 = userShopRepository.findByUsernameAndShopId(username, x.getShopId()).getGroupId();
ShopResultDto shopResultDto = null;
if (ipResource.isSpecialLine()) {
SpecialLine specialLine = specialLineRepository.findAll().get(0);
shopResultDto = ShopResultDto.of(x, group1, new IpResourceDto(ipResource, null, false, specialLine));
} else {
shopResultDto = ShopResultDto.of(x, group1, new IpResourceDto(ipResource, null, false));
}
return shopResultDto;
} }
@Override @Override
......
...@@ -110,7 +110,9 @@ public class BrowserTask { ...@@ -110,7 +110,9 @@ public class BrowserTask {
List<CompletableFuture> futureList = new ArrayList<>(); List<CompletableFuture> futureList = new ArrayList<>();
for (IpResource ipResource : ipResources) { for (IpResource ipResource : ipResources) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
CompletableFuture future = CompletableFuture.runAsync(() -> {
CompletableFuture future = CompletableFuture.runAsync(
() -> {
if (ipResourceRepository.lockTask(ipResource)) { if (ipResourceRepository.lockTask(ipResource)) {
try { try {
boolean result = false; boolean result = false;
...@@ -182,7 +184,10 @@ public class BrowserTask { ...@@ -182,7 +184,10 @@ public class BrowserTask {
} }
} }
} }
}, ThreadPoolUtils.buyIpTasksPool); },
ThreadPoolUtils.buyIpTasksPool
);
futureList.add(future); futureList.add(future);
} }
CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).join(); CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).join();
...@@ -195,7 +200,8 @@ public class BrowserTask { ...@@ -195,7 +200,8 @@ public class BrowserTask {
List<IpResource> ipResources = ipResourceRepository.sampleTasks(3, time); List<IpResource> ipResources = ipResourceRepository.sampleTasks(3, time);
for (IpResource ipResource : ipResources) { for (IpResource ipResource : ipResources) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
CompletableFuture.runAsync(() -> { CompletableFuture.runAsync(
() -> {
if (ipResourceRepository.lockTask(ipResource)) { if (ipResourceRepository.lockTask(ipResource)) {
try { try {
log.error("test"); log.error("test");
...@@ -226,7 +232,9 @@ public class BrowserTask { ...@@ -226,7 +232,9 @@ public class BrowserTask {
} }
} }
} }
}, ThreadPoolUtils.queryIpTasksPool); },
ThreadPoolUtils.queryIpTasksPool
);
} }
} }
...@@ -310,7 +318,8 @@ public class BrowserTask { ...@@ -310,7 +318,8 @@ public class BrowserTask {
public void countIp() { public void countIp() {
List<Account> accounts = accountRepository.findAll(); List<Account> accounts = accountRepository.findAll();
try { try {
accounts.forEach(x -> { accounts.forEach(
x -> {
IpCountRecord ipCountRecord = new IpCountRecord(); IpCountRecord ipCountRecord = new IpCountRecord();
ipCountRecord.setUsername(x.getName()); ipCountRecord.setUsername(x.getName());
ipCountRecord.setTimestamp(Instant.now().toEpochMilli()); ipCountRecord.setTimestamp(Instant.now().toEpochMilli());
...@@ -319,7 +328,8 @@ public class BrowserTask { ...@@ -319,7 +328,8 @@ public class BrowserTask {
ipCountRecord.setIp_all(ipcount_all); ipCountRecord.setIp_all(ipcount_all);
ipCountRecord.setIp_using(ipcount_using); ipCountRecord.setIp_using(ipcount_using);
ipCountRecordRepository.save(ipCountRecord); ipCountRecordRepository.save(ipCountRecord);
}); }
);
IpCountRecord ipCountRecord = new IpCountRecord(); IpCountRecord ipCountRecord = new IpCountRecord();
ipCountRecord.setUsername("all"); ipCountRecord.setUsername("all");
ipCountRecord.setTimestamp(Instant.now().toEpochMilli()); ipCountRecord.setTimestamp(Instant.now().toEpochMilli());
...@@ -369,20 +379,5 @@ public class BrowserTask { ...@@ -369,20 +379,5 @@ public class BrowserTask {
ResponseBody responseBody = response.body(); ResponseBody responseBody = response.body();
return responseBody.string(); return responseBody.string();
} }
} }
public static void main(String[] args) throws IOException {
List<QueryIpUrlList> queryIpUrlLists = new ArrayList<>();
queryIpUrlLists.add(new QueryIpUrlList("1", "baidu"));
queryIpUrlLists.add(new QueryIpUrlList("2", "google"));
for (int i = 0; i < 10; i++) {
System.out.println(getNextUrl(queryIpUrlLists, i).getUrl());
}
}
} }
...@@ -29,7 +29,7 @@ public class PaymentTask { ...@@ -29,7 +29,7 @@ public class PaymentTask {
@Scheduled(fixedDelay = 60000) @Scheduled(fixedDelay = 60000)
public void checkPayments() { public void checkPayments() {
long now = new Date().getTime(); long now = System.currentTimeMillis();
Date date_5min = new Date(now - 5 * 60 * 1000); Date date_5min = new Date(now - 5 * 60 * 1000);
Date date_10min = new Date(now - 10 * 60 * 1000); Date date_10min = new Date(now - 10 * 60 * 1000);
List<UserPayment> unfinishedPayments = userPaymentRepository.findAllByPaymentDateBetweenAndSucceed( List<UserPayment> unfinishedPayments = userPaymentRepository.findAllByPaymentDateBetweenAndSucceed(
......
package com.edgec.browserbackend.common.commons.kafka; package com.edgec.browserbackend.common.commons.kafka;
@Deprecated
public final class KafkaUtils { public final class KafkaUtils {
public static final String TOPIC_NAME_C3_MINIONS = "tp.minions.c3"; public static final String TOPIC_NAME_C3_MINIONS = "tp.minions.c3";
......
package com.edgec.browserbackend.common.commons.utils; package com.edgec.browserbackend.common.commons.utils;
@Deprecated
public class CommonStringUtils { public class CommonStringUtils {
public static int getLongestCommonSubstring(String a, String b) { public static int getLongestCommonSubstring(String a, String b) {
...@@ -10,16 +11,16 @@ public class CommonStringUtils { ...@@ -10,16 +11,16 @@ public class CommonStringUtils {
int[][] dp = new int[m][n]; int[][] dp = new int[m][n];
for(int i=0; i<m; i++){ for (int i = 0; i < m; i++) {
for(int j=0; j<n; j++){ for (int j = 0; j < n; j++) {
if(a.charAt(i) == b.charAt(j)){ if (a.charAt(i) == b.charAt(j)) {
if(i==0 || j==0){ if (i == 0 || j == 0) {
dp[i][j]=1; dp[i][j] = 1;
}else{ } else {
dp[i][j] = dp[i-1][j-1]+1; dp[i][j] = dp[i - 1][j - 1] + 1;
} }
if(max < dp[i][j]) if (max < dp[i][j])
max = dp[i][j]; max = dp[i][j];
} }
......
package com.edgec.browserbackend.common.commons.utils; package com.edgec.browserbackend.common.commons.utils;
@Deprecated
public final class Pair<S, T> { public final class Pair<S, T> {
private S first; private S first;
......
...@@ -3,6 +3,7 @@ package com.edgec.browserbackend.common.commons.utils; ...@@ -3,6 +3,7 @@ package com.edgec.browserbackend.common.commons.utils;
import java.util.Comparator; import java.util.Comparator;
import java.util.concurrent.*; import java.util.concurrent.*;
@Deprecated
public class PriorityThreadPoolExecutor extends ThreadPoolExecutor { public class PriorityThreadPoolExecutor extends ThreadPoolExecutor {
private Comparator comparator; private Comparator comparator;
......
...@@ -9,16 +9,23 @@ import java.io.*; ...@@ -9,16 +9,23 @@ import java.io.*;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@Deprecated
public class RemoteShellExecutor { public class RemoteShellExecutor {
private Logger logger = LoggerFactory.getLogger(RemoteShellExecutor.class); private Logger logger = LoggerFactory.getLogger(RemoteShellExecutor.class);
private Connection conn; private Connection conn;
/** 远程机器IP */ /**
* 远程机器IP
*/
private String ip; private String ip;
/** 用户名 */ /**
* 用户名
*/
private String osUsername; private String osUsername;
/** 密码 */ /**
* 密码
*/
private String password; private String password;
private String charset = Charset.defaultCharset().toString(); private String charset = Charset.defaultCharset().toString();
...@@ -33,6 +40,7 @@ public class RemoteShellExecutor { ...@@ -33,6 +40,7 @@ public class RemoteShellExecutor {
/** /**
* 登录 * 登录
*
* @return * @return
* @throws IOException * @throws IOException
*/ */
...@@ -182,18 +190,16 @@ public class RemoteShellExecutor { ...@@ -182,18 +190,16 @@ public class RemoteShellExecutor {
// 6. 关闭输入流 // 6. 关闭输入流
out.close(); out.close();
// 7. 等待,除非1.连接关闭;2.输出数据传送完毕;3.进程状态为退出;4.超时 // 7. 等待,除非1.连接关闭;2.输出数据传送完毕;3.进程状态为退出;4.超时
session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS , 30000); session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS, 30000);
logger.error("Here is the output from stdout:"); logger.error("Here is the output from stdout:");
while (true) while (true) {
{
String line = stdoutReader.readLine(); String line = stdoutReader.readLine();
if (line == null) if (line == null)
break; break;
System.out.println(line); System.out.println(line);
} }
logger.error("Here is the output from stderr:"); logger.error("Here is the output from stderr:");
while (true) while (true) {
{
String line = stderrReader.readLine(); String line = stderrReader.readLine();
if (line == null) if (line == null)
break; break;
...@@ -253,18 +259,16 @@ public class RemoteShellExecutor { ...@@ -253,18 +259,16 @@ public class RemoteShellExecutor {
scpOutputStream.flush(); scpOutputStream.flush();
scpOutputStream.close(); scpOutputStream.close();
session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS , 30000); session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS, 30000);
logger.error("Here is the output from stdout:"); logger.error("Here is the output from stdout:");
while (true) while (true) {
{
String line = stdoutReader.readLine(); String line = stdoutReader.readLine();
if (line == null) if (line == null)
break; break;
System.out.println(line); System.out.println(line);
} }
logger.error("Here is the output from stderr:"); logger.error("Here is the output from stderr:");
while (true) while (true) {
{
String line = stderrReader.readLine(); String line = stderrReader.readLine();
if (line == null) if (line == null)
break; break;
...@@ -278,7 +282,7 @@ public class RemoteShellExecutor { ...@@ -278,7 +282,7 @@ public class RemoteShellExecutor {
} catch (IOException e) { } catch (IOException e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
throw new Exception("登录远程机器失败" + ip); throw new Exception("登录远程机器失败" + ip);
}finally { } finally {
if (conn != null) { if (conn != null) {
conn.close(); conn.close();
} }
......
...@@ -10,6 +10,7 @@ import java.time.ZonedDateTime; ...@@ -10,6 +10,7 @@ import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.Iterator; import java.util.Iterator;
@Deprecated
public class TimestampUtils { public class TimestampUtils {
......
...@@ -2,6 +2,7 @@ package com.edgec.browserbackend.common.commons.utils; ...@@ -2,6 +2,7 @@ package com.edgec.browserbackend.common.commons.utils;
import java.util.UUID; import java.util.UUID;
@Deprecated
public class UUIDGenerator { public class UUIDGenerator {
public static String gen(Boolean withoutDashes) { public static String gen(Boolean withoutDashes) {
return withoutDashes ? UUID.randomUUID().toString().replace("-", "") return withoutDashes ? UUID.randomUUID().toString().replace("-", "")
......
package com.edgec.browserbackend.common.constant; package com.edgec.browserbackend.common.constant;
@Deprecated
public interface InstanceStatus { public interface InstanceStatus {
String STOPPING = "Stopping"; String STOPPING = "Stopping";
......
...@@ -5,51 +5,31 @@ import java.lang.reflect.Modifier; ...@@ -5,51 +5,31 @@ import java.lang.reflect.Modifier;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@Deprecated
public class SpecialUsers { public class SpecialUsers {
public static final Set<String> CLOUDAM_USERS = new HashSet<>(); public static final Set<String> CLOUDAM_USERS = new HashSet<>();
public static final String VPS_CLOUD_ACCOUNT_NAME = "vpsclient"; public static final String VPS_CLOUD_ACCOUNT_NAME = "vpsclient";
public static final String CVM_CLOUD_ACCOUNT_NAME = "cvmclient"; public static final String CVM_CLOUD_ACCOUNT_NAME = "cvmclient";
public static final String C3_ECC_ACCOUNT_NAME = "eccclient"; // 电商云集群 /**
* 电商云集群
public static final String C3_IP_ACCOUNT_NAME = "c3ipclient"; //c3 ip云 */
public static final String C3_ECC_ACCOUNT_NAME = "eccclient";
public static final String SUPERBROWSER = "superbrowser";
public static final String ECOMMERCEBROWSER = "ecommercebrowser";
public static final String JKBROWSER = "jkbrowser";
/**
* c3 ip云
*/
public static final String C3_IP_ACCOUNT_NAME = "c3ipclient";
public static final String SUPER_BROWSER = "superbrowser";
public static final String ECOMMERCE_BROWSER = "ecommercebrowser";
public static final String JK_BROWSER = "jkbrowser";
//新增用户名写在上边
public static void main(String[] args) {
for (String cloudamUser : CLOUDAM_USERS) {
System.out.println(cloudamUser);
}
}
static { static {
Field[] fields = SpecialUsers.class.getFields(); Field[] fields = SpecialUsers.class.getFields();
...@@ -69,5 +49,4 @@ public class SpecialUsers { ...@@ -69,5 +49,4 @@ public class SpecialUsers {
} }
} }
} }
package com.edgec.browserbackend.common.dto; package com.edgec.browserbackend.common.dto;
import lombok.Data;
@Deprecated
@Data
public class BaseResponse<T> { public class BaseResponse<T> {
private String requestId; private String requestId;
...@@ -7,38 +11,4 @@ public class BaseResponse<T> { ...@@ -7,38 +11,4 @@ public class BaseResponse<T> {
private String message; private String message;
private T data; private T data;
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
public Result getResult() {
return result;
}
public void setResult(Result result) {
this.result = result;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
} }
package com.edgec.browserbackend.common.dto; package com.edgec.browserbackend.common.dto;
@Deprecated
public enum Result { public enum Result {
SUCCESS, SUCCESS,
......
...@@ -10,11 +10,20 @@ import javax.crypto.spec.SecretKeySpec; ...@@ -10,11 +10,20 @@ import javax.crypto.spec.SecretKeySpec;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.Base64; import java.util.Base64;
/**
* @author cloudam
* aes加解密工具类
*/
public class Aes { public class Aes {
//密钥 (需要前端和后端保持一致)
/**
* 密钥 (需要前端和后端保持一致)
*/
private static final String KEY = "iefWFOAjfwefnWEI"; private static final String KEY = "iefWFOAjfwefnWEI";
//算法
/**
* 算法
*/
private static final String ALGORITHMSTR = "AES/ECB/PKCS5Padding"; private static final String ALGORITHMSTR = "AES/ECB/PKCS5Padding";
/** /**
...@@ -144,6 +153,7 @@ public class Aes { ...@@ -144,6 +153,7 @@ public class Aes {
} }
private static final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); private static final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
/** /**
* 测试 * 测试
*/ */
......
...@@ -16,11 +16,16 @@ import java.beans.PropertyDescriptor; ...@@ -16,11 +16,16 @@ import java.beans.PropertyDescriptor;
import java.io.IOException; import java.io.IOException;
import java.io.StringWriter; import java.io.StringWriter;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* Json工具类 * Json工具类
*/ */
@Deprecated
public class JsonUtils { public class JsonUtils {
private static final ObjectMapper mapper = new ObjectMapper(); private static final ObjectMapper mapper = new ObjectMapper();
...@@ -53,12 +58,12 @@ public class JsonUtils { ...@@ -53,12 +58,12 @@ public class JsonUtils {
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static HashMap<String,String> toBeanStr(String json) { public static HashMap<String, String> toBeanStr(String json) {
return toBean(json, HashMap.class); return toBean(json, HashMap.class);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static <T> T toBean(String json, TypeReference<T> tr){ public static <T> T toBean(String json, TypeReference<T> tr) {
try { try {
T bean = (T) mapper.readValue(json, tr); T bean = (T) mapper.readValue(json, tr);
return bean; return bean;
...@@ -129,9 +134,9 @@ public class JsonUtils { ...@@ -129,9 +134,9 @@ public class JsonUtils {
/** /**
* json字符串转换为List * json字符串转换为List
*/ */
public static <T> List<T>json2ListBean(String json,Class<T>cls){ public static <T> List<T> json2ListBean(String json, Class<T> cls) {
JSONArray jArray= JSONArray.parseArray(json); JSONArray jArray = JSONArray.parseArray(json);
List<T> collection =jArray.toJavaList(cls); List<T> collection = jArray.toJavaList(cls);
return collection; return collection;
} }
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.edgec.browserbackend.common.utils; ...@@ -2,6 +2,7 @@ package com.edgec.browserbackend.common.utils;
import java.time.Instant; import java.time.Instant;
@Deprecated
public class PollerUtils { public class PollerUtils {
public static void poll(int timeoutInSeconds, int intervalInSeconds, Evaluator evaluator) { public static void poll(int timeoutInSeconds, int intervalInSeconds, Evaluator evaluator) {
...@@ -12,7 +13,7 @@ public class PollerUtils { ...@@ -12,7 +13,7 @@ public class PollerUtils {
while (!result) { while (!result) {
long end = Instant.now().toEpochMilli(); long end = Instant.now().toEpochMilli();
if((end - start) > timeoutInSeconds * 1000) if ((end - start) > timeoutInSeconds * 1000)
return; return;
try { try {
Thread.sleep(intervalInSeconds * 1000); Thread.sleep(intervalInSeconds * 1000);
......
package com.edgec.browserbackend.common.utils; package com.edgec.browserbackend.common.utils;
import com.edgec.browserbackend.common.commons.utils.PriorityThreadPoolExecutor;
import com.edgec.browserbackend.common.commons.utils.UniquePriorityBlockingQueue; import com.edgec.browserbackend.common.commons.utils.UniquePriorityBlockingQueue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.*; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
public abstract class ThreadPoolUtils { public abstract class ThreadPoolUtils {
private static final Logger log = LoggerFactory.getLogger(ThreadPoolUtils.class);
public static final BlockingQueue<Runnable> schedulerQueue = new UniquePriorityBlockingQueue<>(50); public static final BlockingQueue<Runnable> schedulerQueue = new UniquePriorityBlockingQueue<>(50);
......
...@@ -21,11 +21,18 @@ import java.io.IOException; ...@@ -21,11 +21,18 @@ import java.io.IOException;
public class Trans { public class Trans {
private final Logger logger = LoggerFactory.getLogger(Trans.class); private final Logger logger = LoggerFactory.getLogger(Trans.class);
static int timeout = 10 * 1000;// 以秒为单位
private static String specialHost = "39.108.183.128"; /**
private static int specialPort = 20008; * 以秒为单位
*/
static int timeout = 10 * 1000;
private static final String SPECIAL_HOST = "39.108.183.128";
private static final int SPECIAL_PORT = 20008;
private String host; private String host;
private int port; private int port;
private String username; private String username;
private String password; private String password;
...@@ -37,8 +44,8 @@ public class Trans { ...@@ -37,8 +44,8 @@ public class Trans {
} }
public Trans(String username, String password) { public Trans(String username, String password) {
this.host = specialHost; this.host = SPECIAL_HOST;
this.port = specialPort; this.port = SPECIAL_PORT;
this.password = password; this.password = password;
this.username = username; this.username = username;
} }
......
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