From d8359ddb48dab5cc797a9d552e11fde571f4920c Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 27 八月 2019 12:32:46 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsSubClassServiceImpl.java |  202 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 133 insertions(+), 69 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsSubClassServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsSubClassServiceImpl.java
index 30f95ce..cebc335 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsSubClassServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsSubClassServiceImpl.java
@@ -1,15 +1,16 @@
 package com.yeshi.fanli.service.impl.goods;
 
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
 import javax.annotation.Resource;
-import javax.transaction.Transactional;
 
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 import org.yeshi.utils.tencentcloud.COSManager;
 
@@ -17,9 +18,14 @@
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
 import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass;
+import com.yeshi.fanli.entity.bus.clazz.GoodsSubClassLabel;
+import com.yeshi.fanli.entity.bus.clazz.GoodsSubClassLabelMap;
 import com.yeshi.fanli.exception.GoodsSubClassException;
+import com.yeshi.fanli.service.inter.clazz.GoodsSubClassLabelService;
 import com.yeshi.fanli.service.inter.goods.GoodsSubClassService;
+import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
 import com.yeshi.fanli.service.inter.lable.LabelClassService;
+import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
 
 @Service
@@ -31,7 +37,12 @@
 	private GoodsSubClassService goodsSubClassService;
 	@Resource
 	private LabelClassService labelClassService;
-	
+
+	@Resource
+	private TaoBaoClassService taoBaoClassService;
+
+	@Resource
+	private GoodsSubClassLabelService goodsSubClassLabelService;
 
 	@Override
 	public int deleteByPrimaryKey(Long id) {
@@ -58,19 +69,18 @@
 		return goodsSubClassMapper.updateByPrimaryKeySelective(record);
 	}
 
-
 	@Override
 	@Transactional
 	public void deleteByRootId(Long id) throws Exception {
-		
-		List<GoodsSubClass> subClassList = goodsSubClassMapper.queryByRootId(id, null);
+
+		List<GoodsSubClass> subClassList = goodsSubClassMapper.queryByRootId(id, null, null);
 		if (subClassList != null && subClassList.size() > 0) {
 			for (GoodsSubClass goodsSubClass : subClassList) {
-					deleteSub(goodsSubClass.getId());
+				deleteSub(goodsSubClass.getId());
 			}
 		}
 	}
-	
+
 	@Override
 	@Transactional
 	public void deleteByPrimaryKeyBatch(List<String> recordIds) throws Exception {
@@ -80,8 +90,7 @@
 			}
 		}
 	}
-	
-	
+
 	@Override
 	@Transactional
 	public void deleteSub(Long recordId) throws Exception {
@@ -96,6 +105,12 @@
 			COSManager.getInstance().deleteFile(picture);
 		}
 
+		/* 鍒犻櫎缃戠粶鍥剧墖 */
+		String pictureSecond = goodsSubClass.getPictureSecond();
+		if (!StringUtil.isNullOrEmpty(pictureSecond)) {
+			COSManager.getInstance().deleteFile(pictureSecond);
+		}
+
 		/* 鍒犻櫎鎵�鏈夊叧鑱斿瓙绫� */
 		List<GoodsSubClass> subList = goodsSubClassMapper.queryByPid(recordId, null);
 		if (subList != null && subList.size() > 0) {
@@ -105,52 +120,61 @@
 				deleteSub(id);
 			}
 		}
-		
+
 		/* 鍒犻櫎鍏宠仈鏍囩 */
 		labelClassService.deleteBySubClassId(recordId);
-		
+
 		/* 鍒犻櫎鏁版嵁 */
 		goodsSubClassMapper.deleteByPrimaryKey(recordId);
 	}
 
-	
-	
 	@Override
-	public void saveObject(MultipartFile file, GoodsSubClass record, Integer type, Long pid) throws GoodsSubClassException, Exception{
-		
+	public void saveObject(MultipartFile file, MultipartFile file2, GoodsSubClass record, Integer type, Long pid,
+			Long labelId) throws GoodsSubClassException, Exception {
+
 		String name = record.getName();
 		if (name == null || name.trim().length() == 0) {
 			throw new GoodsSubClassException(1, "鍒嗙被鍚嶇О涓嶈兘涓虹┖");
 		}
-		
+
+		if (StringUtil.isNullOrEmpty(record.getMonth()))
+			record.setMonth(null);
+
 		// 鍥剧墖涓婁紶
 		String picture = null;
 		if (file != null) {
 			picture = uploadPicture(file);
 		}
-		
+
+		// 鍥剧墖涓婁紶
+		String pictureSecond = null;
+		if (file2 != null) {
+			pictureSecond = uploadPicture(file2);
+		}
+
 		String params = record.getSearchParam();
-		if (params== null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) {
+		if (params == null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) {
 			record.setSearchJson(null);
+		} else if (!StringUtil.isJson(params)) {
+			throw new GoodsSubClassException(1, "绛涢�夋潯浠堕潪JSON鏍煎紡");
 		} else {
 			record.setSearchJson(params);
 		}
-		
+
 		Long id = record.getId();
 		if (id == null) {
 			if (type == null) {
 				throw new GoodsSubClassException(1, "绛夌骇涓嶈兘涓虹┖");
 			}
-			
+
 			if (type > 5) {
 				throw new GoodsSubClassException(1, "绛夌骇涓嶈兘瓒呰繃浜旂骇");
 			}
-			
+
 			if (pid == null) {
 				throw new GoodsSubClassException(1, "涓婄骇id涓虹┖");
 			}
-			
-			
+
 			if (type == 2) {
 				record.setRootClass(new GoodsClass(pid));
 				int weight = goodsSubClassMapper.getMaxWeightByRootId(pid);
@@ -160,43 +184,64 @@
 				int weight = goodsSubClassMapper.getMaxWeightByPid(pid);
 				record.setWeight(weight + 1);
 			}
-	
+
 			String key = record.getKey();
 			if (StringUtil.isNullOrEmpty(key)) {
 				record.setKey(name.trim());
 			}
-			
+
 			record.setLevel(type);
 			record.setPicture(picture);
+			record.setPictureSecond(pictureSecond);
 			record.setState(0);
 			record.setAndroidClick(0L);
 			record.setIosClick(0L);
 			record.setCreatetime(new Date());
 			record.setUpdatetime(new Date());
-			
-			if (params== null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) {
+			if (labelId != null)
+				record.setClassLabel(new GoodsSubClassLabel(labelId));
+
+			if (params == null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) {
 				// 鎼滅储鏉′欢:鏈夊埜銆佸湪鍞环20-200銆佺墰鐨櫍杞诲井
 				record.setSearchJson("{\"quan\":1,\"endPrice\":220,\"includeGoodRate\":true}");
 			}
-			
+
 			goodsSubClassMapper.insert(record);
-			
+
+			if (labelId != null) {
+				GoodsSubClassLabelMap map = new GoodsSubClassLabelMap();
+				map.setGoodsSubClass(record);
+				map.setLabel(new GoodsSubClassLabel(labelId));
+				goodsSubClassLabelService.addSubClassLabelMap(map);
+			}
+
 		} else {
 			// 淇敼
 			GoodsSubClass resultObj = goodsSubClassMapper.selectByPrimaryKey(id);
 			if (resultObj == null) {
 				throw new GoodsSubClassException(1, "淇敼鍐呭宸蹭笉瀛樺湪");
 			}
-			
+
 			if (picture != null && picture.trim().length() > 0) {
 				// 鍒犻櫎鑰佸浘
-				removePicture(resultObj.getPicture());
+				if (!Constant.IS_TEST)
+					removePicture(resultObj.getPicture());
 				// 瀛樺偍鏂板浘
 				record.setPicture(picture);
 			} else {
 				record.setPicture(resultObj.getPicture());
 			}
-			
+
+			if (pictureSecond != null && pictureSecond.trim().length() > 0) {
+				// 鍒犻櫎鑰佸浘
+				if (!Constant.IS_TEST)
+					removePicture(resultObj.getPictureSecond());
+				// 瀛樺偍鏂板浘
+				record.setPictureSecond(pictureSecond);
+			} else {
+				record.setPictureSecond(resultObj.getPictureSecond());
+			}
+
 			record.setLevel(resultObj.getLevel());
 			record.setRootClass(resultObj.getRootClass());
 			record.setWeight(resultObj.getWeight());
@@ -204,33 +249,58 @@
 			record.setAndroidClick(resultObj.getAndroidClick());
 			record.setCreatetime(resultObj.getCreatetime());
 			record.setUpdatetime(new Date());
+			if (labelId != null) {
+				GoodsSubClassLabelMap map = new GoodsSubClassLabelMap();
+				map.setGoodsSubClass(record);
+				map.setLabel(new GoodsSubClassLabel(labelId));
+				try {
+					goodsSubClassLabelService.addSubClassLabelMap(map);
+				} catch (Exception e) {
+				}
+			}
+
 			goodsSubClassMapper.updateByPrimaryKey(record);
 		}
+
+		// 淇濆瓨娣樺疂鍟嗗搧鍒嗙被id
+		String taobaoCids = record.getTaobaoCids();
+		List<Long> tbCidList = new ArrayList<>();
+		if (!StringUtil.isNullOrEmpty(taobaoCids) && !"null".equalsIgnoreCase(taobaoCids)) {
+
+			String[] sts = taobaoCids.split(",");
+			for (String st : sts) {
+				String cid = st.split("-")[st.split("-").length - 1];
+				tbCidList.add(Long.parseLong(cid));
+			}
+		}
+		taoBaoClassService.saveSub(record.getId(), tbCidList);
 	}
 
 	/**
 	 * 涓婁紶鍥剧墖
+	 * 
 	 * @param file
 	 * @return
 	 * @throws Exception
 	 */
 	public String uploadPicture(MultipartFile file) throws Exception {
-		
-		// 鏂囦欢瑙f瀽 
+
+		// 鏂囦欢瑙f瀽
 		InputStream inputStream = file.getInputStream();
 		String contentType = file.getContentType();
 		String type = contentType.substring(contentType.indexOf("/") + 1);
-	
+
 		// 鏂囦欢璺緞
-		String filePath="/img/GoodsSubClass/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
+		String filePath = "/img/GoodsSubClass/" + UUID.randomUUID().toString().replace("-", "") + "." + type;
 		// 鎵ц涓婁紶
-		String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
-		
+		String fileLink = COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
+
 		return fileLink;
 	}
 
 	/**
 	 * 鍒犻櫎鍥剧墖
+	 * 
 	 * @param record
 	 * @throws Exception
 	 */
@@ -239,9 +309,6 @@
 			COSManager.getInstance().deleteFile(picture);
 		}
 	}
-	
-	
-	
 
 	/**
 	 * 鍒犻櫎鍥剧墖
@@ -271,7 +338,7 @@
 
 	@Override
 	public List<GoodsSubClass> queryByRootId(Long rootId, Integer state) throws Exception {
-		return goodsSubClassMapper.queryByRootId(rootId, state);
+		return goodsSubClassMapper.queryByRootId(rootId, state, null);
 	}
 
 	@Override
@@ -279,60 +346,57 @@
 		return goodsSubClassMapper.queryByPid(pid, state);
 	}
 
-	
 	@Override
-	public List<GoodsSubClass> queryByRootIdAndWeight(Long rootId,int type, int weight) throws Exception {
+	public List<GoodsSubClass> queryByRootIdAndWeight(Long rootId, int type, int weight) throws Exception {
 		return goodsSubClassMapper.queryByRootIdAndWeight(rootId, type, weight);
 	}
 
 	@Override
-	public List<GoodsSubClass> queryByPidAndWeight(Long pid,int type, int weight) throws Exception {
+	public List<GoodsSubClass> queryByPidAndWeight(Long pid, int type, int weight) throws Exception {
 		return goodsSubClassMapper.queryByPidAndWeight(pid, type, weight);
 	}
 
-	
 	@Override
-	public List<GoodsSubClass> getGoodsSecondClass(Long rootId, Integer state) throws Exception {
-		return goodsSubClassMapper.queryByRootId(rootId, state);
+	public List<GoodsSubClass> getGoodsSecondClass(Long rootId, Integer state, Integer month) throws Exception {
+		return goodsSubClassMapper.queryByRootId(rootId, state, month);
 	}
-	
-	
+
 	@Override
-	@Cacheable(value="classCache",key="'getSubClassCache-'+#rootId +'-'+#state")
-	public List<GoodsSubClass> getSubClassCache(Long rootId, Integer state) throws Exception {
-		return getGoodsSecondClass(rootId, state);
+	@Cacheable(value = "classCache", key = "'getSubClassCache-'+#rootId +'-'+#state")
+	public List<GoodsSubClass> getSubClassCache(Long rootId, Integer state, Integer month) throws Exception {
+		return getGoodsSecondClass(rootId, state, month);
 	}
-	
-	
+
 	@Override
-	@Cacheable(value="classCache",key="'getSubClassByPrimaryKeyCache-'+#id")
+	@Cacheable(value = "classCache", key = "'getSubClassByPrimaryKeyCache-'+#id")
 	public GoodsSubClass getSubClassByPrimaryKeyCache(Long id) throws Exception {
 		return selectByPrimaryKey(id);
 	}
-	
-	
-	
+
 	/**
-	 *  缁熻涓�绾т箣涓嬬殑鎵�鏈変簩绾у垎绫�
-	 * @param rootId  涓�绾d
+	 * 缁熻涓�绾т箣涓嬬殑鎵�鏈変簩绾у垎绫�
+	 * 
+	 * @param rootId
+	 *            涓�绾d
 	 * @returnL
 	 */
 	@Override
 	public int countByRootId(Long rootId) {
 		return goodsSubClassMapper.countByRootId(rootId);
 	}
-	
+
 	/**
-	 *  缁熻浜岀骇鍒嗙被涔嬩笅鍏朵粬鍒嗙被
-	 * @param rootId  涓�绾d
+	 * 缁熻浜岀骇鍒嗙被涔嬩笅鍏朵粬鍒嗙被
+	 * 
+	 * @param rootId
+	 *            涓�绾d
 	 * @return
 	 */
 	@Override
-	public int countByPid(Long pid){
+	public int countByPid(Long pid) {
 		return goodsSubClassMapper.countByPid(pid);
 	}
-	
-	
+
 	@Override
 	public void countClick(AcceptData acceptData, GoodsSubClass record) {
 		if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
@@ -352,9 +416,9 @@
 		}
 		goodsSubClassService.updateByPrimaryKeySelective(record);
 	}
-	
+
 	@Override
-	public List<GoodsSubClass> queryByListCid(List<Long> list){
+	public List<GoodsSubClass> queryByListCid(List<Long> list) {
 		return goodsSubClassMapper.queryByListCid(list);
 	}
 

--
Gitblit v1.8.0