⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ticketrefund.java~25~

📁 航班查询与订票系统 用Java与sqlserver2000来编写一个航班查询与订票系统
💻 JAVA~25~
📖 第 1 页 / 共 2 页
字号:

    jtfChildNum.setText("");
    jtfAdultNum.setText("");
    jtfOriginCost.setText("");
    jtfTuiPiaoCost.setText("");

    jtfTime1.setText("");
    jtfTime2.setText("");

    jtfChildTuiPiaoShu.setText("0");
    jtfAdultTuiPiaoShu.setText("0");

    jlTime1.setText("出发时间");

    jtfChildTuiPiaoShu.setEditable(true);
    jtfAdultTuiPiaoShu.setEditable(true);

    jlTime2.setVisible(false);
    jtfTime2.setVisible(false);
  }

  private void tuiPiao() {
    String dingdan = jtfDingDan.getText().trim();
    if (dingdan.length() == 0) {
      JOptionPane.showMessageDialog(null, "订单号不能为空",
                                    "错误信息", JOptionPane.ERROR_MESSAGE);
      return;
    }

    String id = jtfID.getText().trim();
    if (id.length() == 0) {
      JOptionPane.showMessageDialog(null, "身份证号不能为空",
                                    "错误信息", JOptionPane.ERROR_MESSAGE);
      return;
    }

    boolean isValid = getClientInfo(dingdan, id);

    if (isValid == false) {
      rewrite();
      return;
    }

    else {
      String childTuiPiaoShu = jtfChildTuiPiaoShu.getText().trim();
      String adultTuiPiaoShu = jtfAdultTuiPiaoShu.getText().trim();

      int cTuiPiaoShu = Integer.parseInt(childTuiPiaoShu);
      int aTuiPiaoShu = Integer.parseInt(adultTuiPiaoShu);

      if (cTuiPiaoShu == 0 && aTuiPiaoShu == 0) {
        JOptionPane.showMessageDialog(null, "请输入退票数",
                                      "错误信息", JOptionPane.ERROR_MESSAGE);
        return;
      }

      if (cTuiPiaoShu != 0 && cTuiPiaoShu > Integer.parseInt(childNum)) {
        JOptionPane.showMessageDialog(null, "退票数大于已定票数,请按\"查询\"按钮查看信息",
                                      "错误信息", JOptionPane.ERROR_MESSAGE);
        return;
      }

      if (aTuiPiaoShu != 0 && aTuiPiaoShu > Integer.parseInt(adultNum)) {
        JOptionPane.showMessageDialog(null, "退票数大于已定票数,请按\"查询\"按钮查看信息",
                                      "错误信息", JOptionPane.ERROR_MESSAGE);
        return;
      }

      operationForTuiPiao(dingdan, id, cTuiPiaoShu, aTuiPiaoShu);
    }

  }

  private void operationForTuiPiao(String dingdan, String id,
                                   int childTuiPiaoShu, int adultTuiPiaoShu) {
    int newChildNum = Integer.parseInt(childNum) - childTuiPiaoShu;
    int newAdultNum = Integer.parseInt(adultNum) - adultTuiPiaoShu;
    float tuiPiaoCost = caculateTuiPiaoCost(childTuiPiaoShu, adultTuiPiaoShu);
    float newCost = Float.parseFloat(cost) - tuiPiaoCost;

    try {
      String sql = "update bookInfo set childTickets='" +
          String.valueOf(newChildNum) +
          "',adultTickets='" + String.valueOf(newAdultNum) +
          "',cost='" + String.valueOf(newCost) + "' where bookID='" + dingdan +
          "' and customerID='" + id + "'";
      int result = dbManager.updateSql(sql);
      if (result > 0) {
        int totalTuiPiaoShu = childTuiPiaoShu + adultTuiPiaoShu;

        seatInfo.tuiPiao(flight1, leaveTime1, totalTuiPiaoShu);

        if (flight2.length() != 0)
          seatInfo.tuiPiao(flight2, leaveTime2, totalTuiPiaoShu);

        if (newChildNum == 0 && newAdultNum == 0)
          JOptionPane.showMessageDialog(null,
                                        "恭喜你退票成功!" + "\n" + "该订单号已作废!" + "\n" +
                                        "你将获得" + tuiPiaoCost +
                                        "的退票钱" + "\n" + "欢迎你再次选择我们!",
                                        "退票成功", JOptionPane.INFORMATION_MESSAGE);
        else
          JOptionPane.showMessageDialog(null,
                                        "恭喜你退票成功!" + "\n" + "你现在剩余" +
                                        newChildNum +
                                        "张儿童票和" + newAdultNum + "张成人票" + "\n" +
                                        "你将获得" + tuiPiaoCost +
                                        "的退票钱" + "\n" + "欢迎你再次选择我们!", "退票成功",
                                        JOptionPane.INFORMATION_MESSAGE);
      }
      else {
        JOptionPane.showMessageDialog(null, "数据库操作失败", "数据库操作失败",
                                      JOptionPane.ERROR_MESSAGE);
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  private float caculateTuiPiaoCost(int childTuiPiaoShu, int adultTuiPiaoShu) {
    float tuiPiaoCost = 0;

    try {
      String sqlString =
          "select childFare,adultFare from flight where flight='" + flight1 +
          "'";
      ResultSet rs = dbManager.getResult(sqlString);

      float childFare1 = 0;
      float adultFare1 = 0;
      while (rs.next()) {
        childFare1 = rs.getFloat(1);
        adultFare1 = rs.getFloat(2);
      }

      float childFare2 = 0;
      float adultFare2 = 0;
      if (flight2.length() != 0) {
        String sqlString2 =
            "select childFare,adultFare from flight where flight='" + flight2 +
            "'";
        ResultSet rs2 = dbManager.getResult(sqlString2);

        while (rs2.next()) {
          childFare2 = rs2.getFloat(1);
          adultFare2 = rs2.getFloat(2);
        }
      }

      if (flight2.length() == 0) {
        tuiPiaoCost = (childFare1 * childTuiPiaoShu +
                       adultFare1 * adultTuiPiaoShu) * (float) 0.7;
      }
      else {
        tuiPiaoCost = ( (childFare1 + childFare2) * childTuiPiaoShu +
                       (adultFare1 + adultFare2) * adultTuiPiaoShu) *
            (float) 0.7;
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }

    return tuiPiaoCost;
  }

  private boolean getClientInfo(String dingdan, String id) {
    boolean isDingDanExist = false;
    boolean isIDRight = false;
    String sql = "select * from bookInfo where bookID='" + dingdan + "'";
    ResultSet rs = dbManager.getResult(sql);
    try {
      if (rs.next()) {
        isDingDanExist = true;
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    if (isDingDanExist == false) {
      JOptionPane.showMessageDialog(null, "订单号不存在", "错误信息",
                                    JOptionPane.ERROR_MESSAGE);
      return false;
    }

    sql = "select * from bookInfo where bookID='" + dingdan +
        "' and customerID='" + id + "'";
    rs = dbManager.getResult(sql);
    try {
      if (rs.next()) {
        isIDRight = true;
        name = rs.getString("name").trim();
        flight1 = rs.getString("flight").trim();
        flight2 = rs.getString("returnFlight").trim();
        ticketType = rs.getString("bookType").trim();
        leaveTime1 = rs.getString("ticketDate").trim();
        leaveTime2 = rs.getString("returnDate").trim();
        childNum = rs.getString("childTickets").trim();
        adultNum = rs.getString("adultTickets").trim();
        cost = rs.getString("cost").trim();
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    if (isDingDanExist == true && isIDRight == false) {
      JOptionPane.showMessageDialog(null, "身份证号不正确", "错误信息",
                                    JOptionPane.ERROR_MESSAGE);
      return false;
    }

    boolean isValid = canReturn(leaveTime1);

    if (!isValid) {
      JOptionPane.showMessageDialog(null, "该票已经过期!不能再退!",
                                    "错误信息", JOptionPane.ERROR_MESSAGE);
      return false;
    }

    if (isDingDanExist == true && isIDRight == true) {
      String year = "";
      String month = "";
      String day = "";
      /*
             if (leaveTime1.length() != 0) {
        year = leaveTime1.substring(0, 4);
        month = leaveTime1.substring(4, 6);
        day = leaveTime1.substring(6, 8);

        leaveTime1 = year.concat("-").concat(month).concat("-").concat(day);
             }

             if (leaveTime2.length() != 0) {
        year = leaveTime2.substring(0, 4);
        month = leaveTime2.substring(4, 6);
        day = leaveTime2.substring(6, 8);

        leaveTime2 = year.concat("-").concat(month).concat("-").concat(day);
             }*/

      if (Integer.parseInt(childNum) == 0 && Integer.parseInt(adultNum) == 0) {
        JOptionPane.showMessageDialog(null, "该订单号已经无效!",
                                      "错误信息", JOptionPane.ERROR_MESSAGE);
        return false;
      }

      return true;

    }

    return false;
  }

  private boolean canReturn(String time) {
    String year = time.substring(0, 4);
    String month = time.substring(4, 6);
    String day = time.substring(6, 8);

    int y = Integer.parseInt(year);
    int m = Integer.parseInt(month);
    int d = Integer.parseInt(day);

    //Get the present time
    Calendar cal = Calendar.getInstance();

    cal.setTime(new java.util.Date());

    int py = cal.get(Calendar.YEAR);
    int pm = cal.get(Calendar.MONTH) + 1;
    int pd = cal.get(Calendar.DAY_OF_MONTH);
    if (y < py)return false;
    if (y == py) {
      if (m < pm)
        return false;
      else if (m == pm && d < pd)
        return false;
    }

    return true;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -