public Map<String, Object> shakePlace(Map<String, Object> params) {

    ClientPlaceSearchVO searchVo = new ClientPlaceSearchVO();
    searchVo.setPage(1);
    searchVo.setPageSize(60);
    searchVo.setStage(ClientUtils.convetToList("2"));
    searchVo.setSort("salse");
    searchVo.setProductType(ClientUtils.convetToList(Constant.PRODUCT_TYPE.TICKET.name()));

    if (params.get("keyword") != null) {
      searchVo.setKeyword(params.get("keyword").toString());
    } else {
      searchVo.setKeyword("上海");
    }

    Page<PlaceBean> pageConfig = vstClientPlaceService.placeSearch(searchVo);
    Map<String, Object> resultMap = new HashMap<String, Object>();
    /*
     * List<MobilePlace> mplaceList = new ArrayList<MobilePlace>();
     *
     * for (PlaceBean placeBean : pageConfig.getItems()) {
     *
     * mplaceList.add(this.convertToMobilePlace(placeBean)); }
     * resultMap.put("datas", mplaceList);
     */
    resultMap.put("isLastPage", isLastPage(pageConfig));

    List<PlaceBean> placeList = pageConfig.getItems();
    MobilePlace pb = getRandomPlaceBean(placeList, String.valueOf(params.get("placeId")));
    resultMap.put("datas", pb);
    return resultMap;
  }
  @Override
  public Map<String, Object> placeSearch(Map<String, Object> params) {
    Page<PlaceBean> pageConfig = this.getPlaceSearchList(params);
    List<MobilePlace> mplaceList = new ArrayList<MobilePlace>();

    for (PlaceBean placeBean : pageConfig.getItems()) {
      mplaceList.add(convertToMobilePlace(placeBean));
    }
    Map<String, Object> resultMap = new HashMap<String, Object>();
    resultMap.put("datas", mplaceList);
    resultMap.put("isLastPage", isLastPage(pageConfig));
    return resultMap;
  }
 @Action("searchPaymentHistory")
 public void searchPaymentHistory() {
   Page<SetSettlementPayment> page =
       setSettlementPaymentService.search(this.initSearchParameter());
   if (null != page && null != page.getItems() && !page.getItems().isEmpty()) {
     for (SetSettlementPayment setSettlementPayment : page.getItems()) {
       Long targetId = setSettlementPayment.getTargetId();
       VstSuppSupplierSettlementVo vstSuppSupplierSettlementVo =
           vstSuppSupplierService.findSuppSupplierSettlementById(targetId);
       if (null != vstSuppSupplierSettlementVo) {
         setSettlementPayment.setTargetName(vstSuppSupplierSettlementVo.getAccountName());
       }
       if (null != setSettlementPayment.getSupplierId()) {
         Long supplierId = Long.parseLong(setSettlementPayment.getSupplierId());
         VstSuppSupplierVo vstSuppSupplierVo =
             vstSuppSupplierService.findVstSuppSupplierById(supplierId);
         if (null != vstSuppSupplierVo) {
           setSettlementPayment.setSupplierName(vstSuppSupplierVo.getSupplierName());
         }
       }
     }
   }
   this.sendAjaxResultByJson(JSONObject.fromObject(page).toString());
 }
  public Map<String, Object> routeSearch(Map<String, Object> params) {
    if (isFreness(params)) {
      ArgCheckUtils.validataRequiredArgs("toDest", "page", params);
    } else {
      ArgCheckUtils.validataRequiredArgs("fromDest", "toDest", "page", params);
    }
    Map<String, Object> resultMap = new HashMap<String, Object>();

    ClientRouteSearchVO searchVo = new ClientRouteSearchVO();
    searchVo.setChannel(Constant.CHANNEL.CLIENT.name());
    List<String> productTypes = new ArrayList<String>();
    productTypes.add(Constant.PRODUCT_TYPE.ROUTE.name());
    searchVo.setProductType(productTypes);

    if (params.get("pageSize") != null) {
      searchVo.setPageSize(Integer.parseInt(params.get("pageSize").toString()));
    }

    if (params.get("subject") != null) {
      searchVo.setSubject(params.get("subject").toString());
    }

    if (params.get("palceId") != null) {
      searchVo.setPlaceId(params.get("palceId").toString());
    }

    searchVo.setPage(Integer.valueOf(params.get("page").toString()));

    if (params.get("searchType") != null) {
      if (params.get("subProductType") != null && !"".equals(params.get("subProductType"))) {
        String searchType = params.get("searchType").toString();
        if (this.isNotOverSeaTravel(searchType)) {
          if (params.get("fromDest") != null) {
            String fromDest = params.get("fromDest").toString();
            if (fromDest.contains(",")) {
              fromDest = fromDest.substring(0, fromDest.lastIndexOf(","));
              params.put("fromDest", fromDest);
            }
          }
        }
      }
    }

    if (params.get("subProductType") != null) {
      if (this.isFreness(params)) {
        params.put("fromDest", null);
      }
      searchVo.setSubProductType(ClientUtils.convetToList(params.get("subProductType").toString()));
    } else {
      searchVo.setSubProductType(new ArrayList<String>());
    }

    if (params.get("fromDest") != null) {
      searchVo.setFromDest(params.get("fromDest").toString());
    }

    if (params.get("toDest") != null) {
      searchVo.setToDest(StringUtil.subStringStrNoSuffix(params.get("toDest").toString(), 60));
    }

    if (params.get("sort") != null) {
      searchVo.setSort(params.get("sort").toString());
    }
    if (params.get("day") != null) {
      searchVo.setVisitDay(params.get("day").toString());
    }

    if (params.get("keyword") != null) {
      searchVo.setKeyword(StringUtil.subStringStrNoSuffix(params.get("keyword").toString(), 60));
    }

    Page<ProductBean> pageConfig = vstClientProductService.routeSearch(searchVo);
    List<MobileProductTitle> mpList = new ArrayList<MobileProductTitle>();
    Map<String, String> visitMap = new HashMap<String, String>();

    for (ProductBean productBean : pageConfig.getAllItems()) {
      if (!StringUtil.isEmptyString(productBean.getRouteTopic())) {
        String[] topics = productBean.getRouteTopic().split(",");
        for (String string : topics) {
          String str = StringUtils.trimAllWhitespace(string);
          visitMap.put(str, str);
        }
      }
    }

    List<Map<String, Object>> topicList = new ArrayList<Map<String, Object>>();
    Iterator<Entry<String, String>> it = visitMap.entrySet().iterator();

    // subjectList列表
    Map<String, Object> t_m = new HashMap<String, Object>();
    t_m.put("title", "全部主题");
    t_m.put("value", "");
    topicList.add(t_m);
    while (it.hasNext()) {
      Map<String, Object> m = new HashMap<String, Object>();
      Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
      String key = entry.getKey();
      m.put("title", key);
      m.put("value", key);
      topicList.add(m);
    }

    for (ProductBean productBean : pageConfig.getItems()) {
      // 过滤掉超级自由行
      if ("true".equals(productBean.getSelfPack())) {
        continue;
      }
      MobileProductTitle mp = new MobileProductTitle();
      mp.setProductName(productBean.getProductName());
      mp.setMarketPriceYuan(productBean.getMarketPrice());
      mp.setSmallImage(productBean.getSmallImage());
      mp.setSellPriceYuan(productBean.getSellPrice());
      mp.setProductId(productBean.getProductId());
      mp.setClientOnly(Constant.CHANNEL.CLIENT.name().equals(productBean.getProductChannel()));
      // 返现金额 分
      mp.setMaxCashRefund(
          null == productBean.getCashRefund()
              ? 0l
              : PriceUtil.convertToFen(productBean.getCashRefund()));
      mp.setCmtNum(productBean.getCmtNum()); // 点评数
      mp.setSubProductType(productBean.getSubProductType()); // 主题类型
      mp.setVisitDay(productBean.getVisitDay() + ""); // 天数
      try {
        ProductSearchInfo psi =
            this.productSearchInfoService.queryProductSearchInfoByProductId(
                productBean.getProductId());
        mp.setHasBusinessCoupon(ClientUtils.hasBusinessCoupon(psi)); // 优惠
      } catch (Exception e) {
        e.printStackTrace();
      }

      mpList.add(mp);
    }

    resultMap.put("subjects", topicList);
    resultMap.put("datas", mpList);
    resultMap.put("isLastPage", isLastPage(pageConfig));
    return resultMap;
  }