Commit 94de6fdc by wqc

添加组件

parent ca96da48
......@@ -47,4 +47,10 @@ public class ComponentRunController {
return ResultVo.success(commonQueryService.CutString(body));
}
@ApiOperation("验证国内电话")
@PostMapping("/validateNumber")
public ResultVo validateNumber(@RequestBody Map<String, Object> body) throws Exception {
return ResultVo.success(commonQueryService.validateNumber(body));
}
}
......@@ -17,6 +17,7 @@ import com.zq.dataoperation.entity.MetaDataMapping;
import com.zq.dataoperation.entity.QueryDb;
import com.zq.dataoperation.utils.ConnectionUtil;
import com.zq.dataoperation.utils.IdentityUtils;
import com.zq.dataoperation.utils.MobileUtil;
import com.zq.dataoperation.utils.SqlUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.jdbc.core.JdbcTemplate;
......@@ -192,7 +193,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
String metaData = jsonObject.get("metaData").toString();
String sql1="SELECT "+metaData+" FROM " + tableName+" GROUP BY "+metaData+" HAVING COUNT("+metaData+")>1;";
List<Map> mapList = commonQuery(sql1, datasourceId);
if (mapList==null){
if (mapList.size()==0){
return "该字段没有重复值";
}else{
String sql = "SELECT * FROM " + tableName + " WHERE id not in (SELECT MIN(id) FROM " + tableName+" GROUP BY "+metaData+" HAVING COUNT("+metaData+")>1);";
......@@ -207,7 +208,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
String tableName = jsonObject.get("tableName").toString();
String metaData = jsonObject.get("metaData").toString();
String sql="SELECT * FROM " + tableName;
if (StringUtils.isNotBlank(metaData)) {
if (!StringUtils.isNotBlank(metaData)) {
return "字段为身份证且不为空!";
}
if(IdentityUtils.isLegalIdCard(metaData)!=true){
......@@ -260,10 +261,39 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
String indexStr = jsonObject.get("indexStr").toString();
String metaData = jsonObject.get("metaData").toString();
String sql="SELECT *,"+" SUBSTR("+metaData+","+beginStr+","+indexStr+") AS "+metaData +"1 FROM "+tableName;
if (StringUtils.isNotBlank(metaData)&&StringUtils.isNotBlank(tableName)&&StringUtils.isNotBlank(beginStr)&&StringUtils.isNotBlank(indexStr)) {
if (!StringUtils.isNotBlank(metaData)&&StringUtils.isNotBlank(tableName)&&StringUtils.isNotBlank(beginStr)&&StringUtils.isNotBlank(indexStr)) {
return "传入参数不能为空";
}else{
return commonQuery(sql,datasourceId);
}
}
public Object validateNumber(Map<String, Object> body) throws Exception {
JSONObject jsonObject = JSONUtil.parseObj(body);
Long datasourceId = Long.valueOf(jsonObject.get("datasourceId").toString());
String tableName = jsonObject.get("tableName").toString();
String metaData = jsonObject.get("metaData").toString();
HashMap<String, Object> map = new HashMap<>();
if (!StringUtils.isNotBlank(metaData)&&StringUtils.isNotBlank(tableName)) {
return "传入参数不能为空";
}
String phone="SELECT "+metaData+" FROM "+tableName;
String sql ="SELECT * FROM "+tableName+" WHERE "+metaData+" REGEXP '^1[3-9][0-9]{9}$'";
// List<Map> mapList = commonQuery(phone, datasourceId);
// for (Object list:mapList) {
// String meta = list.toString();
// if(MobileUtil.checkPhone(meta)!=true) {
// log.error("不是国内手机号");
// continue;
// }else{
// dataList = commonQuery(sql, datasourceId);
// }
// }
List<Map> dataList = commonQuery(sql, datasourceId);
String dirty="SELECT * FROM "+tableName+" WHERE "+metaData+" NOT REGEXP '^1[3-9][0-9]{9}$'";
List<Map> dirtyList = commonQuery(dirty, datasourceId);
map.put("dataList",dataList);
map.put("dirtyList",dirtyList);
return map;
}
}
package com.zq.dataoperation.utils;
import org.apache.commons.lang3.StringUtils;
import java.util.regex.Pattern;
/**
* 手机号校验工具类
*/
public class MobileUtil {
/**
* 中国电信号码格式验证 手机段: 133,149,153,173,177,180,181,189,191,199,1349,1410,1700,1701,1702
**/
private static final String CHINA_TELECOM_PATTERN = "(?:^(?:\\+86)?1(?:33|49|53|7[347]|8[019]|9[139])\\d{8}$)|(?:^(?:\\+86)?1349\\d{7}$)|(?:^(?:\\+86)?1410\\d{7}$)|(?:^(?:\\+86)?170[0-2]\\d{7}$)";
/**
* 中国联通号码格式验证 手机段:130,131,132,145,146,155,156,166,171,175,176,185,186,1704,1707,1708,1709
**/
private static final String CHINA_UNICOM_PATTERN = "(?:^(?:\\+86)?1(?:3[0-2]|4[56]|5[56]|6[67]|7[156]|8[56]|96)\\d{8}$)|(?:^(?:\\+86)?170[47-9]\\d{7}$)";
/**
* 中国移动号码格式验证
* 手机段:134,135,136,137,138,139,147,148,150,151,152,157,158,159,172,178,182,183,184,187,188,195,198,1440,1703,1705,1706
**/
private static final String CHINA_MOBILE_PATTERN = "(?:^(?:\\+86)?1(?:3[4-9]|4[78]|5[0-27-9]|72|78|8[2-478]|98|95)\\d{8}$)|(?:^(?:\\+86)?1440\\d{7}$)|(?:^(?:\\+86)?170[356]\\d{7}$)";
/**
* 虚拟运营商号码格式验证
* 162 165 167 170 171
*/
private static final String CHINA_VIRTUALLY_PATTERN = "(?:^(?:\\+86)?1(?:6[257]|7[01])\\d{8}$)";
/**
* 中国香港
*/
private static final String CHINA_HANGKONG_PATTERN = "^(00)?(852)[5|6|9]\\d{7}$";
/**
* 中国香港手机号码校验
*
* @param phone
*
* @return
*/
public static boolean checkChinaHangkong(String phone) {
if (StringUtils.isNotBlank(phone)) {
Pattern regexp = Pattern.compile(CHINA_HANGKONG_PATTERN);
if (regexp.matcher(phone).matches()) {
return true;
}else{
return false;
}
}
return true;
}
/**
* 中国大陆手机号码校验
*
* @param phone
*
* @return
*/
public static boolean checkPhone(String phone) {
if (StringUtils.isNotBlank(phone)) {
if (checkChinaMobile(phone) || checkChinaUnicom(phone) || checkChinaTelecom(phone)|| checkChinaVirtually(phone)||checkChinaHangkong(phone)) {
return true;
}else{
return false;
}
}
return true;
}
/**
* 中国移动手机号码校验
*
* @param phone
*
* @return
*/
public static boolean checkChinaMobile(String phone) {
if (StringUtils.isNotBlank(phone)) {
Pattern regexp = Pattern.compile(CHINA_MOBILE_PATTERN);
if (regexp.matcher(phone).matches()) {
return true;
}else{
return false;
}
}
return true;
}
/**
* 中国联通手机号码校验
*
* @param phone
*
* @return
*/
public static boolean checkChinaUnicom(String phone) {
if (StringUtils.isNotBlank(phone)) {
Pattern regexp = Pattern.compile(CHINA_UNICOM_PATTERN);
if (regexp.matcher(phone).matches()) {
return true;
}else{
return false;
}
}
return true;
}
/**
* 中国电信手机号码校验
*
* @param phone
*
* @return
*/
public static boolean checkChinaTelecom(String phone) {
if (StringUtils.isNotBlank(phone)) {
Pattern regexp = Pattern.compile(CHINA_TELECOM_PATTERN);
if (regexp.matcher(phone).matches()) {
return true;
}else {
return false;
}
}
return true;
}
/**
* 虚拟运营商手机号码校验
*
* @param phone
*
* @return
*/
public static boolean checkChinaVirtually(String phone) {
if (StringUtils.isNotBlank(phone)) {
Pattern regexp = Pattern.compile(CHINA_VIRTUALLY_PATTERN);
if (regexp.matcher(phone).matches()) {
return true;
}else{
return false;
}
}
return true;
}
/**
* 隐藏手机号中间四位
*
* @param phone
*
* @return java.lang.String
*/
public static String hideMiddleMobile(String phone) {
if (StringUtils.isNotBlank(phone)) {
phone = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
}
return phone;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zq.dataoperation.dao.MetaDataDao">
<select id="getPage" resultType="com.zq.dataoperation.vo.MetaDataVo">
SELECT
m.*,
mc.CATEGORY_NAME
FROM meta_data m
LEFT JOIN meta_data_category mc ON m.CATEGORY_ID = mc.ID
<where>
<if test="req.metaName != null and req.metaName != ''">
AND m.META_NAME like '%${req.metaName}%'
</if>
<if test="req.categoryId != null">
AND mc.ID = #{req.categoryId}
</if>
</where>
ORDER BY m.ID DESC
</select>
<select id="getPageList" resultType="com.zq.dataoperation.vo.MetaDataVo">
select * FROM meta_data me WHERE me.category_id = #{req.categoryId} LIMIT #{req.page},#{req.size}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zq.dataoperation.dao.MetaDataMappingDao">
<select id="selectByMetaIdList" resultType="java.util.List">
select * from meta_data_mapping where metadata_id=#{id}
</select>
<select id="selectRepeat" resultType="com.zq.dataoperation.entity.MetaDataMapping">
SELECT
*
FROM
meta_data_mapping
WHERE
table_sqlname = #{tableSqlname}
AND field_name IN(SELECT field_name FROM meta_data_mapping GROUP BY field_name HAVING COUNT(field_name) > 1)
</select>
<select id="getSqlName" resultType="com.zq.dataoperation.entity.MetaDataMapping">
SELECT DISTINCT
table_sqlname
FROM
meta_data_mapping
WHERE
table_sqlname IN (
SELECT
table_sqlname
FROM
meta_data_mapping
GROUP BY
table_sqlname
HAVING
COUNT( table_sqlname ) > 1)
</select>
<select id="selectByCateId" resultType="com.zq.dataoperation.entity.MetaDataMapping">
SELECT
DISTINCT
t.table_sqlname,
t.query_db_id
FROM
meta_data_mapping t
LEFT JOIN meta_data m ON t.metadata_id = m.id
LEFT JOIN meta_data_category y ON m.category_id = y.id
WHERE y.id=#{id}
</select>
<select id="getMetaByTable" resultType="com.zq.dataoperation.vo.MetaDataReq">
SELECT
a.*,
p.table_sqlname
FROM
meta_data a
LEFT JOIN meta_data_mapping p ON a.id = p.metadata_id
WHERE
p.table_sqlname = #{tableSqlName}
</select>
</mapper>
......@@ -11,10 +11,7 @@ import org.apache.commons.lang3.StringUtils;
import com.zq.spiderflow.core.model.DataSource;
import com.zq.spiderflow.model.JsonBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -53,8 +50,8 @@ public class DataSourceController {
return dataSource;
}
@RequestMapping("/remove")
public void remove(String id){
@DeleteMapping("/remove/{id}")
public void remove(@PathVariable String id){
DataSourceUtils.remove(id);
dataSourceService.removeById(id);
}
......
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