|
|
@@ -1,9 +1,12 @@
|
|
|
package modules.user;
|
|
|
|
|
|
+import com.jfinal.kit.StrKit;
|
|
|
import com.jfinal.plugin.activerecord.Db;
|
|
|
import common.model.User;
|
|
|
import common.utils.http.MyRet;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
public class UserService {
|
|
|
public String hello() {
|
|
|
return "Hello User";
|
|
|
@@ -57,7 +60,7 @@ public class UserService {
|
|
|
}
|
|
|
|
|
|
public User findUserByMobileNumber(String MobileNumber) {
|
|
|
- String columns = "id, nickname, mobile_number, role, referrer_id, integral, create_time, update_time, is_deleted";
|
|
|
+ String columns = "id, nickname, mobile_number, role, referrer_id, integral, login_time, create_time, update_time, is_deleted";
|
|
|
String sql = "select " + columns + " from t_user where mobile_number = ?";
|
|
|
|
|
|
return User.dao.findFirst(sql, MobileNumber);
|
|
|
@@ -66,4 +69,40 @@ public class UserService {
|
|
|
public boolean isUserExists(String mobileNumber) {
|
|
|
return Db.queryLong("SELECT COUNT(1) FROM t_user WHERE mobile_number = ?", mobileNumber) > 0;
|
|
|
}
|
|
|
+
|
|
|
+ public Integer count() {
|
|
|
+ return Db.queryInt("SELECT COUNT(1) FROM t_user");
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<User> users(int pageNumber, int pageSize, String keywords) {
|
|
|
+ // limit 的第一个参数是偏移量,第二个参数是查询数量
|
|
|
+ // 正确的 limit 是 LIMIT offset, count
|
|
|
+ // offset = (pageNumber - 1) * pageSize
|
|
|
+ // count = pageSize
|
|
|
+ System.out.println(pageNumber);
|
|
|
+ System.out.println(pageSize);
|
|
|
+ int offset = (pageNumber - 1) * pageSize;
|
|
|
+
|
|
|
+ String searchKeyWord = "%" + keywords + "%";
|
|
|
+ String columns = "id, nickname, mobile_number, role, referrer_id, integral, login_time, create_time, update_time, is_deleted";
|
|
|
+
|
|
|
+ // SQL 语句构建修正
|
|
|
+ // 基础 SQL 部分:SELECT ... FROM ... ORDER BY ... LIMIT
|
|
|
+ String baseSql = "select " + columns + " from t_user order by login_time desc limit ?, ?";
|
|
|
+
|
|
|
+ // 包含搜索条件的 WHERE 子句
|
|
|
+ String whereClause = " where id like ? or nickname like ? or mobile_number like ?"; // 注意 id 的模糊查询
|
|
|
+
|
|
|
+ // 如果没有关键词,只使用基础 SQL
|
|
|
+ if (StrKit.isBlank(keywords)) {
|
|
|
+ return User.dao.find(baseSql, offset, pageSize);
|
|
|
+ } else {
|
|
|
+ // 如果有关键词,将 WHERE 子句插入到 ORDER BY 前面
|
|
|
+ // 完整的 SQL 结构应该是:SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT
|
|
|
+ String fullSql = "select " + columns + " from t_user " + whereClause + " order by login_time desc limit ?, ?";
|
|
|
+
|
|
|
+ // 参数顺序:先是 WHERE 子句的参数,然后是 LIMIT 的参数
|
|
|
+ return User.dao.find(fullSql, searchKeyWord, searchKeyWord, searchKeyWord, offset, pageSize);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|