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