|
@@ -1,18 +1,28 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.diagbot.dto.ProductServiceDTO;
|
|
|
+import com.diagbot.dto.ProductServiceRespDTO;
|
|
|
+import com.diagbot.entity.LantoneProduct;
|
|
|
+import com.diagbot.entity.OpenedProducts;
|
|
|
import com.diagbot.entity.ProductService;
|
|
|
+import com.diagbot.entity.ServiceInfo;
|
|
|
import com.diagbot.entity.ServiceToken;
|
|
|
+import com.diagbot.entity.wrapper.ProductServiceWrapper;
|
|
|
import com.diagbot.enums.TokenTypeEnum;
|
|
|
import com.diagbot.service.impl.ProductServiceServiceImpl;
|
|
|
import com.diagbot.util.GuidUtil;
|
|
|
import com.diagbot.util.UserUtils;
|
|
|
import com.diagbot.vo.ProductServiceSaveVO;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Calendar;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Date;
|
|
|
|
|
@@ -25,11 +35,31 @@ import java.util.Date;
|
|
|
public class ProductServiceFacade extends ProductServiceServiceImpl {
|
|
|
@Autowired
|
|
|
private ServiceTokenFacade serviceTokenFacade;
|
|
|
+ @Autowired
|
|
|
+ private ServiceInfoFacade serviceInfoFacade;
|
|
|
+ @Autowired
|
|
|
+ private LantoneProductFacade lantoneProductFacade;
|
|
|
+ @Autowired
|
|
|
+ private OpenedProductsFacade openedProductsFacade;
|
|
|
|
|
|
- public ProductServiceDTO genProductService(ProductServiceSaveVO productServiceSaveVO) {
|
|
|
- ProductServiceDTO productServiceDTO=new ProductServiceDTO();
|
|
|
+ public ProductServiceRespDTO genProductService(ProductServiceSaveVO productServiceSaveVO) {
|
|
|
+ ProductServiceRespDTO productServiceRespDTO = new ProductServiceRespDTO();
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
|
|
|
+ LantoneProduct lantoneProduct = lantoneProductFacade.getById(productServiceSaveVO.getProductId());
|
|
|
+ if (lantoneProduct == null) {
|
|
|
+ productServiceRespDTO.setMsg("找不到产品【" + lantoneProduct.getName() + "】");
|
|
|
+ return productServiceRespDTO;
|
|
|
+ }
|
|
|
+ ServiceInfo serviceInfo = serviceInfoFacade.getById(productServiceSaveVO.getServiceId());
|
|
|
+ if (serviceInfo == null) {
|
|
|
+ productServiceRespDTO.setMsg("找不到服务端【" + serviceInfo.getName() + "】");
|
|
|
+ return productServiceRespDTO;
|
|
|
+ } else if (serviceInfo.getUserId() != userId) {
|
|
|
+ productServiceRespDTO.setMsg("当前登录用户没有关联服务端【" + serviceInfo.getName() + "】");
|
|
|
+ return productServiceRespDTO;
|
|
|
+ }
|
|
|
+
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("productId", productServiceSaveVO.getProductId());
|
|
|
map.put("serviceId", productServiceSaveVO.getServiceId());
|
|
@@ -41,8 +71,7 @@ public class ProductServiceFacade extends ProductServiceServiceImpl {
|
|
|
productService.setCreator(userId.toString());
|
|
|
productService.setGmtCreate(new Date());
|
|
|
this.save(productService);
|
|
|
- }
|
|
|
- else {
|
|
|
+ } else {
|
|
|
productService.setModifier(userId.toString());
|
|
|
productService.setGmtModified(new Date());
|
|
|
this.updateById(productService);
|
|
@@ -51,57 +80,85 @@ public class ProductServiceFacade extends ProductServiceServiceImpl {
|
|
|
// 生成令牌
|
|
|
// 如果已有令牌,先删除原令牌,再重新生成
|
|
|
// 试用产品 type=3 需生成7天有效期,重新生成令牌,有效期继承,超出有效期不允许再生成令牌
|
|
|
+ // 接入方式 accessType=3 online模式不需要生成令牌
|
|
|
ServiceToken old_serviceToken = serviceTokenFacade.getByProductServiceId(productService.getId());
|
|
|
//删除原有token
|
|
|
if (old_serviceToken != null) {
|
|
|
serviceTokenFacade.deleteByProductServiceId(old_serviceToken.getProductSeviceId());
|
|
|
}
|
|
|
- ServiceToken serviceToken = new ServiceToken();
|
|
|
- serviceToken.setCreator(userId.toString());
|
|
|
- serviceToken.setGmtCreate(new Date());
|
|
|
- serviceToken.setType(productServiceSaveVO.getType());
|
|
|
- serviceToken.setAppKeyId(GuidUtil.App_key());
|
|
|
- serviceToken.setAppKeySecret(GuidUtil.App_screct());
|
|
|
- serviceToken.setStatus(1);
|
|
|
- if (old_serviceToken != null && old_serviceToken.getType().equals(TokenTypeEnum.Trial)) {
|
|
|
- //如果试用已过期,不允许再生成
|
|
|
- if(calendar.after(old_serviceToken.getExpiringDate())) {
|
|
|
- productServiceDTO.setMsg("当前试用账号已过期,不允许再生成令牌");
|
|
|
- return productServiceDTO;
|
|
|
+
|
|
|
+ String[] accessType = lantoneProduct.getAccessType().split(",");
|
|
|
+ if (accessType.length == 1 && accessType[0].equals("3")) {
|
|
|
+ productServiceRespDTO.setMsg("online模式不需要生成令牌!");
|
|
|
+ } else {
|
|
|
+ ServiceToken serviceToken = new ServiceToken();
|
|
|
+ serviceToken.setCreator(userId.toString());
|
|
|
+ serviceToken.setGmtCreate(new Date());
|
|
|
+ serviceToken.setProductSeviceId(productService.getId());
|
|
|
+ serviceToken.setType(productServiceSaveVO.getType());
|
|
|
+ serviceToken.setAppKeyId(GuidUtil.App_key());
|
|
|
+ serviceToken.setAppKeySecret(GuidUtil.App_screct());
|
|
|
+ serviceToken.setStatus(1);
|
|
|
+ if (old_serviceToken != null && old_serviceToken.getType().equals(TokenTypeEnum.Trial)) {
|
|
|
+ //如果试用已过期,不允许再生成
|
|
|
+ if (calendar.after(old_serviceToken.getExpiringDate())) {
|
|
|
+ productServiceRespDTO.setMsg("当前试用账号已过期,不允许再生成令牌");
|
|
|
+ return productServiceRespDTO;
|
|
|
+ }
|
|
|
+ serviceToken.setStartingDate(old_serviceToken.getStartingDate());
|
|
|
+ serviceToken.setExpiringDate(old_serviceToken.getExpiringDate());
|
|
|
+ } else if (productServiceSaveVO.getType().equals(TokenTypeEnum.Trial)) {
|
|
|
+ serviceToken.setStartingDate(new Date());
|
|
|
+ calendar.clear();
|
|
|
+ calendar.setTime(new Date());
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, 7);
|
|
|
+ serviceToken.setExpiringDate(calendar.getTime());
|
|
|
}
|
|
|
- serviceToken.setStartingDate(old_serviceToken.getStartingDate());
|
|
|
- serviceToken.setExpiringDate(old_serviceToken.getExpiringDate());
|
|
|
- } else if (productServiceSaveVO.getType().equals(TokenTypeEnum.Trial)) {
|
|
|
- serviceToken.setStartingDate(new Date());
|
|
|
- calendar.clear();
|
|
|
- calendar.setTime(new Date());
|
|
|
- calendar.add(Calendar.DAY_OF_MONTH, 7);
|
|
|
- serviceToken.setExpiringDate(calendar.getTime());
|
|
|
+ serviceTokenFacade.save(serviceToken);
|
|
|
+ productServiceRespDTO.setServiceToken(serviceToken);
|
|
|
+ productServiceRespDTO.setMsg("令牌生成成功!");
|
|
|
}
|
|
|
- serviceTokenFacade.save(serviceToken);
|
|
|
|
|
|
- productServiceDTO.setProductService(productService);
|
|
|
- productServiceDTO.setServiceToken(serviceToken);
|
|
|
- productServiceDTO.setMsg("令牌生成成功!");
|
|
|
- return productServiceDTO;
|
|
|
+ productServiceRespDTO.setProductService(productService);
|
|
|
+ return productServiceRespDTO;
|
|
|
}
|
|
|
|
|
|
- public ProductServiceDTO deleteProductService(ProductServiceSaveVO productServiceSaveVO) {
|
|
|
- ProductServiceDTO productServiceDTO=new ProductServiceDTO();
|
|
|
+ public ProductServiceRespDTO deleteProductService(ProductServiceSaveVO productServiceSaveVO) {
|
|
|
+ ProductServiceRespDTO productServiceRespDTO = new ProductServiceRespDTO();
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("productId", productServiceSaveVO.getProductId());
|
|
|
map.put("serviceId", productServiceSaveVO.getServiceId());
|
|
|
ProductService productService = this.findByProductIdAndServiceId(map);
|
|
|
- if(productService==null){
|
|
|
- productServiceDTO.setMsg("产品服务端不存在!");
|
|
|
- return productServiceDTO;
|
|
|
+ if (productService == null) {
|
|
|
+ productServiceRespDTO.setMsg("产品服务端不存在!");
|
|
|
+ return productServiceRespDTO;
|
|
|
}
|
|
|
//删除关联令牌
|
|
|
serviceTokenFacade.deleteByProductServiceId(productService.getId());
|
|
|
//删除产品服务端
|
|
|
- productServiceDTO.setMsg("删除成功!");
|
|
|
- return productServiceDTO;
|
|
|
+ this.deleteById(productService.getId());
|
|
|
+ productServiceRespDTO.setMsg("删除成功!");
|
|
|
+ return productServiceRespDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ public IPage<ProductServiceWrapper> selectProductServiceByUserIdPage(Page<ProductServiceWrapper> page) {
|
|
|
+ Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
|
|
|
+ ProductServiceWrapper productServiceVO=new ProductServiceWrapper();
|
|
|
+ productServiceVO.setUserId(userId);
|
|
|
+ IPage<ProductServiceWrapper> psPage = this.selectProductServiceByUserIdPage(page, productServiceVO);
|
|
|
+ List<ProductServiceWrapper> psList = psPage.getRecords();
|
|
|
+ for (ProductServiceWrapper productService : psList) {
|
|
|
+ LantoneProduct lantoneProduct = lantoneProductFacade.getById(productService.getProductId());
|
|
|
+ //OpenedProducts openedProducts=openedProductsFacade.
|
|
|
+ ServiceInfo serviceInfo = serviceInfoFacade.getById(productService.getServiceId());
|
|
|
+ ServiceToken serviceToken = serviceTokenFacade.getByProductServiceId(productService.getId());
|
|
|
+ productService.setLantoneProduct(lantoneProduct);
|
|
|
+ productService.setServiceInfo(serviceInfo);
|
|
|
+ productService.setServiceToken(serviceToken);
|
|
|
+ }
|
|
|
+ psPage.setRecords(psList);
|
|
|
+ return psPage;
|
|
|
}
|
|
|
}
|