代码
Dao层
public Result userxfz() {
String sql = "select u.username,IFNULL(sum(o.money),0)\n" +
"from `user` u LEFT JOIN `order` o\n" +
"ON u.userid = o.userid\n" +
"GROUP BY u.username ";
List<Map<String, Object>> listmap = DB.getListMap(sql);
return new Result(listmap);
}
public Result usermoney(double money) {
String sql = "select * from ";
if (checkNotEmpty(money)) {
sql += " `user` u INNER JOIN `order` o \n" +
"ON u.userid =o.userid GROUP BY u.username HAVING sum(o.money) > " + money;
}
System.out.println(sql);
List<Map<String, Object>> listmap = DB.getListMap(sql);
return new Result(listmap);
}
public Result userpage(int pagesize ,int pagenum) {
String sql = "SELECT * FROM (select * from user ORDER BY regTime DESC ) n ORDER BY age DESC ";
if (checkNotEmpty(pagenum)&&checkNotEmpty(pagesize)) {
sql += " limit "+((pagenum-1)*pagesize)+"," + pagesize;
}
System.out.println(sql);
List<Map<String, Object>> listmap = DB.getListMap(sql);
return new Result(listmap);
}
public Result orderdays(int days) {
String sql = "select * from `order` where 1 = 1 ";
if (checkNotEmpty(days)) {
sql += " and TO_DAYS(NOW()) - TO_DAYS(addTime) <= " + days;
}
List<Map<String, Object>> listmap = DB.getListMap(sql, 1);
return new Result(listmap);
}
Api层
@Ann(path = "admin/company/my/userxfz", title = "用户消费总金额")
public Result userxfz(ServerApi api){
return new UserDAO().userxfz();
}
@Ann(path = "admin/company/my/usersmoney", title = "用户金额表")
public Result userlist(ServerApi api,
@Par(nec = false, ds = "用户消费金额") double money
) {
return new UserDAO().usermoney(money);
}
@Ann(path = "admin/company/my/userspage", title = "用户分页")
public Result userpage(ServerApi api,
@Par(nec = true, ds = "分页大小") int pagesize,
@Par(nec = true, ds = "第几页") int pagenum
) {
return new UserDAO().userpage(pagesize,pagenum);
}
@Ann(path = "admin/company/my/ordersday", title = "n天内的订单")
public Result orderday(ServerApi api,
@Par(nec = false, ds = "天数") int days
) {
return new OrderDAO().orderdays(days);
}
sql
升序年龄,降序时间
– SELECT * FROM (select * from user ORDER BY age DESC) n ORDER BY regTime ASC
– select * from order
limit (第n+1页面-1)*每页大小,每页大小
– SELECT * FROM order
WHERE TO_DAYS(NOW()) - TO_DAYS(addTime) <= 7; 查询7天内的数据
统计金额,为空的用户补为0
– select u.username,IFNULL(sum(o.money),0)
– from user
u RIGHT JOIN order
o
– ON u.userid = o.userid
– GROUP BY u.username
Idea的Web项目配置链接
[link]:时空门
其他
1.01的365次方=37.78343433289 >>>1;
1的365次方=1;
0.99的365次方= 0.02551796445229 <<<1;