浏览代码

采美百科数据part1

Aslee 3 年之前
父节点
当前提交
8b98c1b51d

+ 1 - 1
backup.sql

@@ -171,7 +171,7 @@ CREATE TABLE `cm_baike_type` (
 
 CREATE TABLE `cm_baike_product` (
     `id` INT NOT NULL AUTO_INCREMENT,
-    `classify` INT NULL COMMENT '分类:1产品,2仪器',
+    `commodityType` INT NULL COMMENT '商品分类:1产品,2仪器',
     `name` VARCHAR(50) NULL COMMENT '名称',
     `alias` VARCHAR(50) NULL COMMENT '别名',
     `discription` VARCHAR(300) NULL COMMENT '描述',

+ 8 - 0
src/main/java/com/caimei/www/controller/GenerateApi.java

@@ -46,6 +46,14 @@ public class GenerateApi {
         return generateHtml.generateStaticFiles();
     }
 
+    /**
+     * 生成采美百科产品仪器页面
+     */
+    @PostMapping("/generate/baike/product")
+    public  String generateBaikeProduct(ServerWebExchange exchange,Integer commodityType) {
+        return generateHtml.generateBaikePage(exchange, commodityType);
+    }
+
 
 //    @PostMapping("/product/img/repair")
 //    public String repairProductImg() {

+ 26 - 4
src/main/java/com/caimei/www/controller/unlimited/EncyclopediaController.java

@@ -1,8 +1,13 @@
 package com.caimei.www.controller.unlimited;
 
 import com.caimei.www.controller.BaseController;
+import com.caimei.www.pojo.baike.BaikeProduct;
+import com.caimei.www.service.page.ProductService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 
 /**
  * 采美文库
@@ -23,6 +28,13 @@ public class EncyclopediaController extends BaseController {
     private static final String ABOUT_US = "encyclopedia/about";
     private static final String MAP = "encyclopedia/map";
 
+    private ProductService productService;
+
+    @Autowired
+    public void setProductService(ProductService productService) {
+        this.productService = productService;
+    }
+
     /**
      * 产品列表
      */
@@ -34,8 +46,13 @@ public class EncyclopediaController extends BaseController {
     /**
      * 产品详情
      */
-    @GetMapping("/encyclopedia/product-detail.html")
-    public String getProductDetail() {
+    @GetMapping("/encyclopedia/product-{id}.html")
+    public String getProductDetail(final Model model, @PathVariable("id") Integer productId) {
+        BaikeProduct baikeProduct = productService.getBaikeProductDetail(productId);
+        if (baikeProduct == null) {
+            return super.errorPath();
+        }
+        model.addAttribute("baikeProduct", baikeProduct);
         return PRODUCT_DETAIL;
     }
 
@@ -50,8 +67,13 @@ public class EncyclopediaController extends BaseController {
     /**
      * 仪器详情
      */
-    @GetMapping("/encyclopedia/instrument-detail.html")
-    public String getInstrumentDetail() {
+    @GetMapping("/encyclopedia/instrument-{id}.html")
+    public String getInstrumentDetail(final Model model, @PathVariable("id") Integer productId) {
+        BaikeProduct baikeInstrument = productService.getBaikeProductDetail(productId);
+        if (baikeInstrument == null) {
+            return super.errorPath();
+        }
+        model.addAttribute("baikeInstrument", baikeInstrument);
         return INSTRUMENT_DETAIL;
     }
 

+ 42 - 0
src/main/java/com/caimei/www/mapper/BaikeDao.java

@@ -0,0 +1,42 @@
+package com.caimei.www.mapper;
+
+import com.caimei.www.pojo.baike.BaikeProduct;
+import com.caimei.www.pojo.baike.BaikeProductParam;
+import com.caimei.www.pojo.baike.BaikeProductQuestion;
+import com.caimei.www.pojo.classify.Bigtype;
+import com.caimei.www.pojo.classify.SmallType;
+import com.caimei.www.pojo.order.CartItem;
+import com.caimei.www.pojo.page.Parameter;
+import com.caimei.www.pojo.page.ProductDetail;
+import com.caimei.www.pojo.page.ProductList;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Aslee
+ * @date : 2021/11/25
+ */
+@Mapper
+public interface BaikeDao {
+    /**
+     * 查询采美百科产品/仪器详情数据
+     */
+    BaikeProduct getBaikeProductDetail(Integer productId);
+
+    List<BaikeProductParam> findParamList(Integer id);
+
+    /**
+     * 查询图片列表
+     *
+     * @param productId
+     * @param imageType 图片类型:1产品/仪器认证,2效果展示
+     * @return
+     */
+    List<String> findImageList(@Param("productId") Integer productId, @Param("imageType") int imageType);
+
+    List<BaikeProductQuestion> findQuestionList(Integer productId);
+}

+ 15 - 0
src/main/java/com/caimei/www/mapper/BaseDao.java

@@ -1,5 +1,6 @@
 package com.caimei.www.mapper;
 
+import com.caimei.www.pojo.baike.BaikeType;
 import com.caimei.www.pojo.page.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -42,4 +43,18 @@ public interface BaseDao {
      */
     List<BaseLink> getFriendLinks();
 
+    /**
+     * 采美百科搜索关键词
+     */
+    List<String> getBaikeSearchHotWord();
+
+    /**
+     * 采美百科banner图
+     */
+    ImageLink getBaikeBannerImage(Integer commodityType);
+
+    /**
+     * 采美百科分类列表
+     */
+    List<BaikeType> getBaikeTypeList(Integer commodityType);
 }

+ 6 - 0
src/main/java/com/caimei/www/mapper/ProductDao.java

@@ -3,6 +3,7 @@ package com.caimei.www.mapper;
 import com.caimei.www.pojo.classify.Bigtype;
 import com.caimei.www.pojo.classify.SmallType;
 import com.caimei.www.pojo.order.CartItem;
+import com.caimei.www.pojo.baike.BaikeProduct;
 import com.caimei.www.pojo.page.Parameter;
 import com.caimei.www.pojo.page.ProductDetail;
 import com.caimei.www.pojo.page.ProductList;
@@ -71,4 +72,9 @@ public interface ProductDao {
      * 修复商品图片(临时)
      */
     List<String> getProductInfo();
+
+    /**
+     * 查询采美百科产品/仪器详情数据
+     */
+    BaikeProduct getBaikeProductDetail(Integer productId);
 }

+ 96 - 0
src/main/java/com/caimei/www/pojo/baike/BaikeProduct.java

@@ -0,0 +1,96 @@
+package com.caimei.www.pojo.baike;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Aslee
+ * @date : 2021/11/25
+ */
+@Data
+public class BaikeProduct implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer productId;
+
+    /**
+     * 产品/仪器图片
+     */
+    private String image;
+
+    /**
+     * 产品/仪器名称
+     */
+    private String name;
+
+    /**
+     * 概述
+     */
+    private String discription;
+
+    /**
+     * 别名
+     */
+    private String alias;
+    /**
+     * 优点
+     */
+    private String advantage;
+    /**
+     * 缺点
+     */
+    private String disadvantage;
+    /**
+     * 原理
+     */
+    private String principle;
+    /**
+     * 品牌
+     */
+    private String brand;
+    /**
+     * 产地
+     */
+    private String producePlace;
+    /**
+     * 上市时间
+     */
+    private Date marketTime;
+    /**
+     * 公司/供应商
+     */
+    private String company;
+    /**
+     * NMPA认证时间
+     */
+    private Date nmpaTime;
+    /**
+     * 适应人群
+     */
+    private String adaptiveMan;
+    /**
+     * 不适应人群
+     */
+    private String unAdaptiveMan;
+    /**
+     * 术前术后
+     */
+    private String aroundOperation;
+    /**
+     * 发布时间
+     */
+    private Date publishTime;
+
+
+    private Integer topFlag;	//是否置顶标识:0否,1是
+    private String typeName;	//分类名称
+    private List<BaikeProductParam> paramList;	// 参数列表
+    private List<String> authImageList;			// 产品认证图片列表
+    private List<String> displayImageList;		// 效果展示图片列表
+    private List<BaikeProductQuestion> questionList;		//问题列表
+}

+ 53 - 0
src/main/java/com/caimei/www/pojo/baike/BaikeProductParam.java

@@ -0,0 +1,53 @@
+package com.caimei.www.pojo.baike;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 采美百科商品参数
+ * @author Aslee
+ * @date : 2021/11/25
+ */
+@Data
+public class BaikeProductParam implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 采美百科商品Id
+	 */
+	private Integer productId;
+	/**
+	 * 参数名称
+	 */
+	private String name;
+	/**
+	 * 参数信息
+	 */
+	private String content;
+
+	public Integer getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Integer productId) {
+		this.productId = productId;
+	}
+
+	public String getContent() {
+		return content;
+	}
+
+	public void setContent(String content) {
+		this.content = content;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+}

+ 51 - 0
src/main/java/com/caimei/www/pojo/baike/BaikeProductQuestion.java

@@ -0,0 +1,51 @@
+package com.caimei.www.pojo.baike;
+
+
+import java.io.Serializable;
+
+/**
+ * 采美百科商品问题
+ * @author Aslee
+ * @date : 2021/11/25
+ */
+public class BaikeProductQuestion implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 采美百科商品Id
+	 */
+	private Integer productId;
+	/**
+	 * 问题
+	 */
+	private String question;
+	/**
+	 * 回答
+	 */
+	private String answer;
+
+
+	public Integer getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Integer productId) {
+		this.productId = productId;
+	}
+
+	public String getQuestion() {
+		return question;
+	}
+
+	public void setQuestion(String question) {
+		this.question = question;
+	}
+
+	public String getAnswer() {
+		return answer;
+	}
+
+	public void setAnswer(String answer) {
+		this.answer = answer;
+	}
+}

+ 18 - 0
src/main/java/com/caimei/www/pojo/baike/BaikeType.java

@@ -0,0 +1,18 @@
+package com.caimei.www.pojo.baike;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author : Aslee
+ * @date : 2020/11/25
+ */
+@Data
+public class BaikeType implements Serializable {
+    private Integer id;
+    private String name;
+}

+ 4 - 0
src/main/java/com/caimei/www/service/generate/GenerateHtml.java

@@ -26,4 +26,8 @@ public interface GenerateHtml {
      */
     String generateStaticFiles();
 
+    /**
+     * 生成采美百科产品仪器页面
+     */
+    String generateBaikePage(ServerWebExchange exchange, Integer commodityType);
 }

+ 55 - 0
src/main/java/com/caimei/www/service/generate/impl/GenerateHtmlImpl.java

@@ -2,6 +2,7 @@ package com.caimei.www.service.generate.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.caimei.www.pojo.baike.BaikeType;
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.page.TopMenu;
@@ -118,6 +119,33 @@ public class GenerateHtmlImpl implements GenerateHtml {
         }
     }
 
+    /**
+     * 生成采美百科产品仪器页面
+     */
+    @Override
+    public String generateBaikePage(ServerWebExchange exchange, Integer commodityType) {
+        // 上下文
+        SpringWebFluxContext context = new SpringWebFluxContext(exchange);
+        // 设置页面数据
+        context.setVariables(setStaticBaikePage(commodityType));
+        // 输出流  /product/type-287.html
+        File dest = new File(destPath + "/encyclopedia", 1 == commodityType ? "product.html" : "instrument.html");
+        if (dest.exists()) {
+            boolean delete = dest.delete();
+        }
+        String commodityName = 1 == commodityType ? "产品" : "仪器";
+        try (PrintWriter writer = new PrintWriter(dest, "UTF-8")) {
+            // 生成html
+            templateEngine.process("product/instrument", context, writer);
+            log.info("[静态页服务]:生成静态采美百科" + commodityName + "页成功! ^_^");
+            return "[静态页服务]:生成静态采美百科" + commodityName + "页成功! ^_^";
+        } catch (Exception e) {
+            boolean delete = dest.delete();
+            log.error("[静态页服务]:生成静态采美百科" + commodityName + "页异常!", e);
+            return "[静态页服务]:生成静态采美百科" + commodityName + "页异常!"+e.toString();
+        }
+    }
+
     /**
      * 拷贝静态资源文件
      */
@@ -224,6 +252,33 @@ public class GenerateHtmlImpl implements GenerateHtml {
         return map;
     }
 
+    private Map<String, Object> setStaticBaikePage(Integer commodityType) {
+        Map<String, Object> map = new HashMap<>();
+        // 环境变量,(2:正式环境,1:测试环境,0:开发环境)
+        map.put("siteEnv", siteEnv);
+        map.put("agent", "");
+        // 静态文件版本号
+        map.put("version", buildTime);
+        // spi服务器地址
+        map.put("coreServer", coreServer);
+        // 搜索热门关键字
+        List<String> searchHotWord = baseService.getBaikeSearchHotWord();
+        map.put("searchHotWord", searchHotWord);
+        // banner图
+        ImageLink banner = baseService.getBaikeBannerImage(commodityType);
+        map.put("banner", banner);
+        // 分类列表
+        List<BaikeType> typeList = baseService.getBaikeTypeList(commodityType);
+        map.put("typeList", typeList);
+        // 产品仪器分类数据
+        JSONArray typeData = productService.getBaikeTypeJson(commodityType);
+        map.put("typeData", typeData);
+
+        log.debug(map.toString());
+
+        return map;
+    }
+
     /**
      * 资源清单获取并拷贝
      */

+ 16 - 1
src/main/java/com/caimei/www/service/page/BaseService.java

@@ -1,12 +1,12 @@
 package com.caimei.www.service.page;
 
 import com.alibaba.fastjson.JSONObject;
+import com.caimei.www.pojo.baike.BaikeType;
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.page.TopMenu;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * Description
@@ -40,4 +40,19 @@ public interface BaseService {
      * 分类菜单
      */
     List<JSONObject> getClassifyJson();
+
+    /**
+     * 采美百科热搜关键词
+     */
+    List<String> getBaikeSearchHotWord();
+
+    /**
+     * 采美百科banner图
+     */
+    ImageLink getBaikeBannerImage(Integer commodityType);
+
+    /**
+     * 采美百科分类列表
+     */
+    List<BaikeType> getBaikeTypeList(Integer commodityType);
 }

+ 11 - 0
src/main/java/com/caimei/www/service/page/ProductService.java

@@ -2,6 +2,7 @@ package com.caimei.www.service.page;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.caimei.www.pojo.baike.BaikeProduct;
 import com.caimei.www.pojo.page.ProductDetail;
 
 import java.util.Map;
@@ -57,4 +58,14 @@ public interface ProductService {
      * @param params
      */
     JSONObject getProductListJson(String params);
+
+    /**
+     * 获取采美百科产品/仪器列表数据
+     */
+    JSONArray getBaikeTypeJson(Integer commodityType);
+
+    /**
+     * 获取采美百科产品/仪器详情数据
+     */
+    BaikeProduct getBaikeProductDetail(Integer productId);
 }

+ 16 - 0
src/main/java/com/caimei/www/service/page/impl/BaseServiceImpl.java

@@ -3,6 +3,7 @@ package com.caimei.www.service.page.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.caimei.www.mapper.BaseDao;
+import com.caimei.www.pojo.baike.BaikeType;
 import com.caimei.www.pojo.page.*;
 import com.caimei.www.service.page.BaseService;
 import com.caimei.www.utils.RequestUtil;
@@ -122,4 +123,19 @@ public class BaseServiceImpl implements BaseService {
         }
     }
 
+    @Override
+    public List<String> getBaikeSearchHotWord() {
+        List<String> searchHotword = baseDao.getBaikeSearchHotWord();
+        return searchHotword;
+    }
+
+    @Override
+    public ImageLink getBaikeBannerImage(Integer commodityType) {
+        return baseDao.getBaikeBannerImage(commodityType);
+    }
+
+    @Override
+    public List<BaikeType> getBaikeTypeList(Integer commodityType) {
+        return baseDao.getBaikeTypeList(commodityType);
+    }
 }

+ 38 - 0
src/main/java/com/caimei/www/service/page/impl/ProductServiceImpl.java

@@ -2,7 +2,11 @@ package com.caimei.www.service.page.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.caimei.www.mapper.BaikeDao;
 import com.caimei.www.mapper.ProductDao;
+import com.caimei.www.pojo.baike.BaikeProduct;
+import com.caimei.www.pojo.baike.BaikeProductParam;
+import com.caimei.www.pojo.baike.BaikeProductQuestion;
 import com.caimei.www.pojo.page.ProductDetail;
 import com.caimei.www.service.page.ProductService;
 import com.caimei.www.utils.ImageUtil;
@@ -14,6 +18,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.List;
 import java.util.Map;
 
 
@@ -32,6 +37,8 @@ public class ProductServiceImpl implements ProductService {
     private String coreServer;
     @Resource
     private ProductDao productDao;
+    @Resource
+    private BaikeDao baikeDao;
 
     /**
      * 根据商品Id获取详情
@@ -170,4 +177,35 @@ public class ProductServiceImpl implements ProductService {
         }
     }
 
+    @Override
+    public JSONArray getBaikeTypeJson(Integer commodityType) {
+        String dataUrl = coreServer + "/commodity/baike/type?commodityType=" + commodityType;
+        try {
+            String classifyResult = RequestUtil.sendGet(dataUrl);
+            log.debug(classifyResult);
+            Map<String, Object> classifyMap = JSONObject.parseObject(classifyResult, Map.class);
+            return (JSONArray) classifyMap.get("data");
+        } catch (Exception e) {
+            log.error("try-catch:",e);
+            return null;
+        }
+    }
+
+    @Override
+    public BaikeProduct getBaikeProductDetail(Integer productId) {
+        BaikeProduct baikeProduct = baikeDao.getBaikeProductDetail(productId);
+        // 参数列表
+        List<BaikeProductParam> paramList = baikeDao.findParamList(productId);
+        baikeProduct.setParamList(paramList);
+        // 产品/仪器认证图片列表
+        List<String> authImageList = baikeDao.findImageList(productId, 1);
+        baikeProduct.setAuthImageList(authImageList);
+        // 效果展示图片列表
+        List<String> displayImageList = baikeDao.findImageList(productId, 2);
+        baikeProduct.setDisplayImageList(displayImageList);
+        // 问题列表
+        List<BaikeProductQuestion> questionList = baikeDao.findQuestionList(productId);
+        baikeProduct.setQuestionList(questionList);
+        return null;
+    }
 }

+ 46 - 0
src/main/resources/mapper/BaikeMapper.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei.www.mapper.BaikeDao">
+    <select id="getBaikeProductDetail" resultType="com.caimei.www.pojo.baike.BaikeProduct">
+		select a.id              AS "id",
+			   a.commodityType   AS "commodityType",
+			   a.name            AS "name",
+			   a.alias           AS "alias",
+			   a.discription     AS "discription",
+			   a.image           AS "image",
+			   a.advantage       AS "advantage",
+			   a.disadvantage    AS "disadvantage",
+			   a.principle       AS "principle",
+			   a.brand           AS "brand",
+			   a.producePlace    AS "producePlace",
+			   a.marketTime      AS "marketTime",
+			   a.company         AS "company",
+			   a.nmpaTime        AS "nmpaTime",
+			   a.adaptiveMan     AS "adaptiveMan",
+			   a.unAdaptiveMan   AS "unAdaptiveMan",
+			   a.aroundOperation AS "aroundOperation",
+			   a.publishTime     AS "publishTime",
+			   a.basePv          AS "basePv",
+			   a.actualPv        AS "actualPv",
+			   a.typeId          AS "typeId",
+			   a.topPosition     AS "topPosition",
+			   a.status          AS "status",
+			   a.addTime         AS "addTime",
+			   cbt.name          as "typeName"
+		from cm_baike_product a
+				 left join cm_baike_type cbt on a.typeId = cbt.id
+		where a.id = #{productId} and status =1;
+	</select>
+
+	<select id="findParamList" resultType="com.caimei.www.pojo.baike.BaikeProductParam">
+		select productId, name, content from cm_baike_product_param where productId = #{id}
+	</select>
+	<select id="findImageList" resultType="java.lang.String">
+		select image from cm_baike_product_image where productId = #{productId} and type = #{imageType}
+	</select>
+	<select id="findQuestionList" resultType="com.caimei.www.pojo.baike.BaikeProductQuestion">
+		select productId, question, answer
+		from cm_baike_product_question
+		where productId = #{productId}
+	</select>
+</mapper>

+ 16 - 0
src/main/resources/mapper/BaseMapper.xml

@@ -53,4 +53,20 @@
 		from new_page_friendship_link
 		where delFlag = 0 order by id
     </select>
+    <select id="getBaikeSearchHotWord" resultType="java.lang.String">
+        select keyWord from cm_baike_hot_search where status = 1 order by -sort desc,addTime desc
+    </select>
+    <select id="getBaikeBannerImage" resultType="com.caimei.www.pojo.page.ImageLink">
+        select id,
+               if(#{commodityType} = 1, productPcBanner, instrumentPcBanner) as image,
+               if(#{commodityType} = 1, productLink, instrumentLink)         as link
+        from cm_baike_banner
+        where if(#{commodityType} = 1,productStatus,instrumentStatus) = 1
+    </select>
+    <select id="getBaikeTypeList" resultType="com.caimei.www.pojo.baike.BaikeType">
+        select id, name
+        from cm_baike_type
+        where if(#{commodityType} = 1, typeSort = 1, typeSort = 2) and status = 1
+        order by -sort desc,addTime desc
+    </select>
 </mapper>

+ 31 - 0
src/main/resources/mapper/ProductMapper.xml

@@ -123,5 +123,36 @@
     <select id="getProductInfo" resultType="java.lang.String">
         select detailinfo from productdetailinfo where detailinfo like '%img-b.caimei365.com%'
 	</select>
+    <select id="getBaikeProductDetail" resultType="com.caimei.www.pojo.baike.BaikeProduct">
+		select a.id              AS "id",
+			   a.commodityType   AS "commodityType",
+			   a.name            AS "name",
+			   a.alias           AS "alias",
+			   a.discription     AS "discription",
+			   a.image           AS "image",
+			   a.advantage       AS "advantage",
+			   a.disadvantage    AS "disadvantage",
+			   a.principle       AS "principle",
+			   a.brand           AS "brand",
+			   a.producePlace    AS "producePlace",
+			   a.marketTime      AS "marketTime",
+			   a.company         AS "company",
+			   a.nmpaTime        AS "nmpaTime",
+			   a.adaptiveMan     AS "adaptiveMan",
+			   a.unAdaptiveMan   AS "unAdaptiveMan",
+			   a.aroundOperation AS "aroundOperation",
+			   a.publishTime     AS "publishTime",
+			   a.basePv          AS "basePv",
+			   a.actualPv        AS "actualPv",
+			   a.typeId          AS "typeId",
+			   a.topPosition     AS "topPosition",
+			   a.status          AS "status",
+			   a.addTime         AS "addTime",
+			   cbt.name          as "typeName"
+		from cm_baike_product a
+				 left join cm_baike_type cbt on a.typeId = cbt.id
+		where id = #{productId};
+
+	</select>
 
 </mapper>