Ver Fonte

新增国家药监局关于该证件的详细信息

Duan_xu há 2 anos atrás
pai
commit
eeb5c47126

+ 1930 - 1879
src/main/resources/mappings/modules/product/ProductMapper.xml

@@ -2,13 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.modules.product.dao.ProductDao">
 
-	<resultMap  id="productModelResultMap" type="com.caimei.modules.product.entity.Product">
-		<id  property="id" column="id"/>
-		<result  property="name" column="name"/>
-	</resultMap>
+    <resultMap id="productModelResultMap" type="com.caimei.modules.product.entity.Product">
+        <id property="id" column="id"/>
+        <result property="name" column="name"/>
+    </resultMap>
 
-	<sql id="productColumns">
-		a.productID AS "id",
+    <sql id="productColumns">
+        a.productID AS "id",
 		a.productID AS "productID",
 		a.brandID AS "brandID",
 		a.bigTypeID AS "bigTypeID",
@@ -95,1888 +95,1939 @@
         a.recommend
     </sql>
 
-	<sql id="productJoins">
-		LEFT JOIN shop s on s.shopID = a.shopID
+    <sql id="productJoins">
+        LEFT JOIN shop s on s.shopID = a.shopID
 		left join product p on a.productID = p.productId
-	</sql>
-	<sql id="ActivityJoins">
-		LEFT JOIN shop s on s.shopID = a.shopID
-	</sql>
-
-	<update id="saveSort">
-		UPDATE cm_search_recommend_product SET
-			sort = #{sort}
-		WHERE id = #{id}
-	</update>
-
-	<select id="findLadderPriceByNum" resultType="Integer">
-		select IFNULL(buyNum,1)
-		FROM product_ladder_price
-		WHERE  userType = 3 and ladderNum = 1 and delFlag = 0  and productID = #{productID}
-	</select>
-
-	<select id="get" resultType="Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="productJoins"/>
-		WHERE a.productID = #{id}
-	</select>
-
-
-	<select id="getAllExistsProductList" resultType="Integer">
-		SELECT
-			a.productID
-		FROM cm_mall_organize_products a
-		WHERE a.delFlag = 0 and a.organizeID = #{organizeID}
-	</select>
-
-	<select id="findRecommendPage" resultType="Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="productJoins"/>
-		<where>
-			<if test="productID !=null and productID !=''">
-				AND a.productID=#{productID}
-			</if>
-			<if test="tinyTypeID != null and tinyTypeID != ''">
-				AND a.tinyTypeID = #{tinyTypeID}
-			</if>
-			<if test="shopID != null and shopID != ''">
-				AND a.shopID = #{shopID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND s.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
-			</if>
-			<if test="validFlag !=null and validFlag !=''">
-				AND a.validFlag=#{validFlag}
-			</if>
-			<if test="actFlag !=null and actFlag !=''">
-				AND a.actFlag=#{actFlag}
-			</if>
-			<if test="speCommisionFlag !=null and speCommisionFlag !=''">
-				AND a.speCommisionFlag=#{speCommisionFlag}
-			</if>
-			<if test="displayOnCRMFlag !=null and displayOnCRMFlag !=''">
-				AND a.displayOnCRMFlag=#{displayOnCRMFlag}
-			</if>
-			<if test="crmBigTypeId !=null and crmBigTypeId !=''">
-				AND a.crmBigTypeId=#{crmBigTypeId}
-			</if>
-			<if test="crmSmallTypeId !=null and crmSmallTypeId !=''">
-				AND a.crmSmallTypeId=#{crmSmallTypeId}
-			</if>
-			<if test="sqlMap !=null and sqlMap !=''">
-				${sqlMap.dsf}
-			</if>
-			<choose>
-				<when test="actType != null and actType != ''">
-					AND a.actType = #{actType}
-				</when>
-				<otherwise>
-					AND a.actType != 3
-				</otherwise>
-			</choose>
-			AND a.validFlag != 0
-			AND a.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
-			and a.productCategory = 1
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-				order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
-			</otherwise>
-		</choose>
-	</select>
-
-	<!--小程序商品获取采美2已上架 3已下架 9已冻结的商品-->
-	<select id="findListBuyMall" resultType="Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="productJoins"/>
-		<where>
-			<if test="productID !=null and productID !=''">
-				AND a.productID=#{productID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND s.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
-			</if>
-			AND a.validFlag in (2,3,9)
-			and a.productCategory = 1
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-				order by a.productID desc
-			</otherwise>
-		</choose>
-	</select>
-
-	<select id="findList" resultType="Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="productJoins"/>
-		<where>
-			<if test="id !=null and id !=''">
-				AND a.productID=#{id}
-			</if>
-			<if test="tinyTypeID != null and tinyTypeID != ''">
-				AND a.tinyTypeID = #{tinyTypeID}
-			</if>
-			<if test="shopID != null and shopID != ''">
-				AND a.shopID = #{shopID}
-			</if>
-			<if test="preferredFlag != null and preferredFlag != ''and preferredFlag != 0">
-				<if test="preferredFlag/100>=1">
-					AND a.preferredFlag in (100,101,110,111)
-				</if>
-				<if test="(preferredFlag%100)/10>=1">
-					AND a.preferredFlag in (10,11,110,111)
-				</if>
-				<if test="preferredFlag%10>=1">
-					AND a.preferredFlag in (1,11,101,111)
-				</if>
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND s.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
-			</if>
-			<if test="validFlag !=null and validFlag !=''">
-				AND a.validFlag=#{validFlag}
-			</if>
-			<if test="actFlag !=null and actFlag !=''">
-				AND a.actFlag=#{actFlag}
-			</if>
-			<if test="actType !=null and actType !=''">
-				AND a.actType=#{actType}
-			</if>
-			<if test="speCommisionFlag !=null and speCommisionFlag !=''">
-				AND a.speCommisionFlag=#{speCommisionFlag}
-			</if>
-			<if test="displayOnCRMFlag !=null and displayOnCRMFlag !=''">
-				AND a.displayOnCRMFlag=#{displayOnCRMFlag}
-			</if>
-			<if test="crmBigTypeId !=null and crmBigTypeId !=''">
-				AND a.crmBigTypeId=#{crmBigTypeId}
-			</if>
-			<if test="crmSmallTypeId !=null and crmSmallTypeId !=''">
-				AND a.crmSmallTypeId=#{crmSmallTypeId}
-			</if>
-			<if test="sqlMap !=null and sqlMap !=''">
-				${sqlMap.dsf}
-			</if>
-			AND a.validFlag != 0
-			AND a.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
-			and a.productCategory = 1
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-				order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
-			</otherwise>
-		</choose>
-	</select>
-
-	<select id="findAllList" resultType="Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="productJoins"/>
-		<where>
-			a.productCategory = 1
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-			</otherwise>
-
-		</choose>
-	</select>
+    </sql>
+    <sql id="ActivityJoins">
+        LEFT JOIN shop s on s.shopID = a.shopID
+    </sql>
+
+    <update id="saveSort">
+        UPDATE cm_search_recommend_product
+        SET sort = #{sort}
+        WHERE id = #{id}
+    </update>
+
+    <select id="findLadderPriceByNum" resultType="Integer">
+        select IFNULL(buyNum, 1)
+        FROM product_ladder_price
+        WHERE userType = 3
+          and ladderNum = 1
+          and delFlag = 0
+          and productID = #{productID}
+    </select>
+
+    <select id="get" resultType="Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="productJoins"/>
+        WHERE a.productID = #{id}
+    </select>
+
+
+    <select id="getAllExistsProductList" resultType="Integer">
+        SELECT a.productID
+        FROM cm_mall_organize_products a
+        WHERE a.delFlag = 0
+          and a.organizeID = #{organizeID}
+    </select>
+
+    <select id="findRecommendPage" resultType="Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="productJoins"/>
+        <where>
+            <if test="productID !=null and productID !=''">
+                AND a.productID=#{productID}
+            </if>
+            <if test="tinyTypeID != null and tinyTypeID != ''">
+                AND a.tinyTypeID = #{tinyTypeID}
+            </if>
+            <if test="shopID != null and shopID != ''">
+                AND a.shopID = #{shopID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND s.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
+            </if>
+            <if test="validFlag !=null and validFlag !=''">
+                AND a.validFlag=#{validFlag}
+            </if>
+            <if test="actFlag !=null and actFlag !=''">
+                AND a.actFlag=#{actFlag}
+            </if>
+            <if test="speCommisionFlag !=null and speCommisionFlag !=''">
+                AND a.speCommisionFlag=#{speCommisionFlag}
+            </if>
+            <if test="displayOnCRMFlag !=null and displayOnCRMFlag !=''">
+                AND a.displayOnCRMFlag=#{displayOnCRMFlag}
+            </if>
+            <if test="crmBigTypeId !=null and crmBigTypeId !=''">
+                AND a.crmBigTypeId=#{crmBigTypeId}
+            </if>
+            <if test="crmSmallTypeId !=null and crmSmallTypeId !=''">
+                AND a.crmSmallTypeId=#{crmSmallTypeId}
+            </if>
+            <if test="sqlMap !=null and sqlMap !=''">
+                ${sqlMap.dsf}
+            </if>
+            <choose>
+                <when test="actType != null and actType != ''">
+                    AND a.actType = #{actType}
+                </when>
+                <otherwise>
+                    AND a.actType != 3
+                </otherwise>
+            </choose>
+            AND a.validFlag != 0
+            AND a.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
+            and a.productCategory = 1
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
+            </otherwise>
+        </choose>
+    </select>
+
+    <!--小程序商品获取采美2已上架 3已下架 9已冻结的商品-->
+    <select id="findListBuyMall" resultType="Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="productJoins"/>
+        <where>
+            <if test="productID !=null and productID !=''">
+                AND a.productID=#{productID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND s.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
+            </if>
+            AND a.validFlag in (2,3,9)
+            and a.productCategory = 1
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                order by a.productID desc
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="findList" resultType="Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="productJoins"/>
+        <where>
+            <if test="id !=null and id !=''">
+                AND a.productID=#{id}
+            </if>
+            <if test="tinyTypeID != null and tinyTypeID != ''">
+                AND a.tinyTypeID = #{tinyTypeID}
+            </if>
+            <if test="shopID != null and shopID != ''">
+                AND a.shopID = #{shopID}
+            </if>
+            <if test="preferredFlag != null and preferredFlag != ''and preferredFlag != 0">
+                <if test="preferredFlag/100>=1">
+                    AND a.preferredFlag in (100,101,110,111)
+                </if>
+                <if test="(preferredFlag%100)/10>=1">
+                    AND a.preferredFlag in (10,11,110,111)
+                </if>
+                <if test="preferredFlag%10>=1">
+                    AND a.preferredFlag in (1,11,101,111)
+                </if>
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND s.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
+            </if>
+            <if test="validFlag !=null and validFlag !=''">
+                AND a.validFlag=#{validFlag}
+            </if>
+            <if test="actFlag !=null and actFlag !=''">
+                AND a.actFlag=#{actFlag}
+            </if>
+            <if test="actType !=null and actType !=''">
+                AND a.actType=#{actType}
+            </if>
+            <if test="speCommisionFlag !=null and speCommisionFlag !=''">
+                AND a.speCommisionFlag=#{speCommisionFlag}
+            </if>
+            <if test="displayOnCRMFlag !=null and displayOnCRMFlag !=''">
+                AND a.displayOnCRMFlag=#{displayOnCRMFlag}
+            </if>
+            <if test="crmBigTypeId !=null and crmBigTypeId !=''">
+                AND a.crmBigTypeId=#{crmBigTypeId}
+            </if>
+            <if test="crmSmallTypeId !=null and crmSmallTypeId !=''">
+                AND a.crmSmallTypeId=#{crmSmallTypeId}
+            </if>
+            <if test="sqlMap !=null and sqlMap !=''">
+                ${sqlMap.dsf}
+            </if>
+            AND a.validFlag != 0
+            AND a.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
+            and a.productCategory = 1
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="findAllList" resultType="Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="productJoins"/>
+        <where>
+            a.productCategory = 1
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+            </otherwise>
+
+        </choose>
+    </select>
 
     <insert id="insert" parameterType="Product" keyProperty="productID" keyColumn="productID" useGeneratedKeys="true">
         INSERT INTO product(brandID,
-                            bigTypeID,
-                            smallTypeID,
-                            tinyTypeID,
-                            selfTypeID,
-                            shopID,
-                            aliasName,
-                            name,
-                            searchKey,
-                            normalPrice,
-                            price,
-                            priceFlag,
-                            beautyActFlag,
-                            ladderPriceFlag,
-                             <if test="stock !=''">
-	                        	stock,
-                            </if>
-                            hasSkuFlag,
-                            mainImage,
-                            propertiesInfo,
-                            addTime,
-                            updateTime,
-                            weekSellNumber,
-                            beforeValidFlag,
-                            validFlag,
-                            favoriteTimes,
-                            commentScore,
-                            commentTimes,
-                            selfRecommendFlag,
-                            sysRecommendFlag,
-                            sortIndex,
-                            featuredFlag,
-                            featuredSortIndex,
-                            productCode,
-                            unit,
-                            synToERPFlag,
-                            allAreaFlag,
-                            provinceIDs,
-                            serviceNumber,
-                            maxBuyNumber,
-                            minBuyNumber,
-                            packageCount,
-                            byFlag,
-                            normalProductFlag,
-                            wholeSaleProductFlag,
-                            promotionProductFlag,
-                            groupBuyProductFlag,
-                            step,
-                            actFlag,
-                            actType,
-                            actSort,
-                            onlineTime,
-                            downlineTime,
-                            freePostFlag,
-                            costPrice,
-                            costProportional,
-                            costCheckFlag,
-                            precisehKey,
-                            visibility,
-                            productType,
-                            qualificationImg,
-                            invoiceType,
-                            taxPoint,
-                            supplierTaxPoint,
-                            tags,
-                            recommendType,
-                            machineType,
-                            includedTax,
-                            commodityType,
-                            trainingMethod,
-                            trainingType,
-                            trainingFee,
-                            productDescribe,
-                            splitCode,
-                            productDetail,
-                            announType,
-							newProductType,
-							showFlag)
+        bigTypeID,
+        smallTypeID,
+        tinyTypeID,
+        selfTypeID,
+        shopID,
+        aliasName,
+        name,
+        searchKey,
+        normalPrice,
+        price,
+        priceFlag,
+        beautyActFlag,
+        ladderPriceFlag,
+        <if test="stock !=''">
+            stock,
+        </if>
+        hasSkuFlag,
+        mainImage,
+        propertiesInfo,
+        addTime,
+        updateTime,
+        weekSellNumber,
+        beforeValidFlag,
+        validFlag,
+        favoriteTimes,
+        commentScore,
+        commentTimes,
+        selfRecommendFlag,
+        sysRecommendFlag,
+        sortIndex,
+        featuredFlag,
+        featuredSortIndex,
+        productCode,
+        unit,
+        synToERPFlag,
+        allAreaFlag,
+        provinceIDs,
+        serviceNumber,
+        maxBuyNumber,
+        minBuyNumber,
+        packageCount,
+        byFlag,
+        normalProductFlag,
+        wholeSaleProductFlag,
+        promotionProductFlag,
+        groupBuyProductFlag,
+        step,
+        actFlag,
+        actType,
+        actSort,
+        onlineTime,
+        downlineTime,
+        freePostFlag,
+        costPrice,
+        costProportional,
+        costCheckFlag,
+        precisehKey,
+        visibility,
+        productType,
+        qualificationImg,
+        invoiceType,
+        taxPoint,
+        supplierTaxPoint,
+        tags,
+        recommendType,
+        machineType,
+        includedTax,
+        commodityType,
+        trainingMethod,
+        trainingType,
+        trainingFee,
+        productDescribe,
+        splitCode,
+        productDetail,
+        announType,
+        newProductType,
+        <if test="qualificationNo != null and  qualificationNo != ''">
+            qualificationNo,
+        </if>
+        <if test="productName != null and  productName != ''">
+            productName,
+        </if>
+        <if test="qualificationTime != null and  qualificationTime != ''">
+            qualificationTime,
+        </if>
+        <if test="qualificationLink != null and  qualificationLink != ''">
+            qualificationLink,
+        </if>
+        showFlag)
         VALUES (#{brandID},
+        #{bigTypeID},
+        #{smallTypeID},
+        #{tinyTypeID},
+        #{selfTypeID},
+        #{shopID},
+        #{aliasName},
+        #{name},
+        #{searchKey},
+        #{normalPrice},
+        #{price},
+        #{priceFlag},
+        #{beautyActFlag},
+        #{ladderPriceFlag},
+        #{stock},
+        #{hasSkuFlag},
+        #{mainImage},
+        #{propertiesInfo},
+        #{addTime},
+        #{updateTime},
+        #{weekSellNumber},
+        #{beforeValidFlag},
+        #{validFlag},
+        #{favoriteTimes},
+        #{commentScore},
+        #{commentTimes},
+        #{selfRecommendFlag},
+        #{sysRecommendFlag},
+        #{sortIndex},
+        #{featuredFlag},
+        #{featuredSortIndex},
+        #{productCode},
+        #{unit},
+        #{synToERPFlag},
+        #{allAreaFlag},
+        #{provinceIDs},
+        #{serviceNumber},
+        #{maxBuyNumber},
+        #{minBuyNumber},
+        #{packageCount},
+        #{byFlag},
+        #{normalProductFlag},
+        #{wholeSaleProductFlag},
+        #{promotionProductFlag},
+        #{groupBuyProductFlag},
+        #{step},
+        #{actFlag},
+        #{actType},
+        #{actSort},
+        #{onlineTime},
+        #{downlineTime},
+        #{freePostFlag},
+        #{SqlCostPrice},
+        #{sqlCostProportional},
+        #{costCheckFlag},
+        #{precisehKey},
+        #{visibility},
+        #{productType},
+        #{qualificationImg},
+        #{invoiceType},
+        #{sqlTaxPoint},
+        #{sqlSupplierTaxPoint},
+        #{tags},
+        #{recommendType},
+        #{machineType},
+        #{includedTax},
+        #{commodityType},
+        #{trainingMethod},
+        #{trainingType},
+        #{trainingFee},
+        #{productDescribe},
+        #{splitCode},
+        #{productDetail},
+        #{announType},
+        #{newProductType},
+        <if test="qualificationNo != null and  qualificationNo != ''">
+            #{qualificationNo},
+        </if>
+        <if test="productName != null and  productName != ''">
+            #{productName},
+        </if>
+        <if test="qualificationTime != null and  qualificationTime != ''">
+            #{qualificationTime},
+        </if>
+        <if test="qualificationLink != null and  qualificationLink != ''">
+            #{qualificationLink},
+        </if>
+        #{showFlag})
+    </insert>
+
+    <update id="update">
+        UPDATE product
+        SET productID            = #{id},
+            brandID              = #{brandID},
+            tinyTypeID           = #{tinyTypeID},
+            selfTypeID           = #{selfTypeID},
+            shopID               = #{shopID},
+            name                 = #{name},
+            searchKey            = #{searchKey},
+            normalPrice          = #{normalPrice},
+            price                = #{price},
+            priceFlag            = #{priceFlag},
+            beautyActFlag        = #{beautyActFlag},
+            ladderPriceFlag      = #{ladderPriceFlag},
+            stock                = #{stock},
+            hasSkuFlag           = #{hasSkuFlag},
+            mainImage            = #{mainImage},
+            propertiesInfo       = #{propertiesInfo},
+            addTime              = #{addTime},
+            updateTime           = #{updateTime},
+            sellNumber           = #{sellNumber},
+            weekSellNumber       = #{weekSellNumber},
+            beforeValidFlag      = #{beforeValidFlag},
+            validFlag            = #{validFlag},
+            favoriteTimes        = #{favoriteTimes},
+            commentScore         = #{commentScore},
+            commentTimes         = #{commentTimes},
+            selfRecommendFlag    = #{selfRecommendFlag},
+            sysRecommendFlag     = #{sysRecommendFlag},
+            sortIndex            = #{sortIndex},
+            featuredFlag         = #{featuredFlag},
+            featuredSortIndex    = #{featuredSortIndex},
+            productCode          = #{productCode},
+            unit                 = #{unit},
+            synToERPFlag         = #{synToERPFlag},
+            allAreaFlag          = #{allAreaFlag},
+            provinceIDs          = #{provinceIDs},
+            serviceNumber        = #{serviceNumber},
+            maxBuyNumber         = #{maxBuyNumber},
+            minBuyNumber         = #{minBuyNumber},
+            packageCount         = #{packageCount},
+            byFlag               = #{byFlag},
+            normalProductFlag    = #{normalProductFlag},
+            wholeSaleProductFlag = #{wholeSaleProductFlag},
+            promotionProductFlag = #{promotionProductFlag},
+            groupBuyProductFlag  = #{groupBuyProductFlag},
+            step                 = #{step},
+            actFlag              = #{actFlag},
+            actType              = #{actType},
+            onlineTime           = #{onlineTime},
+            downlineTime         = #{downlineTime},
+            freePostFlag         = #{freePostFlag},
+            costPrice            = #{costPrice},
+            costProportional     = #{costProportional},
+            costCheckFlag        = #{costCheckFlag},
+            precisehKey          = #{precisehKey},
+            actSort              = #{actSort},
+            newProductType=#{newProductType}
+
+        WHERE productID = #{id}
+    </update>
+    <select id="productList" resultType="com.caimei.modules.product.entity.Product">
+        SELECT
+        *
+        FROM product a
+        <where>
+            a.newvalidFlag=1
+            <if test="productID !=null and productID !=''">
+                and a.productID=#{productID}
+            </if>
+        </where>
+    </select>
+    <select id="newfindProductImage" resultType="com.caimei.modules.product.entity.Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="productJoins"/>
+        <where>
+            <if test="productID !=null">
+                AND a.productID=#{productID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE concat('%',#{name},'%')
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND s.name LIKE concat('%',#{shopName},'%')
+            </if>
+            <if test="showFlag !=null and showFlag !=''">
+                AND a.showFlag=#{showFlag}
+            </if>
+            <if test="ids != null and ids.size() > 0">
+                AND a.productID NOT IN
+                <foreach collection="ids" close=")" separator="," open="(" item="id">
+                    #{id}
+                </foreach>
+            </if>
+            and a.newvalidFlag = 1
+            and a.newProductType = 1
+
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+        </choose>
+        order by a.sortIndex desc
+    </select>
+    <update id="updateActive">
+        UPDATE product
+        <set>
+            <if test="actFlag != null and actFlag != ''">
+                actFlag = #{actFlag},
+            </if>
+            <if test="actType != null and actType != ''">
+                actType = #{actType},
+            </if>
+            <if test="actSort != null and actSort != ''">
+                actSort = #{actSort},
+            </if>
+            <if test="actCreateTime != null and actCreateTime != ''">
+                actCreateTime = #{actCreateTime},
+            </if>
+        </set>
+        WHERE productID = #{productID}
+    </update>
+
+    <update id="updatePreferred">
+        UPDATE product
+        SET preferredFlag = #{preferredFlag}
+        WHERE productID = #{productID}
+    </update>
+
+    <delete id="delete">
+        DELETE
+        FROM product
+        WHERE id = #{id}
+    </delete>
+
+    <update id="deleteProduct">
+        UPDATE cm_search_recommend_product
+        SET delFlag = #{DateTime}
+        WHERE id = #{id}
+    </update>
+
+
+    <select id="getAllActType" resultType="com.caimei.po.ActType">
+        SELECT *
+        FROM acttype
+        where validFlag = 1
+    </select>
+
+
+    <select id="getSupplierProductList" resultType="com.caimei.modules.product.entity.Product">
+        SELECT
+        *
+        FROM
+        product
+        <where>
+            <if test="name != null and name != ''">
+                AND name LIKE concat('%',#{name},'%')
+            </if>
+            AND shopID = #{shopID}
+            AND (validFlag = 1 or validFlag = 2 or validFlag = 3 or validFlag = 9)
+        </where>
+        ORDER BY addTime desc
+    </select>
+
+    <select id="getGiftProductInfo" parameterType="com.caimei.modules.product.entity.GiftProduct"
+            resultType="com.caimei.modules.product.entity.GiftProduct">
+        SELECT
+        g.id as "id",
+        g.fullGiftProductId as "fullGiftProductId",
+        g.giftProductId as "giftProductId",
+        g.actType as "actType",
+        g.giftProductNum as "giftProductNum",
+        p.name as "productName"
+        FROM
+        gift_product g
+        left join product p on p.productID = g.giftProductId
+        <where>
+            g.fullGiftProductId = #{fullGiftProductId}
+            AND g.actType = #{actType}
+            <if test="giftProductId != null and giftProductId != ''">
+                AND g.giftProductId = #{giftProductId}
+            </if>
+            <if test="delFlag != null and delFlag != ''">
+                AND g.delFlag = #{delFlag}
+            </if>
+            and p.productCategory = 1
+        </where>
+    </select>
+
+    <select id="getProductSku" resultType="com.caimei.modules.product.entity.Sku">
+        SELECT
+        *
+        FROM
+        sku
+        <where>
+            productID = #{productId}
+            AND validFlag = 1
+        </where>
+    </select>
+
+    <select id="findProductBigTypeByProductID" parameterType="java.lang.Integer" resultType="java.lang.String">
+        SELECT
+        tb.name
+        FROM
+        bigType AS tb
+        INNER JOIN smallType AS ts
+        ON tb.bigTypeID = ts.bigTypeID
+        INNER JOIN tinyType AS tt
+        ON ts.smallTypeID = tt.smallTypeID
+        INNER JOIN product AS tp
+        ON tt.tinyTypeID = tp.tinyTypeID
+        <where>
+            tp.productID = #{productId}
+            and tp.productCategory = 1
+        </where>
+    </select>
+
+    <update id="updateGiftProudct" parameterType="com.caimei.modules.product.entity.GiftProduct">
+        update gift_product
+        <set>
+            <if test="fullGiftProductId != null and  !=''">
+                fullGiftProductId = #{fullGiftProductId},
+            </if>
+            <if test="giftProductId != null and  !=''">
+                giftProductId = #{giftProductId},
+            </if>
+            <if test="productName != null and  !=''">
+                productName = #{productName},
+            </if>
+            <if test="actType != null and  !=''">
+                actType = #{actType},
+            </if>
+            <if test="giftProductNum != null and  !=''">
+                giftProductNum = #{giftProductNum},
+            </if>
+            <if test="createBy != null and  !=''">
+                createBy = #{createBy.id},
+            </if>
+            <if test="createDate != null and  !=''">
+                createDate = #{createDate},
+            </if>
+
+            <if test="updateBy != null and  !=''">
+                updateBy = #{updateBy.id},
+            </if>
+            <if test="updateDate != null and  !=''">
+                updateDate = #{updateDate},
+            </if>
+            <if test="delFlag != null and  !=''">
+                delFlag = #{delFlag},
+            </if>
+        </set>
+        where id = #{id}
+    </update>
+
+    <insert id="insertGiftProudct" parameterType="com.caimei.modules.product.entity.GiftProduct" keyProperty="id"
+            useGeneratedKeys="true">
+        INSERT INTO gift_product(fullGiftProductId,
+                                 giftProductId,
+                                 productName,
+                                 actType,
+                                 giftProductNum,
+                                 createBy,
+                                 createDate,
+                                 updateBy,
+                                 updateDate,
+                                 delFlag)
+        VALUES (#{fullGiftProductId},
+                #{giftProductId},
+                #{productName},
+                #{actType},
+                #{giftProductNum},
+                #{createBy.id},
+                #{createDate},
+                #{updateBy.id},
+                #{updateDate},
+                #{delFlag})
+    </insert>
+
+
+    <insert id="insertProductPriceRecord" parameterType="com.caimei.modules.product.entity.ProductPriceRecord"
+            keyProperty="productPriceRecordID" useGeneratedKeys="true">
+        INSERT INTO productpricerecord(`productID`,
+                                       `shopID`,
+                                       `highestUserLevelPrice`,
+                                       `lowestUserLevelPrice`,
+                                       `lowestUserLevelID`,
+                                       `price0`,
+                                       `price1`,
+                                       `updateTime`)
+        VALUES (#{productID},
+                #{shopID},
+                #{highestUserLevelPrice},
+                #{lowestUserLevelPrice},
+                #{lowestUserLevelID},
+                #{price0},
+                #{price1},
+                #{updateTime})
+    </insert>
+
+    <!--	<update id="updateCRMFlag">-->
+    <!--		UPDATE product a SET a.displayOnCRMFlag = #{param1}-->
+    <!--		WHERE  a.productID IN-->
+    <!--		<foreach collection="param2" item="id" index="index" open="(" separator="," close=")" >-->
+    <!--			#{id}-->
+    <!--		</foreach>-->
+    <!--	</update>-->
+
+    <update id="deleteActive">
+        UPDATE product a
+        SET a.actFlag = 0
+        WHERE a.productID = #{id}
+    </update>
+
+
+    <update id="updatePostFlag">
+        UPDATE product a SET a.freePostFlag = #{param1}
+        WHERE a.productID IN
+        <foreach collection="param2" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+
+    <select id="getBigTypeList" resultType="com.caimei.modules.product.entity.ProductBigType">
+        select * from bigtype
+        <where>
+            validFlag = 1
+            <if test="bigTypeID != null and bigTypeID != ''">
+                AND bigTypeID = #{bigTypeID}
+            </if>
+        </where>
+    </select>
+
+    <select id="getSmallTypeList" resultType="com.caimei.modules.product.entity.ProductSmallType">
+        select * from smalltype
+        <where>
+            validFlag = 1
+            <if test="bigTypeID != null and bigTypeID != ''">
+                AND bigTypeID = #{bigTypeID}
+            </if>
+            <if test="smallTypeID != null and smallTypeID != ''">
+                AND smallTypeID = #{smallTypeID}
+            </if>
+        </where>
+    </select>
+
+    <select id="getTinyTypeList" resultType="com.caimei.modules.product.entity.ProducTinyType">
+        select * from tinytype
+        <where>
+            validFlag = 1
+            <if test="smallTypeID != null and smallTypeID != ''">
+                AND smallTypeID = #{smallTypeID}
+            </if>
+            <if test="smallTypeID != null and smallTypeID != ''">
+                AND smallTypeID = #{smallTypeID}
+            </if>
+        </where>
+    </select>
+
+    <select id="getProductTypeNameAndID" resultType="map">
+        select b.name        AS bigTypeName,
+               b.bigTypeID   AS bigTypeID,
+               s.name        AS smallTypeName,
+               s.smallTypeID AS smallTypeID,
+               t.name        AS tinyTypeName,
+               t.tinyTypeID  AS tinyTypeID
+        from tinytype AS t
+                 join smalltype AS s on t.smallTypeID = s.smallTypeID
+                 JOIN bigtype AS b on b.bigTypeID = s.bigTypeID
+        where t.tinyTypeID = #{tinyTypeID}
+    </select>
+
+    <delete id="deleteCustomClassification">
+        delete
+        from product_custom_classification
+        where productID = #{productID}
+    </delete>
+
+    <insert id="insertCustomClassification"
+            parameterType="com.caimei.modules.product.entity.ProductCustomClassification" keyProperty="userId"
+            useGeneratedKeys="true">
+        INSERT INTO product_custom_classification(productID,
+                                                  bigTypeID,
+                                                  smallTypeID,
+                                                  tinyTypeID,
+                                                  createDate,
+                                                  updateDate)
+        VALUES (#{productID},
                 #{bigTypeID},
                 #{smallTypeID},
                 #{tinyTypeID},
-                #{selfTypeID},
-                #{shopID},
-                #{aliasName},
-                #{name},
-                #{searchKey},
-                #{normalPrice},
-                #{price},
-                #{priceFlag},
-                #{beautyActFlag},
-                #{ladderPriceFlag},
-                #{stock},
-                #{hasSkuFlag},
-                #{mainImage},
-                #{propertiesInfo},
-                #{addTime},
-                #{updateTime},
-                #{weekSellNumber},
-                #{beforeValidFlag},
-                #{validFlag},
-                #{favoriteTimes},
-                #{commentScore},
-                #{commentTimes},
-                #{selfRecommendFlag},
-                #{sysRecommendFlag},
-                #{sortIndex},
-                #{featuredFlag},
-                #{featuredSortIndex},
-                #{productCode},
-                #{unit},
-                #{synToERPFlag},
-                #{allAreaFlag},
-                #{provinceIDs},
-                #{serviceNumber},
-                #{maxBuyNumber},
-                #{minBuyNumber},
-                #{packageCount},
-                #{byFlag},
-                #{normalProductFlag},
-                #{wholeSaleProductFlag},
-                #{promotionProductFlag},
-                #{groupBuyProductFlag},
-                #{step},
-                #{actFlag},
-                #{actType},
-                #{actSort},
-                #{onlineTime},
-                #{downlineTime},
-                #{freePostFlag},
-                #{SqlCostPrice},
-                #{sqlCostProportional},
-                #{costCheckFlag},
-                #{precisehKey},
-                #{visibility},
-                #{productType},
-                #{qualificationImg},
-                #{invoiceType},
-                #{sqlTaxPoint},
-                #{sqlSupplierTaxPoint},
-                #{tags},
-                #{recommendType},
-                #{machineType},
-                #{includedTax},
-                #{commodityType},
-                #{trainingMethod},
-                #{trainingType},
-                #{trainingFee},
-                #{productDescribe},
-                #{splitCode},
-                #{productDetail},
-                #{announType},
-                #{newProductType},
-                #{showFlag})
+                #{createDate},
+                #{updateDate})
+    </insert>
+
+    <insert id="insertAddProduct">
+        INSERT INTO cm_search_recommend_product(productID,
+                                                tinyTypeID,
+                                                sort,
+                                                delFlag)
+        VALUES (#{productID},
+                #{tinyTypeID},
+                0,
+                0)
+    </insert>
+    <insert id="insertLadderPrice">
+        insert into product_ladder_price (productId, userType, ladderNum,
+                                          buyNum, buyPrice, createBy, createDate, delFlag)
+        values (#{productId}, 3, #{ladderNum},
+                #{buyNum}, #{buyPrice}, #{createBy},
+                #{createDate}, '0')
+    </insert>
+
+    <insert id="insertProduct" keyColumn="productID" keyProperty="productID"
+            parameterType="com.caimei.modules.product.entity.Product" useGeneratedKeys="true">
+        INSERT INTO `product` (
+        `brandID`,
+        `tinyTypeID`,
+        <if test="productCategory != null and  productCategory != '' ">
+            `productCategory`,
+        </if>
+        `preferredFlag`,
+        `selfTypeID`,
+        `shopID`,
+        `name`,
+        `aliasName`,
+        `searchKey`,
+        `productRemarks`,
+        `normalPrice`,
+        `price`,
+        `priceFlag`,
+        `beautyActFlag`,
+        `ladderPriceFlag`,
+        <if test="stock != null and  stock != '' ">
+            `stock`,
+        </if>
+        `hasSkuFlag`,
+        `mainImage`,
+        `propertiesInfo`,
+        `addTime`,
+        `updateTime`,
+        `weekSellNumber`,
+        `beforeValidFlag`,
+        `validFlag`,
+        `favoriteTimes`,
+        `commentScore`,
+        `commentTimes`,
+        `selfRecommendFlag`,
+        `sysRecommendFlag`,
+        `sortIndex`,
+        `featuredFlag`,
+        `featuredSortIndex`,
+        `productCode`,
+        `unit`,
+        `synToERPFlag`,
+        `allAreaFlag`,
+        `provinceIDs`,
+        `serviceNumber`,
+        `maxBuyNumber`,
+        `minBuyNumber`,
+        `packageCount`,
+        `byFlag`,
+        `normalProductFlag`,
+        `wholeSaleProductFlag`,
+        `promotionProductFlag`,
+        `groupBuyProductFlag`,
+        `step`,
+        `actFlag`,
+        `actStatus`,
+        `actSort`,
+        `actType`,
+        `visibility`,
+        `onlineTime`,
+        `downlineTime`,
+        `freePostFlag`,
+        `costPrice`,
+        `costProportional`,
+        `costCheckFlag`,
+        `precisehKey`,
+        `tags`,
+        `productType`,
+        `machineType`,
+        `qualificationImg`,
+        `includedTax`,
+        `taxPoint`,
+        `invoiceType`,
+        `recommendType`,
+        `combinationID`,
+        `combinationSort`,
+        announType
+        )
+        VALUES
+        (
+        #{brandID},
+        #{tinyTypeID},
+        <if test="productCategory != null and  productCategory != '' ">
+            #{productCategory},
+        </if>
+        #{preferredFlag},
+        #{selfTypeID},
+        #{shopID},
+        #{name},
+        #{aliasName},
+        #{searchKey},
+        #{productRemarks},
+        #{normalPrice},
+        #{price},
+        #{priceFlag},
+        #{beautyActFlag},
+        #{ladderPriceFlag},
+        <if test="stock != null and  stock != '' ">
+            #{stock},
+        </if>
+        #{hasSkuFlag},
+        #{mainImage},
+        #{propertiesInfo},
+        #{addTime},
+        #{updateTime},
+        #{weekSellNumber},
+        #{beforeValidFlag},
+        #{validFlag},
+        #{favoriteTimes},
+        #{commentScore},
+        #{commentTimes},
+        #{selfRecommendFlag},
+        #{sysRecommendFlag},
+        #{sortIndex},
+        #{featuredFlag},
+        #{featuredSortIndex},
+        #{productCode},
+        #{unit},
+        #{synToERPFlag},
+        #{allAreaFlag},
+        #{provinceIDs},
+        #{serviceNumber},
+        #{maxBuyNumber},
+        #{minBuyNumber},
+        #{packageCount},
+        #{byFlag},
+        #{normalProductFlag},
+        #{wholeSaleProductFlag},
+        #{promotionProductFlag},
+        #{groupBuyProductFlag},
+        #{step},
+        #{actFlag},
+        #{actStatus},
+        #{actSort},
+        #{actType},
+        #{visibility},
+        #{onlineTime},
+        #{downlineTime},
+        #{freePostFlag},
+        #{costPrice},
+        #{costProportional},
+        #{costCheckFlag},
+        #{precisehKey},
+        #{tags},
+        #{productType},
+        #{machineType},
+        #{qualificationImg},
+        #{includedTax},
+        #{taxPoint},
+        #{invoiceType},
+        #{recommendType},
+        #{combinationID},
+        #{combinationSort},
+        #{announType}
+        )
+    </insert>
+
+    <insert id="insertProductDetailInfo">
+        insert into productdetailinfo
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="productID != null">
+                `productID`,
+            </if>
+            <if test="detailInfo != null and detailInfo != ''">
+                `detailInfo`,
+            </if>
+            <if test="serviceInfo != null and serviceInfo != ''">
+                `serviceInfo`,
+            </if>
+            <if test="orderInfo != null and orderInfo != ''">
+                `orderInfo`,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="productID != null">
+                #{productID},
+            </if>
+            <if test="detailInfo != null and detailInfo != ''">
+                #{detailInfo},
+            </if>
+            <if test="serviceInfo != null and serviceInfo != ''">
+                #{serviceInfo},
+            </if>
+            <if test="orderInfo != null and orderInfo != ''">
+                #{orderInfo},
+            </if>
+        </trim>
     </insert>
 
-	<update id="update">
-		UPDATE product SET
-						   productID = #{id},
-						   brandID = #{brandID},
-						   tinyTypeID = #{tinyTypeID},
-						   selfTypeID = #{selfTypeID},
-						   shopID = #{shopID},
-						   name = #{name},
-						   searchKey = #{searchKey},
-						   normalPrice = #{normalPrice},
-						   price = #{price},
-						   priceFlag = #{priceFlag},
-						   beautyActFlag = #{beautyActFlag},
-						   ladderPriceFlag = #{ladderPriceFlag},
-						   stock = #{stock},
-						   hasSkuFlag = #{hasSkuFlag},
-						   mainImage = #{mainImage},
-						   propertiesInfo = #{propertiesInfo},
-						   addTime = #{addTime},
-						   updateTime = #{updateTime},
-						   sellNumber = #{sellNumber},
-						   weekSellNumber = #{weekSellNumber},
-						   beforeValidFlag = #{beforeValidFlag},
-						   validFlag = #{validFlag},
-						   favoriteTimes = #{favoriteTimes},
-						   commentScore = #{commentScore},
-						   commentTimes = #{commentTimes},
-						   selfRecommendFlag = #{selfRecommendFlag},
-						   sysRecommendFlag = #{sysRecommendFlag},
-						   sortIndex = #{sortIndex},
-						   featuredFlag = #{featuredFlag},
-						   featuredSortIndex = #{featuredSortIndex},
-						   productCode = #{productCode},
-						   unit = #{unit},
-						   synToERPFlag = #{synToERPFlag},
-						   allAreaFlag = #{allAreaFlag},
-						   provinceIDs = #{provinceIDs},
-						   serviceNumber = #{serviceNumber},
-						   maxBuyNumber = #{maxBuyNumber},
-						   minBuyNumber = #{minBuyNumber},
-						   packageCount = #{packageCount},
-						   byFlag = #{byFlag},
-						   normalProductFlag = #{normalProductFlag},
-						   wholeSaleProductFlag = #{wholeSaleProductFlag},
-						   promotionProductFlag = #{promotionProductFlag},
-						   groupBuyProductFlag = #{groupBuyProductFlag},
-						   step = #{step},
-						   actFlag = #{actFlag},
-						   actType = #{actType},
-						   onlineTime = #{onlineTime},
-						   downlineTime = #{downlineTime},
-						   freePostFlag = #{freePostFlag},
-						   costPrice = #{costPrice},
-						   costProportional = #{costProportional},
-						   costCheckFlag = #{costCheckFlag},
-						   precisehKey = #{precisehKey},
-						   actSort = #{actSort},
-		                   <if test="newProductType ==2">
-							   newvalidFlag=null,
-						   </if>
-						   newProductType=#{newProductType}
-
-		WHERE productID = #{id}
-	</update>
-	<select id="productList" resultType="com.caimei.modules.product.entity.Product">
-		SELECT
-		*
-		FROM product a
-		<where>
-			a.newvalidFlag=1
-			<if test="productID !=null and productID !=''">
-				and a.productID=#{productID}
-			</if>
-		</where>
-	</select>
-	<select id="newfindProductImage" resultType="com.caimei.modules.product.entity.Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="productJoins"/>
-		<where>
-			<if test="productID !=null">
-				AND a.productID=#{productID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE concat('%',#{name},'%')
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND s.name LIKE concat('%',#{shopName},'%')
-			</if>
-			<if test="showFlag !=null and showFlag !=''">
-				AND a.showFlag=#{showFlag}
-			</if>
-			<if test="ids != null and ids.size() > 0">
-				AND a.productID NOT IN
-				<foreach collection="ids" close=")" separator="," open="(" item="id">
-					#{id}
-				</foreach>
-			</if>
-			and a.newvalidFlag = 1
-			and a.newProductType = 1
-
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-		</choose>
-		order by a.sortIndex desc
-	</select>
-	<update id="updateActive">
-		UPDATE product
-		<set>
-			<if test="actFlag != null and actFlag != ''">
-				actFlag = #{actFlag},
-			</if>
-			<if test="actType != null and actType != ''">
-				actType = #{actType},
-			</if>
-			<if test="actSort != null and actSort != ''">
-				actSort = #{actSort},
-			</if>
-			<if test="actCreateTime != null and actCreateTime != ''">
-				actCreateTime = #{actCreateTime},
-			</if>
-		</set>
-		WHERE productID = #{productID}
-	</update>
-
-	<update id="updatePreferred">
-		UPDATE product SET preferredFlag = #{preferredFlag}
-		WHERE productID = #{productID}
-	</update>
-
-	<delete id="delete">
-		DELETE FROM product
-		WHERE id = #{id}
-	</delete>
-
-	<update id="deleteProduct">
-		UPDATE cm_search_recommend_product
-		SET delFlag = #{DateTime}
-		WHERE id = #{id}
-	</update>
-
-
-	<select id="getAllActType" resultType="com.caimei.po.ActType">
-		SELECT
-			*
-		FROM acttype
-		where validFlag = 1
-	</select>
-
-
-
-	<select id="getSupplierProductList" resultType="com.caimei.modules.product.entity.Product">
-		SELECT
-		*
-		FROM
-		product
-		<where>
-			<if test="name != null and name != ''">
-				AND name LIKE concat('%',#{name},'%')
-			</if>
-			AND shopID = #{shopID}
-			AND (validFlag = 1 or validFlag = 2 or validFlag = 3 or validFlag =  9)
-		</where>
-		ORDER BY addTime desc
-	</select>
-
-	<select id="getGiftProductInfo" parameterType="com.caimei.modules.product.entity.GiftProduct" resultType="com.caimei.modules.product.entity.GiftProduct">
-		SELECT
-		g.id as "id",
-		g.fullGiftProductId as "fullGiftProductId",
-		g.giftProductId as "giftProductId",
-		g.actType as "actType",
-		g.giftProductNum as "giftProductNum",
-		p.name as "productName"
-		FROM
-		gift_product g
-		left join  product p on p.productID = g.giftProductId
-		<where>
-			g.fullGiftProductId = #{fullGiftProductId}
-			AND g.actType = #{actType}
-			<if test="giftProductId != null and giftProductId != ''">
-				AND g.giftProductId =  #{giftProductId}
-			</if>
-			<if test="delFlag != null and delFlag != ''">
-				AND g.delFlag =  #{delFlag}
-			</if>
-			and p.productCategory = 1
-		</where>
-	</select>
-
-	<select id="getProductSku" resultType="com.caimei.modules.product.entity.Sku">
-		SELECT
-		*
-		FROM
-		sku
-		<where>
-			productID = #{productId}
-			AND  validFlag = 1
-		</where>
-	</select>
-
-	<select id="findProductBigTypeByProductID" parameterType="java.lang.Integer" resultType="java.lang.String">
-		SELECT
-		tb.name
-		FROM
-		bigType AS tb
-		INNER JOIN smallType AS ts
-		ON tb.bigTypeID = ts.bigTypeID
-		INNER JOIN tinyType AS tt
-		ON ts.smallTypeID = tt.smallTypeID
-		INNER JOIN product AS tp
-		ON tt.tinyTypeID = tp.tinyTypeID
-		<where>
-			tp.productID = #{productId}
-			and tp.productCategory = 1
-		</where>
-	</select>
-
-	<update id="updateGiftProudct" parameterType="com.caimei.modules.product.entity.GiftProduct">
-		update gift_product
-		<set >
-			<if test="fullGiftProductId != null and  !=''" >
-				fullGiftProductId = #{fullGiftProductId},
-			</if>
-			<if test="giftProductId != null and  !=''" >
-				giftProductId = #{giftProductId},
-			</if>
-			<if test="productName != null and  !=''" >
-				productName = #{productName},
-			</if>
-			<if test="actType != null and  !=''" >
-				actType = #{actType},
-			</if>
-			<if test="giftProductNum != null and  !=''" >
-				giftProductNum = #{giftProductNum},
-			</if>
-			<if test="createBy != null and  !=''" >
-				createBy = #{createBy.id},
-			</if>
-			<if test="createDate != null and  !=''" >
-				createDate = #{createDate},
-			</if>
-
-			<if test="updateBy != null and  !=''" >
-				updateBy = #{updateBy.id},
-			</if>
-			<if test="updateDate != null and  !=''" >
-				updateDate = #{updateDate},
-			</if>
-			<if test="delFlag != null and  !=''" >
-				delFlag = #{delFlag},
-			</if>
-		</set>
-		where id = #{id}
-	</update>
-
-	<insert id="insertGiftProudct" parameterType="com.caimei.modules.product.entity.GiftProduct"  keyProperty="id" useGeneratedKeys="true">
-		INSERT INTO gift_product(
-			fullGiftProductId,
-			giftProductId,
-			productName,
-			actType,
-			giftProductNum,
-			createBy,
-			createDate,
-			updateBy,
-			updateDate,
-			delFlag
-		) VALUES (
-					 #{fullGiftProductId},
-					 #{giftProductId},
-					 #{productName},
-					 #{actType},
-					 #{giftProductNum},
-					 #{createBy.id},
-					 #{createDate},
-					 #{updateBy.id},
-					 #{updateDate},
-					 #{delFlag}
-				 )
-	</insert>
-
-
-	<insert id="insertProductPriceRecord" parameterType="com.caimei.modules.product.entity.ProductPriceRecord"  keyProperty="productPriceRecordID" useGeneratedKeys="true">
-		INSERT INTO productpricerecord(
-			`productID`,
-			`shopID`,
-			`highestUserLevelPrice`,
-			`lowestUserLevelPrice`,
-			`lowestUserLevelID`,
-			`price0`,
-			`price1`,
-			`updateTime`
-		)
-		VALUES
-			(
-				#{productID},
-				#{shopID},
-				#{highestUserLevelPrice},
-				#{lowestUserLevelPrice},
-				#{lowestUserLevelID},
-				#{price0},
-				#{price1},
-				#{updateTime}
-			)
-	</insert>
-
-	<!--	<update id="updateCRMFlag">-->
-	<!--		UPDATE product a SET a.displayOnCRMFlag = #{param1}-->
-	<!--		WHERE  a.productID IN-->
-	<!--		<foreach collection="param2" item="id" index="index" open="(" separator="," close=")" >-->
-	<!--			#{id}-->
-	<!--		</foreach>-->
-	<!--	</update>-->
-
-	<update id="deleteActive">
-		UPDATE product a SET a.actFlag = 0
-		WHERE  a.productID = #{id}
-	</update>
-
-
-	<update id="updatePostFlag">
-		UPDATE product a SET a.freePostFlag = #{param1}
-		WHERE  a.productID IN
-		<foreach collection="param2" item="id" index="index" open="(" separator="," close=")" >
-			#{id}
-		</foreach>
-	</update>
-
-
-	<select id="getBigTypeList" resultType="com.caimei.modules.product.entity.ProductBigType">
-		select * from bigtype
-		<where>
-			validFlag = 1
-			<if test="bigTypeID != null and bigTypeID != ''">
-				AND bigTypeID = #{bigTypeID}
-			</if>
-		</where>
-	</select>
-
-	<select id="getSmallTypeList" resultType="com.caimei.modules.product.entity.ProductSmallType">
-		select * from smalltype
-		<where>
-			validFlag = 1
-			<if test="bigTypeID != null and bigTypeID != ''">
-				AND bigTypeID = #{bigTypeID}
-			</if>
-			<if test="smallTypeID != null and smallTypeID != ''">
-				AND smallTypeID = #{smallTypeID}
-			</if>
-		</where>
-	</select>
-
-	<select id="getTinyTypeList" resultType="com.caimei.modules.product.entity.ProducTinyType">
-		select * from tinytype
-		<where>
-			validFlag = 1
-			<if test="smallTypeID != null and smallTypeID != ''">
-				AND smallTypeID = #{smallTypeID}
-			</if>
-			<if test="smallTypeID != null and smallTypeID != ''">
-				AND smallTypeID = #{smallTypeID}
-			</if>
-		</where>
-	</select>
-
-	<select id="getProductTypeNameAndID" resultType="map">
-		select
-			b.name AS bigTypeName,
-			b.bigTypeID AS bigTypeID,
-			s.name AS smallTypeName,
-			s.smallTypeID AS smallTypeID,
-			t.name AS tinyTypeName,
-			t.tinyTypeID AS tinyTypeID
-		from tinytype AS t
-				 join smalltype AS s on t.smallTypeID = s.smallTypeID
-				 JOIN bigtype AS b on b.bigTypeID = s.bigTypeID
-		where t.tinyTypeID = #{tinyTypeID}
-	</select>
-
-	<delete id="deleteCustomClassification">
-		delete from product_custom_classification
-		where productID = #{productID}
-	</delete>
-
-	<insert id="insertCustomClassification" parameterType="com.caimei.modules.product.entity.ProductCustomClassification"  keyProperty="userId" useGeneratedKeys="true">
-		INSERT INTO product_custom_classification(
-			productID,
-			bigTypeID,
-			smallTypeID,
-			tinyTypeID,
-			createDate,
-			updateDate
-		) VALUES (
-					 #{productID},
-					 #{bigTypeID},
-					 #{smallTypeID},
-					 #{tinyTypeID},
-					 #{createDate},
-					 #{updateDate}
-				 )
-	</insert>
-
-	<insert id="insertAddProduct">
-		INSERT INTO cm_search_recommend_product(
-			productID,
-			tinyTypeID,
-			sort,
-			delFlag
-		) VALUES (
-					 #{productID},
-					 #{tinyTypeID},
-					 0,
-					 0
-				 )
-	</insert>
-	<insert id="insertLadderPrice">
-		insert into product_ladder_price (productId, userType, ladderNum,
-										  buyNum, buyPrice, createBy, createDate, delFlag)
-		values (#{productId}, 3, #{ladderNum},
-				#{buyNum}, #{buyPrice}, #{createBy},
-				#{createDate},'0')
-	</insert>
-
-	<insert id="insertProduct" keyColumn="productID" keyProperty="productID"  parameterType="com.caimei.modules.product.entity.Product" useGeneratedKeys="true">
-		INSERT INTO `product` (
-		`brandID`,
-		`tinyTypeID`,
-		<if test="productCategory != null and  productCategory != '' ">
-			`productCategory`,
-		</if>
-		`preferredFlag`,
-		`selfTypeID`,
-		`shopID`,
-		`name`,
-		`aliasName`,
-		`searchKey`,
-		`productRemarks`,
-		`normalPrice`,
-		`price`,
-		`priceFlag`,
-		`beautyActFlag`,
-		`ladderPriceFlag`,
-		<if test="stock != null and  stock != '' ">
-		`stock`,
-		</if>
-		`hasSkuFlag`,
-		`mainImage`,
-		`propertiesInfo`,
-		`addTime`,
-		`updateTime`,
-		`weekSellNumber`,
-		`beforeValidFlag`,
-		`validFlag`,
-		`favoriteTimes`,
-		`commentScore`,
-		`commentTimes`,
-		`selfRecommendFlag`,
-		`sysRecommendFlag`,
-		`sortIndex`,
-		`featuredFlag`,
-		`featuredSortIndex`,
-		`productCode`,
-		`unit`,
-		`synToERPFlag`,
-		`allAreaFlag`,
-		`provinceIDs`,
-		`serviceNumber`,
-		`maxBuyNumber`,
-		`minBuyNumber`,
-		`packageCount`,
-		`byFlag`,
-		`normalProductFlag`,
-		`wholeSaleProductFlag`,
-		`promotionProductFlag`,
-		`groupBuyProductFlag`,
-		`step`,
-		`actFlag`,
-		`actStatus`,
-		`actSort`,
-		`actType`,
-		`visibility`,
-		`onlineTime`,
-		`downlineTime`,
-		`freePostFlag`,
-		`costPrice`,
-		`costProportional`,
-		`costCheckFlag`,
-		`precisehKey`,
-		`tags`,
-		`productType`,
-		`machineType`,
-		`qualificationImg`,
-		`includedTax`,
-		`taxPoint`,
-		`invoiceType`,
-		`recommendType`,
-		`combinationID`,
-		`combinationSort`,
-		announType
-		)
-		VALUES
-		(
-		#{brandID},
-		#{tinyTypeID},
-		<if test="productCategory != null and  productCategory != '' ">
-			#{productCategory},
-		</if>
-		#{preferredFlag},
-		#{selfTypeID},
-		#{shopID},
-		#{name},
-		#{aliasName},
-		#{searchKey},
-		#{productRemarks},
-		#{normalPrice},
-		#{price},
-		#{priceFlag},
-		#{beautyActFlag},
-		#{ladderPriceFlag},
-		<if test="stock != null and  stock != '' ">
-		#{stock},
-		</if>
-		#{hasSkuFlag},
-		#{mainImage},
-		#{propertiesInfo},
-		#{addTime},
-		#{updateTime},
-		#{weekSellNumber},
-		#{beforeValidFlag},
-		#{validFlag},
-		#{favoriteTimes},
-		#{commentScore},
-		#{commentTimes},
-		#{selfRecommendFlag},
-		#{sysRecommendFlag},
-		#{sortIndex},
-		#{featuredFlag},
-		#{featuredSortIndex},
-		#{productCode},
-		#{unit},
-		#{synToERPFlag},
-		#{allAreaFlag},
-		#{provinceIDs},
-		#{serviceNumber},
-		#{maxBuyNumber},
-		#{minBuyNumber},
-		#{packageCount},
-		#{byFlag},
-		#{normalProductFlag},
-		#{wholeSaleProductFlag},
-		#{promotionProductFlag},
-		#{groupBuyProductFlag},
-		#{step},
-		#{actFlag},
-		#{actStatus},
-		#{actSort},
-		#{actType},
-		#{visibility},
-		#{onlineTime},
-		#{downlineTime},
-		#{freePostFlag},
-		#{costPrice},
-		#{costProportional},
-		#{costCheckFlag},
-		#{precisehKey},
-		#{tags},
-		#{productType},
-		#{machineType},
-		#{qualificationImg},
-		#{includedTax},
-		#{taxPoint},
-		#{invoiceType},
-		#{recommendType},
-		#{combinationID},
-		#{combinationSort},
-		#{announType}
-		)
-	</insert>
-
-	<insert id="insertProductDetailInfo">
-		insert into productdetailinfo
-		<trim prefix="(" suffix=")" suffixOverrides=",">
-			<if test="productID != null">
-				`productID`,
-			</if>
-			<if test="detailInfo != null and detailInfo != ''">
-				`detailInfo`,
-			</if>
-			<if test="serviceInfo != null and serviceInfo != ''">
-				`serviceInfo`,
-			</if>
-			<if test="orderInfo != null and orderInfo != ''">
-				`orderInfo`,
-			</if>
-		</trim>
-		<trim prefix="values (" suffix=")" suffixOverrides=",">
-			<if test="productID != null">
-				#{productID},
-			</if>
-			<if test="detailInfo != null and detailInfo != ''">
-				#{detailInfo},
-			</if>
-			<if test="serviceInfo != null and serviceInfo != ''">
-				#{serviceInfo},
-			</if>
-			<if test="orderInfo != null and orderInfo != ''">
-				#{orderInfo},
-			</if>
-		</trim>
-	</insert>
-
-	<select id="getrecommendProductList" resultType="product">
-		select
-		a.*,
-		csrp.sort AS sort,
-		csrp.id AS recommendProductId,
-		b.name AS brandName,
-		s.name AS shopName
-		FROM
-		cm_search_recommend_product csrp
-		LEFT JOIN  product a on a.productID = csrp.productID
-		LEFT JOIN shop s on s.shopID = a.shopID
-		left join cm_brand b on b.id = a.brandID
-		WHERE
-		csrp.tinyTypeId = #{tinyTypeID}
-		<if test="name != null and name != ''">
-			AND a.name like concat('%', #{name} ,'%')
-		</if>
-		<if test="validFlag !=null and validFlag !=''">
-			AND a.validFlag=#{validFlag}
-		</if>
-		<if test="shopName != null and shopName != ''">
-			AND s.name like concat('%', #{shopName} ,'%')
-		</if>
-		<if test="brandName != null and brandName != ''">
-			AND b.name like concat('%', #{brandName} ,'%')
-		</if>
-		and a.productCategory = 1
-		AND a.validFlag != 0
-		AND csrp.delFlag =0
-		ORDER BY csrp.sort DESC
-	</select>
-
-
-	<select id="relatedProductList" resultType="product">
-		select
-		<include refid="productColumns"/>,
-		b.name AS brandName,
-		(case when a.tinyTypeID = #{tinyTypeID} then '1' else '0' end) AS defaultType
-		FROM product a
-		<include refid="productJoins"/>
-		left join brand b on b.brandID = a.brandID
-		WHERE (a.productID
-		IN (select productID from product_custom_classification where tinyTypeID = #{tinyTypeID})
-		OR a.tinyTypeID = #{tinyTypeID})
-		<if test="name != null and name != ''">
-			AND a.name like concat('%', #{name} ,'%')
-		</if>
-		<if test="validFlag !=null and validFlag !=''">
-			AND a.validFlag=#{validFlag}
-		</if>
-		<if test="shopName != null and shopName != ''">
-			AND s.name like concat('%', #{shopName} ,'%')
-		</if>
-		<if test="brandName != null and brandName != ''">
-			AND b.name like concat('%', #{brandName} ,'%')
-		</if>
-		AND a.validFlag != 0
-		and a.productCategory = 1
-	</select>
-
-	<delete id="deleteProductCustomClassification">
-		delete from product_custom_classification
-		where productID = #{productID} and tinyTypeID = #{tinyTypeID}
-	</delete>
-	<delete id="deleteLadderPriceByProductId">
-		DELETE FROM product_ladder_price where productId = #{productID}
-	</delete>
-	<delete id="deleteLadderPriceById">
-		DELETE FROM product_ladder_price where id = #{id}
-	</delete>
-
-	<select id="toAddProductCustomClassificationList" resultType="product">
-		select
-		<include refid="productColumns"/>,
-		b.name AS brandName
-		FROM product a
-		<include refid="productJoins"/>
-		left join cm_brand b on b.id = a.brandID
-		WHERE a.tinyTypeID != #{tinyTypeID}
-		and not exists
-		(select pcc.id from product_custom_classification pcc where pcc.productID = a.productID and pcc.tinyTypeID = #{tinyTypeID})
-		and a.validFlag = '2'
-		and (select count(id) from product_custom_classification pcc where pcc.productID = a.productID) <![CDATA[ < ]]> 5
-		<if test="name != null and name != ''">
-			and a.name like concat('%', #{name} ,'%')
-		</if>
-		<if test="shopName != null and shopName != ''">
-			AND s.name like concat('%', #{shopName} ,'%')
-		</if>
-		<if test="brandName != null and brandName != ''">
-			AND b.name like concat('%', #{brandName} ,'%')
-		</if>
-	</select>
-
-
-	<select id="toAddProductList" resultType="product">
-		select
-		a.*,
-		b.name AS brandName,
-		s.name AS shopName
-		FROM product a
-		LEFT JOIN shop s on s.shopID = a.shopID
-		left join cm_brand b on b.id = a.brandID
-		WHERE
-		NOT EXISTS (select * from cm_search_recommend_product csrp where  csrp.productID = a.productID  and csrp.tinyTypeID = #{tinyTypeID} AND csrp.delFlag = 0)
-		and a.validFlag = '2'
-		<if test="name != null and name != ''">
-			and a.name like concat('%', #{name} ,'%')
-		</if>
-		<if test="shopName != null and shopName != ''">
-			AND s.name like concat('%', #{shopName} ,'%')
-		</if>
-		<if test="brandName != null and brandName != ''">
-			AND b.name like concat('%', #{brandName} ,'%')
-		</if>
-		and a.productCategory = 1
-	</select>
-
-	<select id="getProductTypes" resultType="com.caimei.modules.product.entity.ProductCustomClassification">
-		select *
-		from product_custom_classification where productID = #{productID}
-	</select>
-
-
-	<select id="findRecommendActivityListPage" resultType="Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="ActivityJoins"/>
-		<where>
-			<if test="id !=null and id !=''">
-				AND a.productID=#{id}
-			</if>
-			<if test="tinyTypeID != null and tinyTypeID != ''">
-				AND a.tinyTypeID = #{tinyTypeID}
-			</if>
-			<if test="smallTypeID != null and smallTypeID != ''">
-				AND a.smallTypeID = #{smallTypeID}
-			</if>
-			<if test="bigTypeID != null and bigTypeID != ''">
-				AND a.bigTypeID = #{bigTypeID}
-			</if>
-			<if test="shopID != null and shopID != ''">
-				AND a.shopID = #{shopID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND s.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
-			</if>
-			<if test="actFlag !=null and actFlag !=''">
-				AND a.actFlag=#{actFlag}
-			</if>
-
-
-			<if test="sqlMap !=null and sqlMap !=''">
-				${sqlMap.dsf}
-			</if>
-			AND a.validFlag = 2
-			AND (a.actType != 3 or a.`actType` IS NULL or (a.actType = 3 and STR_TO_DATE(a.endTime,'%Y-%m-%d %H:%i') <![CDATA[  <  ]]> STR_TO_DATE(SYSDATE(),'%Y-%m-%d %H:%i')))
-			AND a.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
-			and a.productCategory = 1
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-				order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
-			</otherwise>
-		</choose>
-	</select>
-
-	<select id="findGroupActivityListPage" resultType="Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="ActivityJoins"/>
-		<where>
-			<if test="id !=null and id !=''">
-				AND a.productID=#{id}
-			</if>
-			<if test="tinyTypeID != null and tinyTypeID != ''">
-				AND a.tinyTypeID = #{tinyTypeID}
-			</if>
-			<if test="smallTypeID != null and smallTypeID != ''">
-				AND a.smallTypeID = #{smallTypeID}
-			</if>
-			<if test="bigTypeID != null and bigTypeID != ''">
-				AND a.bigTypeID = #{bigTypeID}
-			</if>
-			<if test="shopID != null and shopID != ''">
-				AND a.shopID = #{shopID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND s.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
-			</if>
-			<if test="actFlag !=null and actFlag !=''">
-				AND a.actFlag=#{actFlag}
-			</if>
-			<if test="actStatus != null and actStatus != '' and actStatus == 1">
-				AND STR_TO_DATE(SYSDATE(),'%Y-%m-%d %H:%i') <![CDATA[  <  ]]> STR_TO_DATE(a.beginTime,'%Y-%m-%d %H:%i')
-			</if>
-			<if test="actStatus != null and actStatus != '' and actStatus == 2">
-				AND STR_TO_DATE(SYSDATE(),'%Y-%m-%d %H:%i') <![CDATA[  >  ]]> STR_TO_DATE(a.beginTime,'%Y-%m-%d %H:%i')
-				AND STR_TO_DATE(SYSDATE(),'%Y-%m-%d %H:%i') <![CDATA[  <  ]]> STR_TO_DATE(a.endTime,'%Y-%m-%d %H:%i')
-			</if>
-			<if test="sqlMap !=null and sqlMap !=''">
-				${sqlMap.dsf}
-			</if>
-			AND a.validFlag = 2
-			AND ((a.actType != 1 AND a.actType != 2 OR a.`actType` IS NULL) or a.actFlag = 0)
-			AND a.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
-			and a.productCategory = 1
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-				order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
-			</otherwise>
-		</choose>
-	</select>
-
-	<select id="findBigTypeList" resultType="com.caimei.modules.product.entity.ProductBigType">
-		SELECT
-		*
-		FROM bigtype a
-		<where>
-			<if test="bigTypeID != null and bigTypeID != ''">
-				AND a.bigTypeID = #{bigTypeID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-
-		</where>
-	</select>
-	<select id="findSmallTypeList" resultType="com.caimei.modules.product.entity.ProductSmallType">
-		SELECT
-		*
-		FROM smalltype a
-		<where>
-			<if test="smallTypeID != null and smallTypeID != ''">
-				AND a.smallTypeID = #{smallTypeID}
-			</if>
-			<if test="bigTypeID != null and bigTypeID != ''">
-				AND a.bigTypeID = #{bigTypeID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-		</where>
-	</select>
-	<select id="findTinyTypeList" resultType="com.caimei.modules.product.entity.ProducTinyType">
-		SELECT
-		*
-		FROM tinytype a
-		<where>
-			<if test="tinyTypeID != null and tinyTypeID != ''">
-				AND a.tinyTypeID = #{tinyTypeID}
-			</if>
-			<if test="smallTypeID != null and smallTypeID != ''">
-				AND a.smallTypeID = #{smallTypeID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-		</where>
-	</select>
-
-	<select id="findProductRecommendList" resultType="com.caimei.modules.product.entity.CmProductRecommend">
-		select
-			cpr.id AS id,
-			cpr.productID AS productID,
-			cpr.recommendProductID AS recommendProductID,
-			cpr.sort AS sort,
-			pro.name AS productName,
-			pro.unit AS unit,
-			pro.mainImage AS img,
-			cpr.shopName AS shopName
-		from cm_product_recommend cpr
-				 join product pro on cpr.recommendProductID = pro.productID
-		where cpr.productID = #{productID}
-		order by cpr.sort desc
-	</select>
-
-	<select id="findProductRecommendCount" resultType="int">
-		select
-			count(1)
-		from cm_product_recommend cpr
-		where cpr.productID = #{productID}
-	</select>
-
-	<select id="findProductList" resultType="com.caimei.modules.product.entity.CmProductRecommend">
-		select
-		a.productID AS productID,
-		a.name AS productName,
-		a.unit AS unit,
-		a.mainImage AS img,
-		s.name AS shopName
-		from product a
-		<include refid="ActivityJoins"/>
-		<where>
-			<choose>
-				<when test="commodityType != null and commodityType != ''">
-					AND a.commodityType = #{commodityType}
-				</when>
-				<when test="bigTypeID != null and bigTypeID != ''">
-					AND a.bigTypeID = #{bigTypeID}
-				</when>
-				<when test="smallTypeID != null and smallTypeID != ''">
-					AND a.smallTypeID = #{smallTypeID}
-				</when>
-				<when test="tinyTypeID != null and tinyTypeID != ''">
-					AND a.tinyTypeID = #{tinyTypeID}
-				</when>
-			</choose>
-			<if test="productName != null and productName != ''">
-				and a.name like concat('%', #{productName} ,'%')
-			</if>
-			<if test="shopName != null and shopName != ''">
-				and s.name like concat('%', #{shopName} ,'%')
-			</if>
-			and a.productCategory = 1
-		</where>
-		<!--		limit 0, 10-->
-	</select>
-
-	<update id="updateRecommendType">
-		UPDATE product SET
-			recommendType = #{recommendType}
-		WHERE productID = #{productID}
-	</update>
-
-	<update id="updateBrnadId">
-		UPDATE product
-		set brandID = #{brandID}
-		WHERE productID = #{productID}
-	</update>
-
-	<update id="updateProductByBrandId">
-		UPDATE product
-		set  brandID = null
-		WHERE brandID = #{brandId}
-	</update>
-	<select id="getProductIdByBrandId" resultType="java.lang.Integer">
-		SELECT productID FROM product WHERE brandID = #{brandId}
-	</select>
-	<update id="updateTinyType">
-		UPDATE product
-		set tinyTypeID = #{tinyTypeID}
-		WHERE productID = #{productID}
-	</update>
-	<update id="updateByPrimaryKeySelective" parameterType="com.caimei.modules.product.entity.Product">
-		update product
-		<set>
-			<if test="productDescribe != null and productDescribe != ''">
-				productDescribe = #{productDescribe},
-			</if>
-			<if test="productDetail != null and productDetail != ''">
-				productDetail = #{productDetail},
-			</if>
-			<if test="brandID != null and brandID != ''">
-				brandID = #{brandID},
-			</if>
-			<if test="bigTypeID != null and bigTypeID !=''">
-				bigTypeID = #{bigTypeID},
-				smallTypeID = #{smallTypeID},
-				tinyTypeID = #{tinyTypeID},
-			</if>
-			<if test="preferredFlag != null and preferredFlag !=''">
-				preferredFlag = #{preferredFlag},
-			</if>
-			<if test="shopID != null and shopID !=''">
-				shopID = #{shopID},
-			</if>
-			<if test="name != null and name !=''">
-				`name` = #{name},
-			</if>
-			<if test="aliasName != null and aliasName !=''">
-				aliasName = #{aliasName},
-			</if>
-			<if test="searchKey != null and searchKey !=''">
-				searchKey = #{searchKey},
-			</if>
-			<if test="productRemarks != null and productRemarks !=''">
-				productRemarks = #{productRemarks},
-			</if>
-			<if test="combinationID != null and combinationID !=''">
-				combinationID = #{combinationID},
-			</if>
-			<if test="normalPrice != null and normalPrice !=''">
-				normalPrice = #{normalPrice},
-			</if>
-			<if test="price != null and price !=''">
-				price = #{price},
-			</if>
-			<if test="priceFlag != null and priceFlag !=''">
-				priceFlag = #{priceFlag},
-			</if>
-			<if test="beautyActFlag != null and beautyActFlag !=''">
-				beautyActFlag = #{beautyActFlag},
-			</if>
-			<if test="ladderPriceFlag != null and ladderPriceFlag !=''">
-				ladderPriceFlag = #{ladderPriceFlag},
-			</if>
-			<if test="stock != null and stock !=''">
-				stock = #{stock},
-			</if>
-			<if test="hasSkuFlag != null and hasSkuFlag !=''">
-				hasSkuFlag = #{hasSkuFlag},
-			</if>
-			<if test="mainImage != null and mainImage !=''">
-				mainImage = #{mainImage},
-			</if>
-			<if test="propertiesInfo != null and propertiesInfo !=''">
-				propertiesInfo = #{propertiesInfo},
-			</if>
-			<if test="addTime != null and addTime !=''">
-				addTime = #{addTime},
-			</if>
-			<if test="updateTime != null and updateTime !=''">
-				updateTime = #{updateTime},
-			</if>
-			<if test="weekSellNumber != null and weekSellNumber !=''">
-				weekSellNumber = #{weekSellNumber},
-			</if>
-			<if test="beforeValidFlag != null and beforeValidFlag !=''">
-				beforeValidFlag = #{beforeValidFlag},
-			</if>
-			<if test="validFlag != null and validFlag !=''">
-				validFlag = #{validFlag},
-			</if>
-			<if test="favoriteTimes != null and favoriteTimes !=''">
-				favoriteTimes = #{favoriteTimes},
-			</if>
-			<if test="commentScore != null and commentScore !=''">
-				commentScore = #{commentScore},
-			</if>
-			<if test="commentTimes != null and commentTimes !=''">
-				commentTimes = #{commentTimes},
-			</if>
-			<if test="selfRecommendFlag != null and selfRecommendFlag !=''">
-				selfRecommendFlag = #{selfRecommendFlag},
-			</if>
-			<if test="sysRecommendFlag != null and sysRecommendFlag !=''">
-				sysRecommendFlag = #{sysRecommendFlag},
-			</if>
-			<if test="sortIndex != null and sortIndex != ''">
-				sortIndex = #{sortIndex},
-			</if>
-			<if test="featuredFlag != null and featuredFlag !=''">
-				featuredFlag = #{featuredFlag},
-			</if>
-			<if test="featuredSortIndex != null and featuredSortIndex !=''">
-				featuredSortIndex = #{featuredSortIndex},
-			</if>
-			<if test="productCode != null and productCode !=''">
-				productCode = #{productCode},
-			</if>
-			<if test="unit != null and unit !=''">
-				unit = #{unit},
-			</if>
-			<if test="synToERPFlag != null and synToERPFlag !=''">
-				synToERPFlag = #{synToERPFlag},
-			</if>
-			<if test="allAreaFlag != null and allAreaFlag !=''">
-				allAreaFlag = #{allAreaFlag},
-			</if>
-			<if test="provinceIDs != null and provinceIDs !=''">
-				provinceIDs = #{provinceIDs},
-			</if>
-			<if test="serviceNumber != null and serviceNumber !=''">
-				serviceNumber = #{serviceNumber},
-			</if>
-			<if test="maxBuyNumber != null and maxBuyNumber !=''">
-				maxBuyNumber = #{maxBuyNumber},
-			</if>
-			<if test="minBuyNumber != null and minBuyNumber !=''">
-				minBuyNumber = #{minBuyNumber},
-			</if>
-			<if test="packageCount != null and packageCount !=''">
-				packageCount = #{packageCount},
-			</if>
-			<if test="byFlag != null and byFlag !=''">
-				byFlag = #{byFlag},
-			</if>
-			<if test="normalProductFlag != null and normalProductFlag !=''">
-				normalProductFlag = #{normalProductFlag},
-			</if>
-			<if test="wholeSaleProductFlag != null and wholeSaleProductFlag !=''">
-				wholeSaleProductFlag = #{wholeSaleProductFlag},
-			</if>
-			<if test="promotionProductFlag != null and promotionProductFlag !=''">
-				promotionProductFlag = #{promotionProductFlag},
-			</if>
-			<if test="groupBuyProductFlag != null and groupBuyProductFlag !=''">
-				groupBuyProductFlag = #{groupBuyProductFlag},
-			</if>
-			<if test="step != null and step !=''">
-				step = #{step},
-			</if>
-			<if test="actFlag != null and actFlag !=''">
-				actFlag = #{actFlag},
-			</if>
-			<if test="actSort != null and actSort !=''">
-				actSort = #{actSort},
-			</if>
-			<if test="actType != null and actType !=''">
-				actType = #{actType},
-			</if>
-			<if test="onlineTime != null and onlineTime !=''">
-				onlineTime = #{onlineTime},
-			</if>
-			<if test="downlineTime != null and downlineTime !=''">
-				downlineTime = #{downlineTime},
-			</if>
-			<if test="freePostFlag != null and freePostFlag !=''">
-				freePostFlag = #{freePostFlag},
-			</if>
-			<if test="costPrice != null and costPrice != ''">
-				costPrice = #{costPrice},
-			</if>
-			<if test="costProportional != null and costProportional !=''">
-				costProportional = #{costProportional},
-			</if>
-			<if test="costCheckFlag != null and costCheckFlag !=''">
-				costCheckFlag = #{costCheckFlag},
-			</if>
-			<if test="precisehKey != null and precisehKey !=''">
-				precisehKey = #{precisehKey},
-			</if>
-			<if test="visibility != null and visibility !=''">
-				visibility = #{visibility},
-			</if>
-			<if test="productType != null and productType !=''">
-				productType = #{productType},
-			</if>
-			<if test="qualificationImg != null and qualificationImg !=''">
-				qualificationImg = #{qualificationImg},
-			</if>
-			<if test="qualificationImg != null and qualificationImg !=''">
-				qualificationImg = #{qualificationImg},
-			</if>
-			<if test="invoiceType != null and invoiceType !=''">
-				invoiceType = #{invoiceType},
-			</if>
-			<if test="taxPoint != null and taxPoint !=''">
-				taxPoint = #{taxPoint},
-			</if>
-			<if test="supplierTaxPoint != null and supplierTaxPoint !=''">
-				supplierTaxPoint = #{supplierTaxPoint},
-			</if>
-			<if test="endTimeStr != null and endTimeStr !=''">
-				endTimeStr = #{endTimeStr},
-			</if>
-			<if test="tags != null and tags !=''">
-				tags = #{tags},
-			</if>
-			<if test="recommendType != null and recommendType !=''">
-				recommendType = #{recommendType},
-			</if>
-			<if test="machineType != null and machineType !=''">
-				machineType = #{machineType},
-			</if>
-			<if test="includedTax != null and includedTax !=''">
-				includedTax = #{includedTax},
-			</if>
-			<if test="invoiceType != null and invoiceType !=''">
-				invoiceType = #{invoiceType},
-			</if>
-			<if test="commodityType != null and commodityType != ''">
-				commodityType = #{commodityType},
-			</if>
-			<if test="trainingMethod != null">
-				trainingMethod = #{trainingMethod},
-			</if>
-			<if test="trainingType != null">
-				trainingType = #{trainingType},
-			</if>
-			<if test="trainingFee != null">
-				trainingFee = #{trainingFee},
-			</if>
-			<if test="newProductType ==2">
-				newvalidFlag=null,
-			</if>
-			newProductType=#{newProductType},
-			showFlag=#{showFlag},
-			announType=#{announType},
-			qualificationNo=#{qualificationNo},
-			productName=#{productName},
-			qualificationTime=#{qualificationTime},
-			qualificationLink=#{qualificationLink},
-		    splitCode = #{splitCode}
-		</set>
-		where productID = #{productID}
-	</update>
-	<update id="updateproductDetailInfo" parameterType="com.caimei.modules.product.entity.ProductDetailInfo">
-		update productdetailinfo
-		<set>
-			<if test="propValueAlias != null and propValueAlias != ''">
-				propValueAlias = #{propValueAlias},
-			</if>
-			<if test="propValueImages != null and propValueImages !=''">
-				propValueImages = #{propValueImages},
-			</if>
-			<if test="detailInfo != null">
-				detailInfo = #{detailInfo},
-			</if>
-			<if test="commonDetailInfo != null">
-				commonDetailInfo = #{commonDetailInfo},
-			</if>
-			<if test="detailInfoTxt != null">
-				detailInfoTxt = #{detailInfoTxt},
-			</if>
-			<if test="seoTitle != null and seoTitle !=''">
-				seoTitle = #{seoTitle},
-			</if>
-			<if test="seoKeyword != null and seoKeyword !=''">
-				seoKeyword = #{seoKeyword},
-			</if>
-			<if test="seoDes != null and seoDes !=''">
-				seoDes = #{seoDes},
-			</if>
-			<if test="serviceInfo != null ">
-				serviceInfo = #{serviceInfo},
-			</if>
-			<if test="orderInfo != null ">
-				orderInfo = #{orderInfo},
-			</if>
-		</set>
-		where productID = #{productID}
-	</update>
-	<update id="updateLadderPrice">
-		update product_ladder_price
-		set productId = #{productId},
-			ladderNum = #{ladderNum},
-			buyNum = #{buyNum},
-			buyPrice = #{buyPrice},
-			updateBy = #{updateBy},
-			updateDate = #{updateDate},
-			delFlag = #{delFlag}
-		where id = #{id}
-	</update>
-	<update id="updateMainImage">
-		update product
-		set mainImage =#{mainImage}
-		where productID=#{productID}
-	</update>
-
-	<select id="getProductByTypeName" resultType="com.caimei.modules.brand.entity.BrandAndProductType">
-		select
-			b.name AS "bigTypeName",b.bigTypeID,s.`name` AS "smallTypeName",s.smalltypeID,t.name AS "tinyTypeName" ,t.tinytypeID
-		from tinytype  t LEFT JOIN smalltype  s on  t.smallTypeID = s.smallTypeID  LEFT JOIN bigtype b ON b.bigTypeID = s.bigTypeID
-		where  b.`name` = #{name} AND s.`name` = #{name1} AND t.name = #{name2}
-	</select>
-
-	<select id="findRecommendBySys" resultType="com.caimei.modules.product.entity.CmProductRecommend">
-		select
-			p.productID AS recommendProductID,
-			p.name AS productName,
-			p.unit AS unit,
-			p.mainImage AS img,
-			s.name AS shopName
-		from product p
-				 left join shop s on s.shopID = p.shopID
-		where p.tinyTypeID = #{tinyTypeID} and p.productCategory = 1
-		order by p.sellNumber
-				desc limit 0, 7
-	</select>
-
-	<select id="getSecondHandRecommend" resultType="CmSecondHandRecommendVo">
-		select p.productID AS id,
-			   1 AS type,
-			   p.name AS name,
-			   p.unit AS unit,
-			   p.mainImage AS img,
-			   s.name AS shopName,
-			   p.productCategory as "productCategory"
-		from product p
-				 left join shop s on s.shopID = p.shopID
-		where p.productID = #{productID}
-		  AND p.validFlag = '2'
-	</select>
-
-	<select id="querySecondHandRecommend" resultType="CmSecondHandRecommendVo">
-		select
-		p.productID AS id,
-		1 AS type,
-		p.name AS name,
-		p.unit AS unit,
-		p.mainImage AS img,
-		s.name AS shopName,
-		p.productCategory as "productCategory"
-		from product p
-		left join shop s on s.shopID = p.shopID
-		<where>
-			<if test="productID != null and productID != ''">
-				p.productID = #{productID}
-			</if>
-			<if test="productName != null and productName != ''">
-				and p.name like concat('%', #{productName} ,'%')
-			</if>
-			AND p.validFlag = '2'
-			and p.productCategory = #{queryProductType}
-		</where>
-		limit 0, 10
-	</select>
-	<select id="queryProductDetailInfo" resultType="com.caimei.modules.product.entity.ProductDetailInfo">
-		SELECT * FROM
-			productdetailinfo
-		where productID = #{productID}
-	</select>
-	<select id="findProductLadderPrice" resultType="com.caimei.po.ProductLadderPrice">
-		SELECT *
-		FROM product_ladder_price
-		WHERE
-			productId = #{productId}
-		  AND userType = #{userType}
-		  AND buyNum is NOT null
-		  AND buyPrice is NOT null
-		  AND delFlag = 0
-		ORDER BY ladderNum ASC
-	</select>
-	<select id="findActList" resultType="com.caimei.modules.product.entity.Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="productJoins"/>
-		<where>
-			<if test="id !=null and id !=''">
-				AND a.productID=#{id}
-			</if>
-			<if test="shopID != null and shopID != ''">
-				AND a.shopID = #{shopID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND s.name LIKE
-				<if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
-				<if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
-				<if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
-			</if>
-			<if test="validFlag !=null and validFlag !=''">
-				AND a.validFlag=#{validFlag}
-			</if>
-			<if test="actFlag !=null and actFlag !=''">
-				AND a.actFlag=#{actFlag}
-			</if>
-			<if test="actType !=null and actType !=''">
-				AND a.actType=#{actType}
-			</if>
-			AND a.actStatus = 1
-			and a.productCategory = 1
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-				order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
-			</otherwise>
-		</choose>
-	</select>
-
-	<select id="findAllProduct" resultType="com.caimei.modules.product.entity.Product">
-		select p.productID,p.mainImage,p.name,s.name as shopName from product p left join shop s on p.shopID = s.shopID
-		<where>
-			(p.actFlag=0 or p.actType is null) and p.validFlag = 2 and p.productCategory = 1
-			<if test="productIds != null and productIds != '' ">
-				and p.productID != #{productIds}
-			</if>
-			<if test="productID != null and productID != ''">
-				and p.productID = #{productID}
-			</if>
-			<if test="name != null and name != ''">
-				and p.name like concat('%',#{name},'%')
-			</if>
-			<if test="shopName != null and shopName != ''">
-				and s.name like concat('%',#{shopName},'%')
-			</if>
-		</where>
-		order by productID asc
-	</select>
-
-	<select id="findProductImage" resultType="com.caimei.modules.product.entity.Product">
-		SELECT
-		<include refid="productColumns"/>
-		FROM product a
-		<include refid="productJoins"/>
-		<where>
-			<if test="productID !=null">
-				AND a.productID=#{productID}
-			</if>
-			<if test="shopID != null and shopID != ''">
-				AND a.shopID = #{shopID}
-			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE concat('%',#{name},'%')
-			</if>
-			<if test="shopName != null and shopName != ''">
-				AND s.name LIKE concat('%',#{shopName},'%')
-			</if>
-			<if test="validFlag !=null and validFlag !=''">
-				AND a.validFlag=#{validFlag}
-			</if>
-			<if test="productCategory !=null and productCategory !=''">
-				AND a.productCategory=#{productCategory}
-			</if>
-			<if test="ids != null and ids.size() > 0">
-				AND a.productID NOT IN
-				<foreach collection="ids" close=")" separator="," open="(" item="id">
-					#{id}
-				</foreach>
-			</if>
-		</where>
-		<choose>
-			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
-				ORDER BY ${page.orderBy}
-			</when>
-			<otherwise>
-				order by a.productID asc
-			</otherwise>
-		</choose>
-	</select>
-	<select id="findProductDetail" resultType="java.lang.String">
-		select productDetail from product where productID = #{productID}
-	</select>
-	<select id="findProductDescribe" resultType="java.lang.String">
-		select productDescribe from product where productID = #{productID}
-	</select>
-	<select id="findSepcialShopList" resultType="com.caimei.modules.product.entity.CmShop">
-		select name,shopID
-		from shop
-		where shopType=2
-	</select>
+    <select id="getrecommendProductList" resultType="product">
+        select
+        a.*,
+        csrp.sort AS sort,
+        csrp.id AS recommendProductId,
+        b.name AS brandName,
+        s.name AS shopName
+        FROM
+        cm_search_recommend_product csrp
+        LEFT JOIN product a on a.productID = csrp.productID
+        LEFT JOIN shop s on s.shopID = a.shopID
+        left join cm_brand b on b.id = a.brandID
+        WHERE
+        csrp.tinyTypeId = #{tinyTypeID}
+        <if test="name != null and name != ''">
+            AND a.name like concat('%', #{name} ,'%')
+        </if>
+        <if test="validFlag !=null and validFlag !=''">
+            AND a.validFlag=#{validFlag}
+        </if>
+        <if test="shopName != null and shopName != ''">
+            AND s.name like concat('%', #{shopName} ,'%')
+        </if>
+        <if test="brandName != null and brandName != ''">
+            AND b.name like concat('%', #{brandName} ,'%')
+        </if>
+        and a.productCategory = 1
+        AND a.validFlag != 0
+        AND csrp.delFlag =0
+        ORDER BY csrp.sort DESC
+    </select>
+
+
+    <select id="relatedProductList" resultType="product">
+        select
+        <include refid="productColumns"/>,
+        b.name AS brandName,
+        (case when a.tinyTypeID = #{tinyTypeID} then '1' else '0' end) AS defaultType
+        FROM product a
+        <include refid="productJoins"/>
+        left join brand b on b.brandID = a.brandID
+        WHERE (a.productID
+        IN (select productID from product_custom_classification where tinyTypeID = #{tinyTypeID})
+        OR a.tinyTypeID = #{tinyTypeID})
+        <if test="name != null and name != ''">
+            AND a.name like concat('%', #{name} ,'%')
+        </if>
+        <if test="validFlag !=null and validFlag !=''">
+            AND a.validFlag=#{validFlag}
+        </if>
+        <if test="shopName != null and shopName != ''">
+            AND s.name like concat('%', #{shopName} ,'%')
+        </if>
+        <if test="brandName != null and brandName != ''">
+            AND b.name like concat('%', #{brandName} ,'%')
+        </if>
+        AND a.validFlag != 0
+        and a.productCategory = 1
+    </select>
+
+    <delete id="deleteProductCustomClassification">
+        delete
+        from product_custom_classification
+        where productID = #{productID}
+          and tinyTypeID = #{tinyTypeID}
+    </delete>
+    <delete id="deleteLadderPriceByProductId">
+        DELETE
+        FROM product_ladder_price
+        where productId = #{productID}
+    </delete>
+    <delete id="deleteLadderPriceById">
+        DELETE
+        FROM product_ladder_price
+        where id = #{id}
+    </delete>
+
+    <select id="toAddProductCustomClassificationList" resultType="product">
+        select
+        <include refid="productColumns"/>,
+        b.name AS brandName
+        FROM product a
+        <include refid="productJoins"/>
+        left join cm_brand b on b.id = a.brandID
+        WHERE a.tinyTypeID != #{tinyTypeID}
+        and not exists
+        (select pcc.id from product_custom_classification pcc where pcc.productID = a.productID and pcc.tinyTypeID =
+        #{tinyTypeID})
+        and a.validFlag = '2'
+        and (select count(id) from product_custom_classification pcc where pcc.productID = a.productID) <![CDATA[ < ]]>
+        5
+        <if test="name != null and name != ''">
+            and a.name like concat('%', #{name} ,'%')
+        </if>
+        <if test="shopName != null and shopName != ''">
+            AND s.name like concat('%', #{shopName} ,'%')
+        </if>
+        <if test="brandName != null and brandName != ''">
+            AND b.name like concat('%', #{brandName} ,'%')
+        </if>
+    </select>
+
+
+    <select id="toAddProductList" resultType="product">
+        select
+        a.*,
+        b.name AS brandName,
+        s.name AS shopName
+        FROM product a
+        LEFT JOIN shop s on s.shopID = a.shopID
+        left join cm_brand b on b.id = a.brandID
+        WHERE
+        NOT EXISTS (select * from cm_search_recommend_product csrp where csrp.productID = a.productID and
+        csrp.tinyTypeID = #{tinyTypeID} AND csrp.delFlag = 0)
+        and a.validFlag = '2'
+        <if test="name != null and name != ''">
+            and a.name like concat('%', #{name} ,'%')
+        </if>
+        <if test="shopName != null and shopName != ''">
+            AND s.name like concat('%', #{shopName} ,'%')
+        </if>
+        <if test="brandName != null and brandName != ''">
+            AND b.name like concat('%', #{brandName} ,'%')
+        </if>
+        and a.productCategory = 1
+    </select>
+
+    <select id="getProductTypes" resultType="com.caimei.modules.product.entity.ProductCustomClassification">
+        select *
+        from product_custom_classification
+        where productID = #{productID}
+    </select>
+
+
+    <select id="findRecommendActivityListPage" resultType="Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="ActivityJoins"/>
+        <where>
+            <if test="id !=null and id !=''">
+                AND a.productID=#{id}
+            </if>
+            <if test="tinyTypeID != null and tinyTypeID != ''">
+                AND a.tinyTypeID = #{tinyTypeID}
+            </if>
+            <if test="smallTypeID != null and smallTypeID != ''">
+                AND a.smallTypeID = #{smallTypeID}
+            </if>
+            <if test="bigTypeID != null and bigTypeID != ''">
+                AND a.bigTypeID = #{bigTypeID}
+            </if>
+            <if test="shopID != null and shopID != ''">
+                AND a.shopID = #{shopID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND s.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
+            </if>
+            <if test="actFlag !=null and actFlag !=''">
+                AND a.actFlag=#{actFlag}
+            </if>
+
+
+            <if test="sqlMap !=null and sqlMap !=''">
+                ${sqlMap.dsf}
+            </if>
+            AND a.validFlag = 2
+            AND (a.actType != 3 or a.`actType` IS NULL or (a.actType = 3 and STR_TO_DATE(a.endTime,'%Y-%m-%d %H:%i')
+            <![CDATA[  <  ]]> STR_TO_DATE(SYSDATE(),'%Y-%m-%d %H:%i')))
+            AND a.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
+            and a.productCategory = 1
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="findGroupActivityListPage" resultType="Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="ActivityJoins"/>
+        <where>
+            <if test="id !=null and id !=''">
+                AND a.productID=#{id}
+            </if>
+            <if test="tinyTypeID != null and tinyTypeID != ''">
+                AND a.tinyTypeID = #{tinyTypeID}
+            </if>
+            <if test="smallTypeID != null and smallTypeID != ''">
+                AND a.smallTypeID = #{smallTypeID}
+            </if>
+            <if test="bigTypeID != null and bigTypeID != ''">
+                AND a.bigTypeID = #{bigTypeID}
+            </if>
+            <if test="shopID != null and shopID != ''">
+                AND a.shopID = #{shopID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND s.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
+            </if>
+            <if test="actFlag !=null and actFlag !=''">
+                AND a.actFlag=#{actFlag}
+            </if>
+            <if test="actStatus != null and actStatus != '' and actStatus == 1">
+                AND STR_TO_DATE(SYSDATE(),'%Y-%m-%d %H:%i') <![CDATA[  <  ]]> STR_TO_DATE(a.beginTime,'%Y-%m-%d %H:%i')
+            </if>
+            <if test="actStatus != null and actStatus != '' and actStatus == 2">
+                AND STR_TO_DATE(SYSDATE(),'%Y-%m-%d %H:%i') <![CDATA[  >  ]]> STR_TO_DATE(a.beginTime,'%Y-%m-%d %H:%i')
+                AND STR_TO_DATE(SYSDATE(),'%Y-%m-%d %H:%i') <![CDATA[  <  ]]> STR_TO_DATE(a.endTime,'%Y-%m-%d %H:%i')
+            </if>
+            <if test="sqlMap !=null and sqlMap !=''">
+                ${sqlMap.dsf}
+            </if>
+            AND a.validFlag = 2
+            AND ((a.actType != 1 AND a.actType != 2 OR a.`actType` IS NULL) or a.actFlag = 0)
+            AND a.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
+            and a.productCategory = 1
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="findBigTypeList" resultType="com.caimei.modules.product.entity.ProductBigType">
+        SELECT
+        *
+        FROM bigtype a
+        <where>
+            <if test="bigTypeID != null and bigTypeID != ''">
+                AND a.bigTypeID = #{bigTypeID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+
+        </where>
+    </select>
+    <select id="findSmallTypeList" resultType="com.caimei.modules.product.entity.ProductSmallType">
+        SELECT
+        *
+        FROM smalltype a
+        <where>
+            <if test="smallTypeID != null and smallTypeID != ''">
+                AND a.smallTypeID = #{smallTypeID}
+            </if>
+            <if test="bigTypeID != null and bigTypeID != ''">
+                AND a.bigTypeID = #{bigTypeID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+        </where>
+    </select>
+    <select id="findTinyTypeList" resultType="com.caimei.modules.product.entity.ProducTinyType">
+        SELECT
+        *
+        FROM tinytype a
+        <where>
+            <if test="tinyTypeID != null and tinyTypeID != ''">
+                AND a.tinyTypeID = #{tinyTypeID}
+            </if>
+            <if test="smallTypeID != null and smallTypeID != ''">
+                AND a.smallTypeID = #{smallTypeID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+        </where>
+    </select>
+
+    <select id="findProductRecommendList" resultType="com.caimei.modules.product.entity.CmProductRecommend">
+        select cpr.id                 AS id,
+               cpr.productID          AS productID,
+               cpr.recommendProductID AS recommendProductID,
+               cpr.sort               AS sort,
+               pro.name               AS productName,
+               pro.unit               AS unit,
+               pro.mainImage          AS img,
+               cpr.shopName           AS shopName
+        from cm_product_recommend cpr
+                 join product pro on cpr.recommendProductID = pro.productID
+        where cpr.productID = #{productID}
+        order by cpr.sort desc
+    </select>
+
+    <select id="findProductRecommendCount" resultType="int">
+        select count(1)
+        from cm_product_recommend cpr
+        where cpr.productID = #{productID}
+    </select>
+
+    <select id="findProductList" resultType="com.caimei.modules.product.entity.CmProductRecommend">
+        select
+        a.productID AS productID,
+        a.name AS productName,
+        a.unit AS unit,
+        a.mainImage AS img,
+        s.name AS shopName
+        from product a
+        <include refid="ActivityJoins"/>
+        <where>
+            <choose>
+                <when test="commodityType != null and commodityType != ''">
+                    AND a.commodityType = #{commodityType}
+                </when>
+                <when test="bigTypeID != null and bigTypeID != ''">
+                    AND a.bigTypeID = #{bigTypeID}
+                </when>
+                <when test="smallTypeID != null and smallTypeID != ''">
+                    AND a.smallTypeID = #{smallTypeID}
+                </when>
+                <when test="tinyTypeID != null and tinyTypeID != ''">
+                    AND a.tinyTypeID = #{tinyTypeID}
+                </when>
+            </choose>
+            <if test="productName != null and productName != ''">
+                and a.name like concat('%', #{productName} ,'%')
+            </if>
+            <if test="shopName != null and shopName != ''">
+                and s.name like concat('%', #{shopName} ,'%')
+            </if>
+            and a.productCategory = 1
+        </where>
+        <!--		limit 0, 10-->
+    </select>
+
+    <update id="updateRecommendType">
+        UPDATE product
+        SET recommendType = #{recommendType}
+        WHERE productID = #{productID}
+    </update>
+
+    <update id="updateBrnadId">
+        UPDATE product
+        set brandID = #{brandID}
+        WHERE productID = #{productID}
+    </update>
+
+    <update id="updateProductByBrandId">
+        UPDATE product
+        set brandID = null
+        WHERE brandID = #{brandId}
+    </update>
+    <select id="getProductIdByBrandId" resultType="java.lang.Integer">
+        SELECT productID
+        FROM product
+        WHERE brandID = #{brandId}
+    </select>
+    <update id="updateTinyType">
+        UPDATE product
+        set tinyTypeID = #{tinyTypeID}
+        WHERE productID = #{productID}
+    </update>
+    <update id="updateByPrimaryKeySelective" parameterType="com.caimei.modules.product.entity.Product">
+        update product
+        <set>
+            <if test="productDescribe != null and productDescribe != ''">
+                productDescribe = #{productDescribe},
+            </if>
+            <if test="productDetail != null and productDetail != ''">
+                productDetail = #{productDetail},
+            </if>
+            <if test="brandID != null and brandID != ''">
+                brandID = #{brandID},
+            </if>
+            <if test="bigTypeID != null and bigTypeID !=''">
+                bigTypeID = #{bigTypeID},
+                smallTypeID = #{smallTypeID},
+                tinyTypeID = #{tinyTypeID},
+            </if>
+            <if test="preferredFlag != null and preferredFlag !=''">
+                preferredFlag = #{preferredFlag},
+            </if>
+            <if test="shopID != null and shopID !=''">
+                shopID = #{shopID},
+            </if>
+            <if test="name != null and name !=''">
+                `name` = #{name},
+            </if>
+            <if test="aliasName != null and aliasName !=''">
+                aliasName = #{aliasName},
+            </if>
+            <if test="searchKey != null and searchKey !=''">
+                searchKey = #{searchKey},
+            </if>
+            <if test="productRemarks != null and productRemarks !=''">
+                productRemarks = #{productRemarks},
+            </if>
+            <if test="combinationID != null and combinationID !=''">
+                combinationID = #{combinationID},
+            </if>
+            <if test="normalPrice != null and normalPrice !=''">
+                normalPrice = #{normalPrice},
+            </if>
+            <if test="price != null and price !=''">
+                price = #{price},
+            </if>
+            <if test="priceFlag != null and priceFlag !=''">
+                priceFlag = #{priceFlag},
+            </if>
+            <if test="beautyActFlag != null and beautyActFlag !=''">
+                beautyActFlag = #{beautyActFlag},
+            </if>
+            <if test="ladderPriceFlag != null and ladderPriceFlag !=''">
+                ladderPriceFlag = #{ladderPriceFlag},
+            </if>
+            <if test="stock != null and stock !=''">
+                stock = #{stock},
+            </if>
+            <if test="hasSkuFlag != null and hasSkuFlag !=''">
+                hasSkuFlag = #{hasSkuFlag},
+            </if>
+            <if test="mainImage != null and mainImage !=''">
+                mainImage = #{mainImage},
+            </if>
+            <if test="propertiesInfo != null and propertiesInfo !=''">
+                propertiesInfo = #{propertiesInfo},
+            </if>
+            <if test="addTime != null and addTime !=''">
+                addTime = #{addTime},
+            </if>
+            <if test="updateTime != null and updateTime !=''">
+                updateTime = #{updateTime},
+            </if>
+            <if test="weekSellNumber != null and weekSellNumber !=''">
+                weekSellNumber = #{weekSellNumber},
+            </if>
+            <if test="beforeValidFlag != null and beforeValidFlag !=''">
+                beforeValidFlag = #{beforeValidFlag},
+            </if>
+            <if test="validFlag != null and validFlag !=''">
+                validFlag = #{validFlag},
+            </if>
+            <if test="favoriteTimes != null and favoriteTimes !=''">
+                favoriteTimes = #{favoriteTimes},
+            </if>
+            <if test="commentScore != null and commentScore !=''">
+                commentScore = #{commentScore},
+            </if>
+            <if test="commentTimes != null and commentTimes !=''">
+                commentTimes = #{commentTimes},
+            </if>
+            <if test="selfRecommendFlag != null and selfRecommendFlag !=''">
+                selfRecommendFlag = #{selfRecommendFlag},
+            </if>
+            <if test="sysRecommendFlag != null and sysRecommendFlag !=''">
+                sysRecommendFlag = #{sysRecommendFlag},
+            </if>
+            <if test="sortIndex != null and sortIndex != ''">
+                sortIndex = #{sortIndex},
+            </if>
+            <if test="featuredFlag != null and featuredFlag !=''">
+                featuredFlag = #{featuredFlag},
+            </if>
+            <if test="featuredSortIndex != null and featuredSortIndex !=''">
+                featuredSortIndex = #{featuredSortIndex},
+            </if>
+            <if test="productCode != null and productCode !=''">
+                productCode = #{productCode},
+            </if>
+            <if test="unit != null and unit !=''">
+                unit = #{unit},
+            </if>
+            <if test="synToERPFlag != null and synToERPFlag !=''">
+                synToERPFlag = #{synToERPFlag},
+            </if>
+            <if test="allAreaFlag != null and allAreaFlag !=''">
+                allAreaFlag = #{allAreaFlag},
+            </if>
+            <if test="provinceIDs != null and provinceIDs !=''">
+                provinceIDs = #{provinceIDs},
+            </if>
+            <if test="serviceNumber != null and serviceNumber !=''">
+                serviceNumber = #{serviceNumber},
+            </if>
+            <if test="maxBuyNumber != null and maxBuyNumber !=''">
+                maxBuyNumber = #{maxBuyNumber},
+            </if>
+            <if test="minBuyNumber != null and minBuyNumber !=''">
+                minBuyNumber = #{minBuyNumber},
+            </if>
+            <if test="packageCount != null and packageCount !=''">
+                packageCount = #{packageCount},
+            </if>
+            <if test="byFlag != null and byFlag !=''">
+                byFlag = #{byFlag},
+            </if>
+            <if test="normalProductFlag != null and normalProductFlag !=''">
+                normalProductFlag = #{normalProductFlag},
+            </if>
+            <if test="wholeSaleProductFlag != null and wholeSaleProductFlag !=''">
+                wholeSaleProductFlag = #{wholeSaleProductFlag},
+            </if>
+            <if test="promotionProductFlag != null and promotionProductFlag !=''">
+                promotionProductFlag = #{promotionProductFlag},
+            </if>
+            <if test="groupBuyProductFlag != null and groupBuyProductFlag !=''">
+                groupBuyProductFlag = #{groupBuyProductFlag},
+            </if>
+            <if test="step != null and step !=''">
+                step = #{step},
+            </if>
+            <if test="actFlag != null and actFlag !=''">
+                actFlag = #{actFlag},
+            </if>
+            <if test="actSort != null and actSort !=''">
+                actSort = #{actSort},
+            </if>
+            <if test="actType != null and actType !=''">
+                actType = #{actType},
+            </if>
+            <if test="onlineTime != null and onlineTime !=''">
+                onlineTime = #{onlineTime},
+            </if>
+            <if test="downlineTime != null and downlineTime !=''">
+                downlineTime = #{downlineTime},
+            </if>
+            <if test="freePostFlag != null and freePostFlag !=''">
+                freePostFlag = #{freePostFlag},
+            </if>
+            <if test="costPrice != null and costPrice != ''">
+                costPrice = #{costPrice},
+            </if>
+            <if test="costProportional != null and costProportional !=''">
+                costProportional = #{costProportional},
+            </if>
+            <if test="costCheckFlag != null and costCheckFlag !=''">
+                costCheckFlag = #{costCheckFlag},
+            </if>
+            <if test="precisehKey != null and precisehKey !=''">
+                precisehKey = #{precisehKey},
+            </if>
+            <if test="visibility != null and visibility !=''">
+                visibility = #{visibility},
+            </if>
+            <if test="productType != null and productType !=''">
+                productType = #{productType},
+            </if>
+            <if test="qualificationImg != null and qualificationImg !=''">
+                qualificationImg = #{qualificationImg},
+            </if>
+            <if test="qualificationImg != null and qualificationImg !=''">
+                qualificationImg = #{qualificationImg},
+            </if>
+            <if test="invoiceType != null and invoiceType !=''">
+                invoiceType = #{invoiceType},
+            </if>
+            <if test="taxPoint != null and taxPoint !=''">
+                taxPoint = #{taxPoint},
+            </if>
+            <if test="supplierTaxPoint != null and supplierTaxPoint !=''">
+                supplierTaxPoint = #{supplierTaxPoint},
+            </if>
+            <if test="endTimeStr != null and endTimeStr !=''">
+                endTimeStr = #{endTimeStr},
+            </if>
+            <if test="tags != null and tags !=''">
+                tags = #{tags},
+            </if>
+            <if test="recommendType != null and recommendType !=''">
+                recommendType = #{recommendType},
+            </if>
+            <if test="machineType != null and machineType !=''">
+                machineType = #{machineType},
+            </if>
+            <if test="includedTax != null and includedTax !=''">
+                includedTax = #{includedTax},
+            </if>
+            <if test="invoiceType != null and invoiceType !=''">
+                invoiceType = #{invoiceType},
+            </if>
+            <if test="commodityType != null and commodityType != ''">
+                commodityType = #{commodityType},
+            </if>
+            <if test="trainingMethod != null">
+                trainingMethod = #{trainingMethod},
+            </if>
+            <if test="trainingType != null">
+                trainingType = #{trainingType},
+            </if>
+            <if test="trainingFee != null">
+                trainingFee = #{trainingFee},
+            </if>
+
+            <if test="newProductType ==2">
+                newvalidFlag=null,
+            </if>
+            <if test="qualificationNo != null and qualificationNo != ''">
+                qualificationNo = #{qualificationNo},
+            </if>
+            <if test="productName != null and productName != ''">
+                productName = #{productName},
+            </if>
+            <if test="qualificationTime != null and qualificationTime != ''">
+                qualificationTime = #{qualificationTime},
+            </if>
+            <if test="qualificationLink != null and qualificationLink != ''">
+                qualificationLink = #{qualificationLink},
+            </if>
+            newProductType=#{newProductType},
+            showFlag=#{showFlag},
+            announType=#{announType},
+            splitCode = #{splitCode}
+        </set>
+        where productID = #{productID}
+    </update>
+    <update id="updateproductDetailInfo" parameterType="com.caimei.modules.product.entity.ProductDetailInfo">
+        update productdetailinfo
+        <set>
+            <if test="propValueAlias != null and propValueAlias != ''">
+                propValueAlias = #{propValueAlias},
+            </if>
+            <if test="propValueImages != null and propValueImages !=''">
+                propValueImages = #{propValueImages},
+            </if>
+            <if test="detailInfo != null">
+                detailInfo = #{detailInfo},
+            </if>
+            <if test="commonDetailInfo != null">
+                commonDetailInfo = #{commonDetailInfo},
+            </if>
+            <if test="detailInfoTxt != null">
+                detailInfoTxt = #{detailInfoTxt},
+            </if>
+            <if test="seoTitle != null and seoTitle !=''">
+                seoTitle = #{seoTitle},
+            </if>
+            <if test="seoKeyword != null and seoKeyword !=''">
+                seoKeyword = #{seoKeyword},
+            </if>
+            <if test="seoDes != null and seoDes !=''">
+                seoDes = #{seoDes},
+            </if>
+            <if test="serviceInfo != null ">
+                serviceInfo = #{serviceInfo},
+            </if>
+            <if test="orderInfo != null ">
+                orderInfo = #{orderInfo},
+            </if>
+        </set>
+        where productID = #{productID}
+    </update>
+    <update id="updateLadderPrice">
+        update product_ladder_price
+        set productId  = #{productId},
+            ladderNum  = #{ladderNum},
+            buyNum     = #{buyNum},
+            buyPrice   = #{buyPrice},
+            updateBy   = #{updateBy},
+            updateDate = #{updateDate},
+            delFlag    = #{delFlag}
+        where id = #{id}
+    </update>
+    <update id="updateMainImage">
+        update product
+        set mainImage =#{mainImage}
+        where productID = #{productID}
+    </update>
+
+    <select id="getProductByTypeName" resultType="com.caimei.modules.brand.entity.BrandAndProductType">
+        select b.name   AS "bigTypeName",
+               b.bigTypeID,
+               s.`name` AS "smallTypeName",
+               s.smalltypeID,
+               t.name   AS "tinyTypeName",
+               t.tinytypeID
+        from tinytype t
+                 LEFT JOIN smalltype s on t.smallTypeID = s.smallTypeID
+                 LEFT JOIN bigtype b ON b.bigTypeID = s.bigTypeID
+        where b.`name` = #{name}
+          AND s.`name` = #{name1}
+          AND t.name = #{name2}
+    </select>
+
+    <select id="findRecommendBySys" resultType="com.caimei.modules.product.entity.CmProductRecommend">
+        select p.productID AS recommendProductID,
+               p.name      AS productName,
+               p.unit      AS unit,
+               p.mainImage AS img,
+               s.name      AS shopName
+        from product p
+                 left join shop s on s.shopID = p.shopID
+        where p.tinyTypeID = #{tinyTypeID}
+          and p.productCategory = 1
+        order by p.sellNumber
+                desc
+        limit 0, 7
+    </select>
+
+    <select id="getSecondHandRecommend" resultType="CmSecondHandRecommendVo">
+        select p.productID       AS id,
+               1                 AS type,
+               p.name            AS name,
+               p.unit            AS unit,
+               p.mainImage       AS img,
+               s.name            AS shopName,
+               p.productCategory as "productCategory"
+        from product p
+                 left join shop s on s.shopID = p.shopID
+        where p.productID = #{productID}
+          AND p.validFlag = '2'
+    </select>
+
+    <select id="querySecondHandRecommend" resultType="CmSecondHandRecommendVo">
+        select
+        p.productID AS id,
+        1 AS type,
+        p.name AS name,
+        p.unit AS unit,
+        p.mainImage AS img,
+        s.name AS shopName,
+        p.productCategory as "productCategory"
+        from product p
+        left join shop s on s.shopID = p.shopID
+        <where>
+            <if test="productID != null and productID != ''">
+                p.productID = #{productID}
+            </if>
+            <if test="productName != null and productName != ''">
+                and p.name like concat('%', #{productName} ,'%')
+            </if>
+            AND p.validFlag = '2'
+            and p.productCategory = #{queryProductType}
+        </where>
+        limit 0, 10
+    </select>
+    <select id="queryProductDetailInfo" resultType="com.caimei.modules.product.entity.ProductDetailInfo">
+        SELECT *
+        FROM productdetailinfo
+        where productID = #{productID}
+    </select>
+    <select id="findProductLadderPrice" resultType="com.caimei.po.ProductLadderPrice">
+        SELECT *
+        FROM product_ladder_price
+        WHERE productId = #{productId}
+          AND userType = #{userType}
+          AND buyNum is NOT null
+          AND buyPrice is NOT null
+          AND delFlag = 0
+        ORDER BY ladderNum ASC
+    </select>
+    <select id="findActList" resultType="com.caimei.modules.product.entity.Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="productJoins"/>
+        <where>
+            <if test="id !=null and id !=''">
+                AND a.productID=#{id}
+            </if>
+            <if test="shopID != null and shopID != ''">
+                AND a.shopID = #{shopID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND s.name LIKE
+                <if test="dbName == 'oracle'">'%'||#{shopName}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{shopName}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{shopName},'%')</if>
+            </if>
+            <if test="validFlag !=null and validFlag !=''">
+                AND a.validFlag=#{validFlag}
+            </if>
+            <if test="actFlag !=null and actFlag !=''">
+                AND a.actFlag=#{actFlag}
+            </if>
+            <if test="actType !=null and actType !=''">
+                AND a.actType=#{actType}
+            </if>
+            AND a.actStatus = 1
+            and a.productCategory = 1
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                order by case WHEN a.validFlag = 1 then 0 else 1 END asc,a.productID desc
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="findAllProduct" resultType="com.caimei.modules.product.entity.Product">
+        select p.productID,p.mainImage,p.name,s.name as shopName from product p left join shop s on p.shopID = s.shopID
+        <where>
+            (p.actFlag=0 or p.actType is null) and p.validFlag = 2 and p.productCategory = 1
+            <if test="productIds != null and productIds != '' ">
+                and p.productID != #{productIds}
+            </if>
+            <if test="productID != null and productID != ''">
+                and p.productID = #{productID}
+            </if>
+            <if test="name != null and name != ''">
+                and p.name like concat('%',#{name},'%')
+            </if>
+            <if test="shopName != null and shopName != ''">
+                and s.name like concat('%',#{shopName},'%')
+            </if>
+        </where>
+        order by productID asc
+    </select>
+
+    <select id="findProductImage" resultType="com.caimei.modules.product.entity.Product">
+        SELECT
+        <include refid="productColumns"/>
+        FROM product a
+        <include refid="productJoins"/>
+        <where>
+            <if test="productID !=null">
+                AND a.productID=#{productID}
+            </if>
+            <if test="shopID != null and shopID != ''">
+                AND a.shopID = #{shopID}
+            </if>
+            <if test="name != null and name != ''">
+                AND a.name LIKE concat('%',#{name},'%')
+            </if>
+            <if test="shopName != null and shopName != ''">
+                AND s.name LIKE concat('%',#{shopName},'%')
+            </if>
+            <if test="validFlag !=null and validFlag !=''">
+                AND a.validFlag=#{validFlag}
+            </if>
+            <if test="productCategory !=null and productCategory !=''">
+                AND a.productCategory=#{productCategory}
+            </if>
+            <if test="ids != null and ids.size() > 0">
+                AND a.productID NOT IN
+                <foreach collection="ids" close=")" separator="," open="(" item="id">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                order by a.productID asc
+            </otherwise>
+        </choose>
+    </select>
+    <select id="findProductDetail" resultType="java.lang.String">
+        select productDetail
+        from product
+        where productID = #{productID}
+    </select>
+    <select id="findProductDescribe" resultType="java.lang.String">
+        select productDescribe
+        from product
+        where productID = #{productID}
+    </select>
+    <select id="findSepcialShopList" resultType="com.caimei.modules.product.entity.CmShop">
+        select name, shopID
+        from shop
+        where shopType = 2
+    </select>
     <select id="getSplitCodeByProductId" resultType="java.lang.String">
-		select splitCode from product where productID = #{productID}
-	</select>
-	<select id="findSplitCodesByShopId" resultType="com.caimei.modules.product.entity.CmSplitCode">
-		select shopId,commercialCode as splitCode,codeDetail as codeName,email
-		from cm_shop_splitcode
-		where shopId = #{shopID}
-	</select>
+        select splitCode
+        from product
+        where productID = #{productID}
+    </select>
+    <select id="findSplitCodesByShopId" resultType="com.caimei.modules.product.entity.CmSplitCode">
+        select shopId, commercialCode as splitCode, codeDetail as codeName, email
+        from cm_shop_splitcode
+        where shopId = #{shopID}
+    </select>
 </mapper>

+ 2 - 0
src/main/webapp/WEB-INF/views/modules/product-new/productEdit.jsp

@@ -524,12 +524,14 @@
             </td>
 
         </tr>
+        <c:if test="${product.productType ==2}">
         <tr class="machineType">
             <th><span class="red">*</span>证书编号:</th>
             <td colspan="1">
                 <form:input path="qualificationNo" maxlength="50" class="input-small required"/>
             </td>
         </tr>
+        </c:if>
         <tr class="machineType">
             <th><span class="red">*</span>产品名称:</th>
             <td colspan="2">