Browse Source

display和switchFrequent字段由看板实例移到看板表里

sunyj 8 years ago
parent
commit
73f1738e91

+ 48 - 2
kanban-console/src/main/java/com/uas/kanban/model/Kanban.java

@@ -27,6 +27,17 @@ public class Kanban extends BaseEntity {
 	@FieldProperty(nullable = false)
 	private Set<String> templateCodes;
 
+	/**
+	 * 展示方式
+	 */
+	@FieldProperty(nullable = false)
+	private Display display;
+
+	/**
+	 * 切换频率(ms)
+	 */
+	private Long switchFrequent;
+
 	public String getName() {
 		return name;
 	}
@@ -43,10 +54,45 @@ public class Kanban extends BaseEntity {
 		this.templateCodes = templateCodes;
 	}
 
+	public Display getDisplay() {
+		return display;
+	}
+
+	public void setDisplay(Display display) {
+		this.display = display;
+	}
+
+	public Long getSwitchFrequent() {
+		return switchFrequent;
+	}
+
+	public void setSwitchFrequent(Long switchFrequent) {
+		this.switchFrequent = switchFrequent;
+	}
+
 	@Override
 	public String toString() {
-		return "Kanban [name=" + name + ", templateCodes=" + templateCodes + ", id=" + id + ", code=" + code
-				+ ", createTime=" + createTime + ", lastModified=" + lastModified + ", version=" + version + "]";
+		return "Kanban [name=" + name + ", templateCodes=" + templateCodes + ", display=" + display
+				+ ", switchFrequent=" + switchFrequent + ", id=" + id + ", createTime=" + createTime + ", lastModified="
+				+ lastModified + ", version=" + version + ", code=" + code + "]";
 	}
 
+	/**
+	 * 展示方式
+	 * 
+	 * @author sunyj
+	 * @since 2017年9月1日 下午8:01:53
+	 */
+	public enum Display {
+
+		/**
+		 * 自动切换
+		 */
+		AutoSwitch,
+
+		/**
+		 * 分屏展示
+		 */
+		SplitScreen;
+	}
 }

+ 3 - 49
kanban-console/src/main/java/com/uas/kanban/model/KanbanInstance.java

@@ -24,17 +24,6 @@ public class KanbanInstance extends BaseEntity {
 	@FieldProperty(nullable = false)
 	private String kanbanCode;
 
-	/**
-	 * 展示方式
-	 */
-	@FieldProperty(nullable = false)
-	private Display display;
-
-	/**
-	 * 切换频率(ms)
-	 */
-	private Long switchFrequent;
-
 	/**
 	 * 看板实例参数
 	 * <p/>
@@ -60,22 +49,6 @@ public class KanbanInstance extends BaseEntity {
 		this.kanbanCode = kanbanCode;
 	}
 
-	public Display getDisplay() {
-		return display;
-	}
-
-	public void setDisplay(Display display) {
-		this.display = display;
-	}
-
-	public Long getSwitchFrequent() {
-		return switchFrequent;
-	}
-
-	public void setSwitchFrequent(Long switchFrequent) {
-		this.switchFrequent = switchFrequent;
-	}
-
 	public Map<String, List<TemplateParameter>> getParameters() {
 		return parameters;
 	}
@@ -86,28 +59,9 @@ public class KanbanInstance extends BaseEntity {
 
 	@Override
 	public String toString() {
-		return "KanbanInstance [kanbanCode=" + kanbanCode + ", display=" + display + ", switchFrequent="
-				+ switchFrequent + ", parameters=" + parameters + ", id=" + id + ", createTime=" + createTime
-				+ ", lastModified=" + lastModified + ", version=" + version + ", code=" + code + "]";
-	}
-
-	/**
-	 * 展示方式
-	 * 
-	 * @author sunyj
-	 * @since 2017年9月1日 下午8:01:53
-	 */
-	public enum Display {
-
-		/**
-		 * 自动切换
-		 */
-		AutoSwitch,
-
-		/**
-		 * 分屏展示
-		 */
-		SplitScreen;
+		return "KanbanInstance [kanbanCode=" + kanbanCode + ", parameters=" + parameters + ", id=" + id
+				+ ", createTime=" + createTime + ", lastModified=" + lastModified + ", version=" + version + ", code="
+				+ code + "]";
 	}
 
 }

+ 29 - 0
kanban-console/src/main/java/com/uas/kanban/service/impl/KanbanServiceImpl.java

@@ -12,6 +12,7 @@ import com.uas.kanban.dao.TemplateDao;
 import com.uas.kanban.exception.OperationException;
 import com.uas.kanban.model.Kanban;
 import com.uas.kanban.model.Template;
+import com.uas.kanban.model.Kanban.Display;
 import com.uas.kanban.util.CollectionUtils;
 
 /**
@@ -33,6 +34,7 @@ public class KanbanServiceImpl extends BaseService<Kanban> {
 	public Kanban save(@NotEmpty("json") String json) {
 		Kanban kanban = kanbanDao.parse(json);
 		checkTemplates(kanban.getTemplateCodes());
+		checkDisplay(kanban);
 		return kanbanDao.save(kanban);
 	}
 
@@ -40,6 +42,7 @@ public class KanbanServiceImpl extends BaseService<Kanban> {
 	public int update(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
 		Kanban kanban = kanbanDao.parse(json);
 		checkTemplates(kanban.getTemplateCodes());
+		checkDisplay(kanban);
 		return kanbanDao.update(kanban);
 	}
 
@@ -63,4 +66,30 @@ public class KanbanServiceImpl extends BaseService<Kanban> {
 		}
 	}
 
+	/**
+	 * 检查展示方式
+	 * 
+	 * @param kanban
+	 *            看板
+	 * @throws IllegalArgumentException
+	 *             展示方式为自动切换时,未指定切换频率
+	 */
+	private void checkDisplay(@NotEmpty("kanban") Kanban kanban) throws IllegalArgumentException {
+		Display display = kanban.getDisplay();
+		if (display != null) {
+			switch (display) {
+			case AutoSwitch:
+				if (kanban.getSwitchFrequent() == null) {
+					throw new IllegalArgumentException("展示方式为“自动切换”时,请指定切换频率(ms)");
+				}
+				break;
+			case SplitScreen:
+				if (kanban.getSwitchFrequent() != null) {
+					throw new IllegalArgumentException("展示方式为“分屏展示”时,不可指定切换频率");
+				}
+				break;
+			}
+		}
+	}
+
 }

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

@@ -56,9 +56,9 @@
 			</ol>
 			<strong><li class="title">看版</li></strong>
 			<ol>
-				<li><a target="_blank">kanban/save?json={"name": "name","templateCodes":["4ED1EA76E16","4ED1EA1CE13","4F15DBE5B16"]}</a></li>
+				<li><a target="_blank">kanban/save?json={"name": "name","templateCodes":["4FF1AD1C411","4FF1F024412"],"display":"AutoSwitch","switchFrequent":5000}</a></li>
 				<!-- "templateCodes":"4ED1EA76E16" 或 "templateCodes":["4ED1EA76E16"]-->
-				<li><a target="_blank">kanban/update?json={"code":"4F15E57841D","name": "name","templateCodes":["4ED1EA76E16","4ED1EA1CE13"]}</a></li>
+				<li><a target="_blank">kanban/update?json={"code":"506C9FB0311","name": "name","templateCodes":["4FF1AD1C411","4FF1F024412"],"display":"SplitScreen"}</a></li>
 				<li><a target="_blank">kanban/delete/all</a></li>
 				<li><a target="_blank">kanban/delete/4EC2735D343</a></li>
 				<li><a target="_blank">kanban/get/all</a></li>
@@ -67,8 +67,8 @@
 			</ol>
 			<strong><li class="title">看版实例</li></strong>
 			<ol>
-				<li><a target="_blank">kanbanInstance/save?json={"kanbanCode": "4F16BC4A813","display":"AutoSwitch"}</a></li>
-				<li><a target="_blank">kanbanInstance/update?json={"code":"4F15E57841D","kanbanCode": "4F16BC4A813","display":"SplitScreen","switchFrequent":5000}</a></li>
+				<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/delete/all</a></li>
 				<li><a target="_blank">kanbanInstance/delete/4EC2735D343</a></li>
 				<li><a target="_blank">kanbanInstance/get/all</a></li>