473
社区成员




package com.igapm.generic.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.igapm.common.enums.InputTypeEnum;
import com.igapm.common.mybatis.core.page.PageQuery;
import com.igapm.common.mybatis.core.page.TableDataInfo;
import com.igapm.common.util.DictSelect;
import com.igapm.generic.domain.CommonConfig;
import com.igapm.generic.domain.CommonConfigPlan;
import com.igapm.generic.domain.dto.CommonConfigDTO;
import com.igapm.generic.domain.query.CommonConfigQuery;
import com.igapm.generic.domain.vo.CommonConfigVO;
import com.igapm.generic.enums.ConfigPlanStatusEnum;
import com.igapm.generic.mapper.CommonConfigMapper;
import com.igapm.generic.mapper.CommonConfigPlanMapper;
import com.igapm.generic.service.ICommonConfigService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
通用查询字段配置Service业务层处理
@author igapm
@date 2023-03-16
/
@RequiredArgsConstructor
@Service
public class CommonConfigServiceImpl implements ICommonConfigService {
private final CommonConfigMapper baseMapper;
private final CommonConfigPlanMapper configPlanMapper;
/**
return TableDataInfo.pageFail("该模块路由没有配置方案!");
} return TableDataInfo.pageFail("该模块路由没有配置方案字段!");
}/**
/**
/**
private LambdaQueryWrapper buildQueryWrapper(CommonConfigDTO dto) {
Map<String, Object> params = dto.getParams();
LambdaQueryWrapper<CommonConfig> lqw = Wrappers.lambdaQuery();
lqw.eq(dto.getCommonConfigPlanId() != null, CommonConfig::getCommonConfigPlanId, dto.getCommonConfigPlanId());
lqw.like(StringUtils.isNotBlank(dto.getTableComment()), CommonConfig::getTableComment, dto.getTableComment());
lqw.like(StringUtils.isNotBlank(dto.getTableName()), CommonConfig::getTableName, dto.getTableName());
lqw.eq(StringUtils.isNotBlank(dto.getTableAlias()), CommonConfig::getTableAlias, dto.getTableAlias());
lqw.like(StringUtils.isNotBlank(dto.getColumnName()), CommonConfig::getColumnName, dto.getColumnName());
lqw.like(StringUtils.isNotBlank(dto.getColumnComment()), CommonConfig::getColumnComment, dto.getColumnComment());
lqw.eq(StringUtils.isNotBlank(dto.getColumnType()), CommonConfig::getColumnType, dto.getColumnType());
lqw.eq(StringUtils.isNotBlank(dto.getAdvanceOperatorCode()), CommonConfig::getAdvanceOperatorCode, dto.getNormalOperatorCode());
lqw.eq(StringUtils.isNotBlank(dto.getNormalOperatorCode()), CommonConfig::getNormalOperatorCode, dto.getNormalOperatorCode());
lqw.eq(StringUtils.isNotBlank(dto.getInputType()), CommonConfig::getInputType, dto.getInputType());
lqw.eq(StringUtils.isNotBlank(dto.getDateFrom()), CommonConfig::getDateFrom, dto.getDateFrom());
lqw.eq(StringUtils.isNotBlank(dto.getSelectSource()), CommonConfig::getSelectSource, dto.getSelectSource());
lqw.eq(dto.getDispDefault() != null, CommonConfig::getDispDefault, dto.getDispDefault());
lqw.eq(dto.getQueryDefault() != null, CommonConfig::getQueryDefault, dto.getQueryDefault());
lqw.eq(StringUtils.isNotBlank(dto.getUserId()), CommonConfig::getUserId, dto.getUserId());
lqw.eq(StringUtils.isNotBlank(dto.getTenantId()), CommonConfig::getTenantId, dto.getTenantId());
return lqw;
}
/**
dto.setId(add.getId());
}/**
修改通用查询字段配置
/
@Override
public Boolean updateByDTO(CommonConfigDTO dto) {
CommonConfig update = BeanUtil.toBean(dto, CommonConfig.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
修改通用批量添加字段配置
/
@Override
public Boolean updateByDTOList(List dto) {
for(CommonConfigDTO commonConfigDTO:dto) {
CommonConfig update = BeanUtil.toBean(commonConfigDTO, CommonConfig.class);
//validEntityBeforeSave(update);
if(update.getId()==null){
baseMapper.insert(update);
}else {
baseMapper.updateById(update);
}
}
return true;
}
/**
/**
//做一些业务上的校验,判断是否需要校验
}/**
import java.io.IOException;
import java.text.ParseException;
import java.util.Date;
public class DateJacksonConverter extends JsonDeserializer {
//此处尤为重要,请查找自己控制台报错的日期格式化类型是啥样的
//我的是2020-04-29T16:23:44.999Z 所以我在下面的数组中添加了 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 格式;如果下面数组中没有你要的格式化类型,其他的可自行根据自己的情况去添加即可
private static String[] pattern =
new String[]{"yyyy-MM-dd", "yyyy-MM-dd HH:mm", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss.S",
"yyyy.MM.dd", "yyyy.MM.dd HH:mm", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm:ss.S",
"yyyy/MM/dd", "yyyy/MM/dd HH:mm", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm:ss.S", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"};
@Override
public Date deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
Date targetDate = null;
String originDate = p.getText();
if (StringUtils.isNotEmpty(originDate)) {
try {
long longDate = Long.valueOf(originDate.trim());
targetDate = new Date(longDate);
} catch (NumberFormatException e) {
try {
targetDate = DateUtils.parseDate(originDate, DateJacksonConverter.pattern);
} catch (ParseException pe) {
throw new IOException(String.format(
"'%s' can not convert to type 'java.util.Date',just support timestamp(type of long) and following date format(%s)",
originDate,
StringUtils.join(pattern, ",")));
}
}
}
return targetDate;
}
@Override
public Class<?> handledType() {
return Date.class;
}
// public static void main(String[] args) {
// String ll="2023-03-28 17:35:53";
// Date targetDate=null;
// try {
// targetDate= DateUtils.parseDate(ll, DateJacksonConverter.pattern);
// } catch (ParseException pe){
// System.out.println(pe);
// }
// System.out.println(targetDate);
// }
}