refactor(framework): 优化Bean拷贝工具类并更新相关实体类结构
This commit is contained in:
+4
-5
@@ -13,10 +13,9 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.framework.mybatisplus.core;
|
package cn.odboy.framework.mybatisplus.core;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -42,7 +41,7 @@ public class KitMpAnyQUtil {
|
|||||||
if (mapperTarget == null) {
|
if (mapperTarget == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return BeanUtil.copyProperties(mapperTarget, mapperClazz);
|
return KitBeanUtil.copyToClass(mapperTarget, mapperClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> List<T> selectList(BaseMapper<T> baseMapper, Object queryParams) {
|
public static <T> List<T> selectList(BaseMapper<T> baseMapper, Object queryParams) {
|
||||||
@@ -56,7 +55,7 @@ public class KitMpAnyQUtil {
|
|||||||
if (mapperTarget == null) {
|
if (mapperTarget == null) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return BeanUtil.copyToList(mapperTarget, mapperClazz);
|
return KitBeanUtil.copyToList(mapperTarget, mapperClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> Long selectCount(BaseMapper<T> baseMapper, Object queryParams) {
|
public static <T> Long selectCount(BaseMapper<T> baseMapper, Object queryParams) {
|
||||||
@@ -74,7 +73,7 @@ public class KitMpAnyQUtil {
|
|||||||
QueryWrapper<T> queryWrapper = KitMpQUtil.build(queryParams);
|
QueryWrapper<T> queryWrapper = KitMpQUtil.build(queryParams);
|
||||||
Page<T> tPage = baseMapper.selectPage(page, queryWrapper);
|
Page<T> tPage = baseMapper.selectPage(page, queryWrapper);
|
||||||
Page<M> mapperTarget = new Page<>();
|
Page<M> mapperTarget = new Page<>();
|
||||||
mapperTarget.setRecords(BeanUtil.copyToList(tPage.getRecords(), mapperClazz));
|
mapperTarget.setRecords(KitBeanUtil.copyToList(tPage.getRecords(), mapperClazz));
|
||||||
mapperTarget.setTotal(tPage.getTotal());
|
mapperTarget.setTotal(tPage.getTotal());
|
||||||
mapperTarget.setSize(tPage.getSize());
|
mapperTarget.setSize(tPage.getSize());
|
||||||
mapperTarget.setCurrent(tPage.getCurrent());
|
mapperTarget.setCurrent(tPage.getCurrent());
|
||||||
|
|||||||
-1
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.framework.mybatisplus.core;
|
package cn.odboy.framework.mybatisplus.core;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
|||||||
+47
-20
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.framework.mybatisplus.core;
|
package cn.odboy.framework.mybatisplus.core;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
@@ -27,14 +26,15 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,21 +84,47 @@ public class KitMpQUtil {
|
|||||||
private static <R> void handleWrapper(KitMpQuery q, QueryWrapper<R> queryWrapper, String attributeName,
|
private static <R> void handleWrapper(KitMpQuery q, QueryWrapper<R> queryWrapper, String attributeName,
|
||||||
Object fieldVal) {
|
Object fieldVal) {
|
||||||
switch (q.type()) {
|
switch (q.type()) {
|
||||||
case EQUAL -> queryWrapper.eq(attributeName, fieldVal);
|
case EQUAL:
|
||||||
case GREATER_THAN -> queryWrapper.ge(attributeName, fieldVal);
|
queryWrapper.eq(attributeName, fieldVal);
|
||||||
case LESS_THAN -> queryWrapper.le(attributeName, fieldVal);
|
break;
|
||||||
case LESS_THAN_NQ -> queryWrapper.lt(attributeName, fieldVal);
|
case GREATER_THAN:
|
||||||
case INNER_LIKE -> queryWrapper.like(attributeName, fieldVal);
|
queryWrapper.ge(attributeName, fieldVal);
|
||||||
case LEFT_LIKE -> queryWrapper.likeLeft(attributeName, fieldVal);
|
break;
|
||||||
case RIGHT_LIKE -> queryWrapper.likeRight(attributeName, fieldVal);
|
case LESS_THAN:
|
||||||
case IN -> handleInOrNotQuery(true, queryWrapper, attributeName, fieldVal);
|
queryWrapper.le(attributeName, fieldVal);
|
||||||
case NOT_IN -> handleInOrNotQuery(false, queryWrapper, attributeName, fieldVal);
|
break;
|
||||||
case NOT_EQUAL -> queryWrapper.ne(attributeName, fieldVal);
|
case LESS_THAN_NQ:
|
||||||
case NOT_NULL -> queryWrapper.isNotNull(attributeName);
|
queryWrapper.lt(attributeName, fieldVal);
|
||||||
case IS_NULL -> queryWrapper.isNull(attributeName);
|
break;
|
||||||
case BETWEEN -> handleBetweenQuery(queryWrapper, fieldVal, attributeName);
|
case INNER_LIKE:
|
||||||
default -> {
|
queryWrapper.like(attributeName, fieldVal);
|
||||||
}
|
break;
|
||||||
|
case LEFT_LIKE:
|
||||||
|
queryWrapper.likeLeft(attributeName, fieldVal);
|
||||||
|
break;
|
||||||
|
case RIGHT_LIKE:
|
||||||
|
queryWrapper.likeRight(attributeName, fieldVal);
|
||||||
|
break;
|
||||||
|
case IN:
|
||||||
|
handleInOrNotQuery(true, queryWrapper, attributeName, fieldVal);
|
||||||
|
break;
|
||||||
|
case NOT_IN:
|
||||||
|
handleInOrNotQuery(false, queryWrapper, attributeName, fieldVal);
|
||||||
|
break;
|
||||||
|
case NOT_EQUAL:
|
||||||
|
queryWrapper.ne(attributeName, fieldVal);
|
||||||
|
break;
|
||||||
|
case NOT_NULL:
|
||||||
|
queryWrapper.isNotNull(attributeName);
|
||||||
|
break;
|
||||||
|
case IS_NULL:
|
||||||
|
queryWrapper.isNull(attributeName);
|
||||||
|
break;
|
||||||
|
case BETWEEN:
|
||||||
|
handleBetweenQuery(queryWrapper, fieldVal, attributeName);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +178,8 @@ public class KitMpQUtil {
|
|||||||
* @param <R> /
|
* @param <R> /
|
||||||
*/
|
*/
|
||||||
private static <R> void handleBlurryQuery(QueryWrapper<R> queryWrapper, String blurry, Object fieldVal) {
|
private static <R> void handleBlurryQuery(QueryWrapper<R> queryWrapper, String blurry, Object fieldVal) {
|
||||||
List<String> blurryList = Arrays.stream(blurry.split(",")).filter(StrUtil::isNotBlank).distinct().toList();
|
List<String> blurryList =
|
||||||
|
Arrays.stream(blurry.split(",")).filter(StrUtil::isNotBlank).distinct().collect(Collectors.toList());
|
||||||
queryWrapper.and(wrapper -> {
|
queryWrapper.and(wrapper -> {
|
||||||
for (String blurryItem : blurryList) {
|
for (String blurryItem : blurryList) {
|
||||||
String column = StrUtil.toUnderlineCase(blurryItem);
|
String column = StrUtil.toUnderlineCase(blurryItem);
|
||||||
@@ -171,7 +198,7 @@ public class KitMpQUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
QueryWrapper<TestDomain> query = new QueryWrapper<>();
|
QueryWrapper<TestDomain> query = new QueryWrapper<TestDomain>();
|
||||||
query.or(wrapper -> wrapper.eq("username", 1).or().eq("nickname", 2));
|
query.or(wrapper -> wrapper.eq("username", 1).or().eq("nickname", 2));
|
||||||
query.eq("id", 1);
|
query.eq("id", 1);
|
||||||
query.orderByDesc("id");
|
query.orderByDesc("id");
|
||||||
|
|||||||
+6
-7
@@ -13,13 +13,12 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.framework.mybatisplus.core.interfaces;
|
package cn.odboy.framework.mybatisplus.core.interfaces;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
@@ -111,7 +110,7 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return BeanUtil.copyToList(list, clazz);
|
return KitBeanUtil.copyToList(list, clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -126,7 +125,7 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return BeanUtil.copyToList(list, clazz);
|
return KitBeanUtil.copyToList(list, clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -147,7 +146,7 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (CollUtil.isEmpty(pageInfo.getRecords())) {
|
if (CollUtil.isEmpty(pageInfo.getRecords())) {
|
||||||
return new KitPageResult<>(new ArrayList<>(), pageInfo.getTotal());
|
return new KitPageResult<>(new ArrayList<>(), pageInfo.getTotal());
|
||||||
}
|
}
|
||||||
return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal());
|
return new KitPageResult<>(KitBeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -168,7 +167,7 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (CollUtil.isEmpty(pageInfo.getRecords())) {
|
if (CollUtil.isEmpty(pageInfo.getRecords())) {
|
||||||
return KitPageUtil.emptyListData();
|
return KitPageUtil.emptyListData();
|
||||||
}
|
}
|
||||||
return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal());
|
return new KitPageResult<>(KitBeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -183,6 +182,6 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (e == null) {
|
if (e == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return BeanUtil.copyProperties(e, clazz);
|
return KitBeanUtil.copyToClass(e, clazz);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-5
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.framework.mybatisplus.core.interfaces;
|
package cn.odboy.framework.mybatisplus.core.interfaces;
|
||||||
|
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
@@ -49,11 +48,11 @@ public interface KitMpService<T> extends IService<T> {
|
|||||||
|
|
||||||
<G> List<G> queryFeatureClazzListByIds(List<Serializable> ids, Class<G> targetClazz);
|
<G> List<G> queryFeatureClazzListByIds(List<Serializable> ids, Class<G> targetClazz);
|
||||||
|
|
||||||
<Q> List<T> queryClazzListByArgs(Q criteria);
|
<Q> List<T> queryClazzListByArgs(Q args);
|
||||||
|
|
||||||
List<T> queryClazzListByArgs(LambdaQueryWrapper<T> wrapper);
|
List<T> queryClazzListByArgs(LambdaQueryWrapper<T> wrapper);
|
||||||
|
|
||||||
<G, Q> List<G> queryFeatureClazzListByArgs(Q criteria, Class<G> targetClazz);
|
<G, Q> List<G> queryFeatureClazzListByArgs(Q args, Class<G> targetClazz);
|
||||||
|
|
||||||
<G> List<G> queryFeatureClazzListByArgs(LambdaQueryWrapper<T> wrapper, Class<G> targetClazz);
|
<G> List<G> queryFeatureClazzListByArgs(LambdaQueryWrapper<T> wrapper, Class<G> targetClazz);
|
||||||
|
|
||||||
@@ -62,9 +61,9 @@ public interface KitMpService<T> extends IService<T> {
|
|||||||
<G> KitPageResult<G> queryFeatureClazzPageByArgs(LambdaQueryWrapper<T> wrapper, IPage<T> pageable,
|
<G> KitPageResult<G> queryFeatureClazzPageByArgs(LambdaQueryWrapper<T> wrapper, IPage<T> pageable,
|
||||||
Class<G> targetClazz);
|
Class<G> targetClazz);
|
||||||
|
|
||||||
<G, Q> KitPageResult<G> queryFeatureClazzPageByArgs(Q criteria, IPage<T> pageable, Class<G> targetClazz);
|
<G, Q> KitPageResult<G> queryFeatureClazzPageByArgs(Q args, IPage<T> pageable, Class<G> targetClazz);
|
||||||
|
|
||||||
<Q> KitPageResult<T> queryClazzPageByArgs(Q criteria, IPage<T> pageable);
|
<Q> KitPageResult<T> queryClazzPageByArgs(Q args, IPage<T> pageable);
|
||||||
|
|
||||||
int modifyClazzByArgs(LambdaQueryWrapper<T> wrapper, T entity);
|
int modifyClazzByArgs(LambdaQueryWrapper<T> wrapper, T entity);
|
||||||
|
|
||||||
|
|||||||
+22
-24
@@ -13,14 +13,13 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.framework.mybatisplus.core.interfaces;
|
package cn.odboy.framework.mybatisplus.core.interfaces;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.framework.mybatisplus.core.KitMpQUtil;
|
import cn.odboy.framework.mybatisplus.core.KitMpQUtil;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.enums.SqlMethod;
|
import com.baomidou.mybatisplus.core.enums.SqlMethod;
|
||||||
@@ -46,7 +45,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
* @param resources /
|
* @param resources /
|
||||||
*/
|
*/
|
||||||
public <G> int saveFeatureClazz(G resources) {
|
public <G> int saveFeatureClazz(G resources) {
|
||||||
return getBaseMapper().insert(BeanUtil.copyProperties(resources, this.getEntityClass()));
|
return getBaseMapper().insert(KitBeanUtil.copyToClass(resources, this.getEntityClass()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,7 +54,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
* @param resources /
|
* @param resources /
|
||||||
*/
|
*/
|
||||||
public <G> int saveFeatureClazzList(List<G> resources) {
|
public <G> int saveFeatureClazzList(List<G> resources) {
|
||||||
return getBaseMapper().insertBatchSomeColumn(BeanUtil.copyToList(resources, this.getEntityClass()));
|
return getBaseMapper().insertBatchSomeColumn(KitBeanUtil.copyToList(resources, this.getEntityClass()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -64,7 +63,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
* @param resources /
|
* @param resources /
|
||||||
*/
|
*/
|
||||||
public <G> int modifyFeatureClazzById(G resources) {
|
public <G> int modifyFeatureClazzById(G resources) {
|
||||||
return getBaseMapper().updateById(BeanUtil.copyProperties(resources, this.getEntityClass()));
|
return getBaseMapper().updateById(KitBeanUtil.copyToClass(resources, this.getEntityClass()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,7 +76,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
String sqlStatement = this.getSqlStatement(SqlMethod.UPDATE_BY_ID);
|
String sqlStatement = this.getSqlStatement(SqlMethod.UPDATE_BY_ID);
|
||||||
return this.executeBatch(resources, batchSize, (sqlSession, entity) -> {
|
return this.executeBatch(resources, batchSize, (sqlSession, entity) -> {
|
||||||
MapperMethod.ParamMap<T> param = new MapperMethod.ParamMap<>();
|
MapperMethod.ParamMap<T> param = new MapperMethod.ParamMap<>();
|
||||||
param.put("et", BeanUtil.copyProperties(entity, this.getEntityClass()));
|
param.put("et", KitBeanUtil.copyToClass(entity, this.getEntityClass()));
|
||||||
sqlSession.update(sqlStatement, param);
|
sqlSession.update(sqlStatement, param);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -90,7 +89,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
*/
|
*/
|
||||||
public <G> G queryFeatureClazzById(Serializable id, Class<G> targetClazz) {
|
public <G> G queryFeatureClazzById(Serializable id, Class<G> targetClazz) {
|
||||||
T entity = this.getById(id);
|
T entity = this.getById(id);
|
||||||
return entity == null ? null : BeanUtil.copyProperties(entity, targetClazz);
|
return entity == null ? null : KitBeanUtil.copyToClass(entity, targetClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -127,7 +126,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
if (ts.isEmpty()) {
|
if (ts.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return BeanUtil.copyProperties(ts.stream().findFirst().get(), clazz);
|
return KitBeanUtil.copyToClass(ts.stream().findFirst().get(), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -138,17 +137,16 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
*/
|
*/
|
||||||
public <G> List<G> queryFeatureClazzListByIds(List<Serializable> ids, Class<G> targetClazz) {
|
public <G> List<G> queryFeatureClazzListByIds(List<Serializable> ids, Class<G> targetClazz) {
|
||||||
List<T> entitys = this.listByIds(ids);
|
List<T> entitys = this.listByIds(ids);
|
||||||
return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList()
|
return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList() : KitBeanUtil.copyToList(entitys, targetClazz);
|
||||||
: BeanUtil.copyToList(entitys, targetClazz);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查有关的数据
|
* 查有关的数据
|
||||||
*
|
*
|
||||||
* @param criteria 动态条件
|
* @param args 动态条件
|
||||||
*/
|
*/
|
||||||
public <Q> List<T> queryClazzListByArgs(Q criteria) {
|
public <Q> List<T> queryClazzListByArgs(Q args) {
|
||||||
QueryWrapper<T> predicate = KitMpQUtil.build(criteria);
|
QueryWrapper<T> predicate = KitMpQUtil.build(args);
|
||||||
return baseMapper.selectList(predicate);
|
return baseMapper.selectList(predicate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,13 +165,13 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
/**
|
/**
|
||||||
* 查有关的数据并转成目标类型的数据
|
* 查有关的数据并转成目标类型的数据
|
||||||
*
|
*
|
||||||
* @param criteria 动态条件
|
* @param args 动态条件
|
||||||
* @param targetClazz 目标类型
|
* @param targetClazz 目标类型
|
||||||
*/
|
*/
|
||||||
public <G, Q> List<G> queryFeatureClazzListByArgs(Q criteria, Class<G> targetClazz) {
|
public <G, Q> List<G> queryFeatureClazzListByArgs(Q args, Class<G> targetClazz) {
|
||||||
QueryWrapper<T> predicate = KitMpQUtil.build(criteria);
|
QueryWrapper<T> predicate = KitMpQUtil.build(args);
|
||||||
List<T> data = baseMapper.selectList(predicate);
|
List<T> data = baseMapper.selectList(predicate);
|
||||||
return BeanUtil.copyToList(data, targetClazz);
|
return KitBeanUtil.copyToList(data, targetClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -186,7 +184,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
if (wrapper == null) {
|
if (wrapper == null) {
|
||||||
wrapper = new LambdaQueryWrapper<>();
|
wrapper = new LambdaQueryWrapper<>();
|
||||||
}
|
}
|
||||||
return BeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz);
|
return KitBeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -216,19 +214,19 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
wrapper = new LambdaQueryWrapper<>();
|
wrapper = new LambdaQueryWrapper<>();
|
||||||
}
|
}
|
||||||
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
||||||
return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz),
|
return new KitPageResult<>(KitBeanUtil.copyToList(originPageData.getRecords(), targetClazz),
|
||||||
originPageData.getTotal());
|
originPageData.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
public <G, Q> KitPageResult<G> queryFeatureClazzPageByArgs(Q criteria, IPage<T> pageable, Class<G> targetClazz) {
|
public <G, Q> KitPageResult<G> queryFeatureClazzPageByArgs(Q args, IPage<T> pageable, Class<G> targetClazz) {
|
||||||
QueryWrapper<T> wrapper = KitMpQUtil.build(criteria);
|
QueryWrapper<T> wrapper = KitMpQUtil.build(args);
|
||||||
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
||||||
return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz),
|
return new KitPageResult<>(KitBeanUtil.copyToList(originPageData.getRecords(), targetClazz),
|
||||||
originPageData.getTotal());
|
originPageData.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
public <Q> KitPageResult<T> queryClazzPageByArgs(Q criteria, IPage<T> pageable) {
|
public <Q> KitPageResult<T> queryClazzPageByArgs(Q args, IPage<T> pageable) {
|
||||||
QueryWrapper<T> wrapper = KitMpQUtil.build(criteria);
|
QueryWrapper<T> wrapper = KitMpQUtil.build(args);
|
||||||
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
||||||
return new KitPageResult<>(originPageData.getRecords(), originPageData.getTotal());
|
return new KitPageResult<>(originPageData.getRecords(), originPageData.getTotal());
|
||||||
}
|
}
|
||||||
|
|||||||
+23
-13
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2021-2025 Odboy
|
* Copyright 2021-2025 Odboy
|
||||||
*
|
*
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.odboy.annotation.AnonymousAccess;
|
import cn.odboy.annotation.AnonymousAccess;
|
||||||
@@ -30,7 +28,7 @@ import lombok.experimental.UtilityClass;
|
|||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.method.HandlerMethod;
|
import org.springframework.web.method.HandlerMethod;
|
||||||
import org.springframework.web.servlet.mvc.condition.PathPatternsRequestCondition;
|
import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition;
|
||||||
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
|
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
||||||
|
|
||||||
@@ -48,9 +46,9 @@ public class KitAnonTagUtil {
|
|||||||
*/
|
*/
|
||||||
public static Map<String, Set<String>> getAnonymousUrl(final ApplicationContext applicationContext) {
|
public static Map<String, Set<String>> getAnonymousUrl(final ApplicationContext applicationContext) {
|
||||||
RequestMappingHandlerMapping requestMappingHandlerMapping =
|
RequestMappingHandlerMapping requestMappingHandlerMapping =
|
||||||
applicationContext.getBean(RequestMappingHandlerMapping.class);
|
(RequestMappingHandlerMapping) applicationContext.getBean("requestMappingHandlerMapping");
|
||||||
Map<RequestMappingInfo, HandlerMethod> handlerMethodMap = requestMappingHandlerMapping.getHandlerMethods();
|
Map<RequestMappingInfo, HandlerMethod> handlerMethodMap = requestMappingHandlerMapping.getHandlerMethods();
|
||||||
Map<String, java.util.Set<String>> anonymousUrls = new HashMap<>(8);
|
Map<String, Set<String>> anonymousUrls = new HashMap<>(8);
|
||||||
// 获取匿名标记
|
// 获取匿名标记
|
||||||
Set<String> get = new HashSet<>();
|
Set<String> get = new HashSet<>();
|
||||||
Set<String> post = new HashSet<>();
|
Set<String> post = new HashSet<>();
|
||||||
@@ -66,15 +64,27 @@ public class KitAnonTagUtil {
|
|||||||
new ArrayList<>(infoEntry.getKey().getMethodsCondition().getMethods());
|
new ArrayList<>(infoEntry.getKey().getMethodsCondition().getMethods());
|
||||||
RequestMethodEnum request = RequestMethodEnum.find(
|
RequestMethodEnum request = RequestMethodEnum.find(
|
||||||
requestMethods.isEmpty() ? RequestMethodEnum.ALL.getType() : requestMethods.get(0).name());
|
requestMethods.isEmpty() ? RequestMethodEnum.ALL.getType() : requestMethods.get(0).name());
|
||||||
PathPatternsRequestCondition pathPatternsCondition = infoEntry.getKey().getPathPatternsCondition();
|
PatternsRequestCondition patternsCondition = infoEntry.getKey().getPatternsCondition();
|
||||||
if (pathPatternsCondition != null) {
|
if (patternsCondition != null) {
|
||||||
switch (Objects.requireNonNull(request)) {
|
switch (Objects.requireNonNull(request)) {
|
||||||
case GET -> get.addAll(pathPatternsCondition.getPatternValues());
|
case GET:
|
||||||
case POST -> post.addAll(pathPatternsCondition.getPatternValues());
|
get.addAll(patternsCondition.getPatterns());
|
||||||
case PUT -> put.addAll(pathPatternsCondition.getPatternValues());
|
break;
|
||||||
case PATCH -> patch.addAll(pathPatternsCondition.getPatternValues());
|
case POST:
|
||||||
case DELETE -> delete.addAll(pathPatternsCondition.getPatternValues());
|
post.addAll(patternsCondition.getPatterns());
|
||||||
default -> all.addAll(pathPatternsCondition.getPatternValues());
|
break;
|
||||||
|
case PUT:
|
||||||
|
put.addAll(patternsCondition.getPatterns());
|
||||||
|
break;
|
||||||
|
case PATCH:
|
||||||
|
patch.addAll(patternsCondition.getPatterns());
|
||||||
|
break;
|
||||||
|
case DELETE:
|
||||||
|
delete.addAll(patternsCondition.getPatterns());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
all.addAll(patternsCondition.getPatterns());
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.hutool.core.codec.Base64Encoder;
|
import cn.hutool.core.codec.Base64Encoder;
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package cn.odboy.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bean拷贝相关
|
||||||
|
*
|
||||||
|
* @author odboy
|
||||||
|
* @date 2026-01-06
|
||||||
|
*/
|
||||||
|
@UtilityClass
|
||||||
|
public class KitBeanUtil {
|
||||||
|
|
||||||
|
public static <T> T copyToClass(Object source, Class<T> tClass) {
|
||||||
|
return BeanUtil.copyProperties(source, tClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void copyToTarget(Object source, Object target) {
|
||||||
|
BeanUtil.copyProperties(source, target, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> List<T> copyToList(Collection<?> collection, Class<T> targetType) {
|
||||||
|
List<T> ts = BeanUtil.copyToList(collection, targetType);
|
||||||
|
if (ts == null) {
|
||||||
|
return new ArrayList<>(0);
|
||||||
|
}
|
||||||
|
return ts;
|
||||||
|
}
|
||||||
|
}
|
||||||
+8
-13
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2021-2025 Odboy
|
* Copyright 2021-2025 Odboy
|
||||||
*
|
*
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -34,14 +32,14 @@ public final class KitBigDecimalUtil {
|
|||||||
* @return 转换后的 BigDecimal
|
* @return 转换后的 BigDecimal
|
||||||
*/
|
*/
|
||||||
private static BigDecimal toBigDecimal(Object obj) {
|
private static BigDecimal toBigDecimal(Object obj) {
|
||||||
if (obj instanceof BigDecimal b) {
|
if (obj instanceof BigDecimal) {
|
||||||
return b;
|
return (BigDecimal) obj;
|
||||||
} else if (obj instanceof Long l) {
|
} else if (obj instanceof Long) {
|
||||||
return BigDecimal.valueOf(l);
|
return BigDecimal.valueOf((Long) obj);
|
||||||
} else if (obj instanceof Integer i) {
|
} else if (obj instanceof Integer) {
|
||||||
return BigDecimal.valueOf(i);
|
return BigDecimal.valueOf((Integer) obj);
|
||||||
} else if (obj instanceof Double d) {
|
} else if (obj instanceof Double) {
|
||||||
return new BigDecimal(d);
|
return new BigDecimal(String.valueOf(obj));
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalArgumentException("Unsupported type");
|
throw new IllegalArgumentException("Unsupported type");
|
||||||
}
|
}
|
||||||
@@ -138,15 +136,12 @@ public final class KitBigDecimalUtil {
|
|||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
BigDecimal num1 = new BigDecimal("10.123");
|
BigDecimal num1 = new BigDecimal("10.123");
|
||||||
BigDecimal num2 = new BigDecimal("2.456");
|
BigDecimal num2 = new BigDecimal("2.456");
|
||||||
|
|
||||||
System.out.println("加法结果: " + add(num1, num2));
|
System.out.println("加法结果: " + add(num1, num2));
|
||||||
System.out.println("减法结果: " + subtract(num1, num2));
|
System.out.println("减法结果: " + subtract(num1, num2));
|
||||||
System.out.println("乘法结果: " + multiply(num1, num2));
|
System.out.println("乘法结果: " + multiply(num1, num2));
|
||||||
System.out.println("除法结果: " + divide(num1, num2));
|
System.out.println("除法结果: " + divide(num1, num2));
|
||||||
|
|
||||||
Long cents = 12345L;
|
Long cents = 12345L;
|
||||||
System.out.println("分转元结果: " + centsToYuan(cents));
|
System.out.println("分转元结果: " + centsToYuan(cents));
|
||||||
|
|
||||||
BigDecimal yuan = new BigDecimal("123.45");
|
BigDecimal yuan = new BigDecimal("123.45");
|
||||||
System.out.println("元转分结果: " + yuanToCents(yuan));
|
System.out.println("元转分结果: " + yuanToCents(yuan));
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -13,14 +13,13 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.hutool.http.useragent.UserAgent;
|
import cn.hutool.http.useragent.UserAgent;
|
||||||
import cn.hutool.http.useragent.UserAgentUtil;
|
import cn.hutool.http.useragent.UserAgentUtil;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2021-2025 Odboy
|
* Copyright 2021-2025 Odboy
|
||||||
*
|
*
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2021-2025 Odboy
|
* Copyright 2021-2025 Odboy
|
||||||
*
|
*
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
|
|||||||
+3
-4
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.odboy.base.KitSelectOptionVo;
|
import cn.odboy.base.KitSelectOptionVo;
|
||||||
@@ -52,7 +51,7 @@ public final class KitCollUtil extends cn.hutool.core.collection.CollUtil {
|
|||||||
* 使用方式: list = CollUtil.streamDistinct(list, Object::getXXX)
|
* 使用方式: list = CollUtil.streamDistinct(list, Object::getXXX)
|
||||||
*/
|
*/
|
||||||
public static <T, K> List<T> streamDistinct(List<T> data, Function<? super T, ? extends K> keyMapper) {
|
public static <T, K> List<T> streamDistinct(List<T> data, Function<? super T, ? extends K> keyMapper) {
|
||||||
return data.stream().filter(distinctPredicate(keyMapper)).toList();
|
return data.stream().filter(distinctPredicate(keyMapper)).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -68,7 +67,7 @@ public final class KitCollUtil extends cn.hutool.core.collection.CollUtil {
|
|||||||
*/
|
*/
|
||||||
public static <T, U extends Comparable<? super U>> List<T> streamAscSort(List<T> data,
|
public static <T, U extends Comparable<? super U>> List<T> streamAscSort(List<T> data,
|
||||||
Function<? super T, ? extends U> keyExtractor) {
|
Function<? super T, ? extends U> keyExtractor) {
|
||||||
return data.stream().sorted(Comparator.comparing(keyExtractor)).toList();
|
return data.stream().sorted(Comparator.comparing(keyExtractor)).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,7 +83,7 @@ public final class KitCollUtil extends cn.hutool.core.collection.CollUtil {
|
|||||||
*/
|
*/
|
||||||
public static <T, U extends Comparable<? super U>> List<T> streamDescSort(List<T> data,
|
public static <T, U extends Comparable<? super U>> List<T> streamDescSort(List<T> data,
|
||||||
Function<? super T, ? extends U> keyExtractor) {
|
Function<? super T, ? extends U> keyExtractor) {
|
||||||
return data.stream().sorted(Comparator.comparing(keyExtractor).reversed()).toList();
|
return data.stream().sorted(Comparator.comparing(keyExtractor).reversed()).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+2
-20
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
@@ -69,32 +68,24 @@ public class KitDateUtil {
|
|||||||
// 什么都不返回
|
// 什么都不返回
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
long betweenSeconds = DateUtil.between(startTime, endTime, cn.hutool.core.date.DateUnit.SECOND);
|
long betweenSeconds = DateUtil.between(startTime, endTime, cn.hutool.core.date.DateUnit.SECOND);
|
||||||
|
|
||||||
long days = betweenSeconds / (24 * 60 * 60);
|
long days = betweenSeconds / (24 * 60 * 60);
|
||||||
long hours = (betweenSeconds % (24 * 60 * 60)) / (60 * 60);
|
long hours = (betweenSeconds % (24 * 60 * 60)) / (60 * 60);
|
||||||
long minutes = (betweenSeconds % (60 * 60)) / 60;
|
long minutes = (betweenSeconds % (60 * 60)) / 60;
|
||||||
long seconds = betweenSeconds % 60;
|
long seconds = betweenSeconds % 60;
|
||||||
|
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
|
|
||||||
if (days > 0) {
|
if (days > 0) {
|
||||||
result.append(days).append("天");
|
result.append(days).append("天");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hours > 0) {
|
if (hours > 0) {
|
||||||
result.append(hours).append("时");
|
result.append(hours).append("时");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (minutes > 0) {
|
if (minutes > 0) {
|
||||||
result.append(minutes).append("分");
|
result.append(minutes).append("分");
|
||||||
}
|
}
|
||||||
|
if (seconds > 0 || result.length() == 0) {
|
||||||
if (seconds > 0 || result.isEmpty()) {
|
|
||||||
result.append(seconds).append("秒");
|
result.append(seconds).append("秒");
|
||||||
}
|
}
|
||||||
|
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,41 +101,32 @@ public class KitDateUtil {
|
|||||||
// 什么都不返回
|
// 什么都不返回
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
long betweenMs = DateUtil.betweenMs(startTime, endTime);
|
long betweenMs = DateUtil.betweenMs(startTime, endTime);
|
||||||
long days = betweenMs / (24 * 60 * 60 * 1000);
|
long days = betweenMs / (24 * 60 * 60 * 1000);
|
||||||
long hours = (betweenMs % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000);
|
long hours = (betweenMs % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000);
|
||||||
long minutes = (betweenMs % (60 * 60 * 1000)) / (60 * 1000);
|
long minutes = (betweenMs % (60 * 60 * 1000)) / (60 * 1000);
|
||||||
long seconds = (betweenMs % (60 * 1000)) / 1000;
|
long seconds = (betweenMs % (60 * 1000)) / 1000;
|
||||||
long milliseconds = betweenMs % 1000;
|
long milliseconds = betweenMs % 1000;
|
||||||
|
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
|
|
||||||
if (days > 0) {
|
if (days > 0) {
|
||||||
result.append(days).append("天");
|
result.append(days).append("天");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hours > 0) {
|
if (hours > 0) {
|
||||||
result.append(hours).append("时");
|
result.append(hours).append("时");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (minutes > 0) {
|
if (minutes > 0) {
|
||||||
result.append(minutes).append("分");
|
result.append(minutes).append("分");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (seconds > 0) {
|
if (seconds > 0) {
|
||||||
result.append(seconds).append("秒");
|
result.append(seconds).append("秒");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (milliseconds > 0) {
|
if (milliseconds > 0) {
|
||||||
result.append(milliseconds).append("毫秒");
|
result.append(milliseconds).append("毫秒");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果所有单位都是0,则显示0毫秒
|
// 如果所有单位都是0,则显示0毫秒
|
||||||
if (result.isEmpty()) {
|
if (result.length() == 0) {
|
||||||
result.append("0毫秒");
|
result.append("0毫秒");
|
||||||
}
|
}
|
||||||
|
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-2
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
@@ -93,4 +92,3 @@ public final class KitDesEncryptUtil {
|
|||||||
return b2;
|
return b2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-9
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
@@ -43,7 +42,6 @@ public final class KitDistributedIdUtil {
|
|||||||
* 序列号所占位数
|
* 序列号所占位数
|
||||||
*/
|
*/
|
||||||
private final long sequenceBits;
|
private final long sequenceBits;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据中心 ID 最大值
|
* 数据中心 ID 最大值
|
||||||
*/
|
*/
|
||||||
@@ -56,7 +54,6 @@ public final class KitDistributedIdUtil {
|
|||||||
* 序列号最大值
|
* 序列号最大值
|
||||||
*/
|
*/
|
||||||
private final long sequenceMask;
|
private final long sequenceMask;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 机器 ID 向左移位数
|
* 机器 ID 向左移位数
|
||||||
*/
|
*/
|
||||||
@@ -69,7 +66,6 @@ public final class KitDistributedIdUtil {
|
|||||||
* 时间戳向左移位数
|
* 时间戳向左移位数
|
||||||
*/
|
*/
|
||||||
private final long timestampLeftShift;
|
private final long timestampLeftShift;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据中心 ID
|
* 数据中心 ID
|
||||||
*/
|
*/
|
||||||
@@ -101,15 +97,12 @@ public final class KitDistributedIdUtil {
|
|||||||
this.dataCenterIdBits = dataCenterIdBits;
|
this.dataCenterIdBits = dataCenterIdBits;
|
||||||
this.workerIdBits = workerIdBits;
|
this.workerIdBits = workerIdBits;
|
||||||
this.sequenceBits = sequenceBits;
|
this.sequenceBits = sequenceBits;
|
||||||
|
|
||||||
this.maxDataCenterId = ~(-1L << dataCenterIdBits);
|
this.maxDataCenterId = ~(-1L << dataCenterIdBits);
|
||||||
this.maxWorkerId = ~(-1L << workerIdBits);
|
this.maxWorkerId = ~(-1L << workerIdBits);
|
||||||
this.sequenceMask = ~(-1L << sequenceBits);
|
this.sequenceMask = ~(-1L << sequenceBits);
|
||||||
|
|
||||||
this.workerIdShift = sequenceBits;
|
this.workerIdShift = sequenceBits;
|
||||||
this.dataCenterIdShift = sequenceBits + workerIdBits;
|
this.dataCenterIdShift = sequenceBits + workerIdBits;
|
||||||
this.timestampLeftShift = sequenceBits + workerIdBits + dataCenterIdBits;
|
this.timestampLeftShift = sequenceBits + workerIdBits + dataCenterIdBits;
|
||||||
|
|
||||||
if (dataCenterId > maxDataCenterId || dataCenterId < 0) {
|
if (dataCenterId > maxDataCenterId || dataCenterId < 0) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
"Data center ID can't be greater than " + maxDataCenterId + " or less than 0");
|
"Data center ID can't be greater than " + maxDataCenterId + " or less than 0");
|
||||||
@@ -153,14 +146,12 @@ public final class KitDistributedIdUtil {
|
|||||||
*/
|
*/
|
||||||
public long nextId() {
|
public long nextId() {
|
||||||
long currentTimestamp = System.currentTimeMillis();
|
long currentTimestamp = System.currentTimeMillis();
|
||||||
|
|
||||||
// 如果当前时间戳小于上一次生成 ID 的时间戳, 说明时钟回拨,抛出异常
|
// 如果当前时间戳小于上一次生成 ID 的时间戳, 说明时钟回拨,抛出异常
|
||||||
if (currentTimestamp < lastTimestamp.get()) {
|
if (currentTimestamp < lastTimestamp.get()) {
|
||||||
throw new BadRequestException(
|
throw new BadRequestException(
|
||||||
"Clock moved backwards. Refusing to generate id for " + (lastTimestamp.get() - currentTimestamp) +
|
"Clock moved backwards. Refusing to generate id for " + (lastTimestamp.get() - currentTimestamp) +
|
||||||
" milliseconds");
|
" milliseconds");
|
||||||
}
|
}
|
||||||
|
|
||||||
long lastTimestampValue = lastTimestamp.get();
|
long lastTimestampValue = lastTimestamp.get();
|
||||||
if (currentTimestamp == lastTimestampValue) {
|
if (currentTimestamp == lastTimestampValue) {
|
||||||
// 同一毫秒内,序列号自增
|
// 同一毫秒内,序列号自增
|
||||||
|
|||||||
+3
-3
@@ -27,9 +27,6 @@ import cn.hutool.poi.excel.ExcelUtil;
|
|||||||
import cn.odboy.constant.FileTypeEnum;
|
import cn.odboy.constant.FileTypeEnum;
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import jakarta.servlet.ServletOutputStream;
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -44,6 +41,9 @@ import java.util.LinkedHashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import jakarta.servlet.ServletOutputStream;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.poi.util.IOUtils;
|
import org.apache.poi.util.IOUtils;
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.odboy.framework.context.KitSpringBeanHolder;
|
import cn.odboy.framework.context.KitSpringBeanHolder;
|
||||||
|
|||||||
+2
-3
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
@@ -32,12 +31,12 @@ import lombok.experimental.UtilityClass;
|
|||||||
public final class KitJsonUtil {
|
public final class KitJsonUtil {
|
||||||
|
|
||||||
public static <K, V> Map<K, V> toMap(String jsonStr, Class<K> kClass, Class<V> vClass) {
|
public static <K, V> Map<K, V> toMap(String jsonStr, Class<K> kClass, Class<V> vClass) {
|
||||||
return JSON.parseObject(jsonStr, new TypeReference<>() {
|
return JSON.parseObject(jsonStr, new TypeReference<Map<K, V>>() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <V> List<V> toList(String jsonStr, Class<V> vClass) {
|
public static <V> List<V> toList(String jsonStr, Class<V> vClass) {
|
||||||
return JSON.parseObject(jsonStr, new TypeReference<>() {
|
return JSON.parseObject(jsonStr, new TypeReference<List<V>>() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
@@ -41,7 +40,7 @@ public final class KitListUtil {
|
|||||||
*/
|
*/
|
||||||
public static <T, K> List<T> distinctByArgs(List<T> items, Function<? super T, ? extends K> classifier) {
|
public static <T, K> List<T> distinctByArgs(List<T> items, Function<? super T, ? extends K> classifier) {
|
||||||
return items.stream().collect(Collectors.groupingBy(classifier)).values().stream()
|
return items.stream().collect(Collectors.groupingBy(classifier)).values().stream()
|
||||||
.map(monitorItem -> monitorItem.iterator().next()).toList();
|
.map(monitorItem -> monitorItem.iterator().next()).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
|
|||||||
-1
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
|
|||||||
-2
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2021-2025 Odboy
|
* Copyright 2021-2025 Odboy
|
||||||
*
|
*
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|||||||
-1
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
|||||||
-12
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2021-2025 Odboy
|
* Copyright 2021-2025 Odboy
|
||||||
*
|
*
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
@@ -40,14 +38,11 @@ public final class KitStringUtil {
|
|||||||
if (s == null) {
|
if (s == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
s = s.toLowerCase();
|
s = s.toLowerCase();
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder(s.length());
|
StringBuilder sb = new StringBuilder(s.length());
|
||||||
boolean upperCase = false;
|
boolean upperCase = false;
|
||||||
for (int i = 0; i < s.length(); i++) {
|
for (int i = 0; i < s.length(); i++) {
|
||||||
char c = s.charAt(i);
|
char c = s.charAt(i);
|
||||||
|
|
||||||
if (c == SEPARATOR) {
|
if (c == SEPARATOR) {
|
||||||
upperCase = true;
|
upperCase = true;
|
||||||
} else if (upperCase) {
|
} else if (upperCase) {
|
||||||
@@ -57,7 +52,6 @@ public final class KitStringUtil {
|
|||||||
sb.append(c);
|
sb.append(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,18 +77,14 @@ public final class KitStringUtil {
|
|||||||
if (s == null) {
|
if (s == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
boolean upperCase = false;
|
boolean upperCase = false;
|
||||||
for (int i = 0; i < s.length(); i++) {
|
for (int i = 0; i < s.length(); i++) {
|
||||||
char c = s.charAt(i);
|
char c = s.charAt(i);
|
||||||
|
|
||||||
boolean nextUpperCase = true;
|
boolean nextUpperCase = true;
|
||||||
|
|
||||||
if (i < (s.length() - 1)) {
|
if (i < (s.length() - 1)) {
|
||||||
nextUpperCase = Character.isUpperCase(s.charAt(i + 1));
|
nextUpperCase = Character.isUpperCase(s.charAt(i + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((i > 0) && Character.isUpperCase(c)) {
|
if ((i > 0) && Character.isUpperCase(c)) {
|
||||||
if (!upperCase || !nextUpperCase) {
|
if (!upperCase || !nextUpperCase) {
|
||||||
sb.append(SEPARATOR);
|
sb.append(SEPARATOR);
|
||||||
@@ -103,10 +93,8 @@ public final class KitStringUtil {
|
|||||||
} else {
|
} else {
|
||||||
upperCase = false;
|
upperCase = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.append(Character.toLowerCase(c));
|
sb.append(Character.toLowerCase(c));
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2021-2025 Odboy
|
* Copyright 2021-2025 Odboy
|
||||||
*
|
*
|
||||||
@@ -14,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import oshi.SystemInfo;
|
import oshi.SystemInfo;
|
||||||
|
|||||||
+2
-3
@@ -13,17 +13,16 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.util;
|
package cn.odboy.util;
|
||||||
|
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import jakarta.validation.ConstraintViolation;
|
import jakarta.validation.ConstraintViolation;
|
||||||
import jakarta.validation.Validation;
|
import jakarta.validation.Validation;
|
||||||
import jakarta.validation.Validator;
|
import jakarta.validation.Validator;
|
||||||
import jakarta.validation.ValidatorFactory;
|
import jakarta.validation.ValidatorFactory;
|
||||||
import jakarta.validation.groups.Default;
|
import jakarta.validation.groups.Default;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -3,12 +3,12 @@ package cn.odboy.util.xlsx;
|
|||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.idev.excel.EasyExcel;
|
import cn.idev.excel.EasyExcel;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* EasyExcel 导出增强工具类 (支持普通/分页模式)
|
* EasyExcel 导出增强工具类 (支持普通/分页模式)
|
||||||
|
|||||||
+1
-1
@@ -6,13 +6,13 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.idev.excel.FastExcel;
|
import cn.idev.excel.FastExcel;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+2
-1
@@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs;
|
|||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
|
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
|
||||||
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryDeptArgs;
|
import cn.odboy.system.dal.model.SystemQueryDeptArgs;
|
||||||
import cn.odboy.system.framework.operalog.OperationLog;
|
import cn.odboy.system.framework.operalog.OperationLog;
|
||||||
import cn.odboy.system.service.SystemDeptService;
|
import cn.odboy.system.service.SystemDeptService;
|
||||||
@@ -67,7 +68,7 @@ public class SystemDeptController {
|
|||||||
@ApiOperation("查询部门:根据ID获取同级与上级数据")
|
@ApiOperation("查询部门:根据ID获取同级与上级数据")
|
||||||
@PostMapping("/searchDeptTree")
|
@PostMapping("/searchDeptTree")
|
||||||
@PreAuthorize("@el.check('user:list','dept:list')")
|
@PreAuthorize("@el.check('user:list','dept:list')")
|
||||||
public ResponseEntity<KitPageResult<SystemDeptTb>> queryDeptSuperiorTree(@RequestBody List<Long> ids,
|
public ResponseEntity<KitPageResult<SystemDeptVo>> queryDeptSuperiorTree(@RequestBody List<Long> ids,
|
||||||
@RequestParam(defaultValue = "false") Boolean exclude) {
|
@RequestParam(defaultValue = "false") Boolean exclude) {
|
||||||
return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude));
|
return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude));
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs;
|
|||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemMenuRouterVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuVo;
|
import cn.odboy.system.dal.model.SystemMenuVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
|
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
|
||||||
import cn.odboy.system.framework.operalog.OperationLog;
|
import cn.odboy.system.framework.operalog.OperationLog;
|
||||||
@@ -58,9 +59,9 @@ public class SystemMenuController {
|
|||||||
|
|
||||||
@PostMapping(value = "/buildMenus")
|
@PostMapping(value = "/buildMenus")
|
||||||
@ApiOperation("获取前端所需菜单")
|
@ApiOperation("获取前端所需菜单")
|
||||||
public ResponseEntity<List<SystemMenuVo>> buildMenus() {
|
public ResponseEntity<List<SystemMenuRouterVo>> buildMenus() {
|
||||||
List<SystemMenuVo> systemMenuVos = systemMenuService.buildFrontMenus();
|
List<SystemMenuRouterVo> systemMenuRouterVos = systemMenuService.buildFrontMenus();
|
||||||
return ResponseEntity.ok(systemMenuVos);
|
return ResponseEntity.ok(systemMenuRouterVos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("返回全部的菜单")
|
@ApiOperation("返回全部的菜单")
|
||||||
@@ -91,8 +92,8 @@ public class SystemMenuController {
|
|||||||
@ApiOperation("查询菜单:根据ID获取同级与上级数据")
|
@ApiOperation("查询菜单:根据ID获取同级与上级数据")
|
||||||
@PostMapping("/queryMenuSuperior")
|
@PostMapping("/queryMenuSuperior")
|
||||||
@PreAuthorize("@el.check('menu:list')")
|
@PreAuthorize("@el.check('menu:list')")
|
||||||
public ResponseEntity<List<SystemMenuTb>> queryMenuSuperior(@RequestBody List<Long> ids) {
|
public ResponseEntity<List<SystemMenuVo>> queryMenuSuperior(@RequestBody List<Long> ids) {
|
||||||
List<SystemMenuTb> systemMenuTbs = systemMenuService.listMenuSuperior(ids);
|
List<SystemMenuVo> systemMenuTbs = systemMenuService.listMenuSuperior(ids);
|
||||||
return ResponseEntity.ok(systemMenuTbs);
|
return ResponseEntity.ok(systemMenuTbs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-11
@@ -16,15 +16,11 @@
|
|||||||
package cn.odboy.system.dal.dataobject;
|
package cn.odboy.system.dal.dataobject;
|
||||||
|
|
||||||
import cn.odboy.base.KitBaseUserTimeTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -39,13 +35,6 @@ public class SystemDeptTb extends KitBaseUserTimeTb {
|
|||||||
@TableId(value = "dept_id", type = IdType.AUTO)
|
@TableId(value = "dept_id", type = IdType.AUTO)
|
||||||
@ApiModelProperty(value = "ID", hidden = true)
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
private Long id;
|
private Long id;
|
||||||
@TableField(exist = false)
|
|
||||||
@JSONField(serialize = false)
|
|
||||||
@ApiModelProperty(value = "角色")
|
|
||||||
private Set<SystemRoleTb> roles;
|
|
||||||
@TableField(exist = false)
|
|
||||||
@ApiModelProperty(value = "子部门")
|
|
||||||
private List<SystemDeptTb> children;
|
|
||||||
@ApiModelProperty(value = "排序")
|
@ApiModelProperty(value = "排序")
|
||||||
private Integer deptSort;
|
private Integer deptSort;
|
||||||
@NotBlank
|
@NotBlank
|
||||||
|
|||||||
+2
-3
@@ -15,9 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.dal.dataobject;
|
package cn.odboy.system.dal.dataobject;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.bean.copier.CopyOptions;
|
|
||||||
import cn.odboy.base.KitBaseUserTimeTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
@@ -49,6 +48,6 @@ public class SystemLocalStorageTb extends KitBaseUserTimeTb {
|
|||||||
private String dateGroup;
|
private String dateGroup;
|
||||||
|
|
||||||
public void copy(SystemLocalStorageTb source) {
|
public void copy(SystemLocalStorageTb source) {
|
||||||
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
|
KitBeanUtil.copyToTarget(source, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-9
@@ -16,15 +16,12 @@
|
|||||||
package cn.odboy.system.dal.dataobject;
|
package cn.odboy.system.dal.dataobject;
|
||||||
|
|
||||||
import cn.odboy.base.KitBaseUserTimeTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -38,12 +35,6 @@ public class SystemMenuTb extends KitBaseUserTimeTb {
|
|||||||
@TableId(value = "menu_id", type = IdType.AUTO)
|
@TableId(value = "menu_id", type = IdType.AUTO)
|
||||||
@ApiModelProperty(value = "ID", hidden = true)
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
private Long id;
|
private Long id;
|
||||||
@TableField(exist = false)
|
|
||||||
@JSONField(serialize = false)
|
|
||||||
@ApiModelProperty(value = "菜单角色")
|
|
||||||
private Set<SystemRoleTb> roles;
|
|
||||||
@TableField(exist = false)
|
|
||||||
private List<SystemMenuTb> children;
|
|
||||||
@ApiModelProperty(value = "菜单标题")
|
@ApiModelProperty(value = "菜单标题")
|
||||||
private String title;
|
private String title;
|
||||||
@TableField(value = "name")
|
@TableField(value = "name")
|
||||||
|
|||||||
-3
@@ -36,9 +36,6 @@ public class SystemQuartzJobTb extends KitBaseUserTimeTb {
|
|||||||
@TableId(value = "id", type = IdType.AUTO)
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
@NotNull(groups = {Update.class})
|
@NotNull(groups = {Update.class})
|
||||||
private Long id;
|
private Long id;
|
||||||
@TableField(exist = false)
|
|
||||||
@ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
|
|
||||||
private String uuid;
|
|
||||||
@ApiModelProperty(value = "定时器名称")
|
@ApiModelProperty(value = "定时器名称")
|
||||||
private String jobName;
|
private String jobName;
|
||||||
@NotBlank
|
@NotBlank
|
||||||
|
|||||||
+1
-2
@@ -45,8 +45,7 @@ public class SystemRoleTb extends KitBaseUserTimeTb {
|
|||||||
@ApiModelProperty(value = "名称", hidden = true)
|
@ApiModelProperty(value = "名称", hidden = true)
|
||||||
private String name;
|
private String name;
|
||||||
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
|
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
|
||||||
private String dataScope =
|
private String dataScope = SystemDataScopeEnum.THIS_LEVEL.getValue();
|
||||||
SystemDataScopeEnum.THIS_LEVEL.getValue();
|
|
||||||
@ApiModelProperty(value = "级别,数值越小,级别越大")
|
@ApiModelProperty(value = "级别,数值越小,级别越大")
|
||||||
private Integer level = 3;
|
private Integer level = 3;
|
||||||
@ApiModelProperty(value = "描述")
|
@ApiModelProperty(value = "描述")
|
||||||
|
|||||||
-3
@@ -41,9 +41,6 @@ public class SystemUserTb extends KitBaseUserTimeTb {
|
|||||||
@TableField(value = "dept_id")
|
@TableField(value = "dept_id")
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
@ApiModelProperty(value = "用户部门")
|
|
||||||
@TableField(exist = false)
|
|
||||||
private SystemDeptTb dept;
|
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@ApiModelProperty(value = "用户名称")
|
@ApiModelProperty(value = "用户名称")
|
||||||
private String username;
|
private String username;
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class SystemDeptVo extends SystemDeptTb {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "角色")
|
||||||
|
private Set<SystemRoleTb> roles;
|
||||||
|
@ApiModelProperty(value = "子部门")
|
||||||
|
private List<SystemDeptVo> children;
|
||||||
|
}
|
||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2021-2025 Odboy
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.base.KitObject;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建前端路由时用到
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class SystemMenuRouterVo extends KitObject {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单名称")
|
||||||
|
private String name;
|
||||||
|
@ApiModelProperty(value = "路径")
|
||||||
|
private String path;
|
||||||
|
@ApiModelProperty(value = "隐藏状态")
|
||||||
|
private Boolean hidden;
|
||||||
|
@ApiModelProperty(value = "重定向")
|
||||||
|
private String redirect;
|
||||||
|
@ApiModelProperty(value = "组件")
|
||||||
|
private String component;
|
||||||
|
@ApiModelProperty(value = "总是显示")
|
||||||
|
private Boolean alwaysShow;
|
||||||
|
@ApiModelProperty(value = "元数据")
|
||||||
|
private SystemMenuMetaVo meta;
|
||||||
|
@ApiModelProperty(value = "子路由")
|
||||||
|
private List<SystemMenuRouterVo> children;
|
||||||
|
}
|
||||||
+11
-39
@@ -1,47 +1,19 @@
|
|||||||
/*
|
|
||||||
* Copyright 2021-2025 Odboy
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.base.KitObject;
|
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import lombok.Data;
|
import java.util.Set;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
/**
|
@Getter
|
||||||
* 构建前端路由时用到
|
@Setter
|
||||||
*/
|
public class SystemMenuVo extends SystemMenuTb {
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = false)
|
|
||||||
public class SystemMenuVo extends KitObject {
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "菜单名称")
|
@ApiModelProperty(value = "菜单角色")
|
||||||
private String name;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "路径")
|
@ApiModelProperty(value = "子菜单")
|
||||||
private String path;
|
|
||||||
@ApiModelProperty(value = "隐藏状态")
|
|
||||||
private Boolean hidden;
|
|
||||||
@ApiModelProperty(value = "重定向")
|
|
||||||
private String redirect;
|
|
||||||
@ApiModelProperty(value = "组件")
|
|
||||||
private String component;
|
|
||||||
@ApiModelProperty(value = "总是显示")
|
|
||||||
private Boolean alwaysShow;
|
|
||||||
@ApiModelProperty(value = "元数据")
|
|
||||||
private SystemMenuMetaVo meta;
|
|
||||||
@ApiModelProperty(value = "子路由")
|
|
||||||
private List<SystemMenuVo> children;
|
private List<SystemMenuVo> children;
|
||||||
}
|
}
|
||||||
|
|||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class SystemQuartzJobVo extends SystemQuartzJobTb {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
|
||||||
|
private String uuid;
|
||||||
|
}
|
||||||
+3
-1
@@ -1,5 +1,6 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
@@ -11,7 +12,8 @@ import lombok.Setter;
|
|||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemUserVo extends SystemUserTb {
|
public class SystemUserVo extends SystemUserTb {
|
||||||
|
@ApiModelProperty(value = "用户部门")
|
||||||
|
private SystemDeptTb dept;
|
||||||
@ApiModelProperty(value = "用户角色")
|
@ApiModelProperty(value = "用户角色")
|
||||||
private Set<SystemRoleTb> roles;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "用户岗位")
|
@ApiModelProperty(value = "用户岗位")
|
||||||
|
|||||||
+5
@@ -16,6 +16,8 @@
|
|||||||
package cn.odboy.system.dal.mysql;
|
package cn.odboy.system.dal.mysql;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@@ -27,4 +29,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface SystemQuartzJobMapper extends BaseMapper<SystemQuartzJobTb> {
|
public interface SystemQuartzJobMapper extends BaseMapper<SystemQuartzJobTb> {
|
||||||
|
|
||||||
|
default SystemQuartzJobVo selectVoById(String id) {
|
||||||
|
return KitBeanUtil.copyToClass(selectById(id), SystemQuartzJobVo.class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+25
-29
@@ -1,6 +1,5 @@
|
|||||||
package cn.odboy.system.dal.redis;
|
package cn.odboy.system.dal.redis;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.framework.properties.AppProperties;
|
import cn.odboy.framework.properties.AppProperties;
|
||||||
@@ -8,20 +7,17 @@ import cn.odboy.framework.redis.KitRedisHelper;
|
|||||||
import cn.odboy.system.dal.model.SystemUserJwtVo;
|
import cn.odboy.system.dal.model.SystemUserJwtVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserOnlineVo;
|
import cn.odboy.system.dal.model.SystemUserOnlineVo;
|
||||||
import cn.odboy.system.framework.permission.core.handler.TokenProvider;
|
import cn.odboy.system.framework.permission.core.handler.TokenProvider;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitBrowserUtil;
|
import cn.odboy.util.KitBrowserUtil;
|
||||||
import cn.odboy.util.KitDesEncryptUtil;
|
import cn.odboy.util.KitDesEncryptUtil;
|
||||||
import cn.odboy.util.KitFileUtil;
|
|
||||||
import cn.odboy.util.KitIPUtil;
|
import cn.odboy.util.KitIPUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
@@ -81,28 +77,28 @@ public class SystemUserOnlineInfoDAO {
|
|||||||
redisHelper.del(loginKey);
|
redisHelper.del(loginKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 导出
|
// * 导出
|
||||||
*
|
// *
|
||||||
* @param all /
|
// * @param all /
|
||||||
* @param response /
|
// * @param response /
|
||||||
* @throws IOException /
|
// * @throws IOException /
|
||||||
*/
|
// */
|
||||||
public void downloadUserOnlineModelExcel(List<SystemUserOnlineVo> all, HttpServletResponse response)
|
// public void downloadUserOnlineModelExcel(List<SystemUserOnlineVo> all, HttpServletResponse response)
|
||||||
throws IOException {
|
// throws IOException {
|
||||||
List<Map<String, Object>> list = new ArrayList<>();
|
// List<Map<String, Object>> list = new ArrayList<>();
|
||||||
for (SystemUserOnlineVo user : all) {
|
// for (SystemUserOnlineVo user : all) {
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
// Map<String, Object> map = new LinkedHashMap<>();
|
||||||
map.put("用户名", user.getUserName());
|
// map.put("用户名", user.getUserName());
|
||||||
map.put("部门", user.getDept());
|
// map.put("部门", user.getDept());
|
||||||
map.put("登录IP", user.getIp());
|
// map.put("登录IP", user.getIp());
|
||||||
map.put("登录地点", user.getAddress());
|
// map.put("登录地点", user.getAddress());
|
||||||
map.put("浏览器", user.getBrowser());
|
// map.put("浏览器", user.getBrowser());
|
||||||
map.put("登录日期", user.getLoginTime());
|
// map.put("登录日期", user.getLoginTime());
|
||||||
list.add(map);
|
// list.add(map);
|
||||||
}
|
// }
|
||||||
KitFileUtil.downloadExcel(list, response);
|
// KitFileUtil.downloadExcel(list, response);
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据用户名强退用户
|
* 根据用户名强退用户
|
||||||
@@ -172,8 +168,8 @@ public class SystemUserOnlineInfoDAO {
|
|||||||
public void exportOnlineUserXlsx(HttpServletResponse response, String username) {
|
public void exportOnlineUserXlsx(HttpServletResponse response, String username) {
|
||||||
List<SystemUserOnlineVo> userOnlineVos = this.queryUserOnlineModelListByUsername(username);
|
List<SystemUserOnlineVo> userOnlineVos = this.queryUserOnlineModelListByUsername(username);
|
||||||
// KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class,
|
// KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class,
|
||||||
// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class)));
|
// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class)));
|
||||||
List<SystemUserOnlineVo> rowVos = BeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class);
|
List<SystemUserOnlineVo> rowVos = KitBeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class);
|
||||||
KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos);
|
KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-8
@@ -13,7 +13,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.system.framework.quartz;
|
package cn.odboy.system.framework.quartz;
|
||||||
|
|
||||||
import cn.hutool.core.exceptions.ExceptionUtil;
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
||||||
@@ -27,6 +26,7 @@ import cn.odboy.framework.quartz.core.QuartzRunnable;
|
|||||||
import cn.odboy.framework.redis.KitRedisHelper;
|
import cn.odboy.framework.redis.KitRedisHelper;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import cn.odboy.system.dal.model.SystemSendEmailArgs;
|
import cn.odboy.system.dal.model.SystemSendEmailArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemQuartzLogMapper;
|
import cn.odboy.system.dal.mysql.SystemQuartzLogMapper;
|
||||||
import cn.odboy.system.service.SystemEmailService;
|
import cn.odboy.system.service.SystemEmailService;
|
||||||
@@ -52,14 +52,12 @@ public class ExecutionJobBean extends QuartzJobBean {
|
|||||||
@Override
|
@Override
|
||||||
public void executeInternal(JobExecutionContext context) {
|
public void executeInternal(JobExecutionContext context) {
|
||||||
// 获取任务
|
// 获取任务
|
||||||
SystemQuartzJobTb quartzJob = (SystemQuartzJobTb) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY);
|
SystemQuartzJobVo quartzJob = (SystemQuartzJobVo) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY);
|
||||||
// 获取spring bean
|
// 获取spring bean
|
||||||
SystemQuartzLogMapper quartzLogMapper = KitSpringBeanHolder.getBean(SystemQuartzLogMapper.class);
|
SystemQuartzLogMapper quartzLogMapper = KitSpringBeanHolder.getBean(SystemQuartzLogMapper.class);
|
||||||
SystemQuartzJobService systemQuartzJobService = KitSpringBeanHolder.getBean(SystemQuartzJobService.class);
|
SystemQuartzJobService systemQuartzJobService = KitSpringBeanHolder.getBean(SystemQuartzJobService.class);
|
||||||
KitRedisHelper redisHelper = KitSpringBeanHolder.getBean(KitRedisHelper.class);
|
KitRedisHelper redisHelper = KitSpringBeanHolder.getBean(KitRedisHelper.class);
|
||||||
|
|
||||||
String uuid = quartzJob.getUuid();
|
String uuid = quartzJob.getUuid();
|
||||||
|
|
||||||
SystemQuartzLogTb quartzLog = new SystemQuartzLogTb();
|
SystemQuartzLogTb quartzLog = new SystemQuartzLogTb();
|
||||||
quartzLog.setJobName(quartzJob.getJobName());
|
quartzLog.setJobName(quartzJob.getJobName());
|
||||||
quartzLog.setBeanName(quartzJob.getBeanName());
|
quartzLog.setBeanName(quartzJob.getBeanName());
|
||||||
@@ -69,8 +67,7 @@ public class ExecutionJobBean extends QuartzJobBean {
|
|||||||
quartzLog.setCronExpression(quartzJob.getCronExpression());
|
quartzLog.setCronExpression(quartzJob.getCronExpression());
|
||||||
try {
|
try {
|
||||||
// 执行任务
|
// 执行任务
|
||||||
QuartzRunnable task =
|
QuartzRunnable task = new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), quartzJob.getParams());
|
||||||
new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), quartzJob.getParams());
|
|
||||||
Future<?> future = executor.submit(task);
|
Future<?> future = executor.submit(task);
|
||||||
// 忽略任务执行结果
|
// 忽略任务执行结果
|
||||||
future.get();
|
future.get();
|
||||||
@@ -123,8 +120,7 @@ public class ExecutionJobBean extends QuartzJobBean {
|
|||||||
Map<String, Object> data = new HashMap<>(16);
|
Map<String, Object> data = new HashMap<>(16);
|
||||||
data.put("task", quartzJob);
|
data.put("task", quartzJob);
|
||||||
data.put("msg", msg);
|
data.put("msg", msg);
|
||||||
TemplateEngine engine =
|
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH));
|
||||||
TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH));
|
|
||||||
Template template = engine.getTemplate("SystemQuartzJobTaskAlarmTemplate.ftl");
|
Template template = engine.getTemplate("SystemQuartzJobTaskAlarmTemplate.ftl");
|
||||||
sendEmailRequest.setContent(template.render(data));
|
sendEmailRequest.setContent(template.render(data));
|
||||||
List<String> emails = Arrays.asList(quartzJob.getEmail().split("[,,]"));
|
List<String> emails = Arrays.asList(quartzJob.getEmail().split("[,,]"));
|
||||||
|
|||||||
+6
-7
@@ -1,6 +1,5 @@
|
|||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.constant.CaptchaCodeEnum;
|
import cn.odboy.constant.CaptchaCodeEnum;
|
||||||
@@ -16,6 +15,7 @@ import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
|
|||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
import cn.odboy.system.framework.permission.core.handler.TokenProvider;
|
import cn.odboy.system.framework.permission.core.handler.TokenProvider;
|
||||||
import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler;
|
import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitRsaEncryptUtil;
|
import cn.odboy.util.KitRsaEncryptUtil;
|
||||||
import com.wf.captcha.base.Captcha;
|
import com.wf.captcha.base.Captcha;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -47,8 +47,7 @@ public class SystemAuthService {
|
|||||||
|
|
||||||
public Map<String, Object> doLogin(SystemUserLoginArgs loginRequest, HttpServletRequest request) throws Exception {
|
public Map<String, Object> doLogin(SystemUserLoginArgs loginRequest, HttpServletRequest request) throws Exception {
|
||||||
// 密码解密
|
// 密码解密
|
||||||
String password =
|
String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword());
|
||||||
KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword());
|
|
||||||
// 查询验证码
|
// 查询验证码
|
||||||
String code = redisHelper.get(loginRequest.getUuid(), String.class);
|
String code = redisHelper.get(loginRequest.getUuid(), String.class);
|
||||||
// 清除验证码
|
// 清除验证码
|
||||||
@@ -65,15 +64,14 @@ public class SystemAuthService {
|
|||||||
if (!passwordEncoder.matches(password, jwtUser.getPassword())) {
|
if (!passwordEncoder.matches(password, jwtUser.getPassword())) {
|
||||||
throw new BadRequestException("登录密码错误");
|
throw new BadRequestException("登录密码错误");
|
||||||
}
|
}
|
||||||
Authentication authentication =
|
Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities());
|
||||||
new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities());
|
|
||||||
SecurityContextHolder.getContext().setAuthentication(authentication);
|
SecurityContextHolder.getContext().setAuthentication(authentication);
|
||||||
// 生成令牌
|
// 生成令牌
|
||||||
String token = tokenProvider.createToken(jwtUser);
|
String token = tokenProvider.createToken(jwtUser);
|
||||||
// 返回 token 与 用户信息
|
// 返回 token 与 用户信息
|
||||||
Map<String, Object> authInfo = new HashMap<>(2) {{
|
Map<String, Object> authInfo = new HashMap<>(2) {{
|
||||||
put("token", String.format("%s %s", SystemConst.TOKEN_PREFIX, token));
|
put("token", String.format("%s %s", SystemConst.TOKEN_PREFIX, token));
|
||||||
put("user", BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class));
|
put("user", KitBeanUtil.copyToClass(jwtUser, SystemUserInfoVo.class));
|
||||||
}};
|
}};
|
||||||
if (properties.getLogin().isSingle()) {
|
if (properties.getLogin().isSingle()) {
|
||||||
// 踢掉之前已经登录的token
|
// 踢掉之前已经登录的token
|
||||||
@@ -87,7 +85,8 @@ public class SystemAuthService {
|
|||||||
|
|
||||||
public SystemUserInfoVo getCurrentUserInfoVo() {
|
public SystemUserInfoVo getCurrentUserInfoVo() {
|
||||||
SystemUserJwtVo jwtUser = (SystemUserJwtVo) KitSecurityHelper.getCurrentUser();
|
SystemUserJwtVo jwtUser = (SystemUserJwtVo) KitSecurityHelper.getCurrentUser();
|
||||||
return BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class);
|
// 转换是为了去掉密码
|
||||||
|
return KitBeanUtil.copyToClass(jwtUser, SystemUserInfoVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Object> getCaptchaInfo() {
|
public Map<String, Object> getCaptchaInfo() {
|
||||||
|
|||||||
+2
-2
@@ -19,8 +19,8 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.odboy.system.constant.SystemDataScopeEnum;
|
import cn.odboy.system.constant.SystemDataScopeEnum;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
|
||||||
import cn.odboy.system.dal.model.SystemRoleVo;
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -49,7 +49,7 @@ public class SystemDataService {
|
|||||||
* @param user /
|
* @param user /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public List<Long> queryDeptIdByArgs(SystemUserTb user) {
|
public List<Long> queryDeptIdByArgs(SystemUserVo user) {
|
||||||
List<Long> deptIds = new ArrayList<>();
|
List<Long> deptIds = new ArrayList<>();
|
||||||
// 查询用户角色
|
// 查询用户角色
|
||||||
List<SystemRoleVo> roleList = systemUserRoleService.queryRoleByUsersId(user.getId());
|
List<SystemRoleVo> roleList = systemUserRoleService.queryRoleByUsersId(user.getId());
|
||||||
|
|||||||
+11
-10
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
@@ -27,11 +26,13 @@ import cn.odboy.system.constant.SystemZhConst;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
|
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
|
||||||
import cn.odboy.system.dal.model.SystemDeptExportRowVo;
|
import cn.odboy.system.dal.model.SystemDeptExportRowVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemProductLineTreeVo;
|
import cn.odboy.system.dal.model.SystemProductLineTreeVo;
|
||||||
import cn.odboy.system.dal.model.SystemProductLineVo;
|
import cn.odboy.system.dal.model.SystemProductLineVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryDeptArgs;
|
import cn.odboy.system.dal.model.SystemQueryDeptArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemDeptMapper;
|
import cn.odboy.system.dal.mysql.SystemDeptMapper;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitClassUtil;
|
import cn.odboy.util.KitClassUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -68,7 +69,7 @@ public class SystemDeptService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveDept(SystemCreateDeptArgs args) {
|
public void saveDept(SystemCreateDeptArgs args) {
|
||||||
systemDeptMapper.insert(BeanUtil.copyProperties(args, SystemDeptTb.class));
|
systemDeptMapper.insert(KitBeanUtil.copyToClass(args, SystemDeptTb.class));
|
||||||
this.updateDeptSubCnt(args.getPid());
|
this.updateDeptSubCnt(args.getPid());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,7 +273,7 @@ public class SystemDeptService {
|
|||||||
*
|
*
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public KitPageResult<SystemDeptTb> searchDeptTree(List<Long> ids, Boolean exclude) {
|
public KitPageResult<SystemDeptVo> searchDeptTree(List<Long> ids, Boolean exclude) {
|
||||||
Set<SystemDeptTb> deptSet1 = new LinkedHashSet<>();
|
Set<SystemDeptTb> deptSet1 = new LinkedHashSet<>();
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
// 同级数据
|
// 同级数据
|
||||||
@@ -290,18 +291,18 @@ public class SystemDeptService {
|
|||||||
}
|
}
|
||||||
deptSet1.addAll(depts);
|
deptSet1.addAll(depts);
|
||||||
}
|
}
|
||||||
ArrayList<SystemDeptTb> deptList = new ArrayList<>(deptSet1);
|
List<SystemDeptVo> deptList = KitBeanUtil.copyToList(new ArrayList<>(deptSet1), SystemDeptVo.class);
|
||||||
// 构建部门树
|
// 构建部门树
|
||||||
Set<SystemDeptTb> trees = new LinkedHashSet<>();
|
Set<SystemDeptVo> trees = new LinkedHashSet<>();
|
||||||
Set<SystemDeptTb> deptSet = new LinkedHashSet<>();
|
Set<SystemDeptVo> deptSet = new LinkedHashSet<>();
|
||||||
List<String> deptNames = deptList.stream().map(SystemDeptTb::getName).collect(Collectors.toList());
|
List<String> deptNames = deptList.stream().map(SystemDeptVo::getName).collect(Collectors.toList());
|
||||||
boolean isChild;
|
boolean isChild;
|
||||||
for (SystemDeptTb dept : deptList) {
|
for (SystemDeptVo dept : deptList) {
|
||||||
isChild = false;
|
isChild = false;
|
||||||
if (dept.getPid() == null) {
|
if (dept.getPid() == null) {
|
||||||
trees.add(dept);
|
trees.add(dept);
|
||||||
}
|
}
|
||||||
for (SystemDeptTb it : deptList) {
|
for (SystemDeptVo it : deptList) {
|
||||||
if (it.getPid() != null && dept.getId().equals(it.getPid())) {
|
if (it.getPid() != null && dept.getId().equals(it.getPid())) {
|
||||||
isChild = true;
|
isChild = true;
|
||||||
if (dept.getChildren() == null) {
|
if (dept.getChildren() == null) {
|
||||||
@@ -319,7 +320,7 @@ public class SystemDeptService {
|
|||||||
if (CollectionUtil.isEmpty(trees)) {
|
if (CollectionUtil.isEmpty(trees)) {
|
||||||
trees = deptSet;
|
trees = deptSet;
|
||||||
}
|
}
|
||||||
KitPageResult<SystemDeptTb> baseResult = new KitPageResult<>();
|
KitPageResult<SystemDeptVo> baseResult = new KitPageResult<>();
|
||||||
baseResult.setContent(CollectionUtil.isEmpty(trees) ? new ArrayList<>(deptSet) : new ArrayList<>(trees));
|
baseResult.setContent(CollectionUtil.isEmpty(trees) ? new ArrayList<>(deptSet) : new ArrayList<>(trees));
|
||||||
baseResult.setTotalElements(deptSet.size());
|
baseResult.setTotalElements(deptSet.size());
|
||||||
return baseResult;
|
return baseResult;
|
||||||
|
|||||||
+4
-4
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
@@ -26,6 +25,7 @@ import cn.odboy.system.dal.model.SystemDictDetailVo;
|
|||||||
import cn.odboy.system.dal.model.SystemQueryDictDetailArgs;
|
import cn.odboy.system.dal.model.SystemQueryDictDetailArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemDictDetailMapper;
|
import cn.odboy.system.dal.mysql.SystemDictDetailMapper;
|
||||||
import cn.odboy.system.dal.mysql.SystemDictMapper;
|
import cn.odboy.system.dal.mysql.SystemDictMapper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -55,7 +55,7 @@ public class SystemDictDetailService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveDictDetail(SystemCreateDictDetailArgs args) {
|
public void saveDictDetail(SystemCreateDictDetailArgs args) {
|
||||||
SystemDictDetailTb dictDetail = BeanUtil.copyProperties(args, SystemDictDetailTb.class);
|
SystemDictDetailTb dictDetail = KitBeanUtil.copyToClass(args, SystemDictDetailTb.class);
|
||||||
dictDetail.setDictId(args.getDict().getId());
|
dictDetail.setDictId(args.getDict().getId());
|
||||||
systemDictDetailMapper.insert(dictDetail);
|
systemDictDetailMapper.insert(dictDetail);
|
||||||
}
|
}
|
||||||
@@ -106,7 +106,7 @@ public class SystemDictDetailService {
|
|||||||
*/
|
*/
|
||||||
public KitPageResult<SystemDictDetailVo> searchDictDetail(SystemQueryDictDetailArgs args,
|
public KitPageResult<SystemDictDetailVo> searchDictDetail(SystemQueryDictDetailArgs args,
|
||||||
Page<SystemDictDetailTb> page) {
|
Page<SystemDictDetailTb> page) {
|
||||||
IPage<SystemDictDetailVo> iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> BeanUtil.copyProperties(i, SystemDictDetailVo.class));
|
IPage<SystemDictDetailVo> iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> KitBeanUtil.copyToClass(i, SystemDictDetailVo.class));
|
||||||
List<Long> dictIds = iPage.getRecords().stream().map(SystemDictDetailTb::getDictId).collect(Collectors.toList());
|
List<Long> dictIds = iPage.getRecords().stream().map(SystemDictDetailTb::getDictId).collect(Collectors.toList());
|
||||||
Map<Long, SystemDictTb> id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i));
|
Map<Long, SystemDictTb> id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i));
|
||||||
for (SystemDictDetailVo record : iPage.getRecords()) {
|
for (SystemDictDetailVo record : iPage.getRecords()) {
|
||||||
@@ -130,7 +130,7 @@ public class SystemDictDetailService {
|
|||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return this.listDictDetailByDictId(systemDictTb.getId()).stream().map(m -> {
|
return this.listDictDetailByDictId(systemDictTb.getId()).stream().map(m -> {
|
||||||
SystemDictDetailVo detailVo = BeanUtil.copyProperties(m, SystemDictDetailVo.class);
|
SystemDictDetailVo detailVo = KitBeanUtil.copyToClass(m, SystemDictDetailVo.class);
|
||||||
detailVo.setDict(systemDictTb);
|
detailVo.setDict(systemDictTb);
|
||||||
return detailVo;
|
return detailVo;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
@@ -25,6 +24,7 @@ import cn.odboy.system.dal.model.SystemDictDetailVo;
|
|||||||
import cn.odboy.system.dal.model.SystemDictExportRowVo;
|
import cn.odboy.system.dal.model.SystemDictExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryDictArgs;
|
import cn.odboy.system.dal.model.SystemQueryDictArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemDictMapper;
|
import cn.odboy.system.dal.mysql.SystemDictMapper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -52,7 +52,7 @@ public class SystemDictService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveDict(SystemCreateDictArgs args) {
|
public void saveDict(SystemCreateDictArgs args) {
|
||||||
systemDictMapper.insert(BeanUtil.copyProperties(args, SystemDictTb.class));
|
systemDictMapper.insert(KitBeanUtil.copyToClass(args, SystemDictTb.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
@@ -25,6 +24,7 @@ import cn.odboy.system.dal.model.SystemCreateJobArgs;
|
|||||||
import cn.odboy.system.dal.model.SystemJobExportRowVo;
|
import cn.odboy.system.dal.model.SystemJobExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryJobArgs;
|
import cn.odboy.system.dal.model.SystemQueryJobArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemJobMapper;
|
import cn.odboy.system.dal.mysql.SystemJobMapper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -56,7 +56,7 @@ public class SystemJobService {
|
|||||||
if (job != null) {
|
if (job != null) {
|
||||||
throw new BadRequestException("职位名称已存在");
|
throw new BadRequestException("职位名称已存在");
|
||||||
}
|
}
|
||||||
systemJobMapper.insert(BeanUtil.copyProperties(args, SystemJobTb.class));
|
systemJobMapper.insert(KitBeanUtil.copyToClass(args, SystemJobTb.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+3
-3
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
@@ -31,6 +30,7 @@ import cn.odboy.system.dal.dataobject.SystemLocalStorageTb;
|
|||||||
import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo;
|
import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryStorageArgs;
|
import cn.odboy.system.dal.model.SystemQueryStorageArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemLocalStorageMapper;
|
import cn.odboy.system.dal.mysql.SystemLocalStorageMapper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitFileUtil;
|
import cn.odboy.util.KitFileUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
@@ -172,8 +172,8 @@ public class SystemLocalStorageService {
|
|||||||
public void exportLocalStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) {
|
public void exportLocalStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) {
|
||||||
List<SystemLocalStorageTb> systemLocalStorageTbs = this.queryLocalStorageByArgs(args);
|
List<SystemLocalStorageTb> systemLocalStorageTbs = this.queryLocalStorageByArgs(args);
|
||||||
// KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class,
|
// KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class,
|
||||||
// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class)));
|
// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class)));
|
||||||
List<SystemLocalStorageExportRowVo> rowVos = BeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class);
|
List<SystemLocalStorageExportRowVo> rowVos = KitBeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class);
|
||||||
KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos);
|
KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-21
@@ -26,11 +26,13 @@ import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.model.SystemMenuExportRowVo;
|
import cn.odboy.system.dal.model.SystemMenuExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuMetaVo;
|
import cn.odboy.system.dal.model.SystemMenuMetaVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemMenuRouterVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuVo;
|
import cn.odboy.system.dal.model.SystemMenuVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
|
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
|
||||||
import cn.odboy.system.dal.model.SystemRoleVo;
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
import cn.odboy.system.dal.mysql.SystemMenuMapper;
|
import cn.odboy.system.dal.mysql.SystemMenuMapper;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitClassUtil;
|
import cn.odboy.util.KitClassUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -278,14 +280,14 @@ public class SystemMenuService {
|
|||||||
* @param menus 原始数据
|
* @param menus 原始数据
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public List<SystemMenuTb> buildMenuTree(List<SystemMenuTb> menus) {
|
public List<SystemMenuVo> buildMenuTree(List<SystemMenuVo> menus) {
|
||||||
List<SystemMenuTb> trees = new ArrayList<>();
|
List<SystemMenuVo> trees = new ArrayList<>();
|
||||||
Set<Long> ids = new HashSet<>();
|
Set<Long> ids = new HashSet<>();
|
||||||
for (SystemMenuTb menu : menus) {
|
for (SystemMenuVo menu : menus) {
|
||||||
if (menu.getPid() == null) {
|
if (menu.getPid() == null) {
|
||||||
trees.add(menu);
|
trees.add(menu);
|
||||||
}
|
}
|
||||||
for (SystemMenuTb it : menus) {
|
for (SystemMenuVo it : menus) {
|
||||||
if (menu.getId().equals(it.getPid())) {
|
if (menu.getId().equals(it.getPid())) {
|
||||||
if (menu.getChildren() == null) {
|
if (menu.getChildren() == null) {
|
||||||
menu.setChildren(new ArrayList<>());
|
menu.setChildren(new ArrayList<>());
|
||||||
@@ -307,12 +309,12 @@ public class SystemMenuService {
|
|||||||
* @param menus /
|
* @param menus /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public List<SystemMenuVo> buildMenuVo(List<SystemMenuTb> menus) {
|
public List<SystemMenuRouterVo> buildMenuVo(List<SystemMenuVo> menus) {
|
||||||
List<SystemMenuVo> list = new LinkedList<>();
|
List<SystemMenuRouterVo> list = new LinkedList<>();
|
||||||
menus.forEach(menu -> {
|
for (SystemMenuVo menu : menus) {
|
||||||
if (menu != null) {
|
if (menu != null) {
|
||||||
List<SystemMenuTb> menuList = menu.getChildren();
|
List<SystemMenuVo> menuList = menu.getChildren();
|
||||||
SystemMenuVo menuVo = new SystemMenuVo();
|
SystemMenuRouterVo menuVo = new SystemMenuRouterVo();
|
||||||
menuVo.setName(
|
menuVo.setName(
|
||||||
ObjectUtil.isNotEmpty(menu.getComponentName()) ? menu.getComponentName() : menu.getTitle());
|
ObjectUtil.isNotEmpty(menu.getComponentName()) ? menu.getComponentName() : menu.getTitle());
|
||||||
// 一级目录需要加斜杠, 不然会报警告
|
// 一级目录需要加斜杠, 不然会报警告
|
||||||
@@ -336,17 +338,17 @@ public class SystemMenuService {
|
|||||||
menuVo.setChildren(buildMenuVo(menuList));
|
menuVo.setChildren(buildMenuVo(menuList));
|
||||||
// 处理是一级菜单并且没有子菜单的情况
|
// 处理是一级菜单并且没有子菜单的情况
|
||||||
} else if (menu.getPid() == null) {
|
} else if (menu.getPid() == null) {
|
||||||
SystemMenuVo menuVo1 = getMenuVo(menu, menuVo);
|
SystemMenuRouterVo menuVo1 = getMenuVo(menu, menuVo);
|
||||||
menuVo.setName(null);
|
menuVo.setName(null);
|
||||||
menuVo.setMeta(null);
|
menuVo.setMeta(null);
|
||||||
menuVo.setComponent("Layout");
|
menuVo.setComponent("Layout");
|
||||||
List<SystemMenuVo> list1 = new ArrayList<>();
|
List<SystemMenuRouterVo> list1 = new ArrayList<>();
|
||||||
list1.add(menuVo1);
|
list1.add(menuVo1);
|
||||||
menuVo.setChildren(list1);
|
menuVo.setChildren(list1);
|
||||||
}
|
}
|
||||||
list.add(menuVo);
|
list.add(menuVo);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,8 +359,8 @@ public class SystemMenuService {
|
|||||||
* @param menuVo /
|
* @param menuVo /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
private SystemMenuVo getMenuVo(SystemMenuTb menu, SystemMenuVo menuVo) {
|
private SystemMenuRouterVo getMenuVo(SystemMenuTb menu, SystemMenuRouterVo menuVo) {
|
||||||
SystemMenuVo menuVo1 = new SystemMenuVo();
|
SystemMenuRouterVo menuVo1 = new SystemMenuRouterVo();
|
||||||
menuVo1.setMeta(menuVo.getMeta());
|
menuVo1.setMeta(menuVo.getMeta());
|
||||||
// 非外链
|
// 非外链
|
||||||
if (!menu.getIFrame()) {
|
if (!menu.getIFrame()) {
|
||||||
@@ -418,10 +420,11 @@ public class SystemMenuService {
|
|||||||
return systemMenuMapper.selectList(wrapper);
|
return systemMenuMapper.selectList(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SystemMenuVo> buildFrontMenus() {
|
public List<SystemMenuRouterVo> buildFrontMenus() {
|
||||||
List<SystemMenuTb> menuList = this.listMenuByUserId(KitSecurityHelper.getCurrentUserId());
|
List<SystemMenuTb> menuList = this.listMenuByUserId(KitSecurityHelper.getCurrentUserId());
|
||||||
List<SystemMenuTb> menus = this.buildMenuTree(menuList);
|
List<SystemMenuVo> originMenus = KitBeanUtil.copyToList(menuList, SystemMenuVo.class);
|
||||||
return this.buildMenuVo(menus);
|
List<SystemMenuVo> targetMenus = this.buildMenuTree(originMenus);
|
||||||
|
return this.buildMenuVo(targetMenus);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<Long> listChildMenuSetByMenuId(Long id) {
|
public Set<Long> listChildMenuSetByMenuId(Long id) {
|
||||||
@@ -432,9 +435,9 @@ public class SystemMenuService {
|
|||||||
return menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet());
|
return menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SystemMenuTb> listMenuSuperior(List<Long> ids) {
|
public List<SystemMenuVo> listMenuSuperior(List<Long> ids) {
|
||||||
Set<SystemMenuTb> menus;
|
Set<SystemMenuTb> menus;
|
||||||
List<SystemMenuTb> systemMenuTbs;
|
List<SystemMenuVo> systemMenuTbs;
|
||||||
if (CollectionUtil.isNotEmpty(ids)) {
|
if (CollectionUtil.isNotEmpty(ids)) {
|
||||||
menus = new LinkedHashSet<>(this.listMenuByIds(ids));
|
menus = new LinkedHashSet<>(this.listMenuByIds(ids));
|
||||||
for (SystemMenuTb menu : menus) {
|
for (SystemMenuTb menu : menus) {
|
||||||
@@ -448,9 +451,11 @@ public class SystemMenuService {
|
|||||||
}
|
}
|
||||||
// 编辑菜单时不显示自己以及自己下级的数据, 避免出现PID数据环形问题
|
// 编辑菜单时不显示自己以及自己下级的数据, 避免出现PID数据环形问题
|
||||||
menus = menus.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet());
|
menus = menus.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet());
|
||||||
systemMenuTbs = this.buildMenuTree(new ArrayList<>(menus));
|
List<SystemMenuTb> newMenuList = new ArrayList<>(menus);
|
||||||
|
systemMenuTbs = this.buildMenuTree(KitBeanUtil.copyToList(newMenuList, SystemMenuVo.class));
|
||||||
} else {
|
} else {
|
||||||
systemMenuTbs = this.listMenuByPid(null);
|
List<SystemMenuTb> newMenuList = this.listMenuByPid(null);
|
||||||
|
systemMenuTbs = KitBeanUtil.copyToList(newMenuList, SystemMenuVo.class);
|
||||||
}
|
}
|
||||||
return systemMenuTbs;
|
return systemMenuTbs;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
@@ -26,12 +25,14 @@ import cn.odboy.framework.redis.KitRedisHelper;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
||||||
import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo;
|
import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo;
|
import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
|
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
|
||||||
import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs;
|
import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemQuartzJobMapper;
|
import cn.odboy.system.dal.mysql.SystemQuartzJobMapper;
|
||||||
import cn.odboy.system.dal.mysql.SystemQuartzLogMapper;
|
import cn.odboy.system.dal.mysql.SystemQuartzLogMapper;
|
||||||
import cn.odboy.system.framework.quartz.QuartzManage;
|
import cn.odboy.system.framework.quartz.QuartzManage;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -108,7 +109,7 @@ public class SystemQuartzJobService {
|
|||||||
throw new BadRequestException("子任务中不能添加当前任务ID");
|
throw new BadRequestException("子任务中不能添加当前任务ID");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SystemQuartzJobTb quartzJob = BeanUtil.copyProperties(args, SystemQuartzJobTb.class);
|
SystemQuartzJobTb quartzJob = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class);
|
||||||
systemQuartzJobMapper.insertOrUpdate(quartzJob);
|
systemQuartzJobMapper.insertOrUpdate(quartzJob);
|
||||||
quartzManage.updateJobCron(quartzJob);
|
quartzManage.updateJobCron(quartzJob);
|
||||||
}
|
}
|
||||||
@@ -167,7 +168,7 @@ public class SystemQuartzJobService {
|
|||||||
// 如果是手动清除子任务id, 会出现id为空字符串的问题
|
// 如果是手动清除子任务id, 会出现id为空字符串的问题
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
SystemQuartzJobTb quartzJob = systemQuartzJobMapper.selectById(Long.parseLong(id));
|
SystemQuartzJobVo quartzJob = systemQuartzJobMapper.selectVoById(id);
|
||||||
if (quartzJob == null) {
|
if (quartzJob == null) {
|
||||||
// 防止子任务不存在
|
// 防止子任务不存在
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
+3
-3
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
@@ -32,6 +31,7 @@ import cn.odboy.system.dal.model.SystemRoleExportRowVo;
|
|||||||
import cn.odboy.system.dal.model.SystemRoleVo;
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
import cn.odboy.system.dal.mysql.SystemRoleMapper;
|
import cn.odboy.system.dal.mysql.SystemRoleMapper;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -70,7 +70,7 @@ public class SystemRoleService {
|
|||||||
if (this.getRoleByName(args.getName()) != null) {
|
if (this.getRoleByName(args.getName()) != null) {
|
||||||
throw new BadRequestException("角色名称已存在");
|
throw new BadRequestException("角色名称已存在");
|
||||||
}
|
}
|
||||||
systemRoleMapper.insert(BeanUtil.copyProperties(args, SystemRoleTb.class));
|
systemRoleMapper.insert(KitBeanUtil.copyToClass(args, SystemRoleTb.class));
|
||||||
// 判断是否有部门数据, 若有, 则需创建关联
|
// 判断是否有部门数据, 若有, 则需创建关联
|
||||||
if (CollectionUtil.isNotEmpty(args.getDepts())) {
|
if (CollectionUtil.isNotEmpty(args.getDepts())) {
|
||||||
systemRoleDeptService.batchInsertRoleDept(args.getDepts(), args.getId());
|
systemRoleDeptService.batchInsertRoleDept(args.getDepts(), args.getId());
|
||||||
@@ -91,7 +91,7 @@ public class SystemRoleService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateRoleById(SystemRoleVo args) {
|
public void updateRoleById(SystemRoleVo args) {
|
||||||
checkRoleLevels(args.getLevel());
|
checkRoleLevels(args.getLevel());
|
||||||
SystemRoleVo role = BeanUtil.copyProperties(systemRoleMapper.selectById(args.getId()), SystemRoleVo.class);
|
SystemRoleVo role = KitBeanUtil.copyToClass(systemRoleMapper.selectById(args.getId()), SystemRoleVo.class);
|
||||||
SystemRoleTb role1 = this.getRoleByName(args.getName());
|
SystemRoleTb role1 = this.getRoleByName(args.getName());
|
||||||
if (role1 != null && !role1.getId().equals(role.getId())) {
|
if (role1 != null && !role1.getId().equals(role.getId())) {
|
||||||
throw new BadRequestException("角色名称已存在");
|
throw new BadRequestException("角色名称已存在");
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
@@ -27,6 +26,7 @@ import cn.odboy.system.dal.model.SystemUserVo;
|
|||||||
import cn.odboy.system.dal.mysql.SystemRoleMapper;
|
import cn.odboy.system.dal.mysql.SystemRoleMapper;
|
||||||
import cn.odboy.system.dal.mysql.SystemUserRoleMapper;
|
import cn.odboy.system.dal.mysql.SystemUserRoleMapper;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -84,7 +84,7 @@ public class SystemUserRoleService {
|
|||||||
if (role == null) {
|
if (role == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
SystemRoleVo roleVo = BeanUtil.copyProperties(role, SystemRoleVo.class);
|
SystemRoleVo roleVo = KitBeanUtil.copyToClass(role, SystemRoleVo.class);
|
||||||
// 查询关联的菜单信息
|
// 查询关联的菜单信息
|
||||||
Set<SystemMenuTb> menus = systemRoleMenuService.queryMenuByRoleIds(
|
Set<SystemMenuTb> menus = systemRoleMenuService.queryMenuByRoleIds(
|
||||||
Collections.singleton(role.getId()));
|
Collections.singleton(role.getId()));
|
||||||
|
|||||||
+3
-5
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
@@ -41,6 +40,7 @@ import cn.odboy.system.dal.mysql.SystemUserMapper;
|
|||||||
import cn.odboy.system.dal.redis.SystemUserInfoDAO;
|
import cn.odboy.system.dal.redis.SystemUserInfoDAO;
|
||||||
import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
|
import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitFileUtil;
|
import cn.odboy.util.KitFileUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.KitRsaEncryptUtil;
|
import cn.odboy.util.KitRsaEncryptUtil;
|
||||||
@@ -155,7 +155,6 @@ public class SystemUserService {
|
|||||||
user.setUsername(args.getUsername());
|
user.setUsername(args.getUsername());
|
||||||
user.setEmail(args.getEmail());
|
user.setEmail(args.getEmail());
|
||||||
user.setEnabled(args.getEnabled());
|
user.setEnabled(args.getEnabled());
|
||||||
user.setDept(args.getDept());
|
|
||||||
user.setPhone(args.getPhone());
|
user.setPhone(args.getPhone());
|
||||||
user.setNickName(args.getNickName());
|
user.setNickName(args.getNickName());
|
||||||
user.setGender(args.getGender());
|
user.setGender(args.getGender());
|
||||||
@@ -436,7 +435,7 @@ public class SystemUserService {
|
|||||||
if (user == null) {
|
if (user == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
SystemUserVo userVo = BeanUtil.copyProperties(user, SystemUserVo.class);
|
SystemUserVo userVo = KitBeanUtil.copyToClass(user, SystemUserVo.class);
|
||||||
// 查询关联的部门信息
|
// 查询关联的部门信息
|
||||||
if (user.getDeptId() != null) {
|
if (user.getDeptId() != null) {
|
||||||
SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId());
|
SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId());
|
||||||
@@ -493,8 +492,7 @@ public class SystemUserService {
|
|||||||
args.getDeptIds().addAll(systemDeptService.queryChildDeptIdByDeptIds(data));
|
args.getDeptIds().addAll(systemDeptService.queryChildDeptIdByDeptIds(data));
|
||||||
}
|
}
|
||||||
// 数据权限
|
// 数据权限
|
||||||
List<Long> dataScopes = systemDataService.queryDeptIdByArgs(
|
List<Long> dataScopes = systemDataService.queryDeptIdByArgs(this.getUserVoByUsername(currentUsername));
|
||||||
this.getUserByUsername(currentUsername));
|
|
||||||
// args.getDeptIds() 不为空并且数据权限不为空则取交集
|
// args.getDeptIds() 不为空并且数据权限不为空则取交集
|
||||||
if (!CollectionUtils.isEmpty(args.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) {
|
if (!CollectionUtils.isEmpty(args.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) {
|
||||||
// 取交集
|
// 取交集
|
||||||
|
|||||||
+4
-4
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service.impl;
|
package cn.odboy.system.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
@@ -30,6 +29,7 @@ import cn.odboy.system.dal.model.SystemQueryStorageArgs;
|
|||||||
import cn.odboy.system.dal.mysql.SystemOssStorageMapper;
|
import cn.odboy.system.dal.mysql.SystemOssStorageMapper;
|
||||||
import cn.odboy.system.framework.storage.minio.MinioRepository;
|
import cn.odboy.system.framework.storage.minio.MinioRepository;
|
||||||
import cn.odboy.system.service.SystemOssStorageService;
|
import cn.odboy.system.service.SystemOssStorageService;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitDateUtil;
|
import cn.odboy.util.KitDateUtil;
|
||||||
import cn.odboy.util.KitFileUtil;
|
import cn.odboy.util.KitFileUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
@@ -72,7 +72,7 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl<SystemOssStorageM
|
|||||||
Page<SystemOssStorageTb> page) {
|
Page<SystemOssStorageTb> page) {
|
||||||
IPage<SystemOssStorageTb> ossStorageTbs = this.selectOssStorageByArgs(args, page);
|
IPage<SystemOssStorageTb> ossStorageTbs = this.selectOssStorageByArgs(args, page);
|
||||||
IPage<SystemOssStorageVo> convert = ossStorageTbs.convert(c -> {
|
IPage<SystemOssStorageVo> convert = ossStorageTbs.convert(c -> {
|
||||||
SystemOssStorageVo storageVo = BeanUtil.copyProperties(c, SystemOssStorageVo.class);
|
SystemOssStorageVo storageVo = KitBeanUtil.copyToClass(c, SystemOssStorageVo.class);
|
||||||
storageVo.setFileSizeDesc(KitFileUtil.getSize(storageVo.getFileSize()));
|
storageVo.setFileSizeDesc(KitFileUtil.getSize(storageVo.getFileSize()));
|
||||||
return storageVo;
|
return storageVo;
|
||||||
});
|
});
|
||||||
@@ -157,8 +157,8 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl<SystemOssStorageM
|
|||||||
public void exportOssStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) {
|
public void exportOssStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) {
|
||||||
List<SystemOssStorageVo> systemOssStorageVos = this.queryOssStorage(args);
|
List<SystemOssStorageVo> systemOssStorageVos = this.queryOssStorage(args);
|
||||||
// KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class,
|
// KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class,
|
||||||
// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class)));
|
// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class)));
|
||||||
List<SystemOssStorageExportRowVo> rowVos = BeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class);
|
List<SystemOssStorageExportRowVo> rowVos = KitBeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class);
|
||||||
KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos);
|
KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.framework.mybatisplus.core;
|
package cn.odboy.framework.mybatisplus.core;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -41,7 +41,7 @@ public class KitMpAnyQUtil {
|
|||||||
if (mapperTarget == null) {
|
if (mapperTarget == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return BeanUtil.copyProperties(mapperTarget, mapperClazz);
|
return KitBeanUtil.copyToClass(mapperTarget, mapperClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> List<T> selectList(BaseMapper<T> baseMapper, Object queryParams) {
|
public static <T> List<T> selectList(BaseMapper<T> baseMapper, Object queryParams) {
|
||||||
@@ -55,7 +55,7 @@ public class KitMpAnyQUtil {
|
|||||||
if (mapperTarget == null) {
|
if (mapperTarget == null) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return BeanUtil.copyToList(mapperTarget, mapperClazz);
|
return KitBeanUtil.copyToList(mapperTarget, mapperClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> Long selectCount(BaseMapper<T> baseMapper, Object queryParams) {
|
public static <T> Long selectCount(BaseMapper<T> baseMapper, Object queryParams) {
|
||||||
@@ -73,7 +73,7 @@ public class KitMpAnyQUtil {
|
|||||||
QueryWrapper<T> queryWrapper = KitMpQUtil.build(queryParams);
|
QueryWrapper<T> queryWrapper = KitMpQUtil.build(queryParams);
|
||||||
Page<T> tPage = baseMapper.selectPage(page, queryWrapper);
|
Page<T> tPage = baseMapper.selectPage(page, queryWrapper);
|
||||||
Page<M> mapperTarget = new Page<>();
|
Page<M> mapperTarget = new Page<>();
|
||||||
mapperTarget.setRecords(BeanUtil.copyToList(tPage.getRecords(), mapperClazz));
|
mapperTarget.setRecords(KitBeanUtil.copyToList(tPage.getRecords(), mapperClazz));
|
||||||
mapperTarget.setTotal(tPage.getTotal());
|
mapperTarget.setTotal(tPage.getTotal());
|
||||||
mapperTarget.setSize(tPage.getSize());
|
mapperTarget.setSize(tPage.getSize());
|
||||||
mapperTarget.setCurrent(tPage.getCurrent());
|
mapperTarget.setCurrent(tPage.getCurrent());
|
||||||
|
|||||||
+6
-5
@@ -19,6 +19,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
@@ -110,7 +111,7 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return BeanUtil.copyToList(list, clazz);
|
return KitBeanUtil.copyToList(list, clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -125,7 +126,7 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return BeanUtil.copyToList(list, clazz);
|
return KitBeanUtil.copyToList(list, clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -146,7 +147,7 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (CollUtil.isEmpty(pageInfo.getRecords())) {
|
if (CollUtil.isEmpty(pageInfo.getRecords())) {
|
||||||
return new KitPageResult<>(new ArrayList<>(), pageInfo.getTotal());
|
return new KitPageResult<>(new ArrayList<>(), pageInfo.getTotal());
|
||||||
}
|
}
|
||||||
return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal());
|
return new KitPageResult<>(KitBeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -167,7 +168,7 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (CollUtil.isEmpty(pageInfo.getRecords())) {
|
if (CollUtil.isEmpty(pageInfo.getRecords())) {
|
||||||
return KitPageUtil.emptyListData();
|
return KitPageUtil.emptyListData();
|
||||||
}
|
}
|
||||||
return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal());
|
return new KitPageResult<>(KitBeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -182,6 +183,6 @@ public interface KitMpMapper<E> extends BaseMapper<E> {
|
|||||||
if (e == null) {
|
if (e == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return BeanUtil.copyProperties(e, clazz);
|
return KitBeanUtil.copyToClass(e, clazz);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-13
@@ -15,11 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.framework.mybatisplus.core.interfaces;
|
package cn.odboy.framework.mybatisplus.core.interfaces;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.framework.mybatisplus.core.KitMpQUtil;
|
import cn.odboy.framework.mybatisplus.core.KitMpQUtil;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.enums.SqlMethod;
|
import com.baomidou.mybatisplus.core.enums.SqlMethod;
|
||||||
@@ -45,7 +45,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
* @param resources /
|
* @param resources /
|
||||||
*/
|
*/
|
||||||
public <G> int saveFeatureClazz(G resources) {
|
public <G> int saveFeatureClazz(G resources) {
|
||||||
return getBaseMapper().insert(BeanUtil.copyProperties(resources, this.getEntityClass()));
|
return getBaseMapper().insert(KitBeanUtil.copyToClass(resources, this.getEntityClass()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -54,7 +54,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
* @param resources /
|
* @param resources /
|
||||||
*/
|
*/
|
||||||
public <G> int saveFeatureClazzList(List<G> resources) {
|
public <G> int saveFeatureClazzList(List<G> resources) {
|
||||||
return getBaseMapper().insertBatchSomeColumn(BeanUtil.copyToList(resources, this.getEntityClass()));
|
return getBaseMapper().insertBatchSomeColumn(KitBeanUtil.copyToList(resources, this.getEntityClass()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,7 +63,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
* @param resources /
|
* @param resources /
|
||||||
*/
|
*/
|
||||||
public <G> int modifyFeatureClazzById(G resources) {
|
public <G> int modifyFeatureClazzById(G resources) {
|
||||||
return getBaseMapper().updateById(BeanUtil.copyProperties(resources, this.getEntityClass()));
|
return getBaseMapper().updateById(KitBeanUtil.copyToClass(resources, this.getEntityClass()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -76,7 +76,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
String sqlStatement = this.getSqlStatement(SqlMethod.UPDATE_BY_ID);
|
String sqlStatement = this.getSqlStatement(SqlMethod.UPDATE_BY_ID);
|
||||||
return this.executeBatch(resources, batchSize, (sqlSession, entity) -> {
|
return this.executeBatch(resources, batchSize, (sqlSession, entity) -> {
|
||||||
MapperMethod.ParamMap<T> param = new MapperMethod.ParamMap<>();
|
MapperMethod.ParamMap<T> param = new MapperMethod.ParamMap<>();
|
||||||
param.put("et", BeanUtil.copyProperties(entity, this.getEntityClass()));
|
param.put("et", KitBeanUtil.copyToClass(entity, this.getEntityClass()));
|
||||||
sqlSession.update(sqlStatement, param);
|
sqlSession.update(sqlStatement, param);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -89,7 +89,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
*/
|
*/
|
||||||
public <G> G queryFeatureClazzById(Serializable id, Class<G> targetClazz) {
|
public <G> G queryFeatureClazzById(Serializable id, Class<G> targetClazz) {
|
||||||
T entity = this.getById(id);
|
T entity = this.getById(id);
|
||||||
return entity == null ? null : BeanUtil.copyProperties(entity, targetClazz);
|
return entity == null ? null : KitBeanUtil.copyToClass(entity, targetClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -126,7 +126,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
if (ts.isEmpty()) {
|
if (ts.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return BeanUtil.copyProperties(ts.stream().findFirst().get(), clazz);
|
return KitBeanUtil.copyToClass(ts.stream().findFirst().get(), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -137,8 +137,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
*/
|
*/
|
||||||
public <G> List<G> queryFeatureClazzListByIds(List<Serializable> ids, Class<G> targetClazz) {
|
public <G> List<G> queryFeatureClazzListByIds(List<Serializable> ids, Class<G> targetClazz) {
|
||||||
List<T> entitys = this.listByIds(ids);
|
List<T> entitys = this.listByIds(ids);
|
||||||
return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList()
|
return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList() : KitBeanUtil.copyToList(entitys, targetClazz);
|
||||||
: BeanUtil.copyToList(entitys, targetClazz);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -172,7 +171,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
public <G, Q> List<G> queryFeatureClazzListByArgs(Q args, Class<G> targetClazz) {
|
public <G, Q> List<G> queryFeatureClazzListByArgs(Q args, Class<G> targetClazz) {
|
||||||
QueryWrapper<T> predicate = KitMpQUtil.build(args);
|
QueryWrapper<T> predicate = KitMpQUtil.build(args);
|
||||||
List<T> data = baseMapper.selectList(predicate);
|
List<T> data = baseMapper.selectList(predicate);
|
||||||
return BeanUtil.copyToList(data, targetClazz);
|
return KitBeanUtil.copyToList(data, targetClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -185,7 +184,7 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
if (wrapper == null) {
|
if (wrapper == null) {
|
||||||
wrapper = new LambdaQueryWrapper<>();
|
wrapper = new LambdaQueryWrapper<>();
|
||||||
}
|
}
|
||||||
return BeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz);
|
return KitBeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -215,14 +214,14 @@ public class KitMpServiceImpl<M extends KitMpMapper<T>, T> extends ServiceImpl<M
|
|||||||
wrapper = new LambdaQueryWrapper<>();
|
wrapper = new LambdaQueryWrapper<>();
|
||||||
}
|
}
|
||||||
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
||||||
return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz),
|
return new KitPageResult<>(KitBeanUtil.copyToList(originPageData.getRecords(), targetClazz),
|
||||||
originPageData.getTotal());
|
originPageData.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
public <G, Q> KitPageResult<G> queryFeatureClazzPageByArgs(Q args, IPage<T> pageable, Class<G> targetClazz) {
|
public <G, Q> KitPageResult<G> queryFeatureClazzPageByArgs(Q args, IPage<T> pageable, Class<G> targetClazz) {
|
||||||
QueryWrapper<T> wrapper = KitMpQUtil.build(args);
|
QueryWrapper<T> wrapper = KitMpQUtil.build(args);
|
||||||
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
IPage<T> originPageData = baseMapper.selectPage(pageable, wrapper);
|
||||||
return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz),
|
return new KitPageResult<>(KitBeanUtil.copyToList(originPageData.getRecords(), targetClazz),
|
||||||
originPageData.getTotal());
|
originPageData.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package cn.odboy.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bean拷贝相关
|
||||||
|
*
|
||||||
|
* @author odboy
|
||||||
|
* @date 2026-01-06
|
||||||
|
*/
|
||||||
|
@UtilityClass
|
||||||
|
public class KitBeanUtil {
|
||||||
|
|
||||||
|
public static <T> T copyToClass(Object source, Class<T> tClass) {
|
||||||
|
return BeanUtil.copyProperties(source, tClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void copyToTarget(Object source, Object target) {
|
||||||
|
BeanUtil.copyProperties(source, target, CopyOptions.create().setIgnoreNullValue(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> List<T> copyToList(Collection<?> collection, Class<T> targetType) {
|
||||||
|
List<T> ts = BeanUtil.copyToList(collection, targetType);
|
||||||
|
if (ts == null) {
|
||||||
|
return new ArrayList<>(0);
|
||||||
|
}
|
||||||
|
return ts;
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-1
@@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs;
|
|||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
|
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
|
||||||
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryDeptArgs;
|
import cn.odboy.system.dal.model.SystemQueryDeptArgs;
|
||||||
import cn.odboy.system.framework.operalog.OperationLog;
|
import cn.odboy.system.framework.operalog.OperationLog;
|
||||||
import cn.odboy.system.service.SystemDeptService;
|
import cn.odboy.system.service.SystemDeptService;
|
||||||
@@ -67,7 +68,7 @@ public class SystemDeptController {
|
|||||||
@ApiOperation("查询部门:根据ID获取同级与上级数据")
|
@ApiOperation("查询部门:根据ID获取同级与上级数据")
|
||||||
@PostMapping("/searchDeptTree")
|
@PostMapping("/searchDeptTree")
|
||||||
@PreAuthorize("@el.check('user:list','dept:list')")
|
@PreAuthorize("@el.check('user:list','dept:list')")
|
||||||
public ResponseEntity<KitPageResult<SystemDeptTb>> queryDeptSuperiorTree(@RequestBody List<Long> ids,
|
public ResponseEntity<KitPageResult<SystemDeptVo>> queryDeptSuperiorTree(@RequestBody List<Long> ids,
|
||||||
@RequestParam(defaultValue = "false") Boolean exclude) {
|
@RequestParam(defaultValue = "false") Boolean exclude) {
|
||||||
return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude));
|
return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude));
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs;
|
|||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemMenuRouterVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuVo;
|
import cn.odboy.system.dal.model.SystemMenuVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
|
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
|
||||||
import cn.odboy.system.framework.operalog.OperationLog;
|
import cn.odboy.system.framework.operalog.OperationLog;
|
||||||
@@ -58,9 +59,9 @@ public class SystemMenuController {
|
|||||||
|
|
||||||
@PostMapping(value = "/buildMenus")
|
@PostMapping(value = "/buildMenus")
|
||||||
@ApiOperation("获取前端所需菜单")
|
@ApiOperation("获取前端所需菜单")
|
||||||
public ResponseEntity<List<SystemMenuVo>> buildMenus() {
|
public ResponseEntity<List<SystemMenuRouterVo>> buildMenus() {
|
||||||
List<SystemMenuVo> systemMenuVos = systemMenuService.buildFrontMenus();
|
List<SystemMenuRouterVo> systemMenuRouterVos = systemMenuService.buildFrontMenus();
|
||||||
return ResponseEntity.ok(systemMenuVos);
|
return ResponseEntity.ok(systemMenuRouterVos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("返回全部的菜单")
|
@ApiOperation("返回全部的菜单")
|
||||||
@@ -91,8 +92,8 @@ public class SystemMenuController {
|
|||||||
@ApiOperation("查询菜单:根据ID获取同级与上级数据")
|
@ApiOperation("查询菜单:根据ID获取同级与上级数据")
|
||||||
@PostMapping("/queryMenuSuperior")
|
@PostMapping("/queryMenuSuperior")
|
||||||
@PreAuthorize("@el.check('menu:list')")
|
@PreAuthorize("@el.check('menu:list')")
|
||||||
public ResponseEntity<List<SystemMenuTb>> queryMenuSuperior(@RequestBody List<Long> ids) {
|
public ResponseEntity<List<SystemMenuVo>> queryMenuSuperior(@RequestBody List<Long> ids) {
|
||||||
List<SystemMenuTb> systemMenuTbs = systemMenuService.listMenuSuperior(ids);
|
List<SystemMenuVo> systemMenuTbs = systemMenuService.listMenuSuperior(ids);
|
||||||
return ResponseEntity.ok(systemMenuTbs);
|
return ResponseEntity.ok(systemMenuTbs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-11
@@ -16,15 +16,11 @@
|
|||||||
package cn.odboy.system.dal.dataobject;
|
package cn.odboy.system.dal.dataobject;
|
||||||
|
|
||||||
import cn.odboy.base.KitBaseUserTimeTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -39,13 +35,6 @@ public class SystemDeptTb extends KitBaseUserTimeTb {
|
|||||||
@TableId(value = "dept_id", type = IdType.AUTO)
|
@TableId(value = "dept_id", type = IdType.AUTO)
|
||||||
@ApiModelProperty(value = "ID", hidden = true)
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
private Long id;
|
private Long id;
|
||||||
@TableField(exist = false)
|
|
||||||
@JSONField(serialize = false)
|
|
||||||
@ApiModelProperty(value = "角色")
|
|
||||||
private Set<SystemRoleTb> roles;
|
|
||||||
@TableField(exist = false)
|
|
||||||
@ApiModelProperty(value = "子部门")
|
|
||||||
private List<SystemDeptTb> children;
|
|
||||||
@ApiModelProperty(value = "排序")
|
@ApiModelProperty(value = "排序")
|
||||||
private Integer deptSort;
|
private Integer deptSort;
|
||||||
@NotBlank
|
@NotBlank
|
||||||
|
|||||||
+2
-1
@@ -18,6 +18,7 @@ package cn.odboy.system.dal.dataobject;
|
|||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.bean.copier.CopyOptions;
|
import cn.hutool.core.bean.copier.CopyOptions;
|
||||||
import cn.odboy.base.KitBaseUserTimeTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
@@ -49,6 +50,6 @@ public class SystemLocalStorageTb extends KitBaseUserTimeTb {
|
|||||||
private String dateGroup;
|
private String dateGroup;
|
||||||
|
|
||||||
public void copy(SystemLocalStorageTb source) {
|
public void copy(SystemLocalStorageTb source) {
|
||||||
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
|
KitBeanUtil.copyToTarget(source, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-9
@@ -16,15 +16,12 @@
|
|||||||
package cn.odboy.system.dal.dataobject;
|
package cn.odboy.system.dal.dataobject;
|
||||||
|
|
||||||
import cn.odboy.base.KitBaseUserTimeTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -38,12 +35,6 @@ public class SystemMenuTb extends KitBaseUserTimeTb {
|
|||||||
@TableId(value = "menu_id", type = IdType.AUTO)
|
@TableId(value = "menu_id", type = IdType.AUTO)
|
||||||
@ApiModelProperty(value = "ID", hidden = true)
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
private Long id;
|
private Long id;
|
||||||
@TableField(exist = false)
|
|
||||||
@JSONField(serialize = false)
|
|
||||||
@ApiModelProperty(value = "菜单角色")
|
|
||||||
private Set<SystemRoleTb> roles;
|
|
||||||
@TableField(exist = false)
|
|
||||||
private List<SystemMenuTb> children;
|
|
||||||
@ApiModelProperty(value = "菜单标题")
|
@ApiModelProperty(value = "菜单标题")
|
||||||
private String title;
|
private String title;
|
||||||
@TableField(value = "name")
|
@TableField(value = "name")
|
||||||
|
|||||||
-3
@@ -36,9 +36,6 @@ public class SystemQuartzJobTb extends KitBaseUserTimeTb {
|
|||||||
@TableId(value = "id", type = IdType.AUTO)
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
@NotNull(groups = {Update.class})
|
@NotNull(groups = {Update.class})
|
||||||
private Long id;
|
private Long id;
|
||||||
@TableField(exist = false)
|
|
||||||
@ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
|
|
||||||
private String uuid;
|
|
||||||
@ApiModelProperty(value = "定时器名称")
|
@ApiModelProperty(value = "定时器名称")
|
||||||
private String jobName;
|
private String jobName;
|
||||||
@NotBlank
|
@NotBlank
|
||||||
|
|||||||
+1
-2
@@ -45,8 +45,7 @@ public class SystemRoleTb extends KitBaseUserTimeTb {
|
|||||||
@ApiModelProperty(value = "名称", hidden = true)
|
@ApiModelProperty(value = "名称", hidden = true)
|
||||||
private String name;
|
private String name;
|
||||||
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
|
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
|
||||||
private String dataScope =
|
private String dataScope = SystemDataScopeEnum.THIS_LEVEL.getValue();
|
||||||
SystemDataScopeEnum.THIS_LEVEL.getValue();
|
|
||||||
@ApiModelProperty(value = "级别,数值越小,级别越大")
|
@ApiModelProperty(value = "级别,数值越小,级别越大")
|
||||||
private Integer level = 3;
|
private Integer level = 3;
|
||||||
@ApiModelProperty(value = "描述")
|
@ApiModelProperty(value = "描述")
|
||||||
|
|||||||
-3
@@ -41,9 +41,6 @@ public class SystemUserTb extends KitBaseUserTimeTb {
|
|||||||
@TableField(value = "dept_id")
|
@TableField(value = "dept_id")
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
@ApiModelProperty(value = "用户部门")
|
|
||||||
@TableField(exist = false)
|
|
||||||
private SystemDeptTb dept;
|
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@ApiModelProperty(value = "用户名称")
|
@ApiModelProperty(value = "用户名称")
|
||||||
private String username;
|
private String username;
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class SystemDeptVo extends SystemDeptTb {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "角色")
|
||||||
|
private Set<SystemRoleTb> roles;
|
||||||
|
@ApiModelProperty(value = "子部门")
|
||||||
|
private List<SystemDeptVo> children;
|
||||||
|
}
|
||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2021-2025 Odboy
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.base.KitObject;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建前端路由时用到
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class SystemMenuRouterVo extends KitObject {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "菜单名称")
|
||||||
|
private String name;
|
||||||
|
@ApiModelProperty(value = "路径")
|
||||||
|
private String path;
|
||||||
|
@ApiModelProperty(value = "隐藏状态")
|
||||||
|
private Boolean hidden;
|
||||||
|
@ApiModelProperty(value = "重定向")
|
||||||
|
private String redirect;
|
||||||
|
@ApiModelProperty(value = "组件")
|
||||||
|
private String component;
|
||||||
|
@ApiModelProperty(value = "总是显示")
|
||||||
|
private Boolean alwaysShow;
|
||||||
|
@ApiModelProperty(value = "元数据")
|
||||||
|
private SystemMenuMetaVo meta;
|
||||||
|
@ApiModelProperty(value = "子路由")
|
||||||
|
private List<SystemMenuRouterVo> children;
|
||||||
|
}
|
||||||
+19
-47
@@ -1,47 +1,19 @@
|
|||||||
/*
|
package cn.odboy.system.dal.model;
|
||||||
* Copyright 2021-2025 Odboy
|
|
||||||
*
|
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
* you may not use this file except in compliance with the License.
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
* You may obtain a copy of the License at
|
import java.util.List;
|
||||||
*
|
import java.util.Set;
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
import lombok.Getter;
|
||||||
*
|
import lombok.Setter;
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
@Getter
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@Setter
|
||||||
* See the License for the specific language governing permissions and
|
public class SystemMenuVo extends SystemMenuTb {
|
||||||
* limitations under the License.
|
|
||||||
*/
|
@ApiModelProperty(value = "菜单角色")
|
||||||
package cn.odboy.system.dal.model;
|
private Set<SystemRoleTb> roles;
|
||||||
|
@ApiModelProperty(value = "子菜单")
|
||||||
import cn.odboy.base.KitObject;
|
private List<SystemMenuVo> children;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
}
|
||||||
import java.util.List;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建前端路由时用到
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = false)
|
|
||||||
public class SystemMenuVo extends KitObject {
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "菜单名称")
|
|
||||||
private String name;
|
|
||||||
@ApiModelProperty(value = "路径")
|
|
||||||
private String path;
|
|
||||||
@ApiModelProperty(value = "隐藏状态")
|
|
||||||
private Boolean hidden;
|
|
||||||
@ApiModelProperty(value = "重定向")
|
|
||||||
private String redirect;
|
|
||||||
@ApiModelProperty(value = "组件")
|
|
||||||
private String component;
|
|
||||||
@ApiModelProperty(value = "总是显示")
|
|
||||||
private Boolean alwaysShow;
|
|
||||||
@ApiModelProperty(value = "元数据")
|
|
||||||
private SystemMenuMetaVo meta;
|
|
||||||
@ApiModelProperty(value = "子路由")
|
|
||||||
private List<SystemMenuVo> children;
|
|
||||||
}
|
|
||||||
|
|||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class SystemQuartzJobVo extends SystemQuartzJobTb {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
|
||||||
|
private String uuid;
|
||||||
|
}
|
||||||
+4
-1
@@ -1,8 +1,10 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -11,7 +13,8 @@ import lombok.Setter;
|
|||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemUserVo extends SystemUserTb {
|
public class SystemUserVo extends SystemUserTb {
|
||||||
|
@ApiModelProperty(value = "用户部门")
|
||||||
|
private SystemDeptTb dept;
|
||||||
@ApiModelProperty(value = "用户角色")
|
@ApiModelProperty(value = "用户角色")
|
||||||
private Set<SystemRoleTb> roles;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "用户岗位")
|
@ApiModelProperty(value = "用户岗位")
|
||||||
|
|||||||
+6
@@ -15,7 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.dal.mysql;
|
package cn.odboy.system.dal.mysql;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@@ -27,4 +30,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface SystemQuartzJobMapper extends BaseMapper<SystemQuartzJobTb> {
|
public interface SystemQuartzJobMapper extends BaseMapper<SystemQuartzJobTb> {
|
||||||
|
|
||||||
|
default SystemQuartzJobVo selectVoById(String id) {
|
||||||
|
return KitBeanUtil.copyToClass(selectById(id), SystemQuartzJobVo.class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+25
-24
@@ -8,6 +8,7 @@ import cn.odboy.framework.redis.KitRedisHelper;
|
|||||||
import cn.odboy.system.dal.model.SystemUserJwtVo;
|
import cn.odboy.system.dal.model.SystemUserJwtVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserOnlineVo;
|
import cn.odboy.system.dal.model.SystemUserOnlineVo;
|
||||||
import cn.odboy.system.framework.permission.core.handler.TokenProvider;
|
import cn.odboy.system.framework.permission.core.handler.TokenProvider;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitBrowserUtil;
|
import cn.odboy.util.KitBrowserUtil;
|
||||||
import cn.odboy.util.KitDesEncryptUtil;
|
import cn.odboy.util.KitDesEncryptUtil;
|
||||||
import cn.odboy.util.KitFileUtil;
|
import cn.odboy.util.KitFileUtil;
|
||||||
@@ -81,28 +82,28 @@ public class SystemUserOnlineInfoDAO {
|
|||||||
redisHelper.del(loginKey);
|
redisHelper.del(loginKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 导出
|
// * 导出
|
||||||
*
|
// *
|
||||||
* @param all /
|
// * @param all /
|
||||||
* @param response /
|
// * @param response /
|
||||||
* @throws IOException /
|
// * @throws IOException /
|
||||||
*/
|
// */
|
||||||
public void downloadUserOnlineModelExcel(List<SystemUserOnlineVo> all, HttpServletResponse response)
|
// public void downloadUserOnlineModelExcel(List<SystemUserOnlineVo> all, HttpServletResponse response)
|
||||||
throws IOException {
|
// throws IOException {
|
||||||
List<Map<String, Object>> list = new ArrayList<>();
|
// List<Map<String, Object>> list = new ArrayList<>();
|
||||||
for (SystemUserOnlineVo user : all) {
|
// for (SystemUserOnlineVo user : all) {
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
// Map<String, Object> map = new LinkedHashMap<>();
|
||||||
map.put("用户名", user.getUserName());
|
// map.put("用户名", user.getUserName());
|
||||||
map.put("部门", user.getDept());
|
// map.put("部门", user.getDept());
|
||||||
map.put("登录IP", user.getIp());
|
// map.put("登录IP", user.getIp());
|
||||||
map.put("登录地点", user.getAddress());
|
// map.put("登录地点", user.getAddress());
|
||||||
map.put("浏览器", user.getBrowser());
|
// map.put("浏览器", user.getBrowser());
|
||||||
map.put("登录日期", user.getLoginTime());
|
// map.put("登录日期", user.getLoginTime());
|
||||||
list.add(map);
|
// list.add(map);
|
||||||
}
|
// }
|
||||||
KitFileUtil.downloadExcel(list, response);
|
// KitFileUtil.downloadExcel(list, response);
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据用户名强退用户
|
* 根据用户名强退用户
|
||||||
@@ -172,8 +173,8 @@ public class SystemUserOnlineInfoDAO {
|
|||||||
public void exportOnlineUserXlsx(HttpServletResponse response, String username) {
|
public void exportOnlineUserXlsx(HttpServletResponse response, String username) {
|
||||||
List<SystemUserOnlineVo> userOnlineVos = this.queryUserOnlineModelListByUsername(username);
|
List<SystemUserOnlineVo> userOnlineVos = this.queryUserOnlineModelListByUsername(username);
|
||||||
// KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class,
|
// KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class,
|
||||||
// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class)));
|
// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class)));
|
||||||
List<SystemUserOnlineVo> rowVos = BeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class);
|
List<SystemUserOnlineVo> rowVos = KitBeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class);
|
||||||
KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos);
|
KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-5
@@ -26,6 +26,7 @@ import cn.odboy.framework.quartz.core.QuartzRunnable;
|
|||||||
import cn.odboy.framework.redis.KitRedisHelper;
|
import cn.odboy.framework.redis.KitRedisHelper;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import cn.odboy.system.dal.model.SystemSendEmailArgs;
|
import cn.odboy.system.dal.model.SystemSendEmailArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemQuartzLogMapper;
|
import cn.odboy.system.dal.mysql.SystemQuartzLogMapper;
|
||||||
import cn.odboy.system.service.SystemEmailService;
|
import cn.odboy.system.service.SystemEmailService;
|
||||||
@@ -51,7 +52,7 @@ public class ExecutionJobBean extends QuartzJobBean {
|
|||||||
@Override
|
@Override
|
||||||
public void executeInternal(JobExecutionContext context) {
|
public void executeInternal(JobExecutionContext context) {
|
||||||
// 获取任务
|
// 获取任务
|
||||||
SystemQuartzJobTb quartzJob = (SystemQuartzJobTb) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY);
|
SystemQuartzJobVo quartzJob = (SystemQuartzJobVo) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY);
|
||||||
// 获取spring bean
|
// 获取spring bean
|
||||||
SystemQuartzLogMapper quartzLogMapper = KitSpringBeanHolder.getBean(SystemQuartzLogMapper.class);
|
SystemQuartzLogMapper quartzLogMapper = KitSpringBeanHolder.getBean(SystemQuartzLogMapper.class);
|
||||||
SystemQuartzJobService systemQuartzJobService = KitSpringBeanHolder.getBean(SystemQuartzJobService.class);
|
SystemQuartzJobService systemQuartzJobService = KitSpringBeanHolder.getBean(SystemQuartzJobService.class);
|
||||||
@@ -66,8 +67,7 @@ public class ExecutionJobBean extends QuartzJobBean {
|
|||||||
quartzLog.setCronExpression(quartzJob.getCronExpression());
|
quartzLog.setCronExpression(quartzJob.getCronExpression());
|
||||||
try {
|
try {
|
||||||
// 执行任务
|
// 执行任务
|
||||||
QuartzRunnable task =
|
QuartzRunnable task = new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), quartzJob.getParams());
|
||||||
new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), quartzJob.getParams());
|
|
||||||
Future<?> future = executor.submit(task);
|
Future<?> future = executor.submit(task);
|
||||||
// 忽略任务执行结果
|
// 忽略任务执行结果
|
||||||
future.get();
|
future.get();
|
||||||
@@ -120,8 +120,7 @@ public class ExecutionJobBean extends QuartzJobBean {
|
|||||||
Map<String, Object> data = new HashMap<>(16);
|
Map<String, Object> data = new HashMap<>(16);
|
||||||
data.put("task", quartzJob);
|
data.put("task", quartzJob);
|
||||||
data.put("msg", msg);
|
data.put("msg", msg);
|
||||||
TemplateEngine engine =
|
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH));
|
||||||
TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH));
|
|
||||||
Template template = engine.getTemplate("SystemQuartzJobTaskAlarmTemplate.ftl");
|
Template template = engine.getTemplate("SystemQuartzJobTaskAlarmTemplate.ftl");
|
||||||
sendEmailRequest.setContent(template.render(data));
|
sendEmailRequest.setContent(template.render(data));
|
||||||
List<String> emails = Arrays.asList(quartzJob.getEmail().split("[,,]"));
|
List<String> emails = Arrays.asList(quartzJob.getEmail().split("[,,]"));
|
||||||
|
|||||||
+6
-7
@@ -1,6 +1,5 @@
|
|||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.constant.CaptchaCodeEnum;
|
import cn.odboy.constant.CaptchaCodeEnum;
|
||||||
@@ -16,6 +15,7 @@ import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
|
|||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
import cn.odboy.system.framework.permission.core.handler.TokenProvider;
|
import cn.odboy.system.framework.permission.core.handler.TokenProvider;
|
||||||
import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler;
|
import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitRsaEncryptUtil;
|
import cn.odboy.util.KitRsaEncryptUtil;
|
||||||
import com.wf.captcha.base.Captcha;
|
import com.wf.captcha.base.Captcha;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -47,8 +47,7 @@ public class SystemAuthService {
|
|||||||
|
|
||||||
public Map<String, Object> doLogin(SystemUserLoginArgs loginRequest, HttpServletRequest request) throws Exception {
|
public Map<String, Object> doLogin(SystemUserLoginArgs loginRequest, HttpServletRequest request) throws Exception {
|
||||||
// 密码解密
|
// 密码解密
|
||||||
String password =
|
String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword());
|
||||||
KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword());
|
|
||||||
// 查询验证码
|
// 查询验证码
|
||||||
String code = redisHelper.get(loginRequest.getUuid(), String.class);
|
String code = redisHelper.get(loginRequest.getUuid(), String.class);
|
||||||
// 清除验证码
|
// 清除验证码
|
||||||
@@ -65,15 +64,14 @@ public class SystemAuthService {
|
|||||||
if (!passwordEncoder.matches(password, jwtUser.getPassword())) {
|
if (!passwordEncoder.matches(password, jwtUser.getPassword())) {
|
||||||
throw new BadRequestException("登录密码错误");
|
throw new BadRequestException("登录密码错误");
|
||||||
}
|
}
|
||||||
Authentication authentication =
|
Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities());
|
||||||
new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities());
|
|
||||||
SecurityContextHolder.getContext().setAuthentication(authentication);
|
SecurityContextHolder.getContext().setAuthentication(authentication);
|
||||||
// 生成令牌
|
// 生成令牌
|
||||||
String token = tokenProvider.createToken(jwtUser);
|
String token = tokenProvider.createToken(jwtUser);
|
||||||
// 返回 token 与 用户信息
|
// 返回 token 与 用户信息
|
||||||
Map<String, Object> authInfo = new HashMap<>(2) {{
|
Map<String, Object> authInfo = new HashMap<>(2) {{
|
||||||
put("token", String.format("%s %s", SystemConst.TOKEN_PREFIX, token));
|
put("token", String.format("%s %s", SystemConst.TOKEN_PREFIX, token));
|
||||||
put("user", BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class));
|
put("user", KitBeanUtil.copyToClass(jwtUser, SystemUserInfoVo.class));
|
||||||
}};
|
}};
|
||||||
if (properties.getLogin().isSingle()) {
|
if (properties.getLogin().isSingle()) {
|
||||||
// 踢掉之前已经登录的token
|
// 踢掉之前已经登录的token
|
||||||
@@ -87,7 +85,8 @@ public class SystemAuthService {
|
|||||||
|
|
||||||
public SystemUserInfoVo getCurrentUserInfoVo() {
|
public SystemUserInfoVo getCurrentUserInfoVo() {
|
||||||
SystemUserJwtVo jwtUser = (SystemUserJwtVo) KitSecurityHelper.getCurrentUser();
|
SystemUserJwtVo jwtUser = (SystemUserJwtVo) KitSecurityHelper.getCurrentUser();
|
||||||
return BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class);
|
// 转换是为了去掉密码
|
||||||
|
return KitBeanUtil.copyToClass(jwtUser, SystemUserInfoVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Object> getCaptchaInfo() {
|
public Map<String, Object> getCaptchaInfo() {
|
||||||
|
|||||||
+2
-1
@@ -21,6 +21,7 @@ import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import cn.odboy.system.dal.model.SystemRoleVo;
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -49,7 +50,7 @@ public class SystemDataService {
|
|||||||
* @param user /
|
* @param user /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public List<Long> queryDeptIdByArgs(SystemUserTb user) {
|
public List<Long> queryDeptIdByArgs(SystemUserVo user) {
|
||||||
List<Long> deptIds = new ArrayList<>();
|
List<Long> deptIds = new ArrayList<>();
|
||||||
// 查询用户角色
|
// 查询用户角色
|
||||||
List<SystemRoleVo> roleList = systemUserRoleService.queryRoleByUsersId(user.getId());
|
List<SystemRoleVo> roleList = systemUserRoleService.queryRoleByUsersId(user.getId());
|
||||||
|
|||||||
+11
-9
@@ -27,11 +27,13 @@ import cn.odboy.system.constant.SystemZhConst;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
|
import cn.odboy.system.dal.model.SystemCreateDeptArgs;
|
||||||
import cn.odboy.system.dal.model.SystemDeptExportRowVo;
|
import cn.odboy.system.dal.model.SystemDeptExportRowVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemProductLineTreeVo;
|
import cn.odboy.system.dal.model.SystemProductLineTreeVo;
|
||||||
import cn.odboy.system.dal.model.SystemProductLineVo;
|
import cn.odboy.system.dal.model.SystemProductLineVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryDeptArgs;
|
import cn.odboy.system.dal.model.SystemQueryDeptArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemDeptMapper;
|
import cn.odboy.system.dal.mysql.SystemDeptMapper;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitClassUtil;
|
import cn.odboy.util.KitClassUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -68,7 +70,7 @@ public class SystemDeptService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveDept(SystemCreateDeptArgs args) {
|
public void saveDept(SystemCreateDeptArgs args) {
|
||||||
systemDeptMapper.insert(BeanUtil.copyProperties(args, SystemDeptTb.class));
|
systemDeptMapper.insert(KitBeanUtil.copyToClass(args, SystemDeptTb.class));
|
||||||
this.updateDeptSubCnt(args.getPid());
|
this.updateDeptSubCnt(args.getPid());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,7 +274,7 @@ public class SystemDeptService {
|
|||||||
*
|
*
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public KitPageResult<SystemDeptTb> searchDeptTree(List<Long> ids, Boolean exclude) {
|
public KitPageResult<SystemDeptVo> searchDeptTree(List<Long> ids, Boolean exclude) {
|
||||||
Set<SystemDeptTb> deptSet1 = new LinkedHashSet<>();
|
Set<SystemDeptTb> deptSet1 = new LinkedHashSet<>();
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
// 同级数据
|
// 同级数据
|
||||||
@@ -290,18 +292,18 @@ public class SystemDeptService {
|
|||||||
}
|
}
|
||||||
deptSet1.addAll(depts);
|
deptSet1.addAll(depts);
|
||||||
}
|
}
|
||||||
ArrayList<SystemDeptTb> deptList = new ArrayList<>(deptSet1);
|
List<SystemDeptVo> deptList = KitBeanUtil.copyToList(new ArrayList<>(deptSet1), SystemDeptVo.class);
|
||||||
// 构建部门树
|
// 构建部门树
|
||||||
Set<SystemDeptTb> trees = new LinkedHashSet<>();
|
Set<SystemDeptVo> trees = new LinkedHashSet<>();
|
||||||
Set<SystemDeptTb> deptSet = new LinkedHashSet<>();
|
Set<SystemDeptVo> deptSet = new LinkedHashSet<>();
|
||||||
List<String> deptNames = deptList.stream().map(SystemDeptTb::getName).collect(Collectors.toList());
|
List<String> deptNames = deptList.stream().map(SystemDeptVo::getName).collect(Collectors.toList());
|
||||||
boolean isChild;
|
boolean isChild;
|
||||||
for (SystemDeptTb dept : deptList) {
|
for (SystemDeptVo dept : deptList) {
|
||||||
isChild = false;
|
isChild = false;
|
||||||
if (dept.getPid() == null) {
|
if (dept.getPid() == null) {
|
||||||
trees.add(dept);
|
trees.add(dept);
|
||||||
}
|
}
|
||||||
for (SystemDeptTb it : deptList) {
|
for (SystemDeptVo it : deptList) {
|
||||||
if (it.getPid() != null && dept.getId().equals(it.getPid())) {
|
if (it.getPid() != null && dept.getId().equals(it.getPid())) {
|
||||||
isChild = true;
|
isChild = true;
|
||||||
if (dept.getChildren() == null) {
|
if (dept.getChildren() == null) {
|
||||||
@@ -319,7 +321,7 @@ public class SystemDeptService {
|
|||||||
if (CollectionUtil.isEmpty(trees)) {
|
if (CollectionUtil.isEmpty(trees)) {
|
||||||
trees = deptSet;
|
trees = deptSet;
|
||||||
}
|
}
|
||||||
KitPageResult<SystemDeptTb> baseResult = new KitPageResult<>();
|
KitPageResult<SystemDeptVo> baseResult = new KitPageResult<>();
|
||||||
baseResult.setContent(CollectionUtil.isEmpty(trees) ? new ArrayList<>(deptSet) : new ArrayList<>(trees));
|
baseResult.setContent(CollectionUtil.isEmpty(trees) ? new ArrayList<>(deptSet) : new ArrayList<>(trees));
|
||||||
baseResult.setTotalElements(deptSet.size());
|
baseResult.setTotalElements(deptSet.size());
|
||||||
return baseResult;
|
return baseResult;
|
||||||
|
|||||||
+4
-3
@@ -26,6 +26,7 @@ import cn.odboy.system.dal.model.SystemDictDetailVo;
|
|||||||
import cn.odboy.system.dal.model.SystemQueryDictDetailArgs;
|
import cn.odboy.system.dal.model.SystemQueryDictDetailArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemDictDetailMapper;
|
import cn.odboy.system.dal.mysql.SystemDictDetailMapper;
|
||||||
import cn.odboy.system.dal.mysql.SystemDictMapper;
|
import cn.odboy.system.dal.mysql.SystemDictMapper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -55,7 +56,7 @@ public class SystemDictDetailService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveDictDetail(SystemCreateDictDetailArgs args) {
|
public void saveDictDetail(SystemCreateDictDetailArgs args) {
|
||||||
SystemDictDetailTb dictDetail = BeanUtil.copyProperties(args, SystemDictDetailTb.class);
|
SystemDictDetailTb dictDetail = KitBeanUtil.copyToClass(args, SystemDictDetailTb.class);
|
||||||
dictDetail.setDictId(args.getDict().getId());
|
dictDetail.setDictId(args.getDict().getId());
|
||||||
systemDictDetailMapper.insert(dictDetail);
|
systemDictDetailMapper.insert(dictDetail);
|
||||||
}
|
}
|
||||||
@@ -106,7 +107,7 @@ public class SystemDictDetailService {
|
|||||||
*/
|
*/
|
||||||
public KitPageResult<SystemDictDetailVo> searchDictDetail(SystemQueryDictDetailArgs args,
|
public KitPageResult<SystemDictDetailVo> searchDictDetail(SystemQueryDictDetailArgs args,
|
||||||
Page<SystemDictDetailTb> page) {
|
Page<SystemDictDetailTb> page) {
|
||||||
IPage<SystemDictDetailVo> iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> BeanUtil.copyProperties(i, SystemDictDetailVo.class));
|
IPage<SystemDictDetailVo> iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> KitBeanUtil.copyToClass(i, SystemDictDetailVo.class));
|
||||||
List<Long> dictIds = iPage.getRecords().stream().map(SystemDictDetailTb::getDictId).collect(Collectors.toList());
|
List<Long> dictIds = iPage.getRecords().stream().map(SystemDictDetailTb::getDictId).collect(Collectors.toList());
|
||||||
Map<Long, SystemDictTb> id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i));
|
Map<Long, SystemDictTb> id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i));
|
||||||
for (SystemDictDetailVo record : iPage.getRecords()) {
|
for (SystemDictDetailVo record : iPage.getRecords()) {
|
||||||
@@ -130,7 +131,7 @@ public class SystemDictDetailService {
|
|||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
return this.listDictDetailByDictId(systemDictTb.getId()).stream().map(m -> {
|
return this.listDictDetailByDictId(systemDictTb.getId()).stream().map(m -> {
|
||||||
SystemDictDetailVo detailVo = BeanUtil.copyProperties(m, SystemDictDetailVo.class);
|
SystemDictDetailVo detailVo = KitBeanUtil.copyToClass(m, SystemDictDetailVo.class);
|
||||||
detailVo.setDict(systemDictTb);
|
detailVo.setDict(systemDictTb);
|
||||||
return detailVo;
|
return detailVo;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|||||||
+2
-1
@@ -25,6 +25,7 @@ import cn.odboy.system.dal.model.SystemDictDetailVo;
|
|||||||
import cn.odboy.system.dal.model.SystemDictExportRowVo;
|
import cn.odboy.system.dal.model.SystemDictExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryDictArgs;
|
import cn.odboy.system.dal.model.SystemQueryDictArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemDictMapper;
|
import cn.odboy.system.dal.mysql.SystemDictMapper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -52,7 +53,7 @@ public class SystemDictService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveDict(SystemCreateDictArgs args) {
|
public void saveDict(SystemCreateDictArgs args) {
|
||||||
systemDictMapper.insert(BeanUtil.copyProperties(args, SystemDictTb.class));
|
systemDictMapper.insert(KitBeanUtil.copyToClass(args, SystemDictTb.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+2
-1
@@ -25,6 +25,7 @@ import cn.odboy.system.dal.model.SystemCreateJobArgs;
|
|||||||
import cn.odboy.system.dal.model.SystemJobExportRowVo;
|
import cn.odboy.system.dal.model.SystemJobExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryJobArgs;
|
import cn.odboy.system.dal.model.SystemQueryJobArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemJobMapper;
|
import cn.odboy.system.dal.mysql.SystemJobMapper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -56,7 +57,7 @@ public class SystemJobService {
|
|||||||
if (job != null) {
|
if (job != null) {
|
||||||
throw new BadRequestException("职位名称已存在");
|
throw new BadRequestException("职位名称已存在");
|
||||||
}
|
}
|
||||||
systemJobMapper.insert(BeanUtil.copyProperties(args, SystemJobTb.class));
|
systemJobMapper.insert(KitBeanUtil.copyToClass(args, SystemJobTb.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+3
-2
@@ -31,6 +31,7 @@ import cn.odboy.system.dal.dataobject.SystemLocalStorageTb;
|
|||||||
import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo;
|
import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryStorageArgs;
|
import cn.odboy.system.dal.model.SystemQueryStorageArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemLocalStorageMapper;
|
import cn.odboy.system.dal.mysql.SystemLocalStorageMapper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitFileUtil;
|
import cn.odboy.util.KitFileUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
@@ -172,8 +173,8 @@ public class SystemLocalStorageService {
|
|||||||
public void exportLocalStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) {
|
public void exportLocalStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) {
|
||||||
List<SystemLocalStorageTb> systemLocalStorageTbs = this.queryLocalStorageByArgs(args);
|
List<SystemLocalStorageTb> systemLocalStorageTbs = this.queryLocalStorageByArgs(args);
|
||||||
// KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class,
|
// KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class,
|
||||||
// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class)));
|
// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class)));
|
||||||
List<SystemLocalStorageExportRowVo> rowVos = BeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class);
|
List<SystemLocalStorageExportRowVo> rowVos = KitBeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class);
|
||||||
KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos);
|
KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+27
-21
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service;
|
package cn.odboy.system.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
@@ -26,11 +27,13 @@ import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.model.SystemMenuExportRowVo;
|
import cn.odboy.system.dal.model.SystemMenuExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuMetaVo;
|
import cn.odboy.system.dal.model.SystemMenuMetaVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemMenuRouterVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuVo;
|
import cn.odboy.system.dal.model.SystemMenuVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
|
import cn.odboy.system.dal.model.SystemQueryMenuArgs;
|
||||||
import cn.odboy.system.dal.model.SystemRoleVo;
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
import cn.odboy.system.dal.mysql.SystemMenuMapper;
|
import cn.odboy.system.dal.mysql.SystemMenuMapper;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitClassUtil;
|
import cn.odboy.util.KitClassUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -278,14 +281,14 @@ public class SystemMenuService {
|
|||||||
* @param menus 原始数据
|
* @param menus 原始数据
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public List<SystemMenuTb> buildMenuTree(List<SystemMenuTb> menus) {
|
public List<SystemMenuVo> buildMenuTree(List<SystemMenuVo> menus) {
|
||||||
List<SystemMenuTb> trees = new ArrayList<>();
|
List<SystemMenuVo> trees = new ArrayList<>();
|
||||||
Set<Long> ids = new HashSet<>();
|
Set<Long> ids = new HashSet<>();
|
||||||
for (SystemMenuTb menu : menus) {
|
for (SystemMenuVo menu : menus) {
|
||||||
if (menu.getPid() == null) {
|
if (menu.getPid() == null) {
|
||||||
trees.add(menu);
|
trees.add(menu);
|
||||||
}
|
}
|
||||||
for (SystemMenuTb it : menus) {
|
for (SystemMenuVo it : menus) {
|
||||||
if (menu.getId().equals(it.getPid())) {
|
if (menu.getId().equals(it.getPid())) {
|
||||||
if (menu.getChildren() == null) {
|
if (menu.getChildren() == null) {
|
||||||
menu.setChildren(new ArrayList<>());
|
menu.setChildren(new ArrayList<>());
|
||||||
@@ -307,12 +310,12 @@ public class SystemMenuService {
|
|||||||
* @param menus /
|
* @param menus /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public List<SystemMenuVo> buildMenuVo(List<SystemMenuTb> menus) {
|
public List<SystemMenuRouterVo> buildMenuVo(List<SystemMenuVo> menus) {
|
||||||
List<SystemMenuVo> list = new LinkedList<>();
|
List<SystemMenuRouterVo> list = new LinkedList<>();
|
||||||
menus.forEach(menu -> {
|
for (SystemMenuVo menu : menus) {
|
||||||
if (menu != null) {
|
if (menu != null) {
|
||||||
List<SystemMenuTb> menuList = menu.getChildren();
|
List<SystemMenuVo> menuList = menu.getChildren();
|
||||||
SystemMenuVo menuVo = new SystemMenuVo();
|
SystemMenuRouterVo menuVo = new SystemMenuRouterVo();
|
||||||
menuVo.setName(
|
menuVo.setName(
|
||||||
ObjectUtil.isNotEmpty(menu.getComponentName()) ? menu.getComponentName() : menu.getTitle());
|
ObjectUtil.isNotEmpty(menu.getComponentName()) ? menu.getComponentName() : menu.getTitle());
|
||||||
// 一级目录需要加斜杠, 不然会报警告
|
// 一级目录需要加斜杠, 不然会报警告
|
||||||
@@ -336,17 +339,17 @@ public class SystemMenuService {
|
|||||||
menuVo.setChildren(buildMenuVo(menuList));
|
menuVo.setChildren(buildMenuVo(menuList));
|
||||||
// 处理是一级菜单并且没有子菜单的情况
|
// 处理是一级菜单并且没有子菜单的情况
|
||||||
} else if (menu.getPid() == null) {
|
} else if (menu.getPid() == null) {
|
||||||
SystemMenuVo menuVo1 = getMenuVo(menu, menuVo);
|
SystemMenuRouterVo menuVo1 = getMenuVo(menu, menuVo);
|
||||||
menuVo.setName(null);
|
menuVo.setName(null);
|
||||||
menuVo.setMeta(null);
|
menuVo.setMeta(null);
|
||||||
menuVo.setComponent("Layout");
|
menuVo.setComponent("Layout");
|
||||||
List<SystemMenuVo> list1 = new ArrayList<>();
|
List<SystemMenuRouterVo> list1 = new ArrayList<>();
|
||||||
list1.add(menuVo1);
|
list1.add(menuVo1);
|
||||||
menuVo.setChildren(list1);
|
menuVo.setChildren(list1);
|
||||||
}
|
}
|
||||||
list.add(menuVo);
|
list.add(menuVo);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,8 +360,8 @@ public class SystemMenuService {
|
|||||||
* @param menuVo /
|
* @param menuVo /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
private SystemMenuVo getMenuVo(SystemMenuTb menu, SystemMenuVo menuVo) {
|
private SystemMenuRouterVo getMenuVo(SystemMenuTb menu, SystemMenuRouterVo menuVo) {
|
||||||
SystemMenuVo menuVo1 = new SystemMenuVo();
|
SystemMenuRouterVo menuVo1 = new SystemMenuRouterVo();
|
||||||
menuVo1.setMeta(menuVo.getMeta());
|
menuVo1.setMeta(menuVo.getMeta());
|
||||||
// 非外链
|
// 非外链
|
||||||
if (!menu.getIFrame()) {
|
if (!menu.getIFrame()) {
|
||||||
@@ -418,10 +421,11 @@ public class SystemMenuService {
|
|||||||
return systemMenuMapper.selectList(wrapper);
|
return systemMenuMapper.selectList(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SystemMenuVo> buildFrontMenus() {
|
public List<SystemMenuRouterVo> buildFrontMenus() {
|
||||||
List<SystemMenuTb> menuList = this.listMenuByUserId(KitSecurityHelper.getCurrentUserId());
|
List<SystemMenuTb> menuList = this.listMenuByUserId(KitSecurityHelper.getCurrentUserId());
|
||||||
List<SystemMenuTb> menus = this.buildMenuTree(menuList);
|
List<SystemMenuVo> originMenus = KitBeanUtil.copyToList(menuList, SystemMenuVo.class);
|
||||||
return this.buildMenuVo(menus);
|
List<SystemMenuVo> targetMenus = this.buildMenuTree(originMenus);
|
||||||
|
return this.buildMenuVo(targetMenus);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<Long> listChildMenuSetByMenuId(Long id) {
|
public Set<Long> listChildMenuSetByMenuId(Long id) {
|
||||||
@@ -432,9 +436,9 @@ public class SystemMenuService {
|
|||||||
return menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet());
|
return menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SystemMenuTb> listMenuSuperior(List<Long> ids) {
|
public List<SystemMenuVo> listMenuSuperior(List<Long> ids) {
|
||||||
Set<SystemMenuTb> menus;
|
Set<SystemMenuTb> menus;
|
||||||
List<SystemMenuTb> systemMenuTbs;
|
List<SystemMenuVo> systemMenuTbs;
|
||||||
if (CollectionUtil.isNotEmpty(ids)) {
|
if (CollectionUtil.isNotEmpty(ids)) {
|
||||||
menus = new LinkedHashSet<>(this.listMenuByIds(ids));
|
menus = new LinkedHashSet<>(this.listMenuByIds(ids));
|
||||||
for (SystemMenuTb menu : menus) {
|
for (SystemMenuTb menu : menus) {
|
||||||
@@ -448,9 +452,11 @@ public class SystemMenuService {
|
|||||||
}
|
}
|
||||||
// 编辑菜单时不显示自己以及自己下级的数据, 避免出现PID数据环形问题
|
// 编辑菜单时不显示自己以及自己下级的数据, 避免出现PID数据环形问题
|
||||||
menus = menus.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet());
|
menus = menus.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet());
|
||||||
systemMenuTbs = this.buildMenuTree(new ArrayList<>(menus));
|
List<SystemMenuTb> newMenuList = new ArrayList<>(menus);
|
||||||
|
systemMenuTbs = this.buildMenuTree(KitBeanUtil.copyToList(newMenuList, SystemMenuVo.class));
|
||||||
} else {
|
} else {
|
||||||
systemMenuTbs = this.listMenuByPid(null);
|
List<SystemMenuTb> newMenuList = this.listMenuByPid(null);
|
||||||
|
systemMenuTbs = KitBeanUtil.copyToList(newMenuList, SystemMenuVo.class);
|
||||||
}
|
}
|
||||||
return systemMenuTbs;
|
return systemMenuTbs;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -26,12 +26,14 @@ import cn.odboy.framework.redis.KitRedisHelper;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
||||||
import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo;
|
import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo;
|
import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
|
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
|
||||||
import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs;
|
import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs;
|
||||||
import cn.odboy.system.dal.mysql.SystemQuartzJobMapper;
|
import cn.odboy.system.dal.mysql.SystemQuartzJobMapper;
|
||||||
import cn.odboy.system.dal.mysql.SystemQuartzLogMapper;
|
import cn.odboy.system.dal.mysql.SystemQuartzLogMapper;
|
||||||
import cn.odboy.system.framework.quartz.QuartzManage;
|
import cn.odboy.system.framework.quartz.QuartzManage;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -108,7 +110,7 @@ public class SystemQuartzJobService {
|
|||||||
throw new BadRequestException("子任务中不能添加当前任务ID");
|
throw new BadRequestException("子任务中不能添加当前任务ID");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SystemQuartzJobTb quartzJob = BeanUtil.copyProperties(args, SystemQuartzJobTb.class);
|
SystemQuartzJobTb quartzJob = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class);
|
||||||
systemQuartzJobMapper.insertOrUpdate(quartzJob);
|
systemQuartzJobMapper.insertOrUpdate(quartzJob);
|
||||||
quartzManage.updateJobCron(quartzJob);
|
quartzManage.updateJobCron(quartzJob);
|
||||||
}
|
}
|
||||||
@@ -167,7 +169,7 @@ public class SystemQuartzJobService {
|
|||||||
// 如果是手动清除子任务id, 会出现id为空字符串的问题
|
// 如果是手动清除子任务id, 会出现id为空字符串的问题
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
SystemQuartzJobTb quartzJob = systemQuartzJobMapper.selectById(Long.parseLong(id));
|
SystemQuartzJobVo quartzJob = systemQuartzJobMapper.selectVoById(id);
|
||||||
if (quartzJob == null) {
|
if (quartzJob == null) {
|
||||||
// 防止子任务不存在
|
// 防止子任务不存在
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
+3
-2
@@ -32,6 +32,7 @@ import cn.odboy.system.dal.model.SystemRoleExportRowVo;
|
|||||||
import cn.odboy.system.dal.model.SystemRoleVo;
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
import cn.odboy.system.dal.mysql.SystemRoleMapper;
|
import cn.odboy.system.dal.mysql.SystemRoleMapper;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.xlsx.KitExcelExporter;
|
import cn.odboy.util.xlsx.KitExcelExporter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -70,7 +71,7 @@ public class SystemRoleService {
|
|||||||
if (this.getRoleByName(args.getName()) != null) {
|
if (this.getRoleByName(args.getName()) != null) {
|
||||||
throw new BadRequestException("角色名称已存在");
|
throw new BadRequestException("角色名称已存在");
|
||||||
}
|
}
|
||||||
systemRoleMapper.insert(BeanUtil.copyProperties(args, SystemRoleTb.class));
|
systemRoleMapper.insert(KitBeanUtil.copyToClass(args, SystemRoleTb.class));
|
||||||
// 判断是否有部门数据, 若有, 则需创建关联
|
// 判断是否有部门数据, 若有, 则需创建关联
|
||||||
if (CollectionUtil.isNotEmpty(args.getDepts())) {
|
if (CollectionUtil.isNotEmpty(args.getDepts())) {
|
||||||
systemRoleDeptService.batchInsertRoleDept(args.getDepts(), args.getId());
|
systemRoleDeptService.batchInsertRoleDept(args.getDepts(), args.getId());
|
||||||
@@ -91,7 +92,7 @@ public class SystemRoleService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateRoleById(SystemRoleVo args) {
|
public void updateRoleById(SystemRoleVo args) {
|
||||||
checkRoleLevels(args.getLevel());
|
checkRoleLevels(args.getLevel());
|
||||||
SystemRoleVo role = BeanUtil.copyProperties(systemRoleMapper.selectById(args.getId()), SystemRoleVo.class);
|
SystemRoleVo role = KitBeanUtil.copyToClass(systemRoleMapper.selectById(args.getId()), SystemRoleVo.class);
|
||||||
SystemRoleTb role1 = this.getRoleByName(args.getName());
|
SystemRoleTb role1 = this.getRoleByName(args.getName());
|
||||||
if (role1 != null && !role1.getId().equals(role.getId())) {
|
if (role1 != null && !role1.getId().equals(role.getId())) {
|
||||||
throw new BadRequestException("角色名称已存在");
|
throw new BadRequestException("角色名称已存在");
|
||||||
|
|||||||
+2
-1
@@ -27,6 +27,7 @@ import cn.odboy.system.dal.model.SystemUserVo;
|
|||||||
import cn.odboy.system.dal.mysql.SystemRoleMapper;
|
import cn.odboy.system.dal.mysql.SystemRoleMapper;
|
||||||
import cn.odboy.system.dal.mysql.SystemUserRoleMapper;
|
import cn.odboy.system.dal.mysql.SystemUserRoleMapper;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -84,7 +85,7 @@ public class SystemUserRoleService {
|
|||||||
if (role == null) {
|
if (role == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
SystemRoleVo roleVo = BeanUtil.copyProperties(role, SystemRoleVo.class);
|
SystemRoleVo roleVo = KitBeanUtil.copyToClass(role, SystemRoleVo.class);
|
||||||
// 查询关联的菜单信息
|
// 查询关联的菜单信息
|
||||||
Set<SystemMenuTb> menus = systemRoleMenuService.queryMenuByRoleIds(
|
Set<SystemMenuTb> menus = systemRoleMenuService.queryMenuByRoleIds(
|
||||||
Collections.singleton(role.getId()));
|
Collections.singleton(role.getId()));
|
||||||
|
|||||||
+3
-4
@@ -41,6 +41,7 @@ import cn.odboy.system.dal.mysql.SystemUserMapper;
|
|||||||
import cn.odboy.system.dal.redis.SystemUserInfoDAO;
|
import cn.odboy.system.dal.redis.SystemUserInfoDAO;
|
||||||
import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
|
import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
|
||||||
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
import cn.odboy.system.framework.permission.core.KitSecurityHelper;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitFileUtil;
|
import cn.odboy.util.KitFileUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
import cn.odboy.util.KitRsaEncryptUtil;
|
import cn.odboy.util.KitRsaEncryptUtil;
|
||||||
@@ -155,7 +156,6 @@ public class SystemUserService {
|
|||||||
user.setUsername(args.getUsername());
|
user.setUsername(args.getUsername());
|
||||||
user.setEmail(args.getEmail());
|
user.setEmail(args.getEmail());
|
||||||
user.setEnabled(args.getEnabled());
|
user.setEnabled(args.getEnabled());
|
||||||
user.setDept(args.getDept());
|
|
||||||
user.setPhone(args.getPhone());
|
user.setPhone(args.getPhone());
|
||||||
user.setNickName(args.getNickName());
|
user.setNickName(args.getNickName());
|
||||||
user.setGender(args.getGender());
|
user.setGender(args.getGender());
|
||||||
@@ -436,7 +436,7 @@ public class SystemUserService {
|
|||||||
if (user == null) {
|
if (user == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
SystemUserVo userVo = BeanUtil.copyProperties(user, SystemUserVo.class);
|
SystemUserVo userVo = KitBeanUtil.copyToClass(user, SystemUserVo.class);
|
||||||
// 查询关联的部门信息
|
// 查询关联的部门信息
|
||||||
if (user.getDeptId() != null) {
|
if (user.getDeptId() != null) {
|
||||||
SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId());
|
SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId());
|
||||||
@@ -493,8 +493,7 @@ public class SystemUserService {
|
|||||||
args.getDeptIds().addAll(systemDeptService.queryChildDeptIdByDeptIds(data));
|
args.getDeptIds().addAll(systemDeptService.queryChildDeptIdByDeptIds(data));
|
||||||
}
|
}
|
||||||
// 数据权限
|
// 数据权限
|
||||||
List<Long> dataScopes = systemDataService.queryDeptIdByArgs(
|
List<Long> dataScopes = systemDataService.queryDeptIdByArgs(this.getUserVoByUsername(currentUsername));
|
||||||
this.getUserByUsername(currentUsername));
|
|
||||||
// args.getDeptIds() 不为空并且数据权限不为空则取交集
|
// args.getDeptIds() 不为空并且数据权限不为空则取交集
|
||||||
if (!CollectionUtils.isEmpty(args.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) {
|
if (!CollectionUtils.isEmpty(args.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) {
|
||||||
// 取交集
|
// 取交集
|
||||||
|
|||||||
+4
-4
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.service.impl;
|
package cn.odboy.system.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
@@ -30,6 +29,7 @@ import cn.odboy.system.dal.model.SystemQueryStorageArgs;
|
|||||||
import cn.odboy.system.dal.mysql.SystemOssStorageMapper;
|
import cn.odboy.system.dal.mysql.SystemOssStorageMapper;
|
||||||
import cn.odboy.system.framework.storage.minio.MinioRepository;
|
import cn.odboy.system.framework.storage.minio.MinioRepository;
|
||||||
import cn.odboy.system.service.SystemOssStorageService;
|
import cn.odboy.system.service.SystemOssStorageService;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitDateUtil;
|
import cn.odboy.util.KitDateUtil;
|
||||||
import cn.odboy.util.KitFileUtil;
|
import cn.odboy.util.KitFileUtil;
|
||||||
import cn.odboy.util.KitPageUtil;
|
import cn.odboy.util.KitPageUtil;
|
||||||
@@ -72,7 +72,7 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl<SystemOssStorageM
|
|||||||
Page<SystemOssStorageTb> page) {
|
Page<SystemOssStorageTb> page) {
|
||||||
IPage<SystemOssStorageTb> ossStorageTbs = this.selectOssStorageByArgs(args, page);
|
IPage<SystemOssStorageTb> ossStorageTbs = this.selectOssStorageByArgs(args, page);
|
||||||
IPage<SystemOssStorageVo> convert = ossStorageTbs.convert(c -> {
|
IPage<SystemOssStorageVo> convert = ossStorageTbs.convert(c -> {
|
||||||
SystemOssStorageVo storageVo = BeanUtil.copyProperties(c, SystemOssStorageVo.class);
|
SystemOssStorageVo storageVo = KitBeanUtil.copyToClass(c, SystemOssStorageVo.class);
|
||||||
storageVo.setFileSizeDesc(KitFileUtil.getSize(storageVo.getFileSize()));
|
storageVo.setFileSizeDesc(KitFileUtil.getSize(storageVo.getFileSize()));
|
||||||
return storageVo;
|
return storageVo;
|
||||||
});
|
});
|
||||||
@@ -157,8 +157,8 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl<SystemOssStorageM
|
|||||||
public void exportOssStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) {
|
public void exportOssStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) {
|
||||||
List<SystemOssStorageVo> systemOssStorageVos = this.queryOssStorage(args);
|
List<SystemOssStorageVo> systemOssStorageVos = this.queryOssStorage(args);
|
||||||
// KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class,
|
// KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class,
|
||||||
// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class)));
|
// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class)));
|
||||||
List<SystemOssStorageExportRowVo> rowVos = BeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class);
|
List<SystemOssStorageExportRowVo> rowVos = KitBeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class);
|
||||||
KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos);
|
KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import cn.odboy.task.dal.model.TaskTemplateNodeVo;
|
|||||||
import cn.odboy.task.service.TaskInstanceDetailService;
|
import cn.odboy.task.service.TaskInstanceDetailService;
|
||||||
import cn.odboy.task.service.TaskInstanceInfoService;
|
import cn.odboy.task.service.TaskInstanceInfoService;
|
||||||
import cn.odboy.task.service.TaskTemplateInfoService;
|
import cn.odboy.task.service.TaskTemplateInfoService;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitDateUtil;
|
import cn.odboy.util.KitDateUtil;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -228,12 +229,11 @@ public class TaskManage {
|
|||||||
record.setTemplate(templateInfo.getTemplateInfo());
|
record.setTemplate(templateInfo.getTemplateInfo());
|
||||||
return record;
|
return record;
|
||||||
}
|
}
|
||||||
record = BeanUtil.copyProperties(historyInstance, TaskInstanceInfoVo.class);
|
record = KitBeanUtil.copyToClass(historyInstance, TaskInstanceInfoVo.class);
|
||||||
record.setHistory(buildNodeList(record));
|
record.setHistory(buildNodeList(record));
|
||||||
TaskInstanceInfoTb runningInstance =
|
TaskInstanceInfoTb runningInstance = taskInstanceInfoService.getLastRunningInstance(contextName, language, envAlias, changeType);
|
||||||
taskInstanceInfoService.getLastRunningInstance(contextName, language, envAlias, changeType);
|
|
||||||
if (runningInstance != null) {
|
if (runningInstance != null) {
|
||||||
TaskInstanceInfoVo taskInstanceInfoVo = BeanUtil.copyProperties(runningInstance, TaskInstanceInfoVo.class);
|
TaskInstanceInfoVo taskInstanceInfoVo = KitBeanUtil.copyToClass(runningInstance, TaskInstanceInfoVo.class);
|
||||||
record.setCurrent(buildNodeList(taskInstanceInfoVo));
|
record.setCurrent(buildNodeList(taskInstanceInfoVo));
|
||||||
}
|
}
|
||||||
return record;
|
return record;
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import cn.odboy.task.dal.model.TaskTemplateNodeVo;
|
|||||||
import cn.odboy.task.service.TaskInstanceDetailService;
|
import cn.odboy.task.service.TaskInstanceDetailService;
|
||||||
import cn.odboy.task.service.TaskInstanceInfoService;
|
import cn.odboy.task.service.TaskInstanceInfoService;
|
||||||
import cn.odboy.task.service.TaskTemplateInfoService;
|
import cn.odboy.task.service.TaskTemplateInfoService;
|
||||||
|
import cn.odboy.util.KitBeanUtil;
|
||||||
import cn.odboy.util.KitDateUtil;
|
import cn.odboy.util.KitDateUtil;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -228,12 +229,11 @@ public class TaskManage {
|
|||||||
record.setTemplate(templateInfo.getTemplateInfo());
|
record.setTemplate(templateInfo.getTemplateInfo());
|
||||||
return record;
|
return record;
|
||||||
}
|
}
|
||||||
record = BeanUtil.copyProperties(historyInstance, TaskInstanceInfoVo.class);
|
record = KitBeanUtil.copyToClass(historyInstance, TaskInstanceInfoVo.class);
|
||||||
record.setHistory(buildNodeList(record));
|
record.setHistory(buildNodeList(record));
|
||||||
TaskInstanceInfoTb runningInstance =
|
TaskInstanceInfoTb runningInstance = taskInstanceInfoService.getLastRunningInstance(contextName, language, envAlias, changeType);
|
||||||
taskInstanceInfoService.getLastRunningInstance(contextName, language, envAlias, changeType);
|
|
||||||
if (runningInstance != null) {
|
if (runningInstance != null) {
|
||||||
TaskInstanceInfoVo taskInstanceInfoVo = BeanUtil.copyProperties(runningInstance, TaskInstanceInfoVo.class);
|
TaskInstanceInfoVo taskInstanceInfoVo = KitBeanUtil.copyToClass(runningInstance, TaskInstanceInfoVo.class);
|
||||||
record.setCurrent(buildNodeList(taskInstanceInfoVo));
|
record.setCurrent(buildNodeList(taskInstanceInfoVo));
|
||||||
}
|
}
|
||||||
return record;
|
return record;
|
||||||
|
|||||||
Reference in New Issue
Block a user