From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java | 866 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 433 insertions(+), 433 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java index 8cc434f..4796b0e 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java @@ -1,433 +1,433 @@ -package com.yeshi.fanli.service.impl.goods; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import javax.annotation.Resource; - -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; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.yeshi.fanli.dao.mybatis.GoodsClassMapper; -import com.yeshi.fanli.entity.bus.clazz.GoodsClass; -import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass; -import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass; -import com.yeshi.fanli.exception.goods.GoodsClassException; -import com.yeshi.fanli.service.inter.goods.GoodsClassService; -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.FilePathEnum; -import com.yeshi.fanli.util.StringUtil; - -@Service -public class GoodsClassServiceImpl implements GoodsClassService { - - @Resource - private GoodsClassMapper goodsClassMapper; - - @Resource - private GoodsSubClassService goodsSubClassService; - - @Resource - private LabelClassService labelClassService; - - @Resource - private TaoBaoClassService taoBaoClassService; - - public GoodsClass getGoodsClass(long id) { - return goodsClassMapper.selectByPrimaryKey(id); - } - - @Override - public int updateByPrimaryKey(GoodsClass record) { - return goodsClassMapper.updateByPrimaryKey(record); - } - - @Override - public String getKeysById(Long id) { - return goodsClassMapper.getKeysById(id); - } - - @Override - public GoodsClass selectByPrimaryKey(Long gcid) { - return goodsClassMapper.selectByPrimaryKey(gcid); - } - - @Override - public int updateByPrimaryKeySelective(GoodsClass record) { - return goodsClassMapper.updateByPrimaryKeySelective(record); - } - - @Cacheable(value = "classCache", key = "'getGoodsClass-'+#gcid") - @Override - public GoodsClass getGoodsClassCache(long gcid) { - return getGoodsClass(gcid); - } - - @Override - public void deleteGoodsClass(long id) { - goodsClassMapper.deleteByPrimaryKey(id); - } - - @Override - public List<GoodsClass> listquery(Integer sex) throws Exception { - - List<GoodsClass> list = goodsClassMapper.getGoodsClassAll(sex); - - if (list != null && list.size() == 0) { - return list; - } - - for (GoodsClass gclass : list) { - Long iosClick = gclass.getIosClick(); - Long androidClick = gclass.getAndroidClick(); - - if (iosClick != null && androidClick != null) { - gclass.setCountClick(iosClick + androidClick); - } else if (androidClick != null) { - gclass.setCountClick(androidClick); - } else if (iosClick != null) { - gclass.setCountClick(iosClick); - } else { - gclass.setCountClick(0l); - } - - // 鍙傛暟澶勭悊 - String searchParam = gclass.getSearchParam(); - if (searchParam == null) { - gclass.setSearchParam(""); - } else { - gclass.setSearchParam(searchParam); - } - - // 鏍囩 - int countlabel = labelClassService.getCountQueryByClassId(gclass.getId()); - gclass.setCountlabel(countlabel); - - List<TaoBaoClass> listTB = taoBaoClassService.listBySystemCid(0, Integer.MAX_VALUE, gclass.getId()); - if (listTB == null || listTB.size() == 0) { - gclass.setTaobaoCids(""); - } else { - String taobaoCids = ""; - for (TaoBaoClass taoBaoClass : listTB) { - taobaoCids = taobaoCids + taoBaoClass.getCategoryName() + "-" + taoBaoClass.getCategoryId() + ","; - } - - if (!StringUtil.isNullOrEmpty(taobaoCids)) { - taobaoCids = taobaoCids.substring(0, taobaoCids.length() - 1); - } - gclass.setTaobaoCids(taobaoCids); - } - - } - return list; - } - - public List<GoodsClass> getGoodsClassAll() { - return goodsClassMapper.getGoodsClassAll(null); - } - - @Override - @Transactional(rollbackFor=Exception.class) - public void saveObject(MultipartFile file, GoodsClass record) throws GoodsClassException, Exception { - - String name = record.getName(); - if (name == null || name.trim().length() == 0) { - throw new GoodsClassException(1, "鍒嗙被鍚嶇О涓嶈兘涓虹┖"); - } - - Integer sex = record.getSex(); - if (sex == null) { - throw new GoodsClassException(1, "鎬у埆璁剧疆涓嶈兘涓虹┖"); - } - - // 鍥剧墖涓婁紶 - String picture = null; - if (file != null) { - picture = uploadPicture(file); - } - - String params = record.getSearchParam(); - if (params == null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) { - record.setSearchParam(null); - } else if (!StringUtil.isJson(params)) { - throw new GoodsClassException(1, "绛涢�夋潯浠堕潪JSON鏍煎紡"); - } - - Long id = record.getId(); - if (id == null) { - record.setPicture(picture); - record.setIosClick(0L); - record.setAndroidClick(0L); - record.setCreatetime(java.lang.System.currentTimeMillis()); - - Integer state = record.getState(); - if (state == null) { - record.setState(0); - } - - if (params == null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) { - // 鎼滅储鏉′欢:鏈夊埜銆佸湪鍞环20-200銆佺墰鐨櫍杞诲井 - record.setSearchParam( - "{\"quan\":1,\"endPrice\":220,\"includeGoodRate\":true,\"baoYou\":true,\"ip\":\"218.72.111.105\"}"); - } - - // 鎺掑簭 - int maxOrder = goodsClassMapper.getMaxOrder(); - record.setOrderby(maxOrder + 1); - - goodsClassMapper.insert(record); - - } else { - // 淇敼 - GoodsClass resultObj = goodsClassMapper.selectByPrimaryKey(id); - if (resultObj == null) { - throw new GoodsClassException(1, "淇敼鍐呭宸蹭笉瀛樺湪"); - } - - if (picture != null && picture.trim().length() > 0) { - // 鍒犻櫎鑰佸浘 - removePicture(resultObj.getPicture()); - // 瀛樺偍鏂板浘 - record.setPicture(picture); - } else { - record.setPicture(resultObj.getPicture()); - } - - record.setIosClick(resultObj.getIosClick()); - record.setOrderby(resultObj.getOrderby()); - record.setAndroidClick(resultObj.getAndroidClick()); - record.setCreatetime(resultObj.getCreatetime()); - goodsClassMapper.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].trim(); - tbCidList.add(Long.parseLong(cid)); - } - } - taoBaoClassService.save(record.getId(), tbCidList); - } - - /** - * 涓婁紶鍥剧墖 - * - * @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 filePath = FilePathEnum.goodsClass.getPath() + 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 (!Constant.IS_TEST) - if (picture != null && picture.trim().length() > 0) { - COSManager.getInstance().deleteFile(picture); - } - } - - @Override - public void uploadPicture(GoodsClass record, MultipartFile file) throws Exception { - - InputStream inputStream = file.getInputStream(); - String contentType = file.getContentType(); - String type = contentType.substring(contentType.indexOf("/") + 1); - // 涓婁紶鏂囦欢鐩稿浣嶇疆 - String fileUrl = FilePathEnum.goodsClassOld.getPath()+ 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(); - } - - /* 鏇存柊鏁版嵁搴撲俊鎭� */ - if (!StringUtil.isNullOrEmpty(uploadFilePath)) { - record.setPicture(uploadFilePath); - goodsClassMapper.updateByPrimaryKey(record); - } - - } - - /** - * 鍒犻櫎鍥剧墖 - */ - @Override - public void removePicture(GoodsClass record) throws Exception { - - String fileUrl = record.getPicture(); - boolean deleteFile = true; - - if (StringUtil.isNullOrEmpty(fileUrl)) { - return; - } - - deleteFile = COSManager.getInstance().deleteFile(fileUrl); - if (deleteFile) { - record.setPicture(null); - // 鏇存柊鏁版嵁搴� - goodsClassMapper.updateByPrimaryKey(record); - } - } - - @Override - public void switchState(Long id) throws GoodsClassException { - if (id == null) { - throw new GoodsClassException(1, "璇蜂紶閫掓纭弬鏁�"); - } - GoodsClass resultObj = goodsClassMapper.selectByPrimaryKey(id); - if (resultObj == null) { - throw new GoodsClassException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�"); - } - - Integer state = resultObj.getState(); - if (state == null || state == 0) { - state = 1; - } else { - state = 0; - } - - GoodsClass updateObj = new GoodsClass(); - updateObj.setId(id); - updateObj.setState(state); - goodsClassMapper.updateByPrimaryKeySelective(updateObj); - } - - - @Override - @Cacheable(value = "classCache", key = "'getEffectiveClassCache'") - public List<GoodsClass> getEffectiveClassCache() { - return goodsClassMapper.getEffectiveClass(); - } - - @Override - @Cacheable(value = "classCache", key = "'getClassListAllCache'+#changePicture") - public List<Map<String, Object>> getClassListAllCache(boolean changePicture) throws Exception { - - List<GoodsClass> goodsClassList = goodsClassMapper.getEffectiveClass(); - if (goodsClassList == null || goodsClassList.size() == 0) { - return null; - } - - List<Long> listID = new ArrayList<Long>(); - for (GoodsClass coodsClass : goodsClassList) { - listID.add(coodsClass.getId()); - } - - List<GoodsSubClass> listSub = goodsSubClassService.queryByListCid(listID); - - Gson gson = new GsonBuilder().create(); - - List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); - for (GoodsClass goodsClass : goodsClassList) { - - List<GoodsSubClass> subClassList = new ArrayList<GoodsSubClass>(); - - if (listSub != null && listSub.size() > 0) { - Iterator<GoodsSubClass> iterator = listSub.iterator(); - while (iterator.hasNext()) { - GoodsSubClass goodsSubClass = iterator.next(); - GoodsClass goodsClassInner = goodsSubClass.getRootClass(); - if (goodsClass.getId() == goodsClassInner.getId()) { - - // 1.5.3鏂扮増鍥剧墖鏇挎崲 - if (changePicture) { - String pictureSecond = goodsSubClass.getPictureSecond(); - if (pictureSecond != null && pictureSecond.trim().length() > 0) { - goodsSubClass.setPicture(pictureSecond); - } - } - - // 瀵瑰簲涓嬪瓙鍒嗙被 - subClassList.add(goodsSubClass); - iterator.remove(); - } - - } - } - - Map<String, Object> map = new HashMap<String, Object>(); - map.put("gclass", goodsClass); - map.put("subList", gson.toJson(subClassList)); - - list.add(map); - } - - return list; - } - - @Override - @Transactional(rollbackFor=Exception.class) - public void updateOrder(Long id, Integer moveType) throws GoodsClassException { - - if (id == null || moveType == null || (!moveType.equals(1) && !moveType.equals(-1))) { - throw new GoodsClassException(1, "璇蜂紶閫掓纭弬鏁�"); - } - - GoodsClass resultObj = goodsClassMapper.selectByPrimaryKey(id); - if (resultObj == null) { - throw new GoodsClassException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�"); - } - - Integer order = resultObj.getOrderby(); - // 鑾峰彇浜ゆ崲瀵硅薄 - GoodsClass exchangeObject = goodsClassMapper.getByAdjoinOrder(order, moveType); - if (exchangeObject == null) { - if (moveType == 1) { - throw new GoodsClassException(1, "鍦ㄧ浉鍚屼娇鐢ㄥ湴鏂逛腑浼樺厛绾у凡缁忔渶浣庝簡"); - } else { - throw new GoodsClassException(1, "鍦ㄧ浉鍚屼娇鐢ㄥ湴鏂逛腑浼樺厛绾у凡缁忔渶楂樹簡"); - } - } - - resultObj.setOrderby(exchangeObject.getOrderby()); - exchangeObject.setOrderby(order); - - goodsClassMapper.updateByPrimaryKey(resultObj); - goodsClassMapper.updateByPrimaryKey(exchangeObject); - } - -} +package com.yeshi.fanli.service.impl.goods; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import javax.annotation.Resource; + +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; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.yeshi.fanli.dao.mybatis.GoodsClassMapper; +import com.yeshi.fanli.entity.bus.clazz.GoodsClass; +import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass; +import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass; +import com.yeshi.fanli.exception.goods.GoodsClassException; +import com.yeshi.fanli.service.inter.goods.GoodsClassService; +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.FilePathEnum; +import com.yeshi.fanli.util.StringUtil; + +@Service +public class GoodsClassServiceImpl implements GoodsClassService { + + @Resource + private GoodsClassMapper goodsClassMapper; + + @Resource + private GoodsSubClassService goodsSubClassService; + + @Resource + private LabelClassService labelClassService; + + @Resource + private TaoBaoClassService taoBaoClassService; + + public GoodsClass getGoodsClass(long id) { + return goodsClassMapper.selectByPrimaryKey(id); + } + + @Override + public int updateByPrimaryKey(GoodsClass record) { + return goodsClassMapper.updateByPrimaryKey(record); + } + + @Override + public String getKeysById(Long id) { + return goodsClassMapper.getKeysById(id); + } + + @Override + public GoodsClass selectByPrimaryKey(Long gcid) { + return goodsClassMapper.selectByPrimaryKey(gcid); + } + + @Override + public int updateByPrimaryKeySelective(GoodsClass record) { + return goodsClassMapper.updateByPrimaryKeySelective(record); + } + + @Cacheable(value = "classCache", key = "'getGoodsClass-'+#gcid") + @Override + public GoodsClass getGoodsClassCache(long gcid) { + return getGoodsClass(gcid); + } + + @Override + public void deleteGoodsClass(long id) { + goodsClassMapper.deleteByPrimaryKey(id); + } + + @Override + public List<GoodsClass> listquery(Integer sex) throws Exception { + + List<GoodsClass> list = goodsClassMapper.getGoodsClassAll(sex); + + if (list != null && list.size() == 0) { + return list; + } + + for (GoodsClass gclass : list) { + Long iosClick = gclass.getIosClick(); + Long androidClick = gclass.getAndroidClick(); + + if (iosClick != null && androidClick != null) { + gclass.setCountClick(iosClick + androidClick); + } else if (androidClick != null) { + gclass.setCountClick(androidClick); + } else if (iosClick != null) { + gclass.setCountClick(iosClick); + } else { + gclass.setCountClick(0l); + } + + // 鍙傛暟澶勭悊 + String searchParam = gclass.getSearchParam(); + if (searchParam == null) { + gclass.setSearchParam(""); + } else { + gclass.setSearchParam(searchParam); + } + + // 鏍囩 + int countlabel = labelClassService.getCountQueryByClassId(gclass.getId()); + gclass.setCountlabel(countlabel); + + List<TaoBaoClass> listTB = taoBaoClassService.listBySystemCid(0, Integer.MAX_VALUE, gclass.getId()); + if (listTB == null || listTB.size() == 0) { + gclass.setTaobaoCids(""); + } else { + String taobaoCids = ""; + for (TaoBaoClass taoBaoClass : listTB) { + taobaoCids = taobaoCids + taoBaoClass.getCategoryName() + "-" + taoBaoClass.getCategoryId() + ","; + } + + if (!StringUtil.isNullOrEmpty(taobaoCids)) { + taobaoCids = taobaoCids.substring(0, taobaoCids.length() - 1); + } + gclass.setTaobaoCids(taobaoCids); + } + + } + return list; + } + + public List<GoodsClass> getGoodsClassAll() { + return goodsClassMapper.getGoodsClassAll(null); + } + + @Override + @Transactional(rollbackFor=Exception.class) + public void saveObject(MultipartFile file, GoodsClass record) throws GoodsClassException, Exception { + + String name = record.getName(); + if (name == null || name.trim().length() == 0) { + throw new GoodsClassException(1, "鍒嗙被鍚嶇О涓嶈兘涓虹┖"); + } + + Integer sex = record.getSex(); + if (sex == null) { + throw new GoodsClassException(1, "鎬у埆璁剧疆涓嶈兘涓虹┖"); + } + + // 鍥剧墖涓婁紶 + String picture = null; + if (file != null) { + picture = uploadPicture(file); + } + + String params = record.getSearchParam(); + if (params == null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) { + record.setSearchParam(null); + } else if (!StringUtil.isJson(params)) { + throw new GoodsClassException(1, "绛涢�夋潯浠堕潪JSON鏍煎紡"); + } + + Long id = record.getId(); + if (id == null) { + record.setPicture(picture); + record.setIosClick(0L); + record.setAndroidClick(0L); + record.setCreatetime(java.lang.System.currentTimeMillis()); + + Integer state = record.getState(); + if (state == null) { + record.setState(0); + } + + if (params == null || params.trim().length() == 0 || "null".equalsIgnoreCase(params)) { + // 鎼滅储鏉′欢:鏈夊埜銆佸湪鍞环20-200銆佺墰鐨櫍杞诲井 + record.setSearchParam( + "{\"quan\":1,\"endPrice\":220,\"includeGoodRate\":true,\"baoYou\":true,\"ip\":\"218.72.111.105\"}"); + } + + // 鎺掑簭 + int maxOrder = goodsClassMapper.getMaxOrder(); + record.setOrderby(maxOrder + 1); + + goodsClassMapper.insert(record); + + } else { + // 淇敼 + GoodsClass resultObj = goodsClassMapper.selectByPrimaryKey(id); + if (resultObj == null) { + throw new GoodsClassException(1, "淇敼鍐呭宸蹭笉瀛樺湪"); + } + + if (picture != null && picture.trim().length() > 0) { + // 鍒犻櫎鑰佸浘 + removePicture(resultObj.getPicture()); + // 瀛樺偍鏂板浘 + record.setPicture(picture); + } else { + record.setPicture(resultObj.getPicture()); + } + + record.setIosClick(resultObj.getIosClick()); + record.setOrderby(resultObj.getOrderby()); + record.setAndroidClick(resultObj.getAndroidClick()); + record.setCreatetime(resultObj.getCreatetime()); + goodsClassMapper.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].trim(); + tbCidList.add(Long.parseLong(cid)); + } + } + taoBaoClassService.save(record.getId(), tbCidList); + } + + /** + * 涓婁紶鍥剧墖 + * + * @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 filePath = FilePathEnum.goodsClass.getPath() + 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 (!Constant.IS_TEST) + if (picture != null && picture.trim().length() > 0) { + COSManager.getInstance().deleteFile(picture); + } + } + + @Override + public void uploadPicture(GoodsClass record, MultipartFile file) throws Exception { + + InputStream inputStream = file.getInputStream(); + String contentType = file.getContentType(); + String type = contentType.substring(contentType.indexOf("/") + 1); + // 涓婁紶鏂囦欢鐩稿浣嶇疆 + String fileUrl = FilePathEnum.goodsClassOld.getPath()+ 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(); + } + + /* 鏇存柊鏁版嵁搴撲俊鎭� */ + if (!StringUtil.isNullOrEmpty(uploadFilePath)) { + record.setPicture(uploadFilePath); + goodsClassMapper.updateByPrimaryKey(record); + } + + } + + /** + * 鍒犻櫎鍥剧墖 + */ + @Override + public void removePicture(GoodsClass record) throws Exception { + + String fileUrl = record.getPicture(); + boolean deleteFile = true; + + if (StringUtil.isNullOrEmpty(fileUrl)) { + return; + } + + deleteFile = COSManager.getInstance().deleteFile(fileUrl); + if (deleteFile) { + record.setPicture(null); + // 鏇存柊鏁版嵁搴� + goodsClassMapper.updateByPrimaryKey(record); + } + } + + @Override + public void switchState(Long id) throws GoodsClassException { + if (id == null) { + throw new GoodsClassException(1, "璇蜂紶閫掓纭弬鏁�"); + } + GoodsClass resultObj = goodsClassMapper.selectByPrimaryKey(id); + if (resultObj == null) { + throw new GoodsClassException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�"); + } + + Integer state = resultObj.getState(); + if (state == null || state == 0) { + state = 1; + } else { + state = 0; + } + + GoodsClass updateObj = new GoodsClass(); + updateObj.setId(id); + updateObj.setState(state); + goodsClassMapper.updateByPrimaryKeySelective(updateObj); + } + + + @Override + @Cacheable(value = "classCache", key = "'getEffectiveClassCache'") + public List<GoodsClass> getEffectiveClassCache() { + return goodsClassMapper.getEffectiveClass(); + } + + @Override + @Cacheable(value = "classCache", key = "'getClassListAllCache'+#changePicture") + public List<Map<String, Object>> getClassListAllCache(boolean changePicture) throws Exception { + + List<GoodsClass> goodsClassList = goodsClassMapper.getEffectiveClass(); + if (goodsClassList == null || goodsClassList.size() == 0) { + return null; + } + + List<Long> listID = new ArrayList<Long>(); + for (GoodsClass coodsClass : goodsClassList) { + listID.add(coodsClass.getId()); + } + + List<GoodsSubClass> listSub = goodsSubClassService.queryByListCid(listID); + + Gson gson = new GsonBuilder().create(); + + List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); + for (GoodsClass goodsClass : goodsClassList) { + + List<GoodsSubClass> subClassList = new ArrayList<GoodsSubClass>(); + + if (listSub != null && listSub.size() > 0) { + Iterator<GoodsSubClass> iterator = listSub.iterator(); + while (iterator.hasNext()) { + GoodsSubClass goodsSubClass = iterator.next(); + GoodsClass goodsClassInner = goodsSubClass.getRootClass(); + if (goodsClass.getId() == goodsClassInner.getId()) { + + // 1.5.3鏂扮増鍥剧墖鏇挎崲 + if (changePicture) { + String pictureSecond = goodsSubClass.getPictureSecond(); + if (pictureSecond != null && pictureSecond.trim().length() > 0) { + goodsSubClass.setPicture(pictureSecond); + } + } + + // 瀵瑰簲涓嬪瓙鍒嗙被 + subClassList.add(goodsSubClass); + iterator.remove(); + } + + } + } + + Map<String, Object> map = new HashMap<String, Object>(); + map.put("gclass", goodsClass); + map.put("subList", gson.toJson(subClassList)); + + list.add(map); + } + + return list; + } + + @Override + @Transactional(rollbackFor=Exception.class) + public void updateOrder(Long id, Integer moveType) throws GoodsClassException { + + if (id == null || moveType == null || (!moveType.equals(1) && !moveType.equals(-1))) { + throw new GoodsClassException(1, "璇蜂紶閫掓纭弬鏁�"); + } + + GoodsClass resultObj = goodsClassMapper.selectByPrimaryKey(id); + if (resultObj == null) { + throw new GoodsClassException(1, "姝ゅ唴瀹瑰凡涓嶅瓨鍦�"); + } + + Integer order = resultObj.getOrderby(); + // 鑾峰彇浜ゆ崲瀵硅薄 + GoodsClass exchangeObject = goodsClassMapper.getByAdjoinOrder(order, moveType); + if (exchangeObject == null) { + if (moveType == 1) { + throw new GoodsClassException(1, "鍦ㄧ浉鍚屼娇鐢ㄥ湴鏂逛腑浼樺厛绾у凡缁忔渶浣庝簡"); + } else { + throw new GoodsClassException(1, "鍦ㄧ浉鍚屼娇鐢ㄥ湴鏂逛腑浼樺厛绾у凡缁忔渶楂樹簡"); + } + } + + resultObj.setOrderby(exchangeObject.getOrderby()); + exchangeObject.setOrderby(order); + + goodsClassMapper.updateByPrimaryKey(resultObj); + goodsClassMapper.updateByPrimaryKey(exchangeObject); + } + +} -- Gitblit v1.8.0