@RequestMapping(value = "/", method = RequestMethod.GET)
  public ModelAndView home(Locale locale, Model model) {
    logger.info("Welcome main.", locale);

    // view 화면인 main.jsp에 DB로부터 읽어온 데이터를 보여준다.
    ModelAndView result = new ModelAndView();
    // addObject view에 넘어가는 데이터
    List<employee> employeeList = DAOService.getemployee();
    result.addObject("result", employeeList);

    List<positions> positionsList = DAOService.getpositions();
    result.addObject("result2", positionsList);

    List<department> departmentList = DAOService.getdepartment();
    result.addObject("result3", departmentList);

    List<own_technical_content> tech = DAOService.gettech();
    result.addObject("result4", tech);

    List<project> projectList = DAOService.getproject();
    result.addObject("result5", projectList);

    List<join_project> join_projectList = DAOService.getjoin_project();
    result.addObject("result6", join_projectList);

    List<role> roleList = DAOService.getrole();
    result.addObject("result7", roleList);

    result.setViewName("home");
    return result;
  }
  @RequestMapping(value = "/check", method = RequestMethod.POST)
  public ModelAndView checkID(HttpServletRequest request, Model model) {

    ModelAndView result = new ModelAndView();
    String user_id = request.getParameter("userid");
    String user_password = request.getParameter("pwd");

    employee employee = DAOService.selectidpwd(user_id);

    if (employee == null) {
      model.addAttribute("message", "아이디가 틀렸습니다.");
      result.setViewName("home");
      return result;
    } else if (user_password.equals(employee.get_user_password())) {
      String dept_name = DAOService.selectdepartment(employee.get_dept_number()).get_dept_name();
      String position_name =
          DAOService.selectposition(employee.get_position_number()).get_position_name();

      model.addAttribute("emp_number", employee.get_emp_number());
      model.addAttribute("dept_name", dept_name);
      model.addAttribute("position_name", position_name);
      model.addAttribute("name", employee.get_name());

      if (employee.get_dept_number() == 100) {
        result.setViewName("kyungyoung");
        return result;
      } else if (employee.get_dept_number() == 200) {
        result.setViewName("insa");
        return result;
      } else {
        result.setViewName("nomal");
        return result;
      }

    } else {
      model.addAttribute("message", "비밀번호가 틀렸습니다.");
      result.setViewName("home");
      return result;
    }
  }
  public void syncTrades(Visitor visitor) {
    if (visitor == null) {
      return;
    }
    long pageSize = 50;
    String sessionKey = visitor.getSessionKey();
    if (StringUtils.isEmpty(sessionKey)) {
      return;
    }

    Date createdStart = getQueryStartDate(visitor);

    logger.debug(
        String.format(
            "About to synchronize trades for %s since %s",
            visitor.getVisitorNick(), createdStart.toString()));

    DefaultTaobaoClient client =
        new DefaultTaobaoClient(
            wiyReportConfiguration.getRestfulApi(),
            wiyReportConfiguration.getAppKey(),
            wiyReportConfiguration.getAppSecret(),
            Constants.FORMAT_JSON,
            30000,
            300000);

    TradesSoldGetRequest req = new TradesSoldGetRequest();
    req.setUseHasNext(true);
    req.setStartCreated(createdStart);
    req.setPageSize(pageSize);
    req.setFields(
        "seller_nick,buyer_nick,title,type,created,sid,tid,seller_rate,buyer_rate,status,payment,discount_fee,adjust_fee,post_fee,total_fee,pay_time,end_time,modified,consign_time,buyer_obtain_point_fee,point_fee,real_point_fee,received_payment,commission_fee,pic_path,num_iid,num_iid,num,price,cod_fee,cod_status,shipping_type,receiver_name,receiver_state,receiver_city,receiver_district,receiver_address,receiver_zip,receiver_mobile,receiver_phone,orders.title,orders.pic_path,orders.price,orders.num,orders.iid,orders.num_iid,orders.sku_id,orders.refund_status,orders.status,orders.oid,orders.total_fee,orders.payment,orders.discount_fee,orders.adjust_fee,orders.sku_properties_name,orders.item_meal_name,orders.buyer_rate,orders.seller_rate,orders.outer_iid,orders.outer_sku_id,orders.refund_id,orders.seller_type");
    try {
      long pageNumber = 1;
      while (true) {
        req.setPageNo(pageNumber);

        TradesSoldGetResponse response = client.execute(req, sessionKey);
        List<Trade> trades = response.getTrades();

        if (trades != null) {
          Hashtable<Long, TradeEntity> existed = getLongTradeEntityHashtable(trades);

          for (Trade trade : trades) {
            TradeEntity entity = EntityBuilder.buildTradeEntity(trade, visitor.getVisitorId());

            if (existed.containsKey(trade.getTid())) {
              TradeEntity existedTradeEntity = existed.get(trade.getTid());
              EntityBuilder.updateTradeEntity(existedTradeEntity, entity);
              entity = existedTradeEntity;
            }

            tradeEntityRepository.save(entity);
          }
        }

        if (response.getHasNext() == null || !response.getHasNext()) {
          break;
        }
        ++pageNumber;
      }
    } catch (ApiException e) {
      logger.error(e.getMessage(), e);
    } finally {
      // rebuild consumer entities
      daoService.buildConsumersBy(visitor.getVisitorId());
      // rebuild product purchase
      Date today = Calendar.getInstance().getTime();
      Date yesterday = DateTimeUtils.dateAdjust(today, Calendar.DAY_OF_YEAR, -1);
      daoService.buildProductPurchaseForSeller(visitor.getVisitorId(), yesterday, today);
      // rebuild produce entities
      daoService.buildProductEntitiesForSeller(visitor.getVisitorId(), yesterday, today);
      // build product purchase combo measurements
      daoService.buildProductPurchaseComboMeasurements();

      logger.debug(CommonService.class.getCanonicalName() + " finished.");
    }
  }