Package com.ourlinc.helloworld.service.impl

Source Code of com.ourlinc.helloworld.service.impl.UserServiceImpl$UserPodiImpl

package com.ourlinc.helloworld.service.impl;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;

import com.ourlinc.helloworld.DataSource;
import com.ourlinc.helloworld.model.Activity;
import com.ourlinc.helloworld.model.User;
import com.ourlinc.helloworld.service.ActivityService;
import com.ourlinc.helloworld.service.UserService;
import com.ourlinc.omni.persistence.Persistence;
import com.ourlinc.omni.persistence.Persister;
import com.ourlinc.omni.persistence.PersisterStorage;
import com.ourlinc.omni.search.Searcher;
import com.ourlinc.swift.util.ResultPage;

/**
* 用户模块接口实现
*
* @author lipeiying
*
*/
public class UserServiceImpl implements UserService {

  final DataSource m_DataSource;
  final UserPodiImpl m_Podi;

  ActivityService m_ActivityService;

  public void setActivityService(ActivityService activityService) {
    m_ActivityService = activityService;
  }

  public UserServiceImpl(DataSource ds) {
    m_DataSource = ds;
    m_Podi = new UserPodiImpl();
  }

  class UserPodiImpl implements UserPodi {

    final PersisterStorage<User> psUser;

    UserPodiImpl() {
      psUser = m_DataSource.newPersister(User.class, this);
    }

    @SuppressWarnings("unchecked")
    public <E extends Persistence> Persister<E> getPersister(
        Class<E> classOf) {
      if (User.class == classOf) {
        return (Persister<E>) psUser;
      }
      return m_DataSource.getPersister(classOf);
    }

    public Searcher getSearcher() {
      return null;
    }

    public Activity getActivity(String actId) {
      return m_ActivityService.getActivity(actId);
    }

    public User getUserById(String id) {
      return m_Podi.psUser.get(id);
    }

  }// 内部类结束

  public User userToAdmin(User user) {
    return user.userToAdmin();

  }

  public User AdminToUser(User admin) {
    return admin.adminToUser();
  }

  public ResultPage<User> listUser() {
    List<User> result = new ArrayList<User>();
    ResultPage<User> rp = m_Podi.psUser.startsWith(null);
    rp.setPageSize(128);
    while (rp.gotoPage(rp.getPage() + 1)) {
      while (rp.hasNext()) {
        User user = rp.next();
        result.add(user);
      }
    }
    Collections.sort(result);
    return ResultPage.OnList.wrap(result);
  }

  public User login(String email, String password) {
    if (null == email || null == password) {
      throw new NullPointerException("用户名密码不能为空!");
    }
    ResultPage<User> rp = m_Podi.psUser.startsWith(null);
    rp.setPageSize(128);
    while (rp.gotoPage(rp.getPage() + 1)) {
      while (rp.hasNext()) {
        User user = rp.next();
        if (email.equals(user.getEmail())
            && password.equals(user.getPassword())) {
          return user;
        }
      }
    }
    return null;
  }

  public User registerUser(String username, String password,
      String department, String email, Date birthday, Date entryDate) {
    return new User(m_Podi, username, password, department, email,
        birthday, entryDate);
  }

  public User getUser(String userId) {
    return m_Podi.psUser.get(userId);
  }

  public User adminLogin(String email, String password) {
    if (null == email || null == password) {
      throw new NullPointerException("用户名密码不能为空!");
    }
    ResultPage<User> rp = m_Podi.psUser.startsWith(null);
    rp.setPageSize(128);
    while (rp.gotoPage(rp.getPage() + 1)) {
      while (rp.hasNext()) {
        User admin = rp.next();
        if (email.equals(admin.getEmail())
            && password.equals(admin.getPassword())) {
          if (admin.getAuthority() == User.ADMIN)
            return admin;
        }
      }
    }
    return null;
  }

  public User getUserByEmail(String email) {
    if (null == email) {
      return null;
    }
    ResultPage<User> rp = m_Podi.psUser.startsWith(null);
    rp.setPageSize(128);
    while (rp.gotoPage(rp.getPage() + 1)) {
      while (rp.hasNext()) {
        User user = rp.next();
        if (email.equals(user.getEmail())) {

          return user;
        }
      }
    }
    return null;
  }

  public List<User> getUserByUsername(String username) {
    List<User> result = new ArrayList<User>();
    if (null == username) {
      return result;
    }
    ResultPage<User> rp = m_Podi.psUser.startsWith(null);
    rp.setPageSize(128);
    while (rp.gotoPage(rp.getPage() + 1)) {
      while (rp.hasNext()) {
        User user = rp.next();
        if (username.equals(user.getUsername())) {
          result.add(user);
        }
      }
    }
    return result;
  }

  public List<String> listUserEmail() {
    ResultPage<User> rp = listUser();
    rp.setPageSize(2000);
    rp.gotoPage(1);
    List<String> result = new ArrayList<String>();
    for (User user : rp) {
      if (User.ON_JOB == user.isOnJob()) {
        result.add(user.getEmail());
      }
    }
    return result;
  }

}
TOP

Related Classes of com.ourlinc.helloworld.service.impl.UserServiceImpl$UserPodiImpl

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.