Commit 6c78874c authored by xuxin's avatar xuxin

Merge branch 'feature-addLog' into 'fix-hotbugs'

Feature add log

See merge request !200
parents 7125a159 bf633655
......@@ -30,7 +30,6 @@ public class Account {
*/
private String parent;
/**
* 子用户使用的密码
*/
......@@ -87,7 +86,10 @@ public class Account {
private int shopCount = 0;
private int authorized; // 0: 未认证; 1: 认证中; 2: 已认证;
/**
* 0: 未认证; 1: 认证中; 2: 已认证;
*/
private int authorized;
private List<String> queryIpUrlList = new ArrayList<>();
......
......@@ -42,7 +42,7 @@ public class AccountDto {
private List<String> whiteList = new ArrayList<>();
private List<String> userWhiteList = new ArrayList<>();
private List<String> ownWhiteList = new ArrayList<>();
private ShopSummary shopSummary;
......@@ -71,7 +71,11 @@ public class AccountDto {
this.setToken(account.getToken());
this.setPermission(account.getPermission());
this.setWhiteList(account.getWhiteList());
this.setUserWhiteList(account.getWhiteList());
List<String> ownWhiteList = new ArrayList<>(account.getWhiteList());
ownWhiteList.add("google.com/recaptcha");
ownWhiteList.add("google.com/js");
ownWhiteList.add("cap.attempts.securecode.com");
this.setOwnWhiteList(ownWhiteList);
this.setQueryIpUrlList(account.getQueryIpUrlList());
if (account.getPromotion() != null) {
this.setPromotion(account.getPromotion());
......@@ -260,11 +264,11 @@ public class AccountDto {
this.promotionCode = promotionCode;
}
public List<String> getUserWhiteList() {
return userWhiteList;
public List<String> getOwnWhiteList() {
return ownWhiteList;
}
public void setUserWhiteList(List<String> userWhiteList) {
this.userWhiteList = userWhiteList;
public void setOwnWhiteList(List<String> ownWhiteList) {
this.ownWhiteList = ownWhiteList;
}
}
......@@ -7,7 +7,9 @@ public class IpChargeRequestDto {
private String unit = "month";
private String target;
//0 -- 充值, 1 -- newip, 2 --renew, 3 -- 退还
/**
* 0 -- 充值, 1 -- newip, 2 --renew, 3 -- 退还
*/
private int chargeType = 0;
/**
......@@ -16,7 +18,9 @@ public class IpChargeRequestDto {
private String chargeIp;
//0 -- 余额, 1 -- 支付宝, 2 -- 微信
/**
* 0 -- 余额, 1 -- 支付宝, 2 -- 微信
*/
private int payMethod = 0;
private float daysPerMonth = 0;
......@@ -112,4 +116,21 @@ public class IpChargeRequestDto {
public void setChargeIp(String chargeIp) {
this.chargeIp = chargeIp;
}
@Override
public String toString() {
return "IpChargeRequestDto{" +
"period=" + period +
", amount=" + amount +
", region='" + region + '\'' +
", unit='" + unit + '\'' +
", target='" + target + '\'' +
", chargeType=" + chargeType +
", chargeIp='" + chargeIp + '\'' +
", payMethod=" + payMethod +
", daysPerMonth=" + daysPerMonth +
", tradeNo='" + tradeNo + '\'' +
", services='" + services + '\'' +
'}';
}
}
package com.edgec.browserbackend.browser.controller;
import com.edgec.browserbackend.account.dto.ResultDto;
import com.edgec.browserbackend.browser.dto.GroupDto;
import com.edgec.browserbackend.browser.service.IpResourceService;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import com.edgec.browserbackend.common.dto.Result;
import com.edgec.browserbackend.common.utils.FileUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
......@@ -23,16 +22,21 @@ import java.util.Map;
@RequestMapping("/config")
public class ConfigController {
private final Logger log = LoggerFactory.getLogger(ConfigController.class);
@Autowired
private IpResourceService ipResourceService;
@RequestMapping(value = "/ipOptions", method = RequestMethod.POST)
public ResultDto getIpOptions() {
ResultDto resultDto = new ResultDto();
String logs = "【getIpOptions】 ";
log.info("{}, params : ", logs);
try {
resultDto.setData(ipResourceService.getIpOptions());
resultDto.setStatus(0);
}catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
resultDto.setStatus(-1);
Map<String, Object> statusInfo = new HashMap<>();
statusInfo.put("code", e.getErrorCode());
......@@ -45,10 +49,13 @@ public class ConfigController {
@RequestMapping(value = "/setipOptions", method = RequestMethod.POST)
public ResultDto setIpOptions() {
ResultDto resultDto = new ResultDto();
String logs = "【setIpOptions】 ";
log.info("{}, params : ", logs);
try {
ipResourceService.setIpOptions();
resultDto.setStatus(0);
}catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
resultDto.setStatus(-1);
Map<String, Object> statusInfo = new HashMap<>();
statusInfo.put("code", e.getErrorCode());
......@@ -61,10 +68,13 @@ public class ConfigController {
@RequestMapping(value = "/platformOptions", method = RequestMethod.POST)
public ResultDto getPlatformOptions() {
ResultDto resultDto = new ResultDto();
String logs = "【getPlatformOptions】 ";
log.info("{}, params : ", logs);
try {
resultDto.setData(ipResourceService.getPlatformOptions());
resultDto.setStatus(0);
}catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
resultDto.setStatus(-1);
Map<String, Object> statusInfo = new HashMap<>();
statusInfo.put("code", e.getErrorCode());
......
......@@ -2,6 +2,8 @@ package com.edgec.browserbackend.browser.controller;
import com.edgec.browserbackend.account.dto.ResultDto;
import com.edgec.browserbackend.browser.service.GlobalFieldService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -16,15 +18,22 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/globalfield")
public class GlobalFieldController {
private final Logger log = LoggerFactory.getLogger(GroupController.class);
@Autowired
private GlobalFieldService globalFieldService;
@GetMapping("/speciallinestate")
public ResultDto querySpecialLineState() {
ResultDto resultDto = new ResultDto();
resultDto.setStatus(0);
resultDto.setData(globalFieldService.querySpecialLineState());
String logs = "【addGroup】 ";
log.info("{}, params :", logs);
try {
resultDto.setStatus(0);
resultDto.setData(globalFieldService.querySpecialLineState());
}catch (Exception e){
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
return resultDto;
}
}
package com.edgec.browserbackend.browser.controller;
import com.alibaba.fastjson.JSONObject;
import com.edgec.browserbackend.account.dto.ResultDto;
import com.edgec.browserbackend.browser.domain.Group;
import com.edgec.browserbackend.browser.dto.GroupDto;
import com.edgec.browserbackend.browser.service.GroupService;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -19,18 +22,23 @@ import java.util.Map;
@RequestMapping("/group")
public class GroupController {
private final Logger log = LoggerFactory.getLogger(GroupController.class);
@Autowired
private GroupService groupService;
@RequestMapping("/add")
public ResultDto addGroup(Principal principal, @RequestBody GroupDto groupDto) {
ResultDto resultDto = new ResultDto();
String logs = "【addGroup】 ";
log.info("{}, params : {}, {}", logs, principal.getName(), JSONObject.toJSONString(groupDto));
try {
GroupDto groupDto1 = new GroupDto();
groupDto1.setId(groupService.addGroup(principal.getName(), groupDto.getName()));
resultDto.setData(groupDto1);
resultDto.setStatus(0);
}catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
resultDto.setStatus(-1);
Map<String, Object> statusInfo = new HashMap<>();
statusInfo.put("code", e.getErrorCode());
......@@ -43,10 +51,13 @@ public class GroupController {
@RequestMapping("/update")
public ResultDto updateGroup(Principal principal, @RequestBody Group group) {
ResultDto resultDto = new ResultDto();
String logs = "【updateGroup】 ";
log.info("{}, params : {}, {}", logs, principal.getName(), JSONObject.toJSONString(group));
try {
groupService.updateGroup(principal.getName(), group);
resultDto.setStatus(0);
}catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
resultDto.setStatus(-1);
Map<String, Object> statusInfo = new HashMap<>();
statusInfo.put("code", e.getErrorCode());
......@@ -59,10 +70,13 @@ public class GroupController {
@RequestMapping("/del")
public ResultDto deleteGroup(Principal principal, @RequestBody GroupDto groupDto) {
ResultDto resultDto = new ResultDto();
String logs = "【deleteGroup】 ";
log.info("{}, params : {}, {}", logs, principal.getName(), JSONObject.toJSONString(groupDto));
try {
groupService.deleteGroup(principal.getName(), groupDto.getId());
resultDto.setStatus(0);
}catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
resultDto.setStatus(-1);
Map<String, Object> statusInfo = new HashMap<>();
statusInfo.put("code", e.getErrorCode());
......@@ -75,11 +89,14 @@ public class GroupController {
@RequestMapping("/list")
public ResultDto getGroupList(Principal principal) {
ResultDto resultDto = new ResultDto();
String logs = "【getGroupList】 ";
log.info("{}, params : {}", logs, principal.getName());
try {
List<GroupDto> groupDtos = groupService.getGroupList(principal.getName());
resultDto.setData(groupDtos);
resultDto.setStatus(0);
}catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
resultDto.setStatus(-1);
Map<String, Object> statusInfo = new HashMap<>();
statusInfo.put("code", e.getErrorCode());
......
package com.edgec.browserbackend.browser.controller;
import com.alibaba.fastjson.JSONObject;
import com.edgec.browserbackend.account.dto.ResultDto;
import com.edgec.browserbackend.browser.domain.WinHistory;
import com.edgec.browserbackend.browser.dto.HistoryListRequestDto;
......@@ -7,6 +8,8 @@ import com.edgec.browserbackend.browser.dto.LoginHistoryDto;
import com.edgec.browserbackend.browser.dto.OperationHistoryDto;
import com.edgec.browserbackend.browser.service.HistoryService;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -19,16 +22,21 @@ import java.util.Map;
@RequestMapping("/history")
public class HistoryController {
private final Logger log = LoggerFactory.getLogger(HistoryController.class);
@Autowired
HistoryService historyService;
@RequestMapping(value = "/login/add", method = RequestMethod.POST)
public ResultDto addLoginHistory(Principal principal, @RequestBody LoginHistoryDto loginHistoryDto) {
ResultDto resultDto = new ResultDto();
String logs = "【addLoginHistory】 ";
log.info("{}, params : {}", logs, principal.getName());
try {
historyService.addLoginHistory(principal.getName(), loginHistoryDto);
resultDto.setStatus(0);
} catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
dealClientRequestException(resultDto, e);
}
return resultDto;
......@@ -37,10 +45,13 @@ public class HistoryController {
@RequestMapping(value = "/operation/add", method = RequestMethod.POST)
public ResultDto addOperationHistory(Principal principal, @RequestBody OperationHistoryDto operationHistoryDto) {
ResultDto resultDto = new ResultDto();
String logs = "【addOperationHistory】 ";
log.info("{}, params : {}", logs, principal.getName());
try {
historyService.addOperationHistory(principal.getName(), operationHistoryDto);
resultDto.setStatus(0);
} catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
dealClientRequestException(resultDto, e);
}
return resultDto;
......@@ -49,10 +60,13 @@ public class HistoryController {
@RequestMapping(value = "/login/list", method = RequestMethod.POST)
public ResultDto getLoginHistories(Principal principal, @RequestBody HistoryListRequestDto historyListRequestDto) {
ResultDto resultDto = new ResultDto();
String logs = "【getLoginHistories】 ";
log.info("{}, params : {}", logs, principal.getName());
try {
resultDto.setData(historyService.getLoginHistories(principal.getName(), historyListRequestDto));
resultDto.setStatus(0);
} catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
dealClientRequestException(resultDto, e);
}
return resultDto;
......@@ -61,10 +75,13 @@ public class HistoryController {
@RequestMapping(value = "/operation/list", method = RequestMethod.POST)
public ResultDto getOperationHistories(Principal principal, @RequestBody HistoryListRequestDto historyListRequestDto) {
ResultDto resultDto = new ResultDto();
String logs = "【getOperationHistories】 ";
log.info("{}, params : {}", logs, principal.getName());
try {
resultDto.setData(historyService.getOperationHistories(principal.getName(), historyListRequestDto));
resultDto.setStatus(0);
} catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
dealClientRequestException(resultDto, e);
}
return resultDto;
......@@ -73,11 +90,14 @@ public class HistoryController {
@PostMapping("/url/add")
public void addWinlog(Principal principal, @RequestBody String urlRecord) {
ResultDto resultDto = new ResultDto();
String logs = "【addWinlog】 ";
log.info("{}, params : {}", logs, principal.getName());
try {
WinHistory winHistory = new WinHistory(Instant.now().toEpochMilli(), urlRecord);
historyService.addBrowserWinLog(principal.getName(), winHistory);
resultDto.setStatus(0);
} catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
dealClientRequestException(resultDto, e);
}
}
......
package com.edgec.browserbackend.browser.controller;
import com.alibaba.fastjson.JSONObject;
import com.edgec.browserbackend.account.dto.ResultDto;
import com.edgec.browserbackend.browser.domain.UserCode;
import com.edgec.browserbackend.browser.dto.FavoriteUrl;
......@@ -8,6 +9,8 @@ import com.edgec.browserbackend.browser.dto.TempReportDto;
import com.edgec.browserbackend.browser.service.ShopService;
import com.edgec.browserbackend.browser.service.TempService;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -22,6 +25,8 @@ import java.util.Map;
@RequestMapping("/temp")
public class TempController {
private final Logger log = LoggerFactory.getLogger(TempController.class);
@Autowired
private TempService tempService;
......@@ -33,7 +38,13 @@ public class TempController {
*/
@PostMapping(value = "/usercode")
public void addUserCode(@RequestBody UserCode userCode) {
tempService.save(userCode);
String logs = "【addUserCode】 ";
log.info("{}, params : {}", logs, JSONObject.toJSONString(userCode));
try {
tempService.save(userCode);
}catch (Exception e){
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
}
@GetMapping("/{ip}")
......@@ -47,11 +58,14 @@ public class TempController {
@GetMapping("/favorites/{shopId}")
public ResultDto getFavoritesByShopId(@PathVariable("shopId") String shopId) {
ResultDto resultDto = new ResultDto();
String logs = "【getFavoritesByShopId】 ";
log.info("{}, params : {}", logs, shopId);
try {
List<FavoriteUrl> list = shopService.getFavoritesByShopId(shopId);
resultDto.setData(list);
resultDto.setStatus(0);
} catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
dealClientRequestException(resultDto, e);
}
return resultDto;
......@@ -63,11 +77,14 @@ public class TempController {
@DeleteMapping("/favorites")
public ResultDto deleteFavoritesByShopId(@RequestBody FavoriteUrlDto favoriteUrlDto) {
ResultDto resultDto = new ResultDto();
String logs = "【addUserCode】 ";
log.info("{}, params : {}", logs, JSONObject.toJSONString(favoriteUrlDto));
try {
FavoriteUrl favoriteUrl = new FavoriteUrl("", favoriteUrlDto.getUrl());
resultDto.setData(shopService.deleteFavoritesByShopId(favoriteUrlDto.getShopId(), favoriteUrl));
resultDto.setStatus(0);
} catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
dealClientRequestException(resultDto, e);
}
return resultDto;
......@@ -79,12 +96,15 @@ public class TempController {
@PostMapping("/favorites")
public ResultDto saveFavoritesByShopId(@RequestBody FavoriteUrlDto favoriteUrlDto) {
ResultDto resultDto = new ResultDto();
String logs = "【addUserCode】 ";
log.info("{}, params : {}", logs, JSONObject.toJSONString(favoriteUrlDto));
try {
FavoriteUrl favoriteUrl = new FavoriteUrl(favoriteUrlDto.getTitle(), favoriteUrlDto.getUrl());
shopService.saveFavoritesByShopId(favoriteUrlDto.getShopId(), favoriteUrl);
resultDto.setData(true);
resultDto.setStatus(0);
} catch (ClientRequestException e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
dealClientRequestException(resultDto, e);
}
return resultDto;
......
package com.edgec.browserbackend.browser.controller;
import com.alibaba.fastjson.JSONObject;
import com.edgec.browserbackend.account.dto.ResultDto;
import com.edgec.browserbackend.browser.domain.Vps;
import com.edgec.browserbackend.browser.dto.AssignVpsDto;
import com.edgec.browserbackend.browser.dto.PageInfo;
import com.edgec.browserbackend.browser.dto.VpsPageResultDto;
import com.edgec.browserbackend.browser.service.VpsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
......@@ -24,31 +27,52 @@ import java.util.List;
@RestController
@RequestMapping("/vps")
public class VpsController {
private final Logger log = LoggerFactory.getLogger(VpsController.class);
@Autowired
private VpsService vpsService;
@PostMapping("/add")
public ResultDto addVps(Principal principal, @Validated @RequestBody Vps vps) {
ResultDto resultDto = new ResultDto();
vps.setOwner1(principal.getName());
String s = vpsService.addVps(vps);
resultDto.setData(s);
String logs = "【addVps】 ";
log.info("{}, params : {}, {}", logs, principal.getName(), JSONObject.toJSONString(vps));
try {
vps.setOwner1(principal.getName());
String s = vpsService.addVps(vps);
resultDto.setData(s);
} catch (Exception e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
return resultDto;
}
@DeleteMapping("/{id}")
public ResultDto deleteVps(Principal principal, @PathVariable String id) {
ResultDto resultDto = new ResultDto();
vpsService.deleteVps(principal.getName(), id);
resultDto.setStatus(0);
String logs = "【deleteVps】 ";
log.info("{}, params : {}, {}", logs, principal.getName(), id);
try {
vpsService.deleteVps(principal.getName(), id);
resultDto.setStatus(0);
} catch (Exception e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
return resultDto;
}
@PutMapping("/update")
public ResultDto updateVps(@RequestBody Vps vps) {
ResultDto resultDto = new ResultDto();
vpsService.updateVps(vps);
resultDto.setStatus(0);
String logs = "【updateVps】 ";
log.info("{}, params : {}", logs, JSONObject.toJSONString(vps));
try {
vpsService.updateVps(vps);
resultDto.setStatus(0);
} catch (Exception e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
return resultDto;
}
......@@ -58,9 +82,15 @@ public class VpsController {
@GetMapping("/login_vps/{id}")
public ResultDto getVps(@PathVariable String id) {
ResultDto resultDto = new ResultDto();
String rdp = vpsService.loginVps(id);
resultDto.setStatus(0);
resultDto.setData(rdp);
String logs = "【getVps】 ";
log.info("{}, params : {}", logs, id);
try {
String rdp = vpsService.loginVps(id);
resultDto.setStatus(0);
resultDto.setData(rdp);
} catch (Exception e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
return resultDto;
}
......@@ -70,17 +100,22 @@ public class VpsController {
@GetMapping("/list")
public ResultDto getVpsList(Principal principal, @RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
ResultDto resultDto = new ResultDto();
String logs = "【getVpsList】 ";
log.info("{}, params : {}, {}, {}", logs, principal.getName(), page, size);
try {
Pageable pageable = PageRequest.of(page, size);
Page<Vps> pageInfo = vpsService.queryPage(principal.getName(), pageable);
resultDto.setData(pageInfo);
/// 临时这样写,有空了得去掉下面三行
PageInfo pageResult = new PageInfo(pageInfo.getPageable().getPageNumber(), pageInfo.getTotalPages(), (int) pageInfo.getTotalElements());
VpsPageResultDto<Vps> shopPageResultDto = new VpsPageResultDto<>(pageInfo.getContent(), pageResult);
resultDto.setData(shopPageResultDto);
Pageable pageable = PageRequest.of(page, size);
Page<Vps> pageInfo = vpsService.queryPage(principal.getName(), pageable);
resultDto.setData(pageInfo);
/// 临时这样写,有空了得去掉下面三行
PageInfo pageResult = new PageInfo(pageInfo.getPageable().getPageNumber(), pageInfo.getTotalPages(), (int) pageInfo.getTotalElements());
VpsPageResultDto<Vps> shopPageResultDto = new VpsPageResultDto<Vps>(pageInfo.getContent(), pageResult);
resultDto.setData(shopPageResultDto);
resultDto.setStatus(0);
resultDto.setStatus(0);
} catch (Exception e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
return resultDto;
}
......@@ -90,14 +125,19 @@ public class VpsController {
@PostMapping("/assign")
public ResultDto assignVpsList(Principal principal, @RequestBody AssignVpsDto assignVpsDto) {
ResultDto resultDto = new ResultDto();
List<String> list = vpsService.assignVpsList(principal.getName(), assignVpsDto);
if (list.isEmpty()) {
resultDto.setStatus(0);
} else {
resultDto.setStatus(-1);
resultDto.setData(list);
String logs = "【assignVpsList】 ";
log.info("{}, params : {}", logs, JSONObject.toJSONString(assignVpsDto));
try {
List<String> list = vpsService.assignVpsList(principal.getName(), assignVpsDto);
if (list.isEmpty()) {
resultDto.setStatus(0);
} else {
resultDto.setStatus(-1);
resultDto.setData(list);
}
} catch (Exception e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
return resultDto;
}
......@@ -107,11 +147,15 @@ public class VpsController {
@GetMapping("/list/{id}")
public ResultDto getVpsList(Principal principal, @PathVariable String id) {
ResultDto resultDto = new ResultDto();
List<String> list = vpsService.queryAssignUserList(principal.getName(), id);
resultDto.setData(list);
resultDto.setStatus(0);
String logs = "【getVpsList】 ";
log.info("{}, params : {}", logs, id);
try {
List<String> list = vpsService.queryAssignUserList(principal.getName(), id);
resultDto.setData(list);
resultDto.setStatus(0);
} catch (Exception e) {
log.error("{}, Exception : {}", logs, e.getMessage(), e);
}
return resultDto;
}
......
......@@ -168,6 +168,44 @@ public class IpResource implements Serializable {
return Objects.hash(getId());
}
@Override
public String toString() {
return "IpResource{" +
"id='" + id + '\'' +
", addr='" + addr + '\'' +
", ipType=" + ipType +
", vendor=" + vendor +
", vendorCn='" + vendorCn + '\'' +
", region='" + region + '\'' +
", regionCn='" + regionCn + '\'' +
", status=" + status +
", port=" + port +
", purchasedTime=" + purchasedTime +
", validTime=" + validTime +
", details='" + details + '\'' +
", bindHistory=" + bindHistory +
", isDeleted=" + isDeleted +
", username='" + username + '\'' +
", owner='" + owner + '\'' +
", userParent='" + userParent + '\'' +
", protocol=" + protocol +
", password='" + password + '\'' +
", price=" + price +
", specialLine=" + specialLine +
", usingSpecialLine=" + usingSpecialLine +
", proxyUsername='" + proxyUsername + '\'' +
", proxyPassword='" + proxyPassword + '\'' +
", shopId='" + shopId + '\'' +
", shopIds=" + shopIds +
", bind=" + bind +
", isLocked=" + isLocked +
", lockTimestamp=" + lockTimestamp +
", healthLockTimestamp=" + healthLockTimestamp +
", unit='" + unit + '\'' +
", period=" + period +
", secondaryProxyPort='" + secondaryProxyPort + '\'' +
'}';
}
}
......
......@@ -70,4 +70,14 @@ public interface IpResourceRepository extends MongoRepository<IpResource, String
IpResource findFirstByAddrOrderByPurchasedTimeDesc(String addr);
/**
* 查询出未分配成功的数据
*
* @param status 状态
* @param isDeleted 是否被删除
* @param isLocked 是否被锁定
* @return list
*/
List<IpResource> findByStatusInAndIsDeletedAndIsLocked(List<Integer> status, boolean isDeleted, boolean isLocked);
}
......@@ -273,6 +273,7 @@ public class IpResourceServiceImpl implements IpResourceService {
// 只要 申请的 ip 地域不是在 大陆,则一定会执行下面 if 中的代码块
boolean condition1 = StringUtils.isNotBlank(ipResource.getRegion()) && region.contains(ipResource.getRegion());
boolean condition2 = ipResourceRequestDto.getVendor().equals("own") && ipResource.isSpecialLine();
if (condition1 || condition2) {
ipResource.setProxyUsername(ipResource.getAddr());
ipResource.setProxyPassword(genRandom(3, 12));
......@@ -639,9 +640,6 @@ public class IpResourceServiceImpl implements IpResourceService {
return ipOperationResultDto;
}
/**********************************************************************************
* todo - D E V E L O P M E N T *
**********************************************************************************/
@Override
public IpPageResultDto getIpList(String username, int groupType, int page, int amount, IpFilterDto ipFilterDto) {
// 获取当前用户的账户
......@@ -672,7 +670,7 @@ public class IpResourceServiceImpl implements IpResourceService {
// 1. 如果 ip 资源的 addr 非空
if (StringUtils.isNotBlank(x.getAddr())) {
// 1.1 锁定时间在 2分钟内 且 IpType 为 VENDOR 且 (IP资源状态 为 0:正常 或 2:即将过期)
if (x.getLockTimestamp() >= Instant.now().minusSeconds(2 * 60).toEpochMilli() && x.getIpType() == IpType.VENDOR && (x.getStatus() == 0 || x.getStatus() == 2)) {
if (x.getLockTimestamp() >= Instant.now().minusSeconds(1 * 60).toEpochMilli() && x.getIpType() == IpType.VENDOR && (x.getStatus() == 0 || x.getStatus() == 2)) {
x.setStatus(3);
// 1.2 ip资源在未来七天内到期,且 ip 资源的状态不是 3(正在分配)、5(已失效)、6(未分配),则将 ip 资源设置为 2(即将过期)
......@@ -711,7 +709,7 @@ public class IpResourceServiceImpl implements IpResourceService {
}
// 2. 如果 ip 资源的 status 为 6(未分配) 或者 ( ip资源为专线 且 purchasedTime(购买IP的时间) 在 14 分钟内)
if (x.getStatus() == 6 || (x.isSpecialLine() && x.getPurchasedTime() > (Instant.now().minusSeconds(14 * 60).toEpochMilli()))) {
if (x.getStatus() == 6) {
x.setStatus(3);
}
......@@ -827,9 +825,7 @@ public class IpResourceServiceImpl implements IpResourceService {
return false;
}
/**********************************************************************************
* todo - D E V E L O P M E N T *
**********************************************************************************/
@Override
public IpResourceDto queryIp(String username, IpResourceRequestDto ipResourceRequestDto) {
Account account = accountRepository.findByName(username).orElseThrow(() -> new ClientRequestException(AccountErrorCode.NAMENOTEXIST));
......
......@@ -363,6 +363,13 @@ public class ShopServiceImpl implements ShopService {
}
}
public static List<String> region = Arrays.asList(
"asiapa", "hongkong", "japan", "s-korea", "us", "malaysia",
"yajiada", "singapore", "australia", "germany", "uk", "brazil",
"moscow", "canada", "france", "sweden", "s-korea", "india", "meast",
"brazil", "virginia", "ohio", "california", "oregon", "ireland", "london", "ireland"
);
@Override
public ShopResultDto queryShop(String username, String shopId) {
// 1. 校验 账户、商铺、IP资源、usershop 信息
......@@ -387,6 +394,16 @@ public class ShopServiceImpl implements ShopService {
ipResourceDto = new IpResourceDto(ipResource, null, false);
}
//海外设置KCP端口
if (org.apache.commons.lang3.StringUtils.isNotBlank(ipResource.getRegion()) && region.contains(ipResource.getRegion())) {
ipResourceDto.setSecondaryProxyPort("20020");
}
//刚购买14分钟内的专线设置为不可用
if (ipResource.getStatus() == 0 && ipResource.getPurchasedTime() > (Instant.now().minusSeconds(14 * 60).toEpochMilli())) {
ipResource.setSpecialLine(false);
}
// 3. 封装 ShopResultDto 信息并返回
return ShopResultDto.of(shop, userShop.getGroupId(), ipResourceDto);
}
......
......@@ -2,6 +2,8 @@ package com.edgec.browserbackend.browser.service;
import com.edgec.browserbackend.browser.dto.ShopRequestDto;
import java.util.List;
public interface IpAndShopService {
void bindShop(String username, ShopRequestDto shopRequestDto);
......@@ -9,4 +11,6 @@ public interface IpAndShopService {
void unBindShop(String username, ShopRequestDto shopRequestDto);
void unBindShops(String username, ShopRequestDto shopRequestDto);
//void unBindShops(String username, String id, List<String> shopIds);
}
......@@ -199,6 +199,40 @@ public class BrowserTask {
CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).join();
}
private static int OVER40MIN = 40 * 60 * 1000;
/**
* 购买失败处理
* 购买后,长时间未能成功的ip资源视为购买失败。
* 每半个小时进行一次,将状态为3、购买时长超过40分钟的ip资源释放,
* 并将购买花销退回账户余额
*/
@Scheduled(cron = "0 0/1 * * * ?")
public void purchaseFailureHandling() {
long now = Instant.now().minusSeconds(300).toEpochMilli();
//List<IpResource> ipResources = ipResourceRepository.findByStatusInAndIsDeletedAndIsLocked(Arrays.asList(3, 6));
List<IpResource> ipResources = ipResourceRepository.findByStatusInAndIsDeletedAndIsLocked(Arrays.asList(3, 6), false, false);
ipResources.forEach(ipResource -> {
if (ipResourceRepository.lockTask(ipResource)) {
if((now - ipResource.getPurchasedTime()) > OVER40MIN){
String username = ipResource.getUsername();
String id = ipResource.getId();
List<String> shopIds = ipResource.getShopIds();
log.error("Ip resource purchase failure, {}", ipResource);
log.error("charge by money, {}, {}, {}", username, -ipResource.getPrice(), buildIpChargeRequestDto(ipResource, 3, 0));
//accountService.chargeByMoney(username, -ipResource.getPrice(), buildIpChargeRequestDto(ipResource, 3, 0));
if (shopIds != null && shopIds.size() > 0) {
log.error("unbind Shops, {}, {}, {}", username, id, shopIds);
//ipAndShopService.unBindShops(username, ipResource.getId(), shopIds);
}
log.error("delete ip resource, {}", id);
//ipResourceRepository.deleteById(id);
}
}
ipResourceRepository.unLockTask(ipResource.getId());
});
}
@Scheduled(cron = "0 0/1 * * * ?")
public void queryIpTasks() {
String URL = (profiles.equals("dev") || profiles.equals("staging")) ? TESTURL : CLOUDAMURL;
......
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