金币系统后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.4 KiB

  1. package com.example.demo.mapper;
  2. import com.example.demo.domain.entity.User;
  3. import com.example.demo.domain.vo.UserVo;
  4. import org.apache.ibatis.annotations.Mapper;
  5. import org.apache.ibatis.annotations.Select;
  6. import org.apache.ibatis.annotations.Update;
  7. import java.math.BigDecimal;
  8. import java.util.List;
  9. @Mapper
  10. public interface UserMapper {
  11. @Select({
  12. "<script>",
  13. "select * from user",
  14. "<where>",
  15. "<if test='jwcode!=null and jwcode.length>0'>and jwcode=#{jwcode}</if>",
  16. "</where>",
  17. "</script>"
  18. })
  19. User select(String user);
  20. @Select({
  21. "<script>",
  22. "select * from user",
  23. "<where>",
  24. "<if test='jwcode!=null and jwcode.length>0'>and jwcode=#{jwcode}</if>",
  25. "</where>",
  26. "</script>"
  27. })
  28. User get(String jwcode);
  29. @Select({
  30. "SELECT\n" +
  31. " u.*,\n" +
  32. " MIN(d.create_time) AS first_recharge_date, \n" +
  33. " SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END) AS total_recharge_gold, \n" +
  34. " SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS total_spend_gold, \n" +
  35. " COUNT(CASE WHEN d.update_type = '充值' THEN 1 END) AS recharge_times, \n" +
  36. " COUNT(CASE WHEN d.update_type = '消费' THEN 1 END) AS spend_times, \n" +
  37. " COUNT(CASE WHEN a.status = 0 AND d.update_type = '充值' THEN 1 END) AS pending_recharge_times, \n" +
  38. " COUNT(CASE WHEN a.status = 0 AND d.update_type = '消费' THEN 1 END) AS pending_spend_times \n" +
  39. "FROM\n" +
  40. " user u\n" +
  41. "LEFT JOIN\n" +
  42. " detail d ON u.jwcode = d.jwcode\n" +
  43. "LEFT JOIN\n" +
  44. " audit a ON d.detail_id = a.detail_id AND a.audit_flag = 1\n" +
  45. "WHERE\n" +
  46. " d.detail_flag = 1 AND u.jwcode =#{jwcode}\n" +
  47. "GROUP BY\n" +
  48. " u.jwcode, u.name"
  49. })
  50. List<UserVo> selectA(UserVo userVo);
  51. @Select({
  52. "<script>",
  53. "select * from user",
  54. "<where>",
  55. "<if test='jwcode!=null and jwcode.length>0'>and jwcode=#{jwcode}</if>",
  56. "</where>",
  57. "</script>"
  58. })
  59. List<User> selectAll(User user);
  60. @Select({
  61. "select * from user where name=#{name}"
  62. })
  63. User selectByName(String name);
  64. @Update({
  65. "<script>",
  66. "update user",
  67. "<set>",
  68. "<if test='buyJb!=null'>buy_jb=#{buyJb},</if>",
  69. "<if test='coreJb!=null'>core_jb=#{coreJb},</if>",
  70. "<if test='free6!=null'>free_6=#{free6},</if>",
  71. "<if test='free12!=null'>free_12=#{free12},</if>",
  72. "</set>",
  73. "where jwcode=#{jwcode}",
  74. "</script>",
  75. })
  76. int update(User user);
  77. // //去掉免费金币,先去6个月,再去12月
  78. // @Update({
  79. // "<script>",
  80. // "update user",
  81. // "<set>",
  82. // "<if test='Free6!=null'>free_6=#{Free6},</if>",
  83. // "<if test='Free12!=null'>free_12=#{Free12},</if>",
  84. // "</set>",
  85. // "where jwcode=#{jwcode}",
  86. // "</script>",
  87. // })
  88. // int updatecoin();
  89. }