CdfHkProductApiController.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.cdf.controller.api;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.cdf.common.ResultCode;
  5. import com.cdf.common.ResultData;
  6. import com.cdf.entity.ProductSource;
  7. import com.cdf.exception.BusinessException;
  8. import com.cdf.httpClient.client.CdfClient;
  9. import com.cdf.httpClient.client.CdfHKClient;
  10. import com.cdf.httpClient.request.CdfInCatRequest;
  11. import com.cdf.httpClient.response.cdf.CdfProductVo;
  12. import com.cdf.response.SkuListVo;
  13. import com.cdf.service.IProductSourceService;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.GetMapping;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestParam;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import javax.annotation.Resource;
  21. import java.util.List;
  22. @RestController
  23. @RequestMapping("/api")
  24. public class CdfHkProductApiController {
  25. @Resource
  26. private CdfHKClient cdfHKClient;
  27. @Autowired
  28. private IProductSourceService productSourceService;
  29. @GetMapping("/getCatNum")
  30. public ResultData getCatNum(@RequestParam(required = false) String AccessToken,
  31. @RequestParam(required = false,defaultValue = "1")Integer productSourceId){
  32. ProductSource productSource = productSourceService.getById(productSourceId);
  33. if(productSource == null|| productSource.getMchType() == 1){
  34. throw new BusinessException(ResultCode.PARAM_MISS);
  35. }
  36. JSONObject catNum = cdfHKClient.getCatNum(productSource.getCdfHost(),productSource.getCdfMchId(),AccessToken);
  37. return ResultData.ok(catNum);
  38. }
  39. @GetMapping("/inCat")
  40. public ResultData inCat(@RequestParam(required = false) String AccessToken,
  41. @RequestParam(required = false) String skuId,
  42. @RequestParam(required = false) Integer num,
  43. @RequestParam(required = false,defaultValue = "1")Integer productSourceId){
  44. ProductSource productSource = productSourceService.getById(productSourceId);
  45. if(productSource == null|| productSource.getMchType() == 1){
  46. throw new BusinessException(ResultCode.PARAM_MISS);
  47. }
  48. JSONObject jsonObject = cdfHKClient.inCat(productSource.getCdfHost(),productSource.getCdfMchId(),AccessToken, new CdfInCatRequest(skuId, num));
  49. if(jsonObject.get("success")!=null && !jsonObject.getBoolean("success")){
  50. return ResultData.error(jsonObject.getString("msg"));
  51. }
  52. if(jsonObject.get("status")!=null ){
  53. return ResultData.error(401,jsonObject.getString("msg"));
  54. }
  55. return ResultData.ok(jsonObject);
  56. }
  57. @GetMapping("/getProductInfo")
  58. public ResultData getProductInfo(@RequestParam(required = false) String productId,
  59. @RequestParam(required = false,defaultValue = "1")Integer productSourceId){
  60. if(StringUtils.isBlank(productId)){
  61. return ResultData.ok();
  62. }
  63. ProductSource productSource = productSourceService.getById(productSourceId);
  64. if(productSource == null || productSource.getMchType() == 1){
  65. throw new BusinessException(ResultCode.PARAM_MISS);
  66. }
  67. CdfProductVo productById = cdfHKClient.getProductById(productSource.getCdfHost(),productSource.getCdfMchId(),productId);
  68. /**
  69. * 澳门店:1
  70. * 东涌店:2
  71. * 柬中免店:3
  72. * 会员购店:12
  73. * https://ar.cdfmembers.com/spu?showType=makeup&spuId=p15685542&storeId=1&userId=601131887&AccessToken=05508E6249DF10D42876C63E6823E98AAFCA8B1CD592F0D5B5A112BF3B51BB01BD5C8661A63D9D16039DA34FD0352B184F892FAB146A3531&cookieId=24fb1f47-cf3f-4a3d-c0fe-62be0c99a400
  74. */
  75. List<SkuListVo> skuList = cdfHKClient.getSkuList(productId, productSourceId);
  76. for (SkuListVo o : skuList) {
  77. o.setUrl(o.getUrl() + "&spuId=" + productId +"&storeId="+productSourceId);
  78. }
  79. productById.setSkuList(skuList);
  80. return ResultData.ok(productById);
  81. }
  82. }