Просмотр исходного кода

增加/kanbanInstance/get/kanbanCode/{kanbanCode}接口

sunyj 8 лет назад
Родитель
Сommit
535cea163a

+ 8 - 2
kanban-common/src/main/java/com/uas/kanban/base/BaseDao.java

@@ -371,9 +371,15 @@ public class BaseDao<T extends BaseEntity> {
 	 * @param code
 	 *            the code to query
 	 * @return the matched entity. may be null.
+	 * @throws IllegalStateException
+	 *             数据超过1条
 	 */
-	public T findOne(@NotEmpty("code") String code) {
-		return createQuery(code).get();
+	public T findOne(@NotEmpty("code") String code) throws IllegalStateException {
+		Query<T> query = createQuery(code);
+		if (query.count() > 1) {
+			throw new IllegalStateException("数据超过1条");
+		}
+		return query.get();
 	}
 
 	/**

+ 24 - 0
kanban-console/src/main/java/com/uas/kanban/controller/KanbanInstanceController.java

@@ -64,9 +64,33 @@ public class KanbanInstanceController extends BaseController<KanbanInstance> {
 		return kanbanInstanceService.fillParameters(code, templateCode, JSONObject.parseObject(values));
 	}
 
+	/**
+	 * 根据看板实例,解析生成json数据传给前台
+	 * 
+	 * @param code
+	 *            看板实例 code
+	 * @param request
+	 * @return 解析生成的json
+	 */
 	@RequestMapping("/parseData/{code}")
 	@ResponseBody
 	public String parseData(@PathVariable("code") String code, HttpServletRequest request) {
 		return kanbanInstanceService.parseData(code);
 	}
+
+	/**
+	 * 根据看板 code 获取看板实例
+	 * 
+	 * @param kanbanCode
+	 *            看板 code
+	 * @return 看板实例
+	 * @param request
+	 * @throws IllegalStateException
+	 *             找到多个看板实例
+	 */
+	@RequestMapping("/get/kanbanCode/{kanbanCode}")
+	@ResponseBody
+	public KanbanInstance getByKanbanCode(@PathVariable("kanbanCode") String kanbanCode, HttpServletRequest request) {
+		return kanbanInstanceService.getByKanbanCode(kanbanCode);
+	}
 }

+ 12 - 0
kanban-console/src/main/java/com/uas/kanban/service/KanbanInstanceService.java

@@ -4,6 +4,7 @@ import java.util.Map;
 
 import com.uas.kanban.annotation.NotEmpty;
 import com.uas.kanban.exception.OperationException;
+import com.uas.kanban.model.KanbanInstance;
 
 /**
  * 看板实例
@@ -51,4 +52,15 @@ public interface KanbanInstanceService {
 	 * @return 解析生成的json
 	 */
 	String parseData(@NotEmpty("code") String code);
+
+	/**
+	 * 根据看板 code 获取看板实例
+	 * 
+	 * @param kanbanCode
+	 *            看板 code
+	 * @return 看板实例
+	 * @throws IllegalStateException
+	 *             找到多个看板实例
+	 */
+	KanbanInstance getByKanbanCode(@NotEmpty("kanbanCode") String kanbanCode) throws IllegalStateException;
 }

+ 12 - 0
kanban-console/src/main/java/com/uas/kanban/service/impl/KanbanInstanceServiceImpl.java

@@ -11,6 +11,7 @@ import java.util.Set;
 import javax.xml.transform.TransformerException;
 
 import org.dom4j.DocumentException;
+import org.mongodb.morphia.query.Query;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -58,6 +59,7 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 
 	@Override
 	public KanbanInstance save(@NotEmpty("json") String json) {
+		// TODO 一个资源点只能为某个看板维护一个看板实例
 		KanbanInstance kanbanInstance = kanbanInstanceDao.parse(json);
 		checkParameters(kanbanInstance.getParameters());
 		Kanban kanban = checkKanban(kanbanInstance.getKanbanCode());
@@ -69,6 +71,7 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 
 	@Override
 	public int update(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
+		// TODO 一个资源点只能为某个看板维护一个看板实例
 		KanbanInstance kanbanInstance = kanbanInstanceDao.parse(json);
 		checkParameters(kanbanInstance.getParameters());
 		checkKanban(kanbanInstance.getKanbanCode());
@@ -227,4 +230,13 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 		return content;
 	}
 
+	@Override
+	public KanbanInstance getByKanbanCode(@NotEmpty("kanbanCode") String kanbanCode) throws IllegalStateException {
+		Query<KanbanInstance> query = kanbanInstanceDao.createQuery().field("kanbanCode").equal(kanbanCode);
+		if (query.count() > 1) {
+			throw new IllegalStateException("找到多个看板实例");
+		}
+		return query.get();
+	}
+
 }

+ 3 - 2
kanban-console/src/main/webapp/WEB-INF/views/console.html

@@ -67,8 +67,8 @@
 			</ol>
 			<strong><li class="title">看版实例</li></strong>
 			<ol>
-				<li><a target="_blank">kanbanInstance/save?json={"kanbanCode": "4F16BC4A813"}</a></li>
-				<li><a target="_blank">kanbanInstance/update?json={"code":"4F15E57841D","kanbanCode": "4F16BC4A813"}</a></li>
+				<li><a target="_blank">kanbanInstance/save?json={"kanbanCode": "4F16BC4A813", "refreshFrequency": 2000}</a></li>
+				<li><a target="_blank">kanbanInstance/update?json={"code":"4F15E57841D","kanbanCode": "4F16BC4A813", "refreshFrequency": 2000}</a></li>
 				<li><a target="_blank">kanbanInstance/delete/all</a></li>
 				<li><a target="_blank">kanbanInstance/delete/4EC2735D343</a></li>
 				<li><a target="_blank">kanbanInstance/get/all</a></li>
@@ -77,6 +77,7 @@
 				<br/>
 				<li><a target="_blank">kanbanInstance/fillParameters?code=4F6BDFB4213&templateCode=4ED1EA76E16&values={"4ED1EA76D15": "789","4F123A93312": 45,"4F123D86313":1504530537000}</a></li>
 				<li><a target="_blank">kanbanInstance/parseData/4F6BDFB4213</a></li>
+				<li><a target="_blank">kanbanInstance/get/kanbanCode/506C9FB0311</a></li>
 			</ol>
 		</ol>
 	</div>