Commit abb4d48c by yuwei

项目初始化

parent b0437b7e
package cn.datax.service.data.masterdata.api.query;
import lombok.Data;
import java.io.Serializable;
@Data
public class Condition implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 数据库字段名
*/
private String column;
/**
* 字段值
*/
private String value;
/**
* 查询类型,如llike,eq,gt,ge,lt,le
*/
private String type;
}
package cn.datax.service.data.masterdata.api.query;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ModelDataQuery implements Serializable {
private static final long serialVersionUID = 1L;
private String tableName;
private List<Condition> conditions;
// 关键字
private String keyword;
// 当前页码
private Integer pageNum = 1;
// 分页条数
private Integer pageSize = 20;
}
package cn.datax.service.data.masterdata.controller;
import cn.datax.common.base.BaseController;
import cn.datax.service.data.masterdata.api.entity.ModelEntity;
import cn.datax.service.data.masterdata.api.query.ModelDataQuery;
import cn.datax.service.data.masterdata.service.ModelDataService;
import cn.datax.service.data.masterdata.utils.SearchUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/datas")
public class ModelDataController extends BaseController {
@Autowired
private ModelDataService modelDataService;
@PostMapping("/page")
public void getPageModelDatas(ModelDataQuery modelDataQuery) {
IPage<Map<String, Object>> page = modelDataService.getPageModelDatas(modelDataQuery);
}
}
......@@ -2,9 +2,15 @@ package cn.datax.service.data.masterdata.dao;
import cn.datax.service.data.masterdata.api.entity.ModelDataEntity;
import cn.datax.service.data.masterdata.api.entity.ModelEntity;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
@Mapper
public interface MysqlDynamicDao {
......@@ -17,4 +23,6 @@ public interface MysqlDynamicDao {
void updateData(ModelDataEntity modelDataEntity);
void deleteData(ModelDataEntity modelDataEntity);
IPage<Map<String, Object>> getPageModelDatas(Page<Object> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("tableName") String tableName);
}
package cn.datax.service.data.masterdata.service;
import cn.datax.service.data.masterdata.api.query.ModelDataQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.Map;
public interface ModelDataService {
IPage<Map<String, Object>> getPageModelDatas(ModelDataQuery modelDataQuery);
}
package cn.datax.service.data.masterdata.service.impl;
import cn.datax.service.data.masterdata.api.query.ModelDataQuery;
import cn.datax.service.data.masterdata.dao.MysqlDynamicDao;
import cn.datax.service.data.masterdata.service.ModelDataService;
import cn.datax.service.data.masterdata.utils.SearchUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
public class ModelDataServiceImpl implements ModelDataService {
@Autowired
private MysqlDynamicDao dynamicDao;
@Override
public IPage<Map<String, Object>> getPageModelDatas(ModelDataQuery modelDataQuery) {
String tableName = modelDataQuery.getTableName();
QueryWrapper queryWrapper = SearchUtil.parseWhereSql(modelDataQuery);
IPage<Map<String, Object>> page = dynamicDao.getPageModelDatas(new Page<>(modelDataQuery.getPageNum(), modelDataQuery.getPageSize()), queryWrapper, tableName);
return page;
}
}
package cn.datax.service.data.masterdata.utils;
import cn.datax.service.data.masterdata.api.query.Condition;
import cn.datax.service.data.masterdata.api.query.ModelDataQuery;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.List;
public class SearchUtil {
public static QueryWrapper parseWhereSql(ModelDataQuery modelDataQuery) {
QueryWrapper queryWrapper = new QueryWrapper();
List<Condition> conditionList = modelDataQuery.getConditions();
if(CollUtil.isNotEmpty(conditionList)){
for(Condition condition : conditionList){
switch (condition.getType()) {
case "eq":
queryWrapper.eq(StrUtil.isNotBlank(condition.getValue()), condition.getColumn(), condition.getValue());
break;
case "ne":
queryWrapper.ne(StrUtil.isNotBlank(condition.getValue()), condition.getColumn(), condition.getValue());
break;
case "like":
queryWrapper.like(StrUtil.isNotBlank(condition.getValue()), condition.getColumn(), condition.getValue());
break;
case "gt":
queryWrapper.gt(StrUtil.isNotBlank(condition.getValue()), condition.getColumn(), condition.getValue());
break;
case "ge":
queryWrapper.ge(StrUtil.isNotBlank(condition.getValue()), condition.getColumn(), condition.getValue());
break;
case "lt":
queryWrapper.lt(StrUtil.isNotBlank(condition.getValue()), condition.getColumn(), condition.getValue());
break;
case "le":
queryWrapper.le(StrUtil.isNotBlank(condition.getValue()), condition.getColumn(),condition.getValue());
break;
default:
break;
}
}
}
return queryWrapper;
}
}
......@@ -53,4 +53,11 @@
<delete id="deleteData" parameterType="cn.datax.service.data.masterdata.api.entity.ModelDataEntity">
DELETE FROM ${tableName} WHERE id = #{datas[id]}
</delete>
<select id="getPageModelDatas" resultType="java.util.Map">
SELECT * FROM ${tableName}
<if test="ew.emptyOfWhere == false">
${ew.customSqlSegment}
</if>
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment