乐趣区

关于java:用户数据校验的实现

业务需要

当用户在注册时, 如果输出用户名, 则应该向 sso 单点登录零碎发动申请, 校验用户数据是否存在.
如果存在则提醒用户.
如果存在则提醒用户:

业务接口文档阐明

前端 JS 剖析

url 剖析

检索 JS 代码

JS 剖析

 $.ajax({url : "http://sso.jt.com/user/check/"+escape(pin)+"/1?r=" + Math.random(),
                dataType : "jsonp",
                success : function(data) {
                    checkpin = data.data?"1":"0";
                    if(data.status == 200){if (!data.data) {validateSettings.succeed.run(option);
                            namestate = true;
                         }else {validateSettings.error.run(option, "该用户名已占用!");
                            namestate = false;
                         }
                    }else{validateSettings.error.run(option, "服务器正忙, 请稍后!");
                          namestate = false;
                    }

                }
            });

编辑 SSO UserController

/**
 * 业务阐明:jt-web 服务器获取 jt-sso 数据,JSONP 跨域申请
 * URL 地址:http://sso.jt.com/user/check/{param}/{type}
 * 参数:param 参数,须要校验的数据,type 校验的类型
 * 返回值后果:SysResult 对象
 * 真是的返回值:callback(SysResult 的 JSON)*
 */@RequestMapping("/check/{param}/{type}")
public JSONPObject checkUser(@PathVariable String param,
                           @PathVariable Integer type,
                           String callback){
    //true 示意数据存在,false 示意数据能够应用
 boolean flag=userService.checkUser(param,type);
    //int a=1/0; 测试 JSONP 全局异样
 return new JSONPObject(callback, SysResult.success(flag));
}

编辑 sso-service

/**
 * 判断根据:依据用户名查问,如果后果 >0 示意用户曾经存在
 * @param param
 * @param type
 * @return
 */
@Override
public boolean checkUser(String param, Integer type) {// 将 type 类型转换为具体字段信息 1=username 2=phone 3=email String column=columnMap.get(type);
    QueryWrapper<User> queryWrapper=new QueryWrapper<>();
    queryWrapper.eq(column, param);
    Integer count = userMapper.selectCount(queryWrapper);
    return count>0;//return count>0?true:false;
}

页面成果展现

退出移动版