فهرست منبع

服务端管理

zhaops 6 سال پیش
والد
کامیت
e6ef5caf4c

+ 94 - 0
diagbotman-service/src/main/java/com/diagbot/facade/ProductServiceFacade.java

@@ -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;
+    }
 }

+ 33 - 1
diagbotman-service/src/main/java/com/diagbot/facade/ServiceInfoFacade.java

@@ -1,7 +1,12 @@
 package com.diagbot.facade;
 
+import com.diagbot.entity.ServiceInfo;
 import com.diagbot.service.impl.ServiceInfoServiceImpl;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.ServiceSaveVO;
 import org.springframework.stereotype.Component;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @Description: 用户服务业务层
@@ -9,5 +14,32 @@ import org.springframework.stereotype.Component;
  * @time: 2018/9/18 16:31
  */
 @Component
-public class ServiceInfoFacade extends ServiceInfoServiceImpl{
+public class ServiceInfoFacade extends ServiceInfoServiceImpl {
+    public ServiceInfo createService(ServiceSaveVO serviceSaveVO) {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        ServiceInfo serviceInfo = new ServiceInfo();
+        serviceInfo.setName(serviceSaveVO.getName());
+        serviceInfo.setDescription(serviceSaveVO.getDescription());
+        serviceInfo.setUserId(userId);
+        serviceInfo.setCreator(userId.toString());
+        serviceInfo.setGmtCreate(new Date());
+        this.save(serviceInfo);
+        return serviceInfo;
+    }
+
+    public Boolean updateService(ServiceSaveVO serviceSaveVO) {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        ServiceInfo serviceInfo = this.findByName(serviceSaveVO.getName());
+        serviceInfo.setDescription(serviceSaveVO.getDescription());
+        serviceInfo.setModifier(userId.toString());
+        serviceInfo.setGmtModified(new Date());
+        return this.updateById(serviceInfo);
+    }
+
+    public List<ServiceInfo> getServiceListByCurrentUser() {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        List<ServiceInfo> list = this.getListByUserId(userId);
+        return list;
+    }
+
 }

+ 3 - 3
diagbotman-service/src/main/java/com/diagbot/util/GuidUtil.java

@@ -8,7 +8,7 @@ import java.util.UUID;
  * @time: 2018/9/11 10:27
  */
 public class GuidUtil {
-    public String app_key;
+    public static String app_key;
     /**
      * @description:随机获取key值
      * @return
@@ -22,7 +22,7 @@ public class GuidUtil {
      * 这是其中一个url的参数,是GUID的,全球唯一标志符
      * @return
      */
-    public String App_key() {
+    public static String App_key() {
         GuidUtil g = new GuidUtil();
         String guid = g.guid();
         app_key = MD5Util.MD5(guid).toUpperCase();
@@ -32,7 +32,7 @@ public class GuidUtil {
      * 根据md5加密
      * @return
      */
-    public String App_screct() {
+    public static String App_screct() {
         String mw = "key" + app_key ;
         String app_sign = MD5Util.MD5Salt(mw).toUpperCase();// 得到以后还要用MD5加密。
         return app_sign;