Package su.mauser.service

Source Code of su.mauser.service.ActorsPageServiceImpl

package su.mauser.service;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONObject;

import spark.QueryParamsMap;
import su.mauser.dao.DAOHelper;
import su.mauser.utils.DifferentUtils;
import su.mauser.view.ActorsPageView;
import su.mauser.view.ActorsView;

import com.mongodb.DB;
import com.mongodb.DBObject;

/**
* Сервис актёров
*
* @author sibiev
*
*/
public class ActorsPageServiceImpl extends DAOHelper
{

  public ActorsPageServiceImpl(DB db)
  {
    super(db);
  }

  /**
   * Полный список актёров
   *
   * @return Полный список актёров, отсортированных по фамилии
   */
  public ActorsPageView getActorsPageView()
  {
    List<DBObject> actors = actorDao.getSortedFullCollection("lname");

    return getView(actors);
  }

  /**
   *
   * Получить полный список актёров для установки в фильмы.
   *
   * @return Список имен актеров с ключами в виде <code>_id</code>.
   */
  //  public Map<String, String> getActorsNames()
  //  {
  //    List<DBObject> actors = dao.getActorNames();
  //
  //    // Полученные данные перевести в мапу
  //    DifferentUtils utils = new DifferentUtils();
  //    return utils.getActorsMap(actors);
  //  }

  /**
   * Страница актёров
   *
   * @param actors
   *            список актёров
   * @return
   */
  private ActorsPageView getView(List<DBObject> actors)
  {
    ActorsPageView actorsPageView = new ActorsPageView();

    List<ActorsView> actorsViews = new ArrayList<ActorsView>();
    int nn = 1;
    for (DBObject actor : actors)
    {
      ActorsView actorsView = new ActorsView();

      actorsView.setOid(actor.get("_id").toString());
      logger.debug("Actor _id: {}", actorsView.getOid());
      actorsView.setNn(nn);
      actorsView.setName(actor.get("name").toString());
      logger.debug("Actor name: {}", actorsView.getName());
      actorsView.setLname(actor.get("lname").toString());
      logger.debug("Actor last name: {}", actorsView.getLname());
      actorsView.setSname("");
      if (actor.get("sname") != null)
      {
        actorsView.setSname(actor.get("sname").toString());
        logger.debug("Actor last name: {}", actorsView.getSname());
      }
      actorsView.setBdate("");
      if (actor.get("bdate") != null)
      {
        actorsView.setBdate(actor.get("bdate").toString());
        logger.debug("Actor birth date: {}", actorsView.getBdate());
      }
      actorsView.setDdate("");
      if (actor.get("ddate") != null)
      {
        actorsView.setDdate(actor.get("ddate").toString());
        logger.debug("Actor death date: {}", actorsView.getDdate());
      }
      actorsView.setBplace("");
      if (actor.get("bplace") != null)
      {
        actorsView.setBplace(actor.get("bplace").toString());
        logger.debug("Actor birth place: {}", actorsView.getBplace());
      }
      actorsView.setDplace("");
      if (actor.get("dplace") != null)
      {
        actorsView.setDplace(actor.get("dplace").toString());
        logger.debug("Actor death place: {}", actorsView.getDplace());
      }
      actorsView.setInfo("");
      if (actor.get("info") != null)
      {
        actorsView.setInfo(actor.get("info").toString());
        logger.debug("Info: {}", actorsView.getInfo());
      }

      actorsViews.add(actorsView);
      nn++;
    }
    actorsPageView.setActorsView(actorsViews);

    return actorsPageView;
  }

  /**
   * Изменение данных актёра
   *
   * @param queryMap
   *            данные для изменения
   *
   */
  public void setDatabaseValues(QueryParamsMap queryMap)
  {
    actorDao.setActorValues(queryMap);
  }

  /**
   * Удаление актёра
   *
   * @param queryMap
   */
  public void removeActor(QueryParamsMap queryMap)
  {
    actorDao.removeActor(queryMap);
  }

  /**
   * Получить список всех актеров в виде списка JSON-объектов. Возвращается
   * <code>_id</code>, ФИО.
   *
   * @return Список всех актеров в виде списка JSON-объектов.
   */
  public List<JSONObject> getActors()
  {
    // TODO Нужно вернуть сразу с флагом выбранных. Для этого двумя запросами сначала тянем выбранных, потом невыбранных.
    List<DBObject> actors = actorDao.getActorNames();
    List<JSONObject> result = new ArrayList<JSONObject>();

    for (DBObject actor : actors)
    {
      JSONObject item = new JSONObject();
      item.put("id", actor.get("_id").toString());
      item.put("name", DifferentUtils.getActorNameString(actor));

      result.add(item);
    }

    return result;
  }
}
TOP

Related Classes of su.mauser.service.ActorsPageServiceImpl

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.