ProductMarketDataMapper.xml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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="cn.cslg.pas.mapper.ProductMarketDataMapper">
  4. <!--插入数据-->
  5. <!--int insert(ProductMarketData productMarketData);-->
  6. <insert id="insert" useGeneratedKeys="true" keyProperty="id">
  7. insert into product_market_data (product_id, sale_time, sale_area, sale_count, sale_money,
  8. custom_license_rate, create_person_id, create_person_name)
  9. values (#{productId}, #{saleTime}, #{saleArea}, #{saleCount}, #{saleMoney}, #{customLicenseRate},
  10. #{createPersonId}, #{createPersonName});
  11. </insert>
  12. <!--根据id删除数据-->
  13. <!--int deleteById(Integer id);-->
  14. <delete id="deleteById">
  15. delete
  16. from product_market_data
  17. where id = #{id}
  18. </delete>
  19. <!--根据id修改数据-->
  20. <!--int update(ProductMarketData productMarketData);-->
  21. <update id="update">
  22. update product_market_data
  23. <set>
  24. <if test="productId != null">
  25. product_id = #{productId},
  26. </if>
  27. sale_time = #{saleTime},
  28. sale_area = #{saleArea},
  29. sale_count = #{saleCount},
  30. sale_money = #{saleMoney},
  31. custom_license_rate = #{customLicenseRate},
  32. </set>
  33. where id = #{id}
  34. </update>
  35. <!--根据所属产品id、营销地区、营销时间统计数量-->
  36. <!--int countByProductIdSaleAreaSaleTime(Integer productId, String saleArea, Date saleTime);-->
  37. <select id="countByProductIdSaleAreaSaleTime" resultType="int">
  38. select count(*)
  39. from product_market_data
  40. <where>
  41. <if test="productId != null">
  42. and product_id = #{productId}
  43. </if>
  44. <if test="saleArea != null">
  45. and sale_area = #{saleArea}
  46. </if>
  47. <if test="saleTime != null">
  48. and sale_time = #{saleTime}
  49. </if>
  50. </where>
  51. </select>
  52. <!--根据id统计数量-->
  53. <!--int countById(Integer id);-->
  54. <select id="countById" resultType="int">
  55. select count(*)
  56. from product_market_data
  57. where id = #{id}
  58. </select>
  59. <!--分页查询数据-->
  60. <!--List<ProductMarketDataVO> query(ProductMarketDataQueryPageDTO productMarketDataQueryPageDTO);-->
  61. <select id="query" resultMap="queryMap">
  62. select id,
  63. product_id,
  64. sale_time,
  65. sale_area,
  66. sale_count,
  67. sale_money,
  68. custom_license_rate
  69. from product_market_data
  70. <where>
  71. <if test="productId != null">
  72. product_id = #{productId}
  73. </if>
  74. </where>
  75. order by
  76. <choose>
  77. <when test="orderBy != null and orderType != null">
  78. ${orderBy} ${orderType}
  79. </when>
  80. <otherwise>
  81. id desc
  82. </otherwise>
  83. </choose>
  84. </select>
  85. <resultMap id="queryMap" type="cn.cslg.pas.common.model.vo.ProductMarketDataVO">
  86. <id column="id" property="id"/>
  87. <result column="product_id" property="productId"/>
  88. <result column="sale_time" property="saleTime"/>
  89. <result column="sale_area" property="saleArea"/>
  90. <result column="sale_count" property="saleCount"/>
  91. <result column="sale_money" property="saleMoney"/>
  92. <result column="custom_license_rate" property="customLicenseRate"/>
  93. </resultMap>
  94. <resultMap id="queryByDateMap" type="cn.cslg.pas.common.model.vo.ProductMarketDataTrendVO">
  95. <result column="market_date" property="marketDate"/>
  96. <result column="sale_total_money" property="saleTotalMoney"/>
  97. <result column="custom_license_money" property="customLicenseMoney"/>
  98. </resultMap>
  99. <select id="queryByYear" resultMap="queryByDateMap">
  100. SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'年') AS market_date,
  101. sum(sale_money) AS sale_total_money,
  102. CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
  103. FROM product_market_data
  104. WHERE product_id = #{productId}
  105. <if test="saleArea != null and saleArea != ''">
  106. AND sale_Area = #{saleArea}
  107. </if>
  108. GROUP BY market_date
  109. </select>
  110. <select id="queryBySeason" resultMap="queryByDateMap">
  111. SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'年','第',QUARTER(CONCAT(sale_time,'-02')),'季度') AS market_date,
  112. sum(sale_money) AS sale_total_money,
  113. CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
  114. FROM product_market_data
  115. WHERE product_id = #{productId}
  116. <if test="saleArea != null and saleArea != ''">
  117. AND sale_Area = #{saleArea}
  118. </if>
  119. GROUP BY market_date
  120. </select>
  121. <select id="queryByMonth" resultMap="queryByDateMap">
  122. SELECT CONCAT(YEAR(CONCAT(sale_time,'-02')),'-',MONTH(CONCAT(sale_time,'-02'))) AS market_date,
  123. sum(sale_money) AS sale_total_money,
  124. CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
  125. FROM product_market_data
  126. WHERE product_id = #{productId}
  127. <if test="saleArea != null and saleArea != ''">
  128. AND sale_Area = #{saleArea}
  129. </if>
  130. GROUP BY market_date
  131. </select>
  132. </mapper>