From cdcbed9af813b2a02cdc01eefa24db8bec6b51a9 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期三, 27 三月 2019 12:17:33 +0800
Subject: [PATCH] 主分类 + 子分类 DAO改造

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsSubClassServiceImpl.java |  189 +++++++++++++++++++++++++++++++----------------
 1 files changed, 125 insertions(+), 64 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 cc4c268..30f95ce 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,6 +1,7 @@
 package com.yeshi.fanli.service.impl.goods;
 
 import java.io.InputStream;
+import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
@@ -10,14 +11,16 @@
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
+import org.yeshi.utils.tencentcloud.COSManager;
 
 import com.yeshi.fanli.dao.mybatis.GoodsSubClassMapper;
 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.exception.GoodsSubClassException;
 import com.yeshi.fanli.service.inter.goods.GoodsSubClassService;
 import com.yeshi.fanli.service.inter.lable.LabelClassService;
 import com.yeshi.fanli.util.StringUtil;
-import org.yeshi.utils.tencentcloud.COSManager;
 
 @Service
 public class GoodsSubClassServiceImpl implements GoodsSubClassService {
@@ -55,10 +58,6 @@
 		return goodsSubClassMapper.updateByPrimaryKeySelective(record);
 	}
 
-	@Override
-	public int updateByPrimaryKey(GoodsSubClass record) {
-		return goodsSubClassMapper.updateByPrimaryKey(record);
-	}
 
 	@Override
 	@Transactional
@@ -86,8 +85,6 @@
 	@Override
 	@Transactional
 	public void deleteSub(Long recordId) throws Exception {
-		// TODO Auto-generated method stub
-
 		GoodsSubClass goodsSubClass = goodsSubClassMapper.selectByPrimaryKey(recordId);
 
 		if (goodsSubClass == null)
@@ -116,52 +113,135 @@
 		goodsSubClassMapper.deleteByPrimaryKey(recordId);
 	}
 
+	
+	
 	@Override
-	public int save(GoodsSubClass record, MultipartFile file) throws Exception {
-
-		int result = 0;
-
-		result = goodsSubClassMapper.insertSelective(record);
+	public void saveObject(MultipartFile file, GoodsSubClass record, Integer type, Long pid) throws GoodsSubClassException, Exception{
 		
-
-		// 涓婁紶鍥剧墖
-		if (file != null) {
-			result = goodsSubClassService.uploadPicture(record, file);
+		String name = record.getName();
+		if (name == null || name.trim().length() == 0) {
+			throw new GoodsSubClassException(1, "鍒嗙被鍚嶇О涓嶈兘涓虹┖");
 		}
-
-		return result;
+		
+		// 鍥剧墖涓婁紶
+		String picture = null;
+		if (file != null) {
+			picture = uploadPicture(file);
+		}
+		
+		String params = record.getSearchParam();
+		if (params== null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) {
+			record.setSearchJson(null);
+		} 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);
+				record.setWeight(weight + 1);
+			} else {
+				record.setParent(new GoodsSubClass(pid));
+				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.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)) {
+				// 鎼滅储鏉′欢:鏈夊埜銆佸湪鍞环20-200銆佺墰鐨櫍杞诲井
+				record.setSearchJson("{\"quan\":1,\"endPrice\":220,\"includeGoodRate\":true}");
+			}
+			
+			goodsSubClassMapper.insert(record);
+			
+		} else {
+			// 淇敼
+			GoodsSubClass resultObj = goodsSubClassMapper.selectByPrimaryKey(id);
+			if (resultObj == null) {
+				throw new GoodsSubClassException(1, "淇敼鍐呭宸蹭笉瀛樺湪");
+			}
+			
+			if (picture != null && picture.trim().length() > 0) {
+				// 鍒犻櫎鑰佸浘
+				removePicture(resultObj.getPicture());
+				// 瀛樺偍鏂板浘
+				record.setPicture(picture);
+			} else {
+				record.setPicture(resultObj.getPicture());
+			}
+			
+			record.setLevel(resultObj.getLevel());
+			record.setRootClass(resultObj.getRootClass());
+			record.setWeight(resultObj.getWeight());
+			record.setIosClick(resultObj.getIosClick());
+			record.setAndroidClick(resultObj.getAndroidClick());
+			record.setCreatetime(resultObj.getCreatetime());
+			record.setUpdatetime(new Date());
+			goodsSubClassMapper.updateByPrimaryKey(record);
+		}
 	}
 
-	@Override
-	public int uploadPicture(GoodsSubClass record, MultipartFile file) throws Exception {
-
+	/**
+	 * 涓婁紶鍥剧墖
+	 * @param file
+	 * @return
+	 * @throws Exception
+	 */
+	public String uploadPicture(MultipartFile file) throws Exception {
+		
+		// 鏂囦欢瑙f瀽 
 		InputStream inputStream = file.getInputStream();
 		String contentType = file.getContentType();
 		String type = contentType.substring(contentType.indexOf("/") + 1);
-		// 涓婁紶鏂囦欢鐩稿浣嶇疆
-		String fileUrl = "ClassImg/" + UUID.randomUUID().toString().replace("-", "") + "." + type;
-
-		boolean deleteFile = true;
-
-		/* 淇敼鍥剧墖鏃讹紝鍏堝垹闄ゅ凡瀛樺湪鍥剧墖 */
-		String picture = record.getPicture();
-		if (!StringUtil.isNullOrEmpty(picture))
-			deleteFile = COSManager.getInstance().deleteFile(picture);
-
-		String uploadFilePath = null;
-		/* 涓婁紶鏂板浘鐗� */
-		if (deleteFile) {
-			uploadFilePath = COSManager.getInstance().uploadFile(inputStream, fileUrl).getUrl();
-		}
-
-		/* 鏇存柊鏁版嵁搴撲俊鎭� */
-		int result = 0;
-		if (!StringUtil.isNullOrEmpty(uploadFilePath)) {
-			record.setPicture(uploadFilePath);
-			result = goodsSubClassMapper.updateByPrimaryKeySelective(record);
-		}
-		return result;
+	
+		// 鏂囦欢璺緞
+		String filePath="/img/GoodsSubClass/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
+		// 鎵ц涓婁紶
+		String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
+		
+		return fileLink;
 	}
+
+	/**
+	 * 鍒犻櫎鍥剧墖
+	 * @param record
+	 * @throws Exception
+	 */
+	public void removePicture(String picture) throws Exception {
+		if (picture != null && picture.trim().length() > 0) {
+			COSManager.getInstance().deleteFile(picture);
+		}
+	}
+	
+	
+	
 
 	/**
 	 * 鍒犻櫎鍥剧墖
@@ -252,26 +332,6 @@
 		return goodsSubClassMapper.countByPid(pid);
 	}
 	
-	/**
-	 *  缁熻涓�绾т箣涓嬬殑鎵�鏈変簩绾у垎绫绘渶澶ф潈閲�
-	 * @param rootId  涓�绾d
-	 * @returnL
-	 */
-	@Override
-	public int getMaxWeightByRootId(Long rootId) {
-		return goodsSubClassMapper.getMaxWeightByRootId(rootId);
-	}
-	
-	/**
-	 *  缁熻浜岀骇鍒嗙被涔嬩笅鍏朵粬鍒嗙被鏈�澶ф潈閲�
-	 * @param rootId  涓�绾d
-	 * @return
-	 */
-	@Override
-	public int getMaxWeightByPid(Long pid){
-		return goodsSubClassMapper.getMaxWeightByPid(pid);
-	}
-	
 	
 	@Override
 	public void countClick(AcceptData acceptData, GoodsSubClass record) {
@@ -297,4 +357,5 @@
 	public List<GoodsSubClass> queryByListCid(List<Long> list){
 		return goodsSubClassMapper.queryByListCid(list);
 	}
+
 }

--
Gitblit v1.8.0