|
@@ -1,13 +1,14 @@
|
|
package org.example.join.sql;
|
|
package org.example.join.sql;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import org.example.join.JoinMapper;
|
|
import org.example.join.JoinMapper;
|
|
|
|
|
|
|
|
+import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
-import java.util.Map;
|
|
|
|
|
|
|
|
@AllArgsConstructor
|
|
@AllArgsConstructor
|
|
public class SqlExecute<R> {
|
|
public class SqlExecute<R> {
|
|
@@ -17,12 +18,29 @@ public class SqlExecute<R> {
|
|
private final Sql<R> sql;
|
|
private final Sql<R> sql;
|
|
|
|
|
|
public List<R> list() {
|
|
public List<R> list() {
|
|
- List<Map<String, Object>> result = mapper.list(sql);
|
|
|
|
|
|
+ List<?> result;
|
|
|
|
+
|
|
|
|
+ if (String.class.isAssignableFrom(sql.resultCls)
|
|
|
|
+ || Number.class.isAssignableFrom(sql.resultCls)
|
|
|
|
+ || Date.class.isAssignableFrom(sql.resultCls)) {
|
|
|
|
+ result = mapper.listObj(sql);
|
|
|
|
+ } else {
|
|
|
|
+ result = mapper.listMap(sql);
|
|
|
|
+ }
|
|
|
|
+
|
|
return BeanUtil.copyToList(result, sql.resultCls);
|
|
return BeanUtil.copyToList(result, sql.resultCls);
|
|
}
|
|
}
|
|
|
|
|
|
public Page<R> page(Page<?> page) {
|
|
public Page<R> page(Page<?> page) {
|
|
- Page<Map<String, Object>> result = mapper.page(sql, page);
|
|
|
|
|
|
+ Page<?> result;
|
|
|
|
+
|
|
|
|
+ if (String.class.isAssignableFrom(sql.resultCls)
|
|
|
|
+ || Number.class.isAssignableFrom(sql.resultCls)
|
|
|
|
+ || Date.class.isAssignableFrom(sql.resultCls)) {
|
|
|
|
+ result = mapper.pageObj(sql, page);
|
|
|
|
+ } else {
|
|
|
|
+ result = mapper.pageMap(sql, page);
|
|
|
|
+ }
|
|
|
|
|
|
Page<R> rPage = new Page<>();
|
|
Page<R> rPage = new Page<>();
|
|
rPage.setPages(result.getPages());
|
|
rPage.setPages(result.getPages());
|
|
@@ -34,8 +52,17 @@ public class SqlExecute<R> {
|
|
}
|
|
}
|
|
|
|
|
|
public R one() {
|
|
public R one() {
|
|
- Map<String, Object> result = mapper.one(sql);
|
|
|
|
- return BeanUtil.toBean(result, sql.resultCls);
|
|
|
|
|
|
+ Object result;
|
|
|
|
+
|
|
|
|
+ if (String.class.isAssignableFrom(sql.resultCls)
|
|
|
|
+ || Number.class.isAssignableFrom(sql.resultCls)
|
|
|
|
+ || Date.class.isAssignableFrom(sql.resultCls)) {
|
|
|
|
+ result = mapper.oneObj(sql);
|
|
|
|
+ } else {
|
|
|
|
+ result = mapper.oneMap(sql);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Convert.convert(sql.resultCls, result);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|