ソースを参照

Merge remote-tracking branch 'origin/dev/one' into dev/one

wangyu 6 年 前
コミット
812e388752

+ 3 - 2
diagbotman-service/src/main/java/com/diagbot/entity/wrapper/ServiceTokenWrapper.java

@@ -13,9 +13,10 @@ import lombok.Setter;
 @Setter
 public class ServiceTokenWrapper extends ServiceToken {
     private String url;
-
+    private Long productId;
     private String productName;
-
     private String serviceName;
+    private Long userId;
+    private Integer serviceStatus;
 
 }

+ 15 - 19
diagbotman-service/src/main/java/com/diagbot/facade/ServiceTokenFacade.java

@@ -9,7 +9,6 @@ import com.diagbot.entity.OpenedProducts;
 import com.diagbot.entity.ProductService;
 import com.diagbot.entity.ServiceInfo;
 import com.diagbot.entity.ServiceToken;
-import com.diagbot.entity.ServiceTokenWithUser;
 import com.diagbot.entity.wrapper.ServiceTokenWrapper;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.StatusEnum;
@@ -61,35 +60,32 @@ public class ServiceTokenFacade extends ServiceTokenServiceImpl {
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("appkey", appkey);
         paramMap.put("secret", secret);
-        //ServiceToken st = this.getServiceToken(paramMap);
+        paramMap.put("productId", serviceTokenVo.getProductId());
 
         //获取用户的id
-        List<ServiceTokenWithUser> serviceTokenWithUserList = this.getByAppkeyAndSecret(paramMap);
-        if(ListUtil.isEmpty(serviceTokenWithUserList)) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "appkey和secret错误或已失效,appkey=【" + appkey + "】," + "secret=【" + secret + "】");
+        List<ServiceTokenWrapper> serviceTokenWrapperList = this.getByAppkeyAndSecretAndProductId(paramMap);
+
+        if(ListUtil.isEmpty(serviceTokenWrapperList)) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "appkey或secret错误,appkey=【" + appkey + "】," + "secret=【" + secret + "】");
+        }
+        ServiceTokenWrapper st = serviceTokenWrapperList.get(0);
+        if(StatusEnum.Disable.getKey() == st.getServiceStatus()) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该产品已停用");
         }
-        ServiceTokenWithUser st = serviceTokenWithUserList.get(0);
         if (TokenTypeEnum.Trial.getKey() == st.getType()) {
-            ProductService ps = productServiceFacade.getById(st.getProductServiceId());
-            if (ps == null) {
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "无权限访问");
-            }
-            if (!ps.getProductId().equals(serviceTokenVo.getProductId())) {
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "无权限访问");
-            }
             Date date = new Date();
             if (st.getExpiringDate().getTime() < date.getTime()) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "访问权限已过期");
             }
         } else {
-            List<OpenedProducts> opList = openedProductsFacade.getByAppkeyAndSecret(paramMap);
-            if (ListUtil.isEmpty(opList)) {
+            QueryWrapper<OpenedProducts> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+            queryWrapper.eq("user_id", st.getUserId());
+            queryWrapper.eq("product_id", st.getProductId());
+            OpenedProducts op = openedProductsFacade.getOne(queryWrapper);
+            if(op == null) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "无权限访问");
             }
-            if (opList.size() != 1) {
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "当前appkey和secret对应多条数据");
-            }
-            OpenedProducts op = opList.get(0);// 正常只有一条数据
             Date date = new Date();
             if (!(StatusEnum.Enable.getKey() == op.getServiceStatus())) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "当前服务已停用");

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

@@ -3,6 +3,7 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.entity.ServiceToken;
 import com.diagbot.entity.ServiceTokenWithUser;
+import com.diagbot.entity.wrapper.ServiceTokenWrapper;
 
 import java.util.List;
 import java.util.Map;
@@ -24,4 +25,12 @@ public interface ServiceTokenMapper extends BaseMapper<ServiceToken> {
      * @return
      */
     public List<ServiceTokenWithUser> getByAppkeyAndSecret(Map map);
+
+
+    /**
+     * 根据appkey、secret、productId获取ServiceToken信息
+     * @param map
+     * @return
+     */
+    public List<ServiceTokenWrapper> getByAppkeyAndSecretAndProduct(Map map);
 }

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

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.entity.ServiceToken;
 import com.diagbot.entity.ServiceTokenWithUser;
+import com.diagbot.entity.wrapper.ServiceTokenWrapper;
 
 import java.util.List;
 import java.util.Map;
@@ -42,4 +43,12 @@ public interface ServiceTokenService extends IService<ServiceToken> {
      * @return
      */
     public List<ServiceTokenWithUser> getByAppkeyAndSecret(Map map);
+
+
+    /**
+     * 根据appkey、secret、productId获取ServiceToken信息
+     * @param map
+     * @return
+     */
+    public List<ServiceTokenWrapper> getByAppkeyAndSecretAndProductId(Map map);
 }

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

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.entity.ServiceToken;
 import com.diagbot.entity.ServiceTokenWithUser;
+import com.diagbot.entity.wrapper.ServiceTokenWrapper;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.mapper.ServiceTokenMapper;
 import com.diagbot.service.ServiceTokenService;
@@ -50,4 +51,9 @@ public class ServiceTokenServiceImpl extends ServiceImpl<ServiceTokenMapper, Ser
     public List<ServiceTokenWithUser> getByAppkeyAndSecret(Map map) {
         return baseMapper.getByAppkeyAndSecret(map);
     }
+
+    @Override
+    public List<ServiceTokenWrapper> getByAppkeyAndSecretAndProductId(Map map) {
+        return baseMapper.getByAppkeyAndSecretAndProduct(map);
+    }
 }

+ 22 - 0
diagbotman-service/src/main/resources/mapper/ServiceTokenMapper.xml

@@ -22,9 +22,31 @@
     </resultMap>
 
 
+
     <select id="getByAppkeyAndSecret" parameterType="java.util.Map" resultType="com.diagbot.entity.ServiceTokenWithUser">
         SELECT a.*, c.user_id user_id 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.app_key_id = #{appkey} and a.app_key_secret = #{secret} and a.product_service_id = b.id and b.service_id = c.id
     </select>
+
+
+    <select id="getByAppkeyAndSecretAndProduct" parameterType="java.util.Map" resultType="com.diagbot.entity.wrapper.ServiceTokenWrapper">
+        SELECT
+            st.*, ps.product_id, lp.service_status
+        FROM
+            diag_service_token st,
+            diag_product_service ps,
+            diag_service_info si,
+            diag_lantone_product lp
+        WHERE
+            st.product_service_id = ps.id
+        AND ps.service_id = si.id
+        AND ps.product_id = lp.id
+        AND st.is_deleted = 'N'
+        AND ps.is_deleted = 'N'
+        AND si.is_deleted = 'N'
+        AND lp.is_deleted = 'N'
+        AND ps.product_id = #{productId}
+        AND st.app_key_id = #{appkey} and st.app_key_secret = #{secret}
+    </select>
 </mapper>