|
@@ -1,8 +1,21 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
+import com.diagbot.dto.ProductServiceDTO;
|
|
|
+import com.diagbot.entity.ProductService;
|
|
|
+import com.diagbot.entity.ServiceToken;
|
|
|
+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 org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
/**
|
|
|
* @Description:产品与用户端关联业务层
|
|
|
* @author: zhaops
|
|
@@ -10,4 +23,85 @@ import org.springframework.stereotype.Component;
|
|
|
*/
|
|
|
@Component
|
|
|
public class ProductServiceFacade extends ProductServiceServiceImpl {
|
|
|
+ @Autowired
|
|
|
+ private ServiceTokenFacade serviceTokenFacade;
|
|
|
+
|
|
|
+ public ProductServiceDTO genProductService(ProductServiceSaveVO productServiceSaveVO) {
|
|
|
+ ProductServiceDTO productServiceDTO=new ProductServiceDTO();
|
|
|
+ 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) {
|
|
|
+ productService = new ProductService();
|
|
|
+ productService.setProductId(productServiceSaveVO.getProductId());
|
|
|
+ productService.setServiceId(productServiceSaveVO.getServiceId());
|
|
|
+ productService.setCreator(userId.toString());
|
|
|
+ productService.setGmtCreate(new Date());
|
|
|
+ this.save(productService);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ productService.setModifier(userId.toString());
|
|
|
+ productService.setGmtModified(new Date());
|
|
|
+ this.updateById(productService);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成令牌
|
|
|
+ // 如果已有令牌,先删除原令牌,再重新生成
|
|
|
+ // 试用产品 type=3 需生成7天有效期,重新生成令牌,有效期继承,超出有效期不允许再生成令牌
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+ 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);
|
|
|
+
|
|
|
+ productServiceDTO.setProductService(productService);
|
|
|
+ productServiceDTO.setServiceToken(serviceToken);
|
|
|
+ productServiceDTO.setMsg("令牌生成成功!");
|
|
|
+ return productServiceDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ public ProductServiceDTO deleteProductService(ProductServiceSaveVO productServiceSaveVO) {
|
|
|
+ ProductServiceDTO productServiceDTO=new ProductServiceDTO();
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+ //删除关联令牌
|
|
|
+ serviceTokenFacade.deleteByProductServiceId(productService.getId());
|
|
|
+ //删除产品服务端
|
|
|
+ productServiceDTO.setMsg("删除成功!");
|
|
|
+ return productServiceDTO;
|
|
|
+ }
|
|
|
}
|