Package com.github.diamond.web.service

Source Code of com.github.diamond.web.service.UserService$UserRowMapper

package com.github.diamond.web.service;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.TransientDataAccessResourceException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.github.diamond.utils.MD5;
import com.github.diamond.web.model.User;

@Service
public class UserService {

  private static final Logger LOGGER = LoggerFactory.getLogger(UserService.class);

  @Autowired
  private JdbcTemplate jdbcTemplate;

  public Object login(String userCode, String password) {
    String md5Passwd = MD5.getInstance().getMD5String(password);

    try {
      String sql = "SELECT ID, USER_NAME, PASSWORD, DELETE_FLAG " +
          "FROM CONF_USER WHERE USER_CODE = ?";
      User user = jdbcTemplate.query(sql, new UserResultSetExtractor(), userCode);
     
      if(md5Passwd.equals(user.getPassword())) {
        user.setUserCode(userCode);
        return user;
      } else if(user.getDeleteFlag() == 1)
        return "用户已经被注销";
      else
        return "登录失败,用户密码不正确";
    } catch(TransientDataAccessResourceException e) {
      return "登录失败,用户不存在";
    }
  }
 
  public List<User> queryUsers(int offset, int limit) {
    String sql = "SELECT ID, USER_CODE, USER_NAME " +
        "FROM CONF_USER WHERE DELETE_FLAG = 0 order by ID limit ?,?";
    return jdbcTemplate.query(sql, new UserRowMapper(), offset, limit);
  }
 
  public long queryUserCount() {
    String sql = "SELECT count(*) FROM CONF_USER WHERE DELETE_FLAG = 0";
    return jdbcTemplate.queryForObject(sql, Long.class);
  }
 
  @Transactional
  public void saveUser(User user) {
        String sql = "SELECT MAX(id)+1 FROM CONF_USER";
        long id = jdbcTemplate.queryForObject(sql, Long.class);
    sql = "insert into CONF_USER (ID, USER_CODE, USER_NAME, PASSWORD, CREATE_TIME) " +
        "values (?, ?, ?, ?, ?)";
   
    jdbcTemplate.update(sql, id, user.getUserCode(), user.getUserName(), user.getPassword(), new Date());
  }
 
  @Transactional
  public void deleteUser(long id) {
    String sql = "update CONF_USER set DELETE_FLAG = 1 where id = ?";
    jdbcTemplate.update(sql, id);
  }
 
  @Transactional
  public void updatePassword(long id, String password) {
    String sql = "update CONF_USER set password = ? where id = ?";
    jdbcTemplate.update(sql, password, id);
  }
 
  private class UserResultSetExtractor implements ResultSetExtractor<User> {

    @Override
    public User extractData(ResultSet rs) throws SQLException,
        DataAccessException {
      User user = new User();
      rs.next();
      user.setId(rs.getLong(1));
      user.setUserName(rs.getString(2));
      user.setPassword(rs.getString(3));
      user.setDeleteFlag(rs.getInt(4));
      return user;
    }
   
  }
 
  private class UserRowMapper implements RowMapper<User> {

    public User mapRow(ResultSet rs, int rowNum) throws SQLException,
        DataAccessException {
      User user = new User();
      user.setId(rs.getLong(1));
      user.setUserCode(rs.getString(2));
      user.setUserName(rs.getString(3));
      return user;
    }
  }
}
TOP

Related Classes of com.github.diamond.web.service.UserService$UserRowMapper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.