UserInfoMapper.xml 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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.zsElectric.boot.business.mapper.UserInfoMapper">
  4. <!-- 获取个人用户信息分页列表 -->
  5. <select id="getUserInfoPage" resultType="com.zsElectric.boot.business.model.vo.UserInfoVO">
  6. SELECT
  7. ui.id,
  8. ui.nick_name,
  9. fi.name AS firmName,
  10. ui.phone,
  11. ui.openid,
  12. IFNULL(ua.balance, 0) AS balance,
  13. IFNULL(log.total_consumption, 0) AS totalConsumption,
  14. ui.create_time
  15. FROM
  16. c_user_info ui
  17. LEFT JOIN c_user_firm uf ON uf.user_id = ui.id AND uf.is_deleted = 0
  18. LEFT JOIN c_firm_info fi ON fi.id = uf.firm_id AND fi.is_deleted = 0
  19. LEFT JOIN c_user_account ua ON ua.user_id = ui.id AND ua.is_deleted = 0
  20. LEFT JOIN (
  21. SELECT user_id, SUM(IFNULL(change_balance, 0)) AS total_consumption
  22. FROM c_user_account_log
  23. WHERE is_deleted = 0 AND change_type = 1
  24. GROUP BY user_id
  25. ) log ON ui.id = log.user_id
  26. <where>
  27. ui.is_deleted = 0
  28. <if test="queryParams.phone != null and queryParams.phone != ''">
  29. AND ui.phone LIKE CONCAT('%', #{queryParams.phone}, '%')
  30. </if>
  31. <if test="queryParams.firmId != null">
  32. AND uf.firm_id = #{queryParams.firmId}
  33. </if>
  34. </where>
  35. <choose>
  36. <when test="queryParams.sortField == 'balance' and queryParams.sortOrder == 'ascending'">
  37. ORDER BY balance ASC
  38. </when>
  39. <when test="queryParams.sortField == 'balance' and queryParams.sortOrder == 'descending'">
  40. ORDER BY balance DESC
  41. </when>
  42. <when test="queryParams.sortField == 'totalConsumption' and queryParams.sortOrder == 'ascending'">
  43. ORDER BY totalConsumption ASC
  44. </when>
  45. <when test="queryParams.sortField == 'totalConsumption' and queryParams.sortOrder == 'descending'">
  46. ORDER BY totalConsumption DESC
  47. </when>
  48. <otherwise>
  49. ORDER BY ui.create_time DESC
  50. </otherwise>
  51. </choose>
  52. </select>
  53. <select id="getAppletUserInfo" resultType="com.zsElectric.boot.business.model.vo.applet.AppUserInfoVO">
  54. SELECT
  55. ui.id AS appletUserId,
  56. ui.nick_name,
  57. ui.phone,
  58. ui.openid,
  59. ua.integral,
  60. ua.balance,
  61. ua.redeem_balance,
  62. (ua.balance + ua.redeem_balance) AS accountBalance,
  63. uf.firm_id,
  64. uf.type AS firmUserType,
  65. fi.name AS firmName
  66. FROM
  67. c_user_info ui
  68. LEFT JOIN c_user_account ua ON ui.id = ua.user_id
  69. LEFT JOIN c_user_firm uf ON ui.id = uf.user_id
  70. LEFT JOIN c_firm_info fi ON uf.firm_id = fi.id
  71. WHERE
  72. ui.is_deleted = 0
  73. AND ui.id = #{userId}
  74. </select>
  75. </mapper>