@Transactional
 public ResultInfo manageAddOrder(
     String guid,
     String beginDate,
     String endDate,
     String price,
     String address,
     String employerName,
     String telephone,
     String rate,
     String countyGuid) {
   try {
     String hql = "from Employer e where e.ovld = true and e.guid = ?";
     Employer employer = dao.getSingleResultByHQL(Employer.class, hql, guid);
     County county = dao.getResultByGUID(County.class, countyGuid);
     ServiceOrder order = ServiceOrder.getInstance();
     order.setAddress(address);
     order.setEmployer(employer);
     order.setMobilePhone(telephone);
     order.setOrderPrice(Long.valueOf(price));
     order.setRate(Double.valueOf(rate));
     order.setCounty(county);
     order.setServiceBeginDate(ExpectedDateCreate.parseDate(beginDate));
     order.setServiceEndDate(
         ExpectedDateCreate.addDays(
             ExpectedDateCreate.parseDate(beginDate), Integer.valueOf(endDate)));
     dao.add(order);
     return ResultInfo.SUCCESS;
   } catch (Exception e) {
     e.printStackTrace();
     return ResultInfo.BAD_REQUEST;
   }
 }
 @Transactional
 public ResultInfo manageEditOrder(
     String id, String employerAddress, String price, String beginDate, String endDate) {
   try {
     long idl = Long.valueOf(id);
     ServiceOrder order = dao.getResultById(ServiceOrder.class, idl);
     if (order == null) return ResultInfo.SERVICE_ORDER_NULL;
     // String hql =
     // "from Employer e where e.ovld = true and e.mobilePhone = ?";
     // Employer employer = dao.getSingleResultByHQL(Employer.class, hql,
     // employerTelephone);
     // if (employer == null)
     // return ResultInfo.EMPLOYER_NULL;
     // if (!StringUtils.isEmpty(employerName))
     // employer.setUsername(employerName);
     // if (!StringUtils.isEmpty(employerTelephone))
     // employer.setMobilePhone(employerTelephone);
     if (!StringUtils.isEmpty(employerAddress)) order.setAddress(employerAddress);
     if (!StringUtils.isEmpty(price)) order.setOrderPrice(Long.parseLong(price));
     if (!StringUtils.isEmpty(beginDate))
       order.setServiceBeginDate(ExpectedDateCreate.parseDate(beginDate));
     if (!StringUtils.isEmpty(endDate))
       order.setServiceEndDate(ExpectedDateCreate.parseDate(endDate));
     // order.setEmployer(employer);
     order.setUpdateDate(new Date());
     dao.update(order);
   } catch (Exception e) {
     e.printStackTrace();
   }
   return ResultInfo.SUCCESS;
 }
 @Transactional
 public void updateRole(Role role) {
   Role editRole = dao.getResultById(Role.class, role.getId());
   editRole.setName(role.getName());
   editRole.setUpdateDate(new Date());
   dao.update(editRole);
 }
  public Pagination<ServiceOrderView> manageOrderList(
      Pagination<ServiceOrder> page, String exployerName, String telephone) {
    List<Object> params = new ArrayList<Object>();
    StringBuffer hql = new StringBuffer("from ServiceOrder r where ovld = true ");
    if (!StringUtils.isEmpty(telephone)) {
      hql.append(" and r.mobilePhone = ? ");
      params.add(telephone);
    }
    if (!StringUtils.isEmpty(exployerName)) {
      hql.append(" and r.employer.username like ? ");
      params.add("%" + exployerName + "%");
    }

    StringBuffer countHql = new StringBuffer(" select count(r.id) ");
    countHql.append(hql);
    Object[] objParams = new Object[params.size()];
    for (int i = 0; i < objParams.length; i++) {
      objParams[i] = params.get(i);
    }
    Pagination<ServiceOrder> p =
        dao.getPageResultObjectParams(
            ServiceOrder.class, hql.toString(), page.getPageNo(), page.getPageSize(), objParams);
    List<ServiceOrder> list = p.getResult();
    List<ServiceOrderView> viewList = new ArrayList<ServiceOrderView>();
    for (ServiceOrder order : list) {
      viewList.add(order.view());
    }

    Pagination<ServiceOrderView> pa =
        new Pagination<ServiceOrderView>(viewList, p.getPageNo(), p.getPageSize());
    Long count = dao.getSingleResultByHQLObjectParams(Long.class, countHql.toString(), objParams);
    pa.setResultSize(count);
    return pa;
  }
 @Transactional
 public PageResult markBabysitter(String babysitterGuid, String orderGuid, PageResult result) {
   Babysitter babysitter = dao.getResultByGUID(Babysitter.class, babysitterGuid);
   ServiceOrder serviceOrder = dao.getResultByGUID(ServiceOrder.class, orderGuid);
   BabysitterOrder order = updateBabysitterOrder(orderGuid, babysitter, serviceOrder);
   result.setResult(ResultInfo.SUCCESS);
   result.put("result", order.view());
   return result;
 }
 @Transactional
 public void deleteOrder(String ids) {
   String idArr[] = ids.split(",");
   for (String id : idArr) {
     long idl = Long.valueOf(id);
     ServiceOrder order = dao.getResultById(ServiceOrder.class, idl);
     order.setOvld(false);
     dao.update(order);
   }
 }
 @Transactional
 public PageResult markBabysitterId(
     String babysitterId, String serviceOrderId, PageResult result) {
   long babysitterIdl = Long.valueOf(babysitterId);
   long serviceOrderIdl = Long.valueOf(serviceOrderId);
   Babysitter babysitter = dao.getResultById(Babysitter.class, babysitterIdl);
   ServiceOrder serviceOrder = dao.getResultById(ServiceOrder.class, serviceOrderIdl);
   updateBabysitterOrder(serviceOrder.getGuid(), babysitter, serviceOrder);
   result.setResult(ResultInfo.SUCCESS);
   result.put("result", babysitter.view());
   return result;
 }
  @Transactional
  public void addServiceOrderPanic(String babysitterId, String serviceOrderId) {
    long babysitterIdl = Long.valueOf(babysitterId);
    long serviceOrderIdl = Long.valueOf(serviceOrderId);

    Babysitter babysitter = dao.getResultById(Babysitter.class, babysitterIdl);
    ServiceOrder order = dao.getResultById(ServiceOrder.class, serviceOrderIdl);
    if (order != null) {

      PanicBuyingOrder buyingOrder = PanicBuyingOrder.getInstance();
      buyingOrder.setBabysitter(babysitter);
      buyingOrder.setServiceOrder(order);
      dao.add(buyingOrder);
    }
  }
 public PageResult endWechatOrder(String orderNo, String ip, PageResult result, String openid) {
   String hql = "from BabysitterOrder t where t.orderId = ?";
   BabysitterOrder order = dao.getSingleResultByHQL(BabysitterOrder.class, hql, orderNo);
   if (order == null) {
     result.setResult(ResultInfo.BABYSITTER_ORDER_NULL);
     return result;
   }
   if (order.getState() != Constants.EARNEST_MONEY) {
     result.setResult(ResultInfo.INVALID_ORDER);
     return result;
   }
   BigDecimal orderPrice = new BigDecimal(order.getOrderPrice());
   orderPrice = orderPrice.add(new BigDecimal(0 - order.getOrderFrontPrice()));
   orderPrice = orderPrice.multiply(new BigDecimal(100));
   Map<String, String> params =
       RequestXMLCreater.getInstance()
           .getPayRequestMap(
               order.getGuid(),
               "月嫂尾款",
               order.getOrderId() + BabysitterOrderService.END,
               orderPrice.toString(),
               ip,
               openid);
   String xml =
       RequestXMLCreater.getInstance()
           .buildXmlString(params, Constants.WECHAT_OPENID_PAY_APPSECRET);
   System.out.println("======================>" + xml);
   sendPaymentToWeChatServer(result, order, xml);
   return result;
 }
 public CustomerManager getCustomerManager(String countyGuid, String week) {
   String hql =
       "from CustomerManagerDuty t where t.ovld = true and t.county.guid = ? and t.week = ?";
   CustomerManagerDuty duty =
       dao.getSingleResultByHQL(CustomerManagerDuty.class, hql, countyGuid, week);
   return duty == null ? null : duty.getManager();
 }
  public PageResult payFrontMoney(String orderNo, String ip, PageResult result, String openid) {
    String hql = "from BabysitterOrder t where t.orderId = ?";
    BabysitterOrder order = dao.getSingleResultByHQL(BabysitterOrder.class, hql, orderNo);
    if (order == null) {
      result.setResult(ResultInfo.BABYSITTER_ORDER_NULL);
      return result;
    }
    if (order.getState() != Constants.NEW_ORDER) {
      result.setResult(ResultInfo.INVALID_ORDER);
      return result;
    }

    Map<String, String> params =
        RequestXMLCreater.getInstance()
            .getPayRequestMap(
                order.getGuid(),
                "月嫂定金",
                order.getOrderId() + BabysitterOrderService.FRONT,
                String.valueOf(order.getOrderFrontPrice() * 100),
                ip,
                openid);
    String xml =
        RequestXMLCreater.getInstance()
            .buildXmlString(params, Constants.WECHAT_OPENID_PAY_APPSECRET);
    System.out.println("======================>" + xml);
    sendPaymentToWeChatServer(result, order, xml);
    return result;
  }
  public Pagination<RoleView> getPageRoleList(Pagination<Role> page) {
    String hql = "from Role r";
    String countHql = "select count(r.id) from Role r";

    Pagination<Role> p = dao.getPageResult(Role.class, hql, page.getPageNo(), page.getPageSize());
    List<Role> list = p.getResult();
    List<RoleView> result = new ArrayList<RoleView>();
    for (Role role : list) {
      result.add(role.view());
    }
    Pagination<RoleView> pageView =
        new Pagination<RoleView>(result, p.getPageNo(), p.getPageSize());
    Long count = dao.getSingleResultByHQL(Long.class, countHql);
    pageView.setResultSize(count);
    return pageView;
  }
 @Transactional
 public PageResult addMakeBabysitterOrder(
     String date,
     String address,
     String name,
     String mobile,
     String checkCode,
     String openid,
     String countyGuid,
     String babysitterGuid,
     PageResult result) {
   Babysitter babysitter = dao.getResultByGUID(Babysitter.class, babysitterGuid);
   if (babysitter == null) {
     result.setResult(ResultInfo.BABYSITTER_NULL);
     return result;
   }
   ServiceOrder order =
       addEmployerServiceOrder(
           date,
           babysitter.getLevel().getGuid(),
           countyGuid,
           address,
           name,
           mobile,
           checkCode,
           openid);
   if (order == null) {
     result.setResult(ResultInfo.COUNTY_LEVEL_NULL);
     return result;
   }
   result = markBabysitter(babysitterGuid, order.getGuid(), result);
   return result;
 }
 public PageResult getBabysitterOrderInfo(String serviceOrderGuid, PageResult result) {
   ServiceOrder serviceOrder = dao.getResultByGUID(ServiceOrder.class, serviceOrderGuid);
   if (serviceOrder == null) {
     result.setResult(ResultInfo.SERVICE_ORDER_NULL);
     return result;
   }
   if (StringUtils.isEmpty(serviceOrder.getOrderGuid())) {
     result.setResult(ResultInfo.NO_BABYSITTER_SERVICE_ORDER);
     return result;
   }
   String orderGuid = serviceOrder.getOrderGuid();
   BabysitterOrder order = dao.getResultByGUID(BabysitterOrder.class, orderGuid);
   result.setResult(ResultInfo.SUCCESS);
   result.put("result", order.view());
   return result;
 }
 @Transactional
 public PageResult serviceEnd(String orderGuid, PageResult result) {
   BabysitterOrder order = dao.getResultByGUID(BabysitterOrder.class, orderGuid);
   if (order == null) {
     result.setResult(ResultInfo.BABYSITTER_ORDER_NULL);
     return result;
   }
   order.setState(Constants.OUT_ORDER);
   // 设置订单日志
   BabysitterOrderRecordInfo info = BabysitterOrderRecordInfo.getInstance();
   info.setBabysitterOrder(order);
   info.setState(order.getState());
   dao.add(info);
   result.setResult(ResultInfo.SUCCESS);
   return result;
 }
 @Transactional
 public void addBabysitterAdvice(
     String countyGuid, ServiceOrder order, Map<String, Date> expectedDate) {
   // 添加需要通知的月嫂
   // CountyLevel countyLevel = dao.getResultByGUID(CountyLevel.class,
   // countyLevelGuid);
   String hql =
       "from Babysitter b where b.county.guid=? and b.level.level.money>=? and b.state = 1 ";
   List<Babysitter> babysitters =
       dao.getListResultByHQL(Babysitter.class, hql, countyGuid, order.getOrderPrice());
   // 添加可以抢单月嫂策略,SQL已经判断了所属城市、级别、审核状态三个条件
   // 1.排除最低薪水不符合条件的
   List<Babysitter> removeBabysitters = new ArrayList<Babysitter>();
   if (babysitters.size() == 0) return;
   BigDecimal salary = new BigDecimal(order.getOrderPrice());
   salary = salary.add(new BigDecimal(-1000));
   double rate = 1;
   if (order.getRate() != 0) rate = order.getRate();
   salary = salary.multiply(new BigDecimal(rate));
   long salaryLong = salary.longValue();
   for (Babysitter babysitter : babysitters) {
     if (babysitter.getLowerSalary() > salaryLong) removeBabysitters.add(babysitter);
   }
   babysitters.removeAll(removeBabysitters);
   // 2.排除档期不符合条件
   if (babysitters.size() == 0) return;
   if (removeBabysitters.size() != 0) removeBabysitters.clear();
   for (Babysitter babysitter : babysitters) {
     if (!ExpectedDateCreate.checkBabysitterOrder(babysitter, expectedDate)) {
       removeBabysitters.add(babysitter);
     }
   }
   babysitters.removeAll(removeBabysitters);
   // 添加月嫂通知
   if (babysitters.size() == 0) return;
   for (Babysitter babysitter : babysitters) {
     PanicBuyingBabysitterAdvice advice = PanicBuyingBabysitterAdvice.getInstance();
     advice.setBabysitter(babysitter);
     advice.setServiceOrder(order);
     advice.setIsAdvice(false);
     advice.setIsOver(false);
     dao.add(advice);
   }
 }
 public PageResult orderHistoryRecord(String orderGuid, PageResult result) {
   BabysitterOrder order = dao.getResultByGUID(BabysitterOrder.class, orderGuid);
   if (order == null) {
     result.setResult(ResultInfo.BABYSITTER_ORDER_NULL);
     return result;
   }
   result.setResult(ResultInfo.SUCCESS);
   result.put("result", order.getInfos());
   return result;
 }
 @Transactional
 public void grant(long id, long[] resourceTreeIds) {
   Role role = dao.getResultById(Role.class, id);
   Set<Long> menuIds = new HashSet<Long>();
   for (Long menuId : resourceTreeIds) {
     menuIds.add(menuId);
   }
   // List<Menu> menus = role.getMenus();
   // for (Menu menu : menus) {
   // menuIds.add(menu.getId());
   // }
   List<Menu> roleMenus = new ArrayList<Menu>();
   for (Iterator<Long> mid = menuIds.iterator(); mid.hasNext(); ) {
     Menu m = new Menu();
     m.setId(mid.next());
     roleMenus.add(m);
   }
   role.setMenus(roleMenus);
   dao.update(role);
 }
 public PageResult orderList(String mobile, String openid, PageResult result) {
   Employer employer = null;
   List<ServiceOrderView> view = new ArrayList<ServiceOrderView>();
   if (StringUtils.isEmpty(openid)) {
     String mobileHql = "from Employer t where t.ovld = true and t.mobilePhone = ?";
     employer = dao.getSingleResultByHQL(Employer.class, mobileHql, mobile);
   } else {
     String openidHql = "from Employer t where t.ovld = true and t.openid = ?";
     List<Employer> listEmployers = dao.getListResultByHQL(Employer.class, openidHql, openid);
     if (listEmployers == null || listEmployers.size() == 0) {
       result.setResult(ResultInfo.SUCCESS);
       result.put("result", view);
       return result;
     }
     if (listEmployers.size() > 1) {
       result.setResult(ResultInfo.MULTI_EMPLYER);
       List<EmployerView> listViews = new ArrayList<EmployerView>();
       for (Employer e : listEmployers) {
         listViews.add(e.view());
       }
       result.put("result", listViews);
       return result;
     } else {
       employer = listEmployers.get(0);
     }
   }
   if (employer == null) {
     result.setResult(ResultInfo.SUCCESS);
     result.put("result", view);
     return result;
   }
   String hql = "from ServiceOrder t where t.ovld = true and t.employer.id=?";
   List<ServiceOrder> orders = dao.getListResultByHQL(ServiceOrder.class, hql, employer.getId());
   if (orders == null) orders = new ArrayList<ServiceOrder>();
   for (ServiceOrder order : orders) {
     view.add(order.view());
   }
   result.setResult(ResultInfo.SUCCESS);
   result.put("result", view);
   return result;
 }
 @Transactional
 public void addServiceOrderAdvice(String id) {
   long idl = Long.valueOf(id);
   ServiceOrder order = dao.getResultById(ServiceOrder.class, idl);
   // 更新所有通知为已通知
   String hql = "from PanicBuyingBabysitterAdvice t where t.ovld = true and t.serviceOrder.id = ?";
   List<PanicBuyingBabysitterAdvice> advices =
       dao.getListResultByHQL(PanicBuyingBabysitterAdvice.class, hql, order.getId());
   for (PanicBuyingBabysitterAdvice advice : advices) {
     advice.setIsAdvice(true);
     dao.update(advice);
   }
   Map<String, Date> dateMap = new HashMap<String, Date>();
   dateMap.put(ExpectedDateCreate.BEGIN_DATE, order.getServiceBeginDate());
   dateMap.put(ExpectedDateCreate.END_DATE, order.getServiceEndDate());
   // 重新加入月嫂通知
   addBabysitterAdvice(order.getCounty().getGuid(), order, dateMap);
   // 更新雇主订单没有完成抢单
   order.setOver(true);
   dao.update(order);
 }
  @Transactional
  public ResultInfo addBabysitterOrderEvaluate(String orderGuid, String msg, String score) {
    BabysitterOrder order = dao.getResultByGUID(BabysitterOrder.class, orderGuid);
    if (order == null) return ResultInfo.BABYSITTER_ORDER_NULL;
    Babysitter babysitter = dao.getResultByGUID(Babysitter.class, order.getBabysitter().getGuid());
    if (babysitter == null) return ResultInfo.BABYSITTER_NULL;
    order.setScore(Integer.valueOf(score));
    order.setEvaluation(msg);
    order.setState(Constants.ORDER_OVER);
    dao.update(order);
    BabysitterOrderRecordInfo info = BabysitterOrderRecordInfo.getInstance();
    info.setBabysitterOrder(order);
    info.setState(order.getState());
    dao.add(info);

    // BabysitterEvaluate evaluate = BabysitterEvaluate.getInstance();
    // evaluate.setBabysitter(babysitter);
    // evaluate.setEmployer(employer);
    // evaluate.setOrder(order);
    // evaluate.setMsg(msg);
    // evaluate.setScore(Integer.valueOf(score));
    // dao.add(evaluate);
    int sumSocre = 0;
    int count = 0;
    List<BabysitterOrder> orders = babysitter.getOrders();

    for (BabysitterOrder o : orders) {
      if (o.getState() == Constants.ORDER_OVER) {
        sumSocre += o.getScore();
        count += 1;
      }
    }
    int avg = 0;
    if (count != 0) {
      avg = sumSocre / count;
    }
    babysitter.setScore(avg);
    dao.update(babysitter);
    return ResultInfo.SUCCESS;
  }
 @Transactional
 public ServiceOrder addEmployerServiceOrder(
     String date,
     String countyLevelGuid,
     String countyGuid,
     String address,
     String name,
     String mobile,
     String checkCode,
     String openid) {
   Employer employer = employerService.getEmployerByMobile(mobile);
   County county = dao.getResultByGUID(County.class, countyGuid);
   CountyLevel countyLevel = dao.getResultByGUID(CountyLevel.class, countyLevelGuid);
   if (countyLevel == null) return null;
   if (employer == null) {
     employer = Employer.getInstance();
     employer.setMobilePhone(mobile.replace(" ", ""));
     // employer.setCounty(county);
     employer.setAddress(address);
     employer.setUsername(name);
     employer.setOpenid(openid);
     employerService.addEmployer(employer);
   }
   // 添加雇主订单
   ServiceOrder order = ServiceOrder.getInstance();
   order.setEmployer(employer);
   order.setCounty(county);
   order.setOrderPrice(Long.valueOf(countyLevel.getMoney()));
   order.setRate(countyLevel.getRate());
   order.setAddress(address);
   order.setMobilePhone(mobile);
   order.setEmployerName(name);
   order.setMobilePhone(mobile);
   Map<String, Date> expectedDate = ExpectedDateCreate.getExpectedDate(date);
   order.setServiceBeginDate(expectedDate.get(ExpectedDateCreate.BEGIN_DATE));
   order.setServiceEndDate(expectedDate.get(ExpectedDateCreate.END_DATE));
   dao.add(order);
   return order;
 }
  public List<BabysitterView> getPanicBabysitters(String serviceOrderId) {
    long serviceOrderIdl = Long.valueOf(serviceOrderId);
    String hql =
        "from PanicBuyingOrder t where t.ovld = true and t.serviceOrder.id = ? and t.serviceOrder.orderGuid is null";
    List<PanicBuyingOrder> orders =
        dao.getListResultByHQL(PanicBuyingOrder.class, hql, serviceOrderIdl);
    List<BabysitterView> views = new ArrayList<BabysitterView>();
    for (PanicBuyingOrder order : orders) {
      views.add(order.getBabysitter().view());
    }

    return views;
  }
  private BabysitterOrder updateBabysitterOrder(
      String orderGuid, Babysitter babysitter, ServiceOrder serviceOrder) {
    // 添加月嫂订单
    BabysitterOrder babysitterOrder = BabysitterOrder.getInstance();
    babysitterOrder.setBabysitter(babysitter);
    babysitterOrder.setEmployer(serviceOrder.getEmployer());
    babysitterOrder.setEmployerAddress(serviceOrder.getAddress());
    babysitterOrder.setEmployerName(serviceOrder.getEmployerName());
    babysitterOrder.setEmployerTelephone(serviceOrder.getMobilePhone());
    babysitterOrder.setOrderId(recordService.createOrderId());
    babysitterOrder.setOrderPrice(serviceOrder.getOrderPrice());
    long frontPrice = getFrontPrice(serviceOrder.getOrderPrice());
    babysitterOrder.setOrderFrontPrice(frontPrice);
    babysitterOrder.setServiceBeginDate(serviceOrder.getServiceBeginDate());
    babysitterOrder.setServiceEndDate(serviceOrder.getServiceEndDate());
    babysitterOrder.setState(Constants.NEW_ORDER);
    dao.add(babysitterOrder);
    // 添加月嫂订单变更信息
    BabysitterOrderRecordInfo recordInfo = BabysitterOrderRecordInfo.getInstance();
    recordInfo.setBabysitterOrder(babysitterOrder);
    recordInfo.setState(babysitterOrder.getState());
    dao.add(recordInfo);

    // 更新雇主订单
    serviceOrder.setOrderGuid(babysitterOrder.getGuid());
    dao.update(serviceOrder);

    // 更新月嫂抢单通知表中该订单的所有记录为不可用即订单已经被抢
    String hql =
        "from PanicBuyingBabysitterAdvice t where t.ovld = true and t.serviceOrder.guid = ?";
    List<PanicBuyingBabysitterAdvice> list =
        dao.getListResultByHQL(PanicBuyingBabysitterAdvice.class, hql, orderGuid);
    for (PanicBuyingBabysitterAdvice advice : list) {
      advice.setIsOver(true);
      dao.update(advice);
    }
    return babysitterOrder;
  }
 @Transactional
 public ResultInfo addServiceOrder(
     String date,
     String price,
     String countyGuid,
     String address,
     String name,
     String mobile,
     String checkCode) {
   try {
     // boolean flag = codeService.updateCheckCode(mobile, checkCode,
     // CheckCodeService.PUBLISH_ORDER);
     // if (!flag) {
     // throw new CheckErrorException();
     // }
     Employer employer = employerService.getEmployerByMobile(mobile);
     // County county = dao.getResultByGUID(County.class, countyGuid);
     if (employer == null) {
       employer = Employer.getInstance();
       employer.setMobilePhone(mobile.replace(" ", ""));
       // employer.setCounty(county);
       employer.setAddress(address);
       employer.setUsername(name);
       employerService.addEmployer(employer);
     }
     // 月嫂提交私单不需要向月嫂抢单表中添加数据正常添加私单。
     ServiceOrder order = ServiceOrder.getInstance();
     order.setEmployer(employer);
     order.setOrderPrice(Long.valueOf(price));
     order.setAddress(address);
     // order.setCounty(county);
     order.setMobilePhone(mobile.replace(" ", ""));
     Map<String, Date> expectedDate = ExpectedDateCreate.getExpectedDate(date);
     order.setServiceBeginDate(expectedDate.get(ExpectedDateCreate.BEGIN_DATE));
     order.setServiceEndDate(expectedDate.get(ExpectedDateCreate.END_DATE));
     dao.add(order);
   } catch (CheckErrorException e) {
     return ResultInfo.CHECK_CODE_ERROR;
   } catch (Exception e) {
     e.printStackTrace();
   }
   return ResultInfo.SUCCESS;
 }
 public ServiceOrder getOrder(String id) {
   return dao.getResultById(ServiceOrder.class, Long.parseLong(id));
 }
 public Role getRole(long id) {
   return dao.getResultById(Role.class, id);
 }
 @Transactional
 public void addRole(Role role) {
   dao.add(role);
 }
 public List<Role> roleList() {
   String hql = "from Role r ";
   List<Role> list = dao.getListResultByHQL(Role.class, hql);
   return list;
 }
 @Transactional
 public void deleteRole(long id) {
   dao.delete(Role.class, id);
 }