123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- package com.fjhx.base;
- import cn.hutool.core.util.ObjectUtil;
- import com.baomidou.mybatisplus.core.conditions.Wrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.IService;
- import org.springblade.core.log.exception.ServiceException;
- import org.springblade.core.secure.utils.AuthUtil;
- import java.util.Collection;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- public interface BaseService<T> extends IService<T> {
- /**
- * 乐观锁
- */
- default void optimisticLock(boolean flag) {
- if (!flag) {
- throw new ServiceException("系统繁忙,请稍候再试");
- }
- }
- /**
- * 获取分页
- */
- default Page<T> createPage(Map<String, String> condition) {
- String pageNumStr = condition.get("pageNum");
- String pageSizeStr = condition.get("pageSize");
- int pageNum = ObjectUtil.isEmpty(pageNumStr) ? 1 : Integer.parseInt(pageNumStr);
- int pageSize = ObjectUtil.isEmpty(pageSizeStr) ? 10 : Integer.parseInt(pageSizeStr);
- return new Page<>(pageNum, pageSize);
- }
- /**
- * 获取分页
- */
- default Page<Map<String, Object>> createPageMap(Map<String, String> condition) {
- String pageNumStr = condition.get("pageNum");
- String pageSizeStr = condition.get("pageSize");
- int pageNum = ObjectUtil.isEmpty(pageNumStr) ? 1 : Integer.parseInt(pageNumStr);
- int pageSize = ObjectUtil.isEmpty(pageSizeStr) ? 10 : Integer.parseInt(pageSizeStr);
- return new Page<>(pageNum, pageSize);
- }
- /**
- * 执行分页查询
- *
- * @param condition 条件
- * @param queryWrapper wrapper
- * @return 分页后的对象
- */
- default Page<T> page(Map<String, String> condition, Wrapper<T> queryWrapper) {
- Page<T> page = createPage(condition);
- return getBaseMapper().selectPage(page, queryWrapper);
- }
- /**
- * 条件查询
- */
- default List<T> list(SFunction<T, ?> column, Object val) {
- return lambdaQuery().eq(column, val).list();
- }
- /**
- * 条件查询
- */
- default T getOne(SFunction<T, ?> column, Object val) {
- return lambdaQuery().eq(column, val).one();
- }
- /**
- * 按指定规则删除
- */
- default boolean remove(SFunction<T, ?> column, Object val) {
- return remove(Wrappers.<T>lambdaQuery().eq(column, val));
- }
- @Override
- default boolean save(T entity) {
- setCreateInfo(entity);
- return IService.super.save(entity);
- }
- @Override
- default boolean saveBatch(Collection<T> entityList) {
- entityList.forEach(this::setCreateInfo);
- return IService.super.saveBatch(entityList);
- }
- @Override
- default boolean saveOrUpdateBatch(Collection<T> entityList) {
- entityList.forEach(item -> {
- if (item instanceof BaseEntity) {
- if (ObjectUtil.isEmpty(((BaseEntity) item).getId())) {
- setCreateInfo(item);
- } else {
- setUpdateInfo(item);
- }
- }
- });
- return IService.super.saveOrUpdateBatch(entityList);
- }
- @Override
- default boolean updateById(T entity) {
- setUpdateInfo(entity);
- return IService.super.updateById(entity);
- }
- @Override
- default boolean update(T entity, Wrapper<T> updateWrapper) {
- setUpdateInfo(entity);
- return IService.super.update(entity, updateWrapper);
- }
- @Override
- default boolean updateBatchById(Collection<T> entityList) {
- entityList.forEach(this::setUpdateInfo);
- return IService.super.updateBatchById(entityList);
- }
- @Override
- default boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper) {
- if (entity instanceof BaseEntity) {
- if (ObjectUtil.isEmpty(((BaseEntity) entity).getId())) {
- setCreateInfo(entity);
- } else {
- setUpdateInfo(entity);
- }
- }
- return IService.super.saveOrUpdate(entity, updateWrapper);
- }
- /**
- * 调新增方法时默认传入创建人、创建时间、租户id
- */
- default void setCreateInfo(T entity) {
- if (entity instanceof BaseEntity) {
- ((BaseEntity) entity).setTenantId(AuthUtil.getTenantId());
- ((BaseEntity) entity).setCreateUser(AuthUtil.getUserId());
- ((BaseEntity) entity).setCreateTime(new Date());
- ((BaseEntity) entity).setUpdateUser(null);
- ((BaseEntity) entity).setUpdateTime(null);
- }
- }
- /**
- * 调编辑方法时默认传入更新人、更新时间
- */
- default void setUpdateInfo(T entity) {
- if (entity instanceof BaseEntity) {
- ((BaseEntity) entity).setTenantId(null);
- ((BaseEntity) entity).setCreateUser(null);
- ((BaseEntity) entity).setCreateTime(null);
- ((BaseEntity) entity).setUpdateUser(AuthUtil.getUserId());
- ((BaseEntity) entity).setUpdateTime(new Date());
- }
- }
- }
|