Browse Source

Merge branch 'product-api' of wangfan/adweb3-server into master

wangfan 3 months ago
parent
commit
53a6942b97

BIN
conf/adweb_v3.sql.zip


+ 21 - 34
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/api/controller/OpenAPIController.java

@@ -1,12 +1,14 @@
 package org.jeecg.modules.adweb.api.controller;
 
-import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletRequest;
+
 import lombok.extern.slf4j.Slf4j;
+
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
@@ -16,7 +18,6 @@ import org.jeecg.modules.adweb.api.vo.EnquiryInfoVO;
 import org.jeecg.modules.adweb.api.vo.EnquiryPageVO;
 import org.jeecg.modules.adweb.api.vo.ProductInfoVO;
 import org.jeecg.modules.adweb.common.mapper.CommonMapper;
-import org.jeecg.modules.adweb.common.util.DateUtil;
 import org.jeecg.modules.adweb.enquiry.entity.AdwebEnquiry;
 import org.jeecg.modules.adweb.enquiry.service.IAdwebEnquiryService;
 import org.jeecg.modules.adweb.product.entity.AdwebProduct;
@@ -39,21 +40,15 @@ public class OpenAPIController {
     private static final String BEARER_TOKEN_HEADER = "AdWeb-Authorization";
     private static final String STATIC_BEARER_TOKEN = "Bearer uxl9Wpzh65vXNUyDvynJDjBo";
 
-    @Resource
-    private CommonMapper commonMapper;
+    @Resource private CommonMapper commonMapper;
 
-    @Resource
-    private IAdwebSiteService adwebSiteService;
+    @Resource private IAdwebSiteService adwebSiteService;
 
-    @Resource
-    private IAdwebProductService adwebProductService;
+    @Resource private IAdwebProductService adwebProductService;
 
-    @Resource
-    private IAdwebEnquiryService adwebEnquiryService;
+    @Resource private IAdwebEnquiryService adwebEnquiryService;
 
-    /**
-     * 外部api请求获取产品列表
-     */
+    /** 外部api请求获取产品列表 */
     @IgnoreAuth
     @PostMapping("/product/list")
     @ResponseBody
@@ -63,26 +58,24 @@ public class OpenAPIController {
         this.validateAuthToken(authToken);
 
         log.info("苏豪通请求产品列表 parameter: {}", apiRequest);
+
         QueryWrapper<AdwebSite> adwebSiteQueryWrapper = new QueryWrapper<>();
         adwebSiteQueryWrapper.like("domain", apiRequest.getDomain());
-        List<AdwebSite> adwebSites = adwebSiteService.getBaseMapper().selectList(adwebSiteQueryWrapper);
+        List<AdwebSite> adwebSites =
+                adwebSiteService.getBaseMapper().selectList(adwebSiteQueryWrapper);
 
-        List<ProductInfoVO> productVOList;
         if (CollectionUtils.isNotEmpty(adwebSites)) {
             QueryWrapper<AdwebProduct> adwebProductQueryWrapper = new QueryWrapper<>();
             adwebSiteQueryWrapper.eq("domain", adwebSites.get(0).getCode());
-            List<AdwebProduct> adwebProducts = adwebProductService.getBaseMapper().selectList(adwebProductQueryWrapper);
-            productVOList = adwebProducts.stream().map(adwebProduct -> BeanUtil.copyProperties(adwebProduct, ProductInfoVO.class)).toList();
+            List<AdwebProduct> adwebProducts =
+                    adwebProductService.getBaseMapper().selectList(adwebProductQueryWrapper);
+            return Result.ok(adwebProducts.stream().map(ProductInfoVO::fromAdwebProduct).toList());
         } else {
             return Result.error("未找到该站点!");
         }
-
-        return Result.ok(productVOList);
     }
 
-    /**
-     * 外部api请求获取询盘列表
-     */
+    /** 外部api请求获取询盘列表 */
     @IgnoreAuth
     @PostMapping("/enquiry/list")
     @ResponseBody
@@ -95,10 +88,10 @@ public class OpenAPIController {
 
         QueryWrapper<AdwebSite> adwebSiteQueryWrapper = new QueryWrapper<>();
         adwebSiteQueryWrapper.like("domain", apiRequest.getDomain());
-        List<AdwebSite> adwebSites = adwebSiteService.getBaseMapper().selectList(adwebSiteQueryWrapper);
+        List<AdwebSite> adwebSites =
+                adwebSiteService.getBaseMapper().selectList(adwebSiteQueryWrapper);
 
         EnquiryPageVO enquiryPage = new EnquiryPageVO();
-
         if (CollectionUtils.isNotEmpty(adwebSites)) {
             Page<AdwebEnquiry> page = new Page<>(apiRequest.getPageNo(), apiRequest.getPageSize());
 
@@ -108,16 +101,11 @@ public class OpenAPIController {
             IPage<AdwebEnquiry> pageList = adwebEnquiryService.page(page, enquiryQueryWrapper);
 
             if (pageList != null && CollectionUtils.isNotEmpty(pageList.getRecords())) {
-
                 // 复制属性到需要返回的新对象
-                List<EnquiryInfoVO> enquiryInfoVOS = pageList.getRecords().stream().map(adwebEnquiry -> {
-
-                    EnquiryInfoVO enquiryInfoVO = BeanUtil.copyProperties(adwebEnquiry, EnquiryInfoVO.class);
-                    enquiryInfoVO.setPageUrl(adwebEnquiry.getFromPage());
-                    enquiryInfoVO.setCreateTime(DateUtil.formatDate(adwebEnquiry.getRecordCtime(), DateUtil.DATE_FORMAT_MINUTE));
-
-                    return enquiryInfoVO;
-                }).toList();
+                List<EnquiryInfoVO> enquiryInfoVOS =
+                        pageList.getRecords().stream()
+                                .map(EnquiryInfoVO::fromAdwebEnquiry)
+                                .toList();
 
                 enquiryPage.setPages(pageList.getPages());
                 enquiryPage.setSize(pageList.getSize());
@@ -125,7 +113,6 @@ public class OpenAPIController {
                 enquiryPage.setTotal(pageList.getTotal());
                 enquiryPage.setRecords(enquiryInfoVOS);
             }
-
         } else {
             return Result.error("未找到该站点!");
         }

+ 18 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/api/vo/EnquiryInfoVO.java

@@ -2,6 +2,9 @@ package org.jeecg.modules.adweb.api.vo;
 
 import lombok.Data;
 
+import org.jeecg.modules.adweb.common.util.DateUtil;
+import org.jeecg.modules.adweb.enquiry.entity.AdwebEnquiry;
+
 /**
  * @author wfansh
  */
@@ -23,4 +26,19 @@ public class EnquiryInfoVO {
     private String siteHost;
 
     private String createTime;
+
+    public static EnquiryInfoVO fromAdwebEnquiry(AdwebEnquiry adwebEnquiry) {
+        EnquiryInfoVO enquiryInfoVO = new EnquiryInfoVO();
+        enquiryInfoVO.setId(adwebEnquiry.getId());
+        enquiryInfoVO.setName(adwebEnquiry.getName());
+        enquiryInfoVO.setEmail(adwebEnquiry.getEmail());
+        enquiryInfoVO.setPhone(adwebEnquiry.getPhone());
+        enquiryInfoVO.setMessage(adwebEnquiry.getMessage());
+        enquiryInfoVO.setPageUrl(adwebEnquiry.getFromPage());
+        enquiryInfoVO.setSiteHost(adwebEnquiry.getSiteHost());
+        enquiryInfoVO.setCreateTime(
+                DateUtil.formatDate(adwebEnquiry.getRecordCtime(), DateUtil.DATE_FORMAT_MINUTE));
+
+        return enquiryInfoVO;
+    }
 }

+ 27 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/api/vo/ProductInfoVO.java

@@ -1,7 +1,14 @@
 package org.jeecg.modules.adweb.api.vo;
 
+import com.google.common.base.Splitter;
+
 import lombok.Data;
 
+import org.jeecg.modules.adweb.product.entity.AdwebProduct;
+
+import java.util.List;
+import java.util.Optional;
+
 /**
  * @author wfansh
  */
@@ -16,9 +23,28 @@ public class ProductInfoVO {
 
     private String productImage;
 
-    private String productGalleryImage;
+    private List<String> productGalleryImage;
 
     private String categoryName;
 
     private String authorName;
+
+    public static ProductInfoVO fromAdwebProduct(AdwebProduct adwebProduct) {
+        ProductInfoVO productInfoVO = new ProductInfoVO();
+        productInfoVO.setProductId(adwebProduct.getProductId());
+        productInfoVO.setProductName(adwebProduct.getProductName());
+        productInfoVO.setProductNameZh(adwebProduct.getProductNameZh());
+        productInfoVO.setProductImage(adwebProduct.getProductImage());
+        productInfoVO.setProductGalleryImage(
+                Splitter.onPattern("[\\[\\],]")
+                        .omitEmptyStrings()
+                        .trimResults()
+                        .splitToList(
+                                Optional.ofNullable(adwebProduct.getProductGalleryImage())
+                                        .orElse("")));
+        productInfoVO.setCategoryName(adwebProduct.getCategoryName());
+        productInfoVO.setAuthorName(adwebProduct.getAuthorName());
+
+        return productInfoVO;
+    }
 }