一、 前端需要做的
管理员端:添加增加标准的功能
1. 选择数据库
2. 选择表
3. 选择字段
4. 添加标准--添加标准时需要将诸如身份证号,手机号常见标准贴出,实际还是要输入字符串
用户端:最好在插入时就把这个表可视化的做出来
二、后端需要做的
1. 在pinfo表里加入 chartsid和dbid字段,方便查找
2. 在n_n_meta的表里添加zhengze字段,即存放标准的地方
3. 阅读同学的代码,在合适的位置对存在正则表达式进行判别
用户上传json
UserJsonController 响应/uploadData 链接--这里是获取了aid
需要补充代码:根据aid获取pid进而在pinfo里找到dbid和chartsid
UserJsonServiceImpl uploadData
在初始化中:获取该玩意涉及的所有表
逻辑是,每一个chartname对应的是一个list注意。
工作:
1. 在chartMapper里创建根据表名找id的方法,输入:表名,数据库id 输出 表id
<select id="findIdByChartName" resultType="java.lang.Integer">
select id from #{DBId}_charts where CEN=#{ChartName};
</select>
2. 在MetaMapper里创建根据meta名找限定的方法 输入:meta名,dbid,cid 输出:正则表达式
<select id="findZhengzeByMetaName" resultType="java.lang.String">
select Zhengze from #{DBId}_#{CId}_meta where MEN=#{MetaName};
</select>
3. 运行测试,查看没有正则返回什么
发现
没有值时返回的为null,因此可以直接判断是否为null来决定 (发现问题,null不好判断,这里可以用 初始创建时设置为F解决)
1. 修改meta的组成
@Data
public class Meta {
int id;
String EN;
String Des;
String CN;//这里其实是type
String token;
String Zhengze;
}
2. 插入字段时顺便插入F
<!--插入字段meta-->
<insert id="insertMeta" keyProperty="MA.id" useGeneratedKeys="true" parameterType="com.example.server.domain.Meta">
insert into #{DBID}_#{CHARTID}_meta(MEN,MDes,MType,Zhengze) values (#{MA.EN},#{MA.Des},#{MA.CN},'F')
</insert>
3. 再次更改插入前的判断
在这里加入代码
if(Zhengze!="F"){
// 在这里判断正则表达式是否
System.out.println(Zhengze);
Pattern r = Pattern.compile(Zhengze);
Matcher m = r.matcher(str);
System.out.println(m.matches());
if(!m.matches()){
result.setRe(2);
result.setMes("("+MEN+")不符合管理员设置的标准,请修改后重传");
return result;
}
}
4.
if(!Zhengze.equals("F")) 注意.equals!!!!!!
5.
if(!Zhengze.equals("F")){
// 在这里判断正则表达式是否
System.out.println(Zhengze);
Pattern r = Pattern.compile(Zhengze);
Matcher m = r.matcher(str);
System.out.println(m.matches());
if(!m.matches()){
result.setRe(2);
result.setMes("("+MEN+")不符合管理员设置的标准,请修改后重传");
return result;
}
}