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

📄 tuipiao.java

📁 飞行管理系统,用java开发的 ,有心人可以试试看
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	{
	    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(cTuiPiaoShu,aTuiPiaoShu);
	    }
		
	}
	
	private void operationForTuiPiao(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
		{
			RandomAccessFile raf = new RandomAccessFile(file,"rw");
			
			raf.seek(this.locationOfRecord);
			
			raf.writeUTF(dingdanNum);
			raf.writeUTF(name);
		    raf.writeUTF(idNum);
		    raf.writeUTF(flight1);
		    raf.writeUTF(flight2);
		    raf.writeUTF(ticketType);
		    
		    leaveTime1 = leaveTime1.substring(0,4) + leaveTime1.substring(5,7) + leaveTime1.substring(8,10);
		    if (leaveTime2.length() != 0)
		       leaveTime2 = leaveTime2.substring(0,4) + leaveTime2.substring(5,7) + leaveTime2.substring(8,10);
		    
		    raf.writeUTF(leaveTime1);
		    raf.writeUTF(leaveTime2);
		    raf.writeUTF(String.valueOf(newChildNum));
		    raf.writeUTF(String.valueOf(newAdultNum));
		    raf.writeUTF(String.valueOf(newCost));
		    
		    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);
		}
		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 = sqlBean.executeQuery(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 = sqlBean.executeQuery(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)
	{
		RandomAccessFile raf = null;
		
		try
		{					
		    raf = new RandomAccessFile(file,"rw");
		    
		    boolean isDingDanExist = false;
		    boolean isIDRight = false;
		    
		    long tempLocation = 0;  
		    
	    	try
	    	{
	    		
	    		while (raf.getFilePointer() < raf.length())
	            {
	            	tempLocation = raf.getFilePointer();
	            	
		    		dingdanNum = raf.readUTF();
				    name = raf.readUTF();
				    idNum = raf.readUTF();
				    flight1 = raf.readUTF();
				    flight2 = raf.readUTF();
				    ticketType = raf.readUTF();
				    leaveTime1 = raf.readUTF();
				    leaveTime2 = raf.readUTF();
				    childNum = raf.readUTF();
				    adultNum = raf.readUTF();
				    cost = raf.readUTF();
				    
				    if (dingdanNum.equals(dingdan))
				    {
				    	isDingDanExist = true;
				    	
				    	if (idNum.equals(id))
				    	{
				    		isIDRight = true;
				    		this.locationOfRecord = tempLocation;
				    		break;
				    	}
				    	
				    	else 
				    	{
				    		isIDRight = false;
				    		break;
				    	}
				    }
				 }		    
	    	}
	    	catch(EOFException e)
	    	{
	    	    //Break the loop	
	    	} 
	    	
	        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;
		    	
		    }
		        
		    
		    if (isDingDanExist == true && isIDRight == false)
		    {
		    	JOptionPane.showMessageDialog(null,"身份证号不正确","错误信息",JOptionPane.ERROR_MESSAGE);
		    	return false;
		    }		      
		       
		    if (isDingDanExist == false)
		    {
		    	JOptionPane.showMessageDialog(null,"订单号不存在","错误信息",JOptionPane.ERROR_MESSAGE);
		    	return false;
		    }		   	
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		finally
		{
			try
			{
				raf.close();
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}
		}
		
		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)
    	{
    		if (m < pm)
    		   return false;
    		else if(d < pd)
    		   return false;
    	}
    	
    	return true;
	}	
	
}

⌨️ 快捷键说明

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