关于同一邮箱被注册多次的问题
- private long generateUserId() {
- final String sql = "insert into user_id ()values()";
- GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
- mainJdbc.getNamedParameterJdbcOperations().update(sql, new MapSqlParameterSource(),
- keyHolder);
- long userId = keyHolder.getKey().longValue();
- // TODO 映射userId
- return userId;
- }
- public UserRegister active(String email) {
- UserUnactived userUnactived = this.selectUserUnactivedByEmail(email);//根据邮箱取出未激活用户表信息
- if (userUnactived == null) {
- return null;
- }
- long userId = this.generateUserId();
- UserCore userCore = new UserCore();
- userCore.setUserId(userId);
- userCore.setBirthday(userUnactived.getBirthday());
- userCore.setCityId(userUnactived.getCityId());
- userCore.setCityName(userUnactived.getCityName());
- userCore.setGender(userUnactived.getGender());
- userCore.setMobile(userUnactived.getMobile());
- userCore.setUsername(userUnactived.getUsername());
- UserRegister userRegister = new UserRegister();
- userRegister.setUserId(userId);
- userRegister.setActiveTime(new Date());
- userRegister.setEmail(userUnactived.getEmail());
- userRegister.setPassword(userUnactived.getPassword());
- userRegister.setReferTime(userUnactived.getReferTime());
- userRegister.setReferUserId(userUnactived.getReferUserId());
- userRegister.setRegisterFrom(userUnactived.getRegisterFrom());
- userRegister.setRegisterIp(userUnactived.getRegisterIp());
- userRegister.setRegisterTime(userUnactived.getRegisterTime());
- // user_core,插入用户信息
- final String userCoreSql = "insert into `user_core` (userId,username,realName,gender,birthday,cityId,cityName,mobile,qq,msn,avatar)values(:userId,:username,:realName,:gender,:birthday,:cityId,:cityName,:mobile,:qq,:msn,:avatar)";
- int update = mainJdbc.update(userCoreSql, new BeanPropertySqlParameterSource(userCore));
- // user_register,插入注册信息
- final String userRegisterSql = "insert into `user_register` (userId,email,password,locked,registerTime,registerIp,registerFrom,referUserId,referTime,activeTime,verifyCode,verifyCreateTime)values(:userId,:email,:password,0,:registerTime,:registerIp,:registerFrom,:referUserId,:referTime,:activeTime,:verifyCode,:verifyCreateTime)";
- update += mainJdbc
- .update(userRegisterSql, new BeanPropertySqlParameterSource(userRegister));
- if (update >= 2) {
- mainJdbc.update("delete from user_unactived where email=?", email);//根据邮箱地址删除未激活用户表纪录
- }
- return userRegister;
- }