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();
}