CrmCustomerVisitMapper.xml 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.fs.crm.mapper.CrmCustomerVisitMapper">
  6. <resultMap type="CrmCustomerVisit" id="CrmCustomerVisitResult">
  7. <result property="visitId" column="visit_id" />
  8. <result property="customerId" column="customer_id" />
  9. <result property="visitType" column="visit_type" />
  10. <result property="content" column="content" />
  11. <result property="photos" column="photos" />
  12. <result property="nextTime" column="next_time" />
  13. <result property="lng" column="lng" />
  14. <result property="lat" column="lat" />
  15. <result property="address" column="address" />
  16. <result property="companyUserId" column="company_user_id" />
  17. <result property="createTime" column="create_time" />
  18. <result property="companyId" column="company_id" />
  19. <result property="customerUserStatus" column="customer_user_status" />
  20. </resultMap>
  21. <sql id="selectCrmCustomerVisitVo">
  22. select visit_id, customer_id, visit_type, content, photos, next_time, lng, lat, address, company_user_id, create_time, company_id,customer_user_status from crm_customer_visit
  23. </sql>
  24. <select id="selectCrmCustomerVisitList" parameterType="CrmCustomerVisit" resultMap="CrmCustomerVisitResult">
  25. <include refid="selectCrmCustomerVisitVo"/>
  26. <where>
  27. <if test="customerId != null "> and customer_id = #{customerId}</if>
  28. <if test="visitType != null "> and visit_type = #{visitType}</if>
  29. <if test="content != null and content != ''"> and content = #{content}</if>
  30. <if test="photos != null and photos != ''"> and photos = #{photos}</if>
  31. <if test="nextTime != null "> and next_time = #{nextTime}</if>
  32. <if test="lng != null and lng != ''"> and lng = #{lng}</if>
  33. <if test="lat != null and lat != ''"> and lat = #{lat}</if>
  34. <if test="address != null and address != ''"> and address = #{address}</if>
  35. <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
  36. <if test="companyId != null "> and company_id = #{companyId}</if>
  37. <if test="customerUserStatus != null "> and customer_user_status = #{customerUserStatus}</if>
  38. </where>
  39. </select>
  40. <select id="selectCrmCustomerVisitById" parameterType="Long" resultMap="CrmCustomerVisitResult">
  41. <include refid="selectCrmCustomerVisitVo"/>
  42. where visit_id = #{visitId}
  43. </select>
  44. <insert id="insertCrmCustomerVisit" parameterType="CrmCustomerVisit" useGeneratedKeys="true" keyProperty="visitId">
  45. insert into crm_customer_visit
  46. <trim prefix="(" suffix=")" suffixOverrides=",">
  47. <if test="customerId != null">customer_id,</if>
  48. <if test="visitType != null">visit_type,</if>
  49. <if test="content != null">content,</if>
  50. <if test="photos != null">photos,</if>
  51. <if test="nextTime != null">next_time,</if>
  52. <if test="lng != null">lng,</if>
  53. <if test="lat != null">lat,</if>
  54. <if test="address != null">address,</if>
  55. <if test="companyUserId != null">company_user_id,</if>
  56. <if test="createTime != null">create_time,</if>
  57. <if test="companyId != null">company_id,</if>
  58. <if test="customerUserStatus != null">customer_user_status,</if>
  59. </trim>
  60. <trim prefix="values (" suffix=")" suffixOverrides=",">
  61. <if test="customerId != null">#{customerId},</if>
  62. <if test="visitType != null">#{visitType},</if>
  63. <if test="content != null">#{content},</if>
  64. <if test="photos != null">#{photos},</if>
  65. <if test="nextTime != null">#{nextTime},</if>
  66. <if test="lng != null">#{lng},</if>
  67. <if test="lat != null">#{lat},</if>
  68. <if test="address != null">#{address},</if>
  69. <if test="companyUserId != null">#{companyUserId},</if>
  70. <if test="createTime != null">#{createTime},</if>
  71. <if test="companyId != null">#{companyId},</if>
  72. <if test="customerUserStatus != null">#{customerUserStatus},</if>
  73. </trim>
  74. </insert>
  75. <update id="updateCrmCustomerVisit" parameterType="CrmCustomerVisit">
  76. update crm_customer_visit
  77. <trim prefix="SET" suffixOverrides=",">
  78. <if test="customerId != null">customer_id = #{customerId},</if>
  79. <if test="visitType != null">visit_type = #{visitType},</if>
  80. <if test="content != null">content = #{content},</if>
  81. <if test="photos != null">photos = #{photos},</if>
  82. <if test="nextTime != null">next_time = #{nextTime},</if>
  83. <if test="lng != null">lng = #{lng},</if>
  84. <if test="lat != null">lat = #{lat},</if>
  85. <if test="address != null">address = #{address},</if>
  86. <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
  87. <if test="createTime != null">create_time = #{createTime},</if>
  88. <if test="companyId != null">company_id = #{companyId},</if>
  89. <if test="customerUserStatus != null">customer_user_status = #{customerUserStatus},</if>
  90. </trim>
  91. where visit_id = #{visitId}
  92. </update>
  93. <delete id="deleteCrmCustomerVisitById" parameterType="Long">
  94. delete from crm_customer_visit where visit_id = #{visitId}
  95. </delete>
  96. <delete id="deleteCrmCustomerVisitByIds" parameterType="String">
  97. delete from crm_customer_visit where visit_id in
  98. <foreach item="visitId" collection="array" open="(" separator="," close=")">
  99. #{visitId}
  100. </foreach>
  101. </delete>
  102. <select id="selectCrmCustomerVisitCounts" resultType="com.alibaba.fastjson.JSONObject">
  103. SELECT ifnull(count( distinct t.customer_id),0) AS customerCount, t.type, ifnull(count(t.visit_id),0) AS visitCount
  104. FROM
  105. (
  106. SELECT DATE_FORMAT(v.create_time, #{sqlDateFormat} ) AS type, v.visit_id,v.customer_id
  107. FROM
  108. crm_customer_visit AS v
  109. WHERE
  110. (DATE_FORMAT(v.create_time,#{sqlDateFormat}) between #{beginTime} and #{finalTime})
  111. AND v.company_user_id IN
  112. <foreach item="item" collection="userIds" open="(" separator="," close=")">
  113. #{item}
  114. </foreach>
  115. ) t
  116. GROUP BY t.type
  117. </select>
  118. </mapper>