Explorar el Código

【器件上传】-- 完善service实现方法

wangyc hace 8 años
padre
commit
bcf60ca29c

+ 13 - 7
src/main/java/com/uas/platform/b2c/prod/product/component/controller/ComponentSubmitController.java

@@ -477,16 +477,22 @@ public class ComponentSubmitController {
 			List<Map<String, Object>> maps = reader.readAll();
 
 			int size = maps.size();
-			if (size > 10000) {
-				throw new IllegalOperatorException("上传文件必须小于10000行");
-			}
-			if (size > 0) {
+			if (size > 0 && size < 10000) {// 文件不得超过10000行
 				Map<String, Object> map = maps.get(0);
-				if (map.keySet().size() > 28) {
-
+				int rowSize = map.keySet().size();
+				if (rowSize < 50) {// 整体列数不得超过50
+					if (rowSize > 30 && size > 2000) {// 列数超过30的文件不得超过2000行
+						throw new IllegalOperatorException("属性超过22个时,文件只允许上传2000行");
+					}
+					componentCrawls = componentSubmitService.uploadComponentCrawl(maps);
+				} else {
+					throw new IllegalOperatorException("属性值不得超过42个");
 				}
+			} else {
+				throw new IllegalOperatorException("上传文件必须大于0行小于10000行");
 			}
-			componentCrawls = componentSubmitService.uploadComponentCrawl(maps);
+
+
 		} catch (IOException e) {
 			e.printStackTrace();
 		}

+ 21 - 0
src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentSubmitServiceImpl.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2c.prod.product.component.service.impl;
 
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
 import com.uas.platform.b2c.common.account.dao.UserBaseInfoDao;
 import com.uas.platform.b2c.common.base.service.SendMessageService;
 import com.uas.platform.b2c.core.support.SystemSession;
@@ -723,6 +725,25 @@ public class ComponentSubmitServiceImpl implements ComponentSubmitService {
 
 	@Override
 	public List<ComponentCrawl> uploadComponentCrawl(List<Map<String, Object>> maps) {
+		// 验证表头信息是否一致
+		Map<String, Object> firstRow = maps.get(0);
+		Set<String> theads = ImmutableSet.copyOf(Iterables.limit(firstRow.keySet(), 8));
+
+		// 模板表头
+		Set<String> expectHeads = new HashSet<String>();
+		expectHeads.add("型号");
+		expectHeads.add("商城类目");
+		expectHeads.add("目标类目");
+		expectHeads.add("商城品牌");
+		expectHeads.add("来源网址");
+		expectHeads.add("规格书");
+		expectHeads.add("图片");
+		expectHeads.add("描述");
+
+		if (!expectHeads.containsAll(theads)) {
+			throw new IllegalOperatorException("表格表头内容不对,请重新确认模板");
+		}
+
 		return null;
 	}