PmsProductDao.xml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.yonge.cooleshow.admin.dao.PmsProductDao">
  4. <resultMap id="updateInfoMap" type="com.yonge.cooleshow.admin.dto.PmsProductResult" extends="com.yonge.cooleshow.mbg.mapper.PmsProductMapper.ResultMapWithBLOBs">
  5. <result column="cateParentId" jdbcType="BIGINT" property="cateParentId" />
  6. <collection property="productLadderList" columnPrefix="ladder_" resultMap="com.yonge.cooleshow.mbg.mapper.PmsProductLadderMapper.BaseResultMap">
  7. </collection>
  8. <collection property="productFullReductionList" columnPrefix="full_" resultMap="com.yonge.cooleshow.mbg.mapper.PmsProductFullReductionMapper.BaseResultMap">
  9. </collection>
  10. <collection property="memberPriceList" columnPrefix="member_" resultMap="com.yonge.cooleshow.mbg.mapper.PmsMemberPriceMapper.BaseResultMap">
  11. </collection>
  12. <collection property="skuStockList" columnPrefix="sku_" resultMap="com.yonge.cooleshow.mbg.mapper.PmsSkuStockMapper.BaseResultMap">
  13. </collection>
  14. <collection property="productAttributeValueList" columnPrefix="attribute_" resultMap="com.yonge.cooleshow.mbg.mapper.PmsProductAttributeValueMapper.BaseResultMap">
  15. </collection>
  16. <collection property="subjectProductRelationList" column="{productId=id}" select="selectSubjectProductRelationByProductId"/>
  17. <collection property="prefrenceAreaProductRelationList" column="{productId=id}" select="selectPrefrenceAreaProductRelationByProductId"/>
  18. </resultMap>
  19. <select id="getUpdateInfo" resultMap="updateInfoMap">
  20. SELECT *,
  21. pc.parent_id cateParentId,
  22. l.id ladder_id,l.product_id ladder_product_id,l.discount ladder_discount,l.count ladder_count,l.price ladder_price,
  23. pf.id full_id,pf.product_id full_product_id,pf.full_price full_full_price,pf.reduce_price full_reduce_price,
  24. m.id member_id,m.product_id member_product_id,m.member_level_id member_member_level_id,m.member_price member_member_price,m.member_level_name member_member_level_name,
  25. s.id as sku_id,s.product_id sku_product_id,s.price sku_price,s.low_stock sku_low_stock,s.pic sku_pic,s.sale sku_sale,s.sku_code sku_sku_code,s.stock sku_stock,s.sp_data sku_sp_data,s.platform_lock sku_platform_lock,
  26. a.id attribute_id,a.product_id attribute_product_id,a.product_attribute_id attribute_product_attribute_id,a.value attribute_value
  27. FROM pms_product p
  28. LEFT JOIN pms_product_category pc on pc.id = p.product_category_id
  29. LEFT JOIN pms_product_ladder l ON p.id = l.product_id
  30. LEFT JOIN pms_product_full_reduction pf ON pf.product_id=p.id
  31. LEFT JOIN pms_member_price m ON m.product_id = p.id
  32. LEFT JOIN pms_sku_stock s ON s.product_id = p.id
  33. LEFT JOIN pms_product_attribute_value a ON a.product_id=p.id
  34. WHERE p.id=#{id};
  35. </select>
  36. <select id="selectSubjectProductRelationByProductId" resultMap="com.yonge.cooleshow.mbg.mapper.CmsSubjectProductRelationMapper.BaseResultMap">
  37. select * from cms_subject_product_relation where product_id=#{productId}
  38. </select>
  39. <select id="selectPrefrenceAreaProductRelationByProductId" resultMap="com.yonge.cooleshow.mbg.mapper.CmsPrefrenceAreaProductRelationMapper.BaseResultMap">
  40. select * from cms_prefrence_area_product_relation where product_id=#{productId}
  41. </select>
  42. <select id="selectLowStockCount" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
  43. select DISTINCT count(pp.id) as outStockProduct,
  44. count(pp.id) as outStock
  45. from
  46. pms_product pp
  47. left join
  48. (select DISTINCT pss.product_id
  49. from pms_sku_stock pss
  50. where pss.stock &lt;= pss.low_stock) b
  51. on b.product_id = pp.id
  52. where (pp.stock &lt;= pp.low_stock or b.product_id is not null) and pp.delete_status = 0
  53. </select>
  54. <select id="selectProductShowStatusCount" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
  55. select
  56. sum(if(publish_status = 1,1,0)) as shelves,
  57. sum(if(publish_status = 1,0,1)) as delisted,
  58. count(0) as productNum
  59. from pms_product where delete_status = 0
  60. </select>
  61. <select id="list" resultMap="com.yonge.cooleshow.mbg.mapper.PmsProductMapper.BaseResultMap">
  62. select DISTINCT pp.*
  63. from
  64. pms_product pp
  65. <if test="param.stock != null">
  66. left join
  67. (select DISTINCT pss.product_id
  68. from pms_sku_stock pss
  69. where pss.stock &lt;= pss.low_stock) b
  70. on b.product_id = pp.id
  71. </if>
  72. <where>
  73. pp.delete_status = 0
  74. <if test="param.publishStatus != null">
  75. and pp.publish_status = #{param.publishStatus}
  76. </if>
  77. <if test="param.verifyStatus != null">
  78. and pp.verify_status = #{param.verifyStatus}
  79. </if>
  80. <if test="param.keyword != null">
  81. and pp.name like concat('%',#{param.keyword},'%')
  82. </if>
  83. <if test="param.productSn != null">
  84. and pp.product_sn = #{param.productSn}
  85. </if>
  86. <if test="param.brandId != null">
  87. and pp.brand_id = #{param.brandId}
  88. </if>
  89. <if test="param.productCategoryId != null">
  90. and pp.product_category_id = #{param.productCategoryId}
  91. </if>
  92. <if test="param.stock == 1">
  93. and (pp.stock &lt;= pp.low_stock or b.product_id is not null)
  94. </if>
  95. <if test="param.stock == 0">
  96. and (pp.stock &gt; pp.low_stock and b.product_id is null)
  97. </if>
  98. </where>
  99. order by pp.sort desc,pp.id desc
  100. </select>
  101. </mapper>