diff src/main/java/app/bbs/NetworkJungleBulletinBoard.java @ 187:f9b26747ef63

add matrixBullet in board
author tatsuki
date Sat, 27 Sep 2014 16:23:21 +0900
parents ef5045af0753
children 269bada9eedc
line wrap: on
line diff
--- a/src/main/java/app/bbs/NetworkJungleBulletinBoard.java	Tue Sep 16 07:49:14 2014 +0900
+++ b/src/main/java/app/bbs/NetworkJungleBulletinBoard.java	Sat Sep 27 16:23:21 2014 +0900
@@ -3,6 +3,8 @@
 import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.Iterator;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -720,8 +722,6 @@
 		TreeNode node = tree.getRootNode();
 
 		DefaultTraverser traverser = new DefaultTraverser();
-		// TraversableNodeWrapper<Node> traversable = new
-		// TraversableNodeWrapper<Node>(node);
 		DefaultEvaluator evaluator = new DefaultEvaluator(path);
 		Either<Error, Traversal> ret = traverser.traverse(node,
 				evaluator);
@@ -769,36 +769,86 @@
 		
 		return false;
 	}
+	
 	public String searchJungle(String requestName , String approvalName) {
 		JungleTree tree = jungle.getTreeByName("人物");
 
 		
 		TreeNode searchNode = search(tree , requestName,"mes");
-		if (searchNode == null)
+		if (searchNode == null){
+            fail(requestName,approvalName,"申請者がデータに無い人物です");
 			return "申請者がデータに無い人物です";
+		}
 		
-		if (!compare(searchNode, "河野研"))
+		if (!compare(searchNode, "河野研")){
+            fail(requestName,approvalName,"河野研以外に所属している人は、この申請をすることが出来ません");
 			return "河野研以外に所属している人は、この申請をすることが出来ません";
-		
+		}
 		
 		searchNode = search(tree , approvalName,"mes");
-		if (searchNode == null)
+		if (searchNode == null){
+            fail(requestName,approvalName,"承認者がデータに無い人物です");
 			return "承認者がデータに無い人物です";
-		
-		if (!compare(searchNode, "上位申請権限"))
-			return "権限がありません(この申請の承認は上位申請者である必要があります";
+		}
 		
 		String position = searchNode.getAttributes().getString("mes1");
 		
 		JungleTree grantTree = jungle.getTreeByName("役職");
 		searchNode = search(grantTree , position,"mes");
 		
-		if (!compare(searchNode, "准教授権限") || !!compare(searchNode, "教授権限"))
+		if (!compare(searchNode, "准教授権限") && !compare(searchNode, "教授権限")){
+            fail(requestName,approvalName,"権限がありません(この申請の承認は助教授か、教授である必要があります");
 			return "権限がありません(この申請の承認は助教授か、教授である必要があります";
+		}
 		
-		return "申請が受理されました";	
+	      searchNode = search(tree , approvalName,"mes");
+	        if (searchNode == null){
+                fail(requestName,approvalName,"申請者がデータに無い人物です");
+	            return "申請者がデータに無い人物です";
+	        }
+	        
+	        if (!compare(searchNode, "上位申請権限")){
+	            fail(requestName,approvalName,"権限がありません(この申請の承認は上位申請者である必要があります");
+	            return "権限がありません(この申請の承認は上位申請者である必要があります";
+	        }
+	        success(requestName,approvalName);
+	        
+	        return "申請が受理されました";   
 	}
 	
+	   public void fail(String requestName, String approvalName, String reason){
+	        JungleTree contextTree = jungle.getTreeByName("申請");
+	        JungleTreeEditor editor = contextTree.getTreeEditor();
+	        editor = editor.putAttribute(new DefaultNodePath(),"mes0", ByteBuffer.wrap(("申請者名 = " + requestName).getBytes())).b();
+	        editor = editor.putAttribute(new DefaultNodePath(),"mes1", ByteBuffer.wrap(("申請内容".getBytes()))).b();
+	        Date date = new Date();
+	        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+	        String time = sdf.format(date);
+	        editor = editor.putAttribute(new DefaultNodePath(),"mes2", ByteBuffer.wrap(("承認時間 = " + time).getBytes())).b();
+
+	        editor = editor.putAttribute(new DefaultNodePath().add(0),"mes", ByteBuffer.wrap("否認書".getBytes())).b();
+	        editor = editor.putAttribute(new DefaultNodePath().add(0),"mes0", ByteBuffer.wrap(("否認者名 = " + approvalName).getBytes())).b();
+	        editor = editor.putAttribute(new DefaultNodePath().add(0),"mes1", ByteBuffer.wrap(("否認理由 = " + reason).getBytes())).b();
+	        editor = editor.putAttribute(new DefaultNodePath().add(0),"mes2", ByteBuffer.wrap(("承認時間 = " + time).getBytes())).b();
+	        editor.success();
+	    }
+	
+	public void success(String requestName, String approvalName){
+        JungleTree contextTree = jungle.getTreeByName("申請");
+        JungleTreeEditor editor = contextTree.getTreeEditor();
+        editor = editor.putAttribute(new DefaultNodePath(),"mes0", ByteBuffer.wrap(("申請者名 = " + requestName).getBytes())).b();
+        editor = editor.putAttribute(new DefaultNodePath(),"mes1", ByteBuffer.wrap(("申請内容".getBytes()))).b();
+        Date date = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+        String time = sdf.format(date);
+        editor = editor.putAttribute(new DefaultNodePath(),"mes2", ByteBuffer.wrap(("承認時間" + time).getBytes())).b();
+
+        editor = editor.putAttribute(new DefaultNodePath().add(0),"mes", ByteBuffer.wrap("承認書".getBytes())).b();
+        editor = editor.putAttribute(new DefaultNodePath().add(0),"mes0", ByteBuffer.wrap(("承認者名 = " + approvalName).getBytes())).b();
+        editor = editor.putAttribute(new DefaultNodePath().add(0),"mes1", ByteBuffer.wrap("承認理由 = 権限があってるので許可した".getBytes())).b();
+        editor = editor.putAttribute(new DefaultNodePath().add(0),"mes2", ByteBuffer.wrap(("承認時間" + time).getBytes())).b();
+        editor.success();
+	}
 	
 	public int getRequestNum() {
 		return requestCounter.get();