package com.example.demo.mapper; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.UserVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.math.BigDecimal; import java.util.List; @Mapper public interface UserMapper { @Select({ "" }) User select(String user); @Select({ "" }) User get(String jwcode); @Select({ "SELECT\n" + " u.*,\n" + " MIN(d.create_time) AS first_recharge_date, \n" + " SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END) AS total_recharge_gold, \n" + " SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS total_spend_gold, \n" + " COUNT(CASE WHEN d.update_type = '充值' THEN 1 END) AS recharge_times, \n" + " COUNT(CASE WHEN d.update_type = '消费' THEN 1 END) AS spend_times, \n" + " COUNT(CASE WHEN a.status = 0 AND d.update_type = '充值' THEN 1 END) AS pending_recharge_times, \n" + " COUNT(CASE WHEN a.status = 0 AND d.update_type = '消费' THEN 1 END) AS pending_spend_times \n" + "FROM\n" + " user u\n" + "LEFT JOIN\n" + " detail d ON u.jwcode = d.jwcode\n" + "LEFT JOIN\n" + " audit a ON d.detail_id = a.detail_id AND a.audit_flag = 1\n" + "WHERE\n" + " d.detail_flag = 1 AND u.jwcode =#{jwcode}\n" + "GROUP BY\n" + " u.jwcode, u.name" }) List selectA(UserVo userVo); @Select({ "" }) List selectAll(User user); @Select({ "select * from user where name=#{name}" }) User selectByName(String name); @Update({ "", }) int update(User user); @Select({ "select * from user where jwcode=#{jwode}" }) User selectByJwcode(String jwcode);// //去掉免费金币,先去6个月,再去12月 // @Update({ // "", // }) // int updatecoin(); }