Browse Source

试用接口修改

rgb 6 years ago
parent
commit
9fc18eb97b

+ 17 - 1
diagbotman-service/src/main/java/com/diagbot/dto/OpenUpOnTrialDTO.java

@@ -17,6 +17,22 @@ public class OpenUpOnTrialDTO implements Serializable {
     private static final long serialVersionUID = 1L;
 
 
-    private ServiceToken serviceToken;
+//    private ServiceToken serviceToken;
+    
+    
+    /**
+     * 试用地址
+     */
+    private String trialUrl;
+
+    /**
+     * 
+     */
+    private String appKeyId;
+    
+    /**
+     * 
+     */
+    private String appKeySecret;
 
 }

+ 27 - 13
diagbotman-service/src/main/java/com/diagbot/facade/OpenedProductsFacade.java

@@ -1,5 +1,13 @@
 package com.diagbot.facade;
 
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.EnShowOptionDTO;
 import com.diagbot.dto.GetConsoleOnTrialDTO;
@@ -11,6 +19,7 @@ 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.User;
 import com.diagbot.entity.UserRenewals;
 import com.diagbot.enums.AccessTypeEnum;
@@ -29,14 +38,6 @@ import com.diagbot.vo.ModifyOpeningTimeVO;
 import com.diagbot.vo.OpenUpOnTrialVO;
 import com.diagbot.vo.ProductServiceSaveVO;
 import com.diagbot.vo.StartAndendByUserIdVO;
-import io.swagger.models.auth.In;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:已开通产品业务层
@@ -145,21 +146,34 @@ public class OpenedProductsFacade extends OpenedProductsServiceImpl {
      * @return 包含token
      */
     public OpenUpOnTrialDTO openUpOnTrial(OpenUpOnTrialVO openUpOnTrialVO) {
+    	OpenUpOnTrialDTO openUpOnTrialDTO = new OpenUpOnTrialDTO();
+    	
         LantoneProduct lantoneProduct =new LantoneProduct();
         lantoneProduct.setId(openUpOnTrialVO.getProductId());
         LantoneProduct lantoneProducts = lantoneProductFacade.getById(lantoneProduct);
         if (null == lantoneProducts || IsDeleteEnum.Y.getKey().equals(lantoneProducts.getIsDeleted())){
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "该产品已删除");
         }
+        if(StatusEnum.Disable.getKey()==lantoneProducts.getServiceStatus()){
+        	throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "该产品已停用");
+        }
+        openUpOnTrialDTO.setTrialUrl(lantoneProduct.getTrialUrl());
         Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
         //验证用户是否生成过试用
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("userId", userId.toString());
         paramMap.put("productId", openUpOnTrialVO.getProductId());
-        Integer cnt = serviceTokenFacade.getTryTokenCount(paramMap);
-        if (cnt > 0){
-            throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "您已试用过该产品");
+        ServiceToken serviceToken = serviceTokenFacade.getTryTokenByUserIdAndProductId(paramMap);
+        if (serviceToken!=null){
+        	Date now = new Date();
+            if(serviceToken.getExpiringDate().getTime()<now.getTime()){
+            	throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "该产品已过期");
+            }
+            openUpOnTrialDTO.setAppKeyId(serviceToken.getAppKeyId());
+            openUpOnTrialDTO.setAppKeySecret(serviceToken.getAppKeySecret());
+            return openUpOnTrialDTO;
         }
+        
         Date now = new Date();
         ServiceInfo serviceInfo = new ServiceInfo();
         serviceInfo.setType(ServiceTypeEnum.Sys_Create.getKey());
@@ -185,8 +199,8 @@ public class OpenedProductsFacade extends OpenedProductsServiceImpl {
         productServiceSaveVO.setType(TokenTypeEnum.Trial.getKey());
         ProductServiceDTO poroductServiceDTO = productServiceFacade.genProductService(productServiceSaveVO);
 
-        OpenUpOnTrialDTO openUpOnTrialDTO = new OpenUpOnTrialDTO();
-        openUpOnTrialDTO.setServiceToken(poroductServiceDTO.getServiceToken());
+        openUpOnTrialDTO.setAppKeyId(poroductServiceDTO.getServiceToken().getAppKeyId());
+        openUpOnTrialDTO.setAppKeySecret(poroductServiceDTO.getServiceToken().getAppKeySecret());
 
         return openUpOnTrialDTO;
     }

+ 7 - 0
diagbotman-service/src/main/java/com/diagbot/mapper/ServiceTokenMapper.java

@@ -32,6 +32,13 @@ public interface ServiceTokenMapper extends BaseMapper<ServiceToken> {
      * @return
      */
     Integer getTryTokenCount(Map map);
+    
+    /**
+     * 根据userId和productId获取试用商品token
+     * @param map
+     * @return
+     */
+    ServiceToken getTryTokenByUserIdAndProductId(Map map);
 
     /**
      * 根据appkey、secret、productId获取ServiceToken信息

+ 7 - 0
diagbotman-service/src/main/java/com/diagbot/service/ServiceTokenService.java

@@ -58,4 +58,11 @@ public interface ServiceTokenService extends IService<ServiceToken> {
      * @return
      */
     Integer getTryTokenCount(Map map);
+    
+    /**
+     * 根据userId和productId获取试用商品token
+     * @param map
+     * @return
+     */
+    ServiceToken getTryTokenByUserIdAndProductId(Map map);
 }

+ 11 - 0
diagbotman-service/src/main/java/com/diagbot/service/impl/ServiceTokenServiceImpl.java

@@ -68,4 +68,15 @@ public class ServiceTokenServiceImpl extends ServiceImpl<ServiceTokenMapper, Ser
         return baseMapper.getTryTokenCount(map);
     }
 
+    /**
+     * 根据userId和productId获取试用商品token
+     */
+	@Override
+	public ServiceToken getTryTokenByUserIdAndProductId(Map map) {
+		// TODO Auto-generated method stub
+		return baseMapper.getTryTokenByUserIdAndProductId(map);
+	}
+    
+    
+
 }

+ 10 - 1
diagbotman-service/src/main/resources/mapper/ServiceTokenMapper.xml

@@ -35,8 +35,17 @@
 		and a.product_service_id = b.id and b.service_id = c.id and a.type = 3
         and c.user_id = #{userId} and b.product_id = #{productId}
     </select>
+    
+ 	<select id="getTryTokenByUserIdAndProductId" parameterType="java.util.Map" resultMap="BaseResultMap">
+        SELECT  
+        	a.*
+        FROM `diag_service_token` a, diag_product_service b, diag_service_info c
+        where a.is_deleted = 'N' and b.is_deleted = 'N' and c.is_deleted = 'N'
+		and a.product_service_id = b.id and b.service_id = c.id and a.type = 3
+        and c.user_id = #{userId} and b.product_id = #{productId}
+    </select>
 
-
+	
 
     <select id="getByAppkeyAndSecretAndProduct" parameterType="java.util.Map" resultType="com.diagbot.entity.wrapper.ServiceTokenWrapper">
         SELECT