Browse Source

fix device_code null

huodongdong 7 years ago
parent
commit
ed9f6583d9

+ 27 - 2
rankin-api-web/src/main/java/cn/rankin/apiweb/service/collection/CollectionService.java

@@ -1,7 +1,12 @@
 package cn.rankin.apiweb.service.collection;
 
 import cn.rankin.apiweb.code.ApiWebCode;
+import cn.rankin.apiweb.service.product.ProductService;
 import cn.rankin.common.utils.api.model.APIResult;
+import cn.rankin.common.utils.api.model.BaseCode;
+import cn.rankin.common.utils.enums.BaseStatusEnum;
+import cn.rankin.data.api.product.entity.MerchantProduct;
+import cn.rankin.data.api.user.dto.CollectionDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -14,8 +19,28 @@ public class CollectionService {
     @Autowired
     private CollectionClient collectionClient;
 
-    public APIResult<Boolean> put(String userId, String productId) {
-        return null;
+    @Autowired
+    private ProductService productService;
+
+    public APIResult<Boolean> put(String userId, String merchantId, String productId) {
+        APIResult<MerchantProduct> apiResult = productService.getMerchantProduct(productId, merchantId);
+        if (!apiResult.getSuccess()) {
+            return APIResult.error(new BaseCode(apiResult.getCode(), apiResult.getMessage()));
+        }
+
+        MerchantProduct merchantProduct = apiResult.getData();
+        if (merchantProduct == null) {
+            return APIResult.error(ApiWebCode.NOT_EXISTS);
+        }
+
+        CollectionDTO collectionDTO = new CollectionDTO();
+        collectionDTO.setPid(productId);
+        collectionDTO.setUserId(userId);
+        collectionDTO.setType(merchantProduct.getType());
+        collectionDTO.setStatus(BaseStatusEnum.NORMAL);
+
+        return collectionClient.put(collectionDTO);
+
     }
 
 }

+ 20 - 0
rankin-api-web/src/main/java/cn/rankin/apiweb/service/product/ProductClient.java

@@ -1,8 +1,11 @@
 package cn.rankin.apiweb.service.product;
 
+import cn.rankin.apiweb.code.ApiWebCode;
 import cn.rankin.common.utils.api.model.APIResult;
+import cn.rankin.data.api.product.entity.MerchantProduct;
 import cn.rankin.data.api.product.entity.Recommend;
 import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -14,4 +17,21 @@ public interface ProductClient {
 
     @RequestMapping(value = "/recommend/courses", method = RequestMethod.GET)
     APIResult<List<Recommend>> getRecommendCourses(@RequestParam("merchantId") String merchantId);
+
+    @RequestMapping(value = "/merchant/product/detail", method = RequestMethod.GET)
+    APIResult<MerchantProduct> getProduct(@RequestParam("pid") String productId, @RequestParam("merchantId") String merchantId);
+
+    @Component
+    class ProductClientHystrix implements ProductClient {
+
+        @Override
+        public APIResult getRecommendCourses(String merchantId) {
+            return APIResult.error(ApiWebCode.SERVER_ERROR);
+        }
+
+        @Override
+        public APIResult getProduct(String productId, String merchantId) {
+            return APIResult.error(ApiWebCode.SERVER_ERROR);
+        }
+    }
 }

+ 6 - 0
rankin-api-web/src/main/java/cn/rankin/apiweb/service/product/ProductService.java

@@ -3,6 +3,7 @@ package cn.rankin.apiweb.service.product;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.model.BaseCode;
 import cn.rankin.data.api.app.vo.RecommendVo;
+import cn.rankin.data.api.product.entity.MerchantProduct;
 import cn.rankin.data.api.product.entity.Recommend;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -32,4 +33,9 @@ public class ProductService {
         }
         return APIResult.ok(recommendVoList);
     }
+
+    public APIResult<MerchantProduct> getMerchantProduct(String productId, String merchantId) {
+        APIResult<MerchantProduct> apiResult = productClient.getProduct(productId, merchantId);
+        return apiResult;
+    }
 }

+ 1 - 1
rankin-api-web/src/main/java/cn/rankin/apiweb/service/user/UserService.java

@@ -203,7 +203,7 @@ public class UserService {
         deviceUserVo.setEid(userVo.getCode());
         deviceUserVo.setPassword(userVo.getPassword());
         deviceUserVo.setName(userVo.getName());
-        deviceUserVo.setDeviceCode(deviceVo.getCode());
+        deviceUserVo.setDeviceCode(deviceVo.getDeviceCode());
         deviceUserVo.setMerchantId(userVo.getMerchantId());
         deviceUserVo.setMerchantName(userVo.getMerchantName());
         deviceUserVo.setMerchantContactName(userVo.getMerchantContactName());

+ 1 - 3
rankin-data-api/src/main/java/cn/rankin/data/api/user/vo/TerminalDeviceVo.java

@@ -12,8 +12,6 @@ public class TerminalDeviceVo implements Serializable {
 
     private String id;
 
-    private String code;
-
     private String userId;
 
     private String brand;
@@ -22,7 +20,7 @@ public class TerminalDeviceVo implements Serializable {
 
     private String modelNo;
 
-    private Boolean bind;
+    private String deviceCode;
 
     private BaseStatusEnum status;