浏览代码

Merge remote-tracking branch 'origin/developerH' into developerH

# Conflicts:
#	src/main/resources/mappings/modules/product/ProductMapper.xml
Duan_xu 2 年之前
父节点
当前提交
d71b6229f9
共有 1 个文件被更改,包括 1797 次插入1852 次删除
  1. 1797 1852
      src/main/resources/mappings/modules/product/ProductMapper.xml

+ 1797 - 1852
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,335 +95,320 @@
         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,
-        <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)
+                            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)
         VALUES (#{brandID},
         #{bigTypeID},
         #{smallTypeID},
@@ -514,1526 +499,1486 @@
         #{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},
-                #{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="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>
-            <if test="newProductType ==2">
-                newvalidFlag=null,
-            </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="qualification" resultType="com.caimei.modules.product.entity.Product">
-        SELECT productType,qualificationNo,productName,qualificationTime,qualificationLink FROM product
-        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>
+	<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},
+					 #{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>
+			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>