Mercurial > hg > Database > jungle-network
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();