![JAR search and dependency download from the Maven repository](/logo.png)
org.zodiac.mybatisplus.binding.helper.ServiceAdaptor Maven / Gradle / Ivy
package org.zodiac.mybatisplus.binding.helper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import org.zodiac.commons.constants.DatabaseConstants;
import org.zodiac.mybatisplus.base.BaseService;
import org.zodiac.mybatisplus.binding.cache.BindingCacheManager;
import org.zodiac.mybatisplus.binding.parser.EntityInfoCache;
import org.zodiac.mybatisplus.model.MyBatisPlusPagination;
import org.zodiac.mybatisplus.util.MyBatisPlusUtil;
/**
* Service适配器。
*
*/
public class ServiceAdaptor {
public static E getSingleEntity(IService iService, QueryWrapper queryWrapper) {
if (iService instanceof BaseService) {
BaseService baseService = (BaseService)iService;
return (E)baseService.getSingleEntity(queryWrapper);
} else {
return (E)iService.getOne(queryWrapper);
}
}
public static List queryList(IService iService, QueryWrapper queryWrapper) {
if (iService instanceof BaseService) {
BaseService baseService = (BaseService)iService;
return (List)baseService.getEntityList(queryWrapper);
} else {
return iService.list(queryWrapper);
}
}
public static List queryList(IService iService, QueryWrapper queryWrapper, MyBatisPlusPagination myBatisPlusPagination,
Class entityClass) {
if (iService instanceof BaseService) {
BaseService baseService = (BaseService)iService;
return (List)baseService.getEntityList(queryWrapper, myBatisPlusPagination);
} else {
if (queryWrapper.getEntityClass() == null) {
queryWrapper.setEntityClass(entityClass);
}
if (myBatisPlusPagination != null) {
IPage page = convertToIPage(myBatisPlusPagination, entityClass);
page = iService.page(page, queryWrapper);
/*如果重新执行了count进行查询,则更新pagination中的总数*/
// if (page.searchCount()) {
// pagination.setTotalCount(page.getTotal());
// }
myBatisPlusPagination.setTotalCount(page.getTotal());
return page.getRecords();
} else {
return iService.list(queryWrapper);
}
}
}
public static Page convertToIPage(MyBatisPlusPagination myBatisPlusPagination, Class> entityClass) {
if (myBatisPlusPagination == null) {
return null;
}
/*如果是默认id排序*/
if (myBatisPlusPagination.isDefaultOrderBy()) {
/*优化排序*/
String pk = MyBatisPlusUtil.getIdFieldName(entityClass);
/*主键非有序id字段,需要清空默认排序以免报错*/
if (!DatabaseConstants.ConventionalFields.id.name().equals(pk)) {
myBatisPlusPagination.clearDefaultOrder();
/*设置时间排序*/
EntityInfoCache entityInfoCache = BindingCacheManager.getEntityInfoByClass(entityClass);
if (entityInfoCache.containsColumn(DatabaseConstants.COLUMN_CREATE_TIME)) {
myBatisPlusPagination.setDefaultCreateTimeOrderBy();
}
}
}
return myBatisPlusPagination.setEntityClass(entityClass).toPage();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy