gaodm 6 lat temu
rodzic
commit
9e1816b0cd

+ 11 - 0
diagbotman-service/src/main/java/com/diagbot/facade/OpenedProductsFacade.java

@@ -29,6 +29,7 @@ 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;
 
@@ -58,6 +59,8 @@ public class OpenedProductsFacade extends OpenedProductsServiceImpl {
     private ProductOrderFacade productOrderFacade;
     @Autowired
     private UserServiceClient userServiceClient;
+    @Autowired
+    private ServiceTokenFacade serviceTokenFacade;
 
     public List<OpenedProducts> getByAppkeyAndSecretFac(Map map) {
         return this.getByAppkeyAndSecret(map);
@@ -149,6 +152,14 @@ public class OpenedProductsFacade extends OpenedProductsServiceImpl {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "该产品已删除");
         }
         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, "您已试用过该产品");
+        }
         Date now = new Date();
         ServiceInfo serviceInfo = new ServiceInfo();
         serviceInfo.setType(ServiceTypeEnum.Sys_Create.getKey());

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

@@ -26,6 +26,12 @@ public interface ServiceTokenMapper extends BaseMapper<ServiceToken> {
      */
     public List<ServiceTokenWithUser> getByAppkeyAndSecret(Map map);
 
+    /**
+     * 根据userId和productId获取试用商品的数量
+     * @param map
+     * @return
+     */
+    Integer getTryTokenCount(Map map);
 
     /**
      * 根据appkey、secret、productId获取ServiceToken信息

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

@@ -51,4 +51,11 @@ public interface ServiceTokenService extends IService<ServiceToken> {
      * @return
      */
     public List<ServiceTokenWrapper> getByAppkeyAndSecretAndProductId(Map map);
+
+    /**
+     * 根据userId和productId获取试用商品的数量
+     * @param map
+     * @return
+     */
+    Integer getTryTokenCount(Map map);
 }

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

@@ -56,4 +56,16 @@ public class ServiceTokenServiceImpl extends ServiceImpl<ServiceTokenMapper, Ser
     public List<ServiceTokenWrapper> getByAppkeyAndSecretAndProductId(Map map) {
         return baseMapper.getByAppkeyAndSecretAndProduct(map);
     }
+
+
+    /**
+     * 根据userId和productId获取试用商品的数量
+     * @param map
+     * @return
+     */
+    @Override
+    public Integer getTryTokenCount(Map map){
+        return baseMapper.getTryTokenCount(map);
+    }
+
 }

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

@@ -29,6 +29,14 @@
         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="getTryTokenCount" parameterType="java.util.Map" resultType="Integer">
+        SELECT COUNT(a.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.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