|
|
@ -1,11 +1,15 @@ |
|
|
|
package cc.niushuai.bastionserver.common.base.controller; |
|
|
|
package cc.niushuai.bastionserver.common.base.controller; |
|
|
|
|
|
|
|
|
|
|
|
import cc.niushuai.bastionserver.common.api.vo.Result; |
|
|
|
import cc.niushuai.bastionserver.common.api.vo.Result; |
|
|
|
|
|
|
|
import cc.niushuai.bastionserver.common.exception.BusinessException; |
|
|
|
import cc.niushuai.bastionserver.common.system.query.QueryGenerator; |
|
|
|
import cc.niushuai.bastionserver.common.system.query.QueryGenerator; |
|
|
|
import cc.niushuai.bastionserver.common.system.vo.LoginUser; |
|
|
|
import cc.niushuai.bastionserver.common.system.vo.LoginUser; |
|
|
|
import cc.niushuai.bastionserver.common.util.oConvertUtils; |
|
|
|
import cc.niushuai.bastionserver.common.util.oConvertUtils; |
|
|
|
|
|
|
|
import cn.hutool.core.util.ArrayUtil; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.support.SFunction; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.baomidou.mybatisplus.extension.service.IService; |
|
|
|
import com.baomidou.mybatisplus.extension.service.IService; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
@ -204,4 +208,48 @@ public class BaseController<T, S extends IService<T>> { |
|
|
|
} |
|
|
|
} |
|
|
|
return Result.error("文件导入失败!"); |
|
|
|
return Result.error("文件导入失败!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 根据提供的字段检查是否已存在 |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @param obj 取数据对象 |
|
|
|
|
|
|
|
* @param fields 根据fields查重 |
|
|
|
|
|
|
|
* @author niushuai233 |
|
|
|
|
|
|
|
* @date: 2023/1/3 22:16 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
protected void exists(T obj, SFunction<T, ?>... fields) { |
|
|
|
|
|
|
|
exists(null, obj, fields); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 根据提供的字段检查是否已存在 |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @param obj 取数据对象 |
|
|
|
|
|
|
|
* @param id id不为null表示更新 |
|
|
|
|
|
|
|
* @param fields 根据fields查重 |
|
|
|
|
|
|
|
* @author niushuai233 |
|
|
|
|
|
|
|
* @date: 2023/1/3 22:16 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
protected void exists(SFunction<T, ?> id, T obj, SFunction<T, ?>... fields) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ArrayUtil.isEmpty(fields)) { |
|
|
|
|
|
|
|
throw new BusinessException("唯一字段不能为空"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<T> wrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (SFunction<T, ?> fn : fields) { |
|
|
|
|
|
|
|
wrapper.eq(fn, fn.apply(obj)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wrapper.ne(null != id, id, id.apply(obj)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boolean exists = service.getBaseMapper().exists(wrapper); |
|
|
|
|
|
|
|
if (exists) { |
|
|
|
|
|
|
|
throw new BusinessException("数据已存在"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|