Explorar el Código

看板下的templateCodes由Set改为List,从而可以按照保存时的顺序取出数据

sunyj hace 8 años
padre
commit
54c7f00ee2

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

@@ -1,6 +1,6 @@
 package com.uas.kanban.model;
 
-import java.util.Set;
+import java.util.List;
 
 import com.uas.kanban.annotation.FieldProperty;
 import com.uas.kanban.base.BaseEntity;
@@ -25,7 +25,7 @@ public class Kanban extends BaseEntity {
 	 * 模版的 code(不可重复,因此采用 Set)
 	 */
 	@FieldProperty(nullable = false)
-	private Set<String> templateCodes;
+	private List<String> templateCodes;
 
 	/**
 	 * 展示方式
@@ -51,11 +51,11 @@ public class Kanban extends BaseEntity {
 		this.name = name;
 	}
 
-	public Set<String> getTemplateCodes() {
+	public List<String> getTemplateCodes() {
 		return templateCodes;
 	}
 
-	public void setTemplateCodes(Set<String> templateCodes) {
+	public void setTemplateCodes(List<String> templateCodes) {
 		this.templateCodes = templateCodes;
 	}
 

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

@@ -234,7 +234,7 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 	 */
 	private void generateParameters(@NotEmpty("kanbanInstance") KanbanInstance kanbanInstance) {
 		Kanban kanban = checkKanban(kanbanInstance.getKanbanCode());
-		Set<String> templateCodes = kanban.getTemplateCodes();
+		List<String> templateCodes = kanban.getTemplateCodes();
 		List<Template> templates = templateDao.findIn(templateCodes);
 		Map<String, List<TemplateParameter>> parameters = new HashMap<>();
 		List<GlobalParameter> globalParameters = new ArrayList<>();
@@ -306,14 +306,14 @@ public class KanbanInstanceServiceImpl extends BaseService<KanbanInstance> imple
 			throw new IllegalStateException("看板实例不存在");
 		}
 		Kanban kanban = checkKanban(kanbanInstance.getKanbanCode());
-		Set<String> templateCodes = kanban.getTemplateCodes();
+		List<String> templateCodes = kanban.getTemplateCodes();
 		// 如果指定了模版,则解析该模版,否则解析该看板下的第一个模版
 		if (!StringUtils.isEmpty(templateCode)) {
-			if (!templateCode.contains(templateCode)) {
+			if (!templateCodes.contains(templateCode)) {
 				throw new IllegalArgumentException("看板下未绑定该模版:" + templateCode);
 			}
 		} else {
-			templateCode = templateCodes.iterator().next();
+			templateCode = templateCodes.get(0);
 		}
 		Template template = templateDao.findOne(templateCode);
 		Map<String, List<TemplateParameter>> parameters = kanbanInstance.getParameters();

+ 6 - 3
kanban-console/src/main/java/com/uas/kanban/service/impl/KanbanServiceImpl.java

@@ -1,6 +1,6 @@
 package com.uas.kanban.service.impl;
 
-import java.util.Set;
+import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -11,8 +11,8 @@ import com.uas.kanban.dao.KanbanDao;
 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.model.Template;
 import com.uas.kanban.util.CollectionUtils;
 
 /**
@@ -54,11 +54,14 @@ public class KanbanServiceImpl extends BaseService<Kanban> {
 	 * @throws IllegalArgumentException
 	 *             模版不存在
 	 */
-	private void checkTemplates(Set<String> templateCodes) throws IllegalArgumentException {
+	private void checkTemplates(List<String> templateCodes) throws IllegalArgumentException {
 		if (CollectionUtils.isEmpty(templateCodes)) {
 			return;
 		}
 		for (String templateCode : templateCodes) {
+			if (templateCodes.indexOf(templateCode) != templateCodes.lastIndexOf(templateCode)) {
+				throw new IllegalArgumentException("模版重复:" + templateCode);
+			}
 			Template template = templateDao.findOne(templateCode);
 			if (template == null) {
 				throw new IllegalArgumentException("模版不存在:" + templateCode);