From ddf5db7d31af51fcf697eac0cee7dd46ff73bcc1 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期二, 18 二月 2020 12:50:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java | 786 ++++++++++++++++++++++---------------------------------
1 files changed, 312 insertions(+), 474 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 e62f65f..c957007 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,396 +1,96 @@
package com.yeshi.fanli.service.impl.goods;
-import java.io.FileNotFoundException;
-import java.io.IOException;
import java.io.InputStream;
-import java.io.Serializable;
-import java.net.URLEncoder;
-import java.text.MessageFormat;
import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import java.util.UUID;
import javax.annotation.Resource;
-import javax.transaction.Transactional;
-import org.apache.commons.beanutils.PropertyUtils;
-import org.hibernate.HibernateException;
-import org.hibernate.Query;
-import org.hibernate.Session;
import org.springframework.cache.annotation.Cacheable;
-import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-
-import com.yeshi.fanli.dao.goods.GoodsClassDao;
-import com.yeshi.fanli.dao.mybatis.GoodsClassMapper;
-import com.yeshi.fanli.dao.mybatis.lable.LabelClassMapper;
-import com.yeshi.fanli.entity.admin.GoodsClassAdmin;
-import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
-import com.yeshi.fanli.entity.bus.su.clazz.SuperGoodsClass;
-import com.yeshi.fanli.entity.system.System;
-import com.yeshi.fanli.service.inter.config.SystemService;
-import com.yeshi.fanli.service.inter.goods.ClassRecommendGoodsService;
-import com.yeshi.fanli.service.inter.goods.GoodsClassService;
-import com.yeshi.fanli.service.inter.goods.GoodsSecondClassService;
-import com.yeshi.fanli.service.inter.goods.SuperGoodsClassService;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.Utils;
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 GoodsClassDao goodsClassDao;
-
- @Resource
- private SystemService systemService;
-
- @Resource
- private SuperGoodsClassService superGoodsClassService;
-
- @Resource
- private ClassRecommendGoodsService classRecommendGoodsService;
-
- @Resource
- private GoodsSecondClassService goodsSecondClassService;
-
- @Resource
private GoodsClassMapper goodsClassMapper;
-
+
@Resource
- private LabelClassMapper labelClassMapper;
-
+ private GoodsSubClassService goodsSubClassService;
- public GoodsClass getGoodsClass(long gcid) {
- return goodsClassDao.find(GoodsClass.class, gcid);
+ @Resource
+ private LabelClassService labelClassService;
+
+ @Resource
+ private TaoBaoClassService taoBaoClassService;
+
+ public GoodsClass getGoodsClass(long id) {
+ return goodsClassMapper.selectByPrimaryKey(id);
}
@Override
- public void deleteGoodsClass(final long id) {
- goodsClassDao.excute(new HibernateCallback() {
- public Object doInHibernate(Session session)
- throws HibernateException {
- Query query = session.createQuery("delete from GoodsClass where id = ? ");
- query.setParameter(0, id);
- query.executeUpdate();
- return null;
- }
- });
+ public int updateByPrimaryKey(GoodsClass record) {
+ return goodsClassMapper.updateByPrimaryKey(record);
}
-
+
@Override
- @SuppressWarnings("unchecked")
- public List<GoodsClass> getByorderby(int orderby) {
-
- List<GoodsClass> goodsClassList = (List<GoodsClass>) goodsClassDao.excute(new HibernateCallback<List<GoodsClass>>() {
- public List<GoodsClass> doInHibernate(Session session) throws HibernateException {
- Query query = session.createQuery(" from GoodsClass rs where rs.orderby = ? ");
- query.setParameter(0, orderby);
- return query.list();
- }
- });
-
- return goodsClassList;
- }
-
-
- @SuppressWarnings("unchecked")
- public List<GoodsClassAdmin> getGoodsClassAdmins(int index, String platform, String packages, String key) {
- final int strat = index * Constant.PAGE_SIZE;
- platform = Utils.getMap().get(platform);
- com.yeshi.fanli.entity.system.System system = systemService.getSystem(platform, packages);
- List<GoodsClass> GoodsClassList = null;
- List<SuperGoodsClass> superGoodsClassList = null;
- Map<Long, GoodsClassAdmin> goodsClassAdminMap = new HashMap<Long, GoodsClassAdmin>();
- List<GoodsClassAdmin> goodsClassAdmin = new ArrayList<GoodsClassAdmin>();
- if (system == null) {
- final String likekey = "%" + key + "%";
- GoodsClassList = (List<GoodsClass>) goodsClassDao.excute(new HibernateCallback<List<GoodsClass>>() {
- public List<GoodsClass> doInHibernate(Session session) throws HibernateException {
- Query query = session.createQuery(" from GoodsClass rs where rs.name like ? ");
- query.setFirstResult(strat);
- query.setMaxResults(Constant.PAGE_SIZE);
- query.setParameter(0, likekey);
- return query.list();
- }
- });
- List<Long> gcIdList = new ArrayList<Long>();
- for (GoodsClass rs : GoodsClassList) {
- gcIdList.add(rs.getId());
- }
- superGoodsClassList = superGoodsClassService.getSuperGoodsClasss(gcIdList);
- Map<Long, List<System>> superMap = new HashMap<Long, List<System>>();
- Long rsId = null;
- List<System> systemList = null;
- for (SuperGoodsClass srs : superGoodsClassList) {
- rsId = srs.getGoodsClass().getId();
- systemList = superMap.get(rsId);
- if (systemList == null) {
- systemList = new ArrayList<System>();
- }
- systemList.add(srs.getSystem());
- superMap.put(rsId, systemList);
- }
- GoodsClassAdmin rsa = null;
- for (GoodsClass GoodsClass : GoodsClassList) {
- long id = GoodsClass.getId();
- rsa = goodsClassAdminMap.get(id);
- if (rsa == null) {
- rsa = new GoodsClassAdmin();
- }
- List<System> list = superMap.get(id);
- if (list != null) {
- rsa.getSystemList().addAll(superMap.get(id));
- }
- rsa.setGoodsClass(GoodsClass);
- goodsClassAdminMap.put(id, rsa);
- }
- } else if (system != null) {
- String likekey = "%" + key + "%";
- superGoodsClassList = superGoodsClassService.getSuperGoodsClassList(system.getId(), strat,
- Constant.PAGE_SIZE, likekey);
- List<Long> gcIdList = new ArrayList<Long>();
- for (SuperGoodsClass superGoodsClass : superGoodsClassList) {
- GoodsClass GoodsClass = superGoodsClass.getGoodsClass();
- gcIdList.add(GoodsClass.getId());
- }
- superGoodsClassList = superGoodsClassService.getSuperGoodsClasss(gcIdList);
- GoodsClassAdmin rsa = null;
- for (SuperGoodsClass superGoodsClass : superGoodsClassList) {
- GoodsClass goodsClass = superGoodsClass.getGoodsClass();
- rsa = goodsClassAdminMap.get(goodsClass.getId());
- if (rsa == null) {
- rsa = new GoodsClassAdmin(goodsClass);
- }
- rsa.getSystemList().add(superGoodsClass.getSystem());
- goodsClassAdminMap.put(goodsClass.getId(), rsa);
- }
- }
- Map map = Utils.orderBy(goodsClassAdminMap);
- Collection<GoodsClassAdmin> values = map.values();
- goodsClassAdmin.addAll(values);
- return goodsClassAdmin;
-
+ public String getKeysById(Long id) {
+ return goodsClassMapper.getKeysById(id);
}
- public int getCount(String platform, String packages, final String key) {
- platform = Utils.getMap().get(platform);
- final System system = systemService.getSystem(platform, packages);
- return (Integer) goodsClassDao.excute(new HibernateCallback<Integer>() {
-
- public Integer doInHibernate(Session session) throws HibernateException {
- String k = "%" + key + "%";
- if (system == null) {
- // Query query = session.createSQLQuery("select
- // count(a.name) from (select `name` from yeshi_ec_class
- // where `name` like ?) a");
- Query query = session.createQuery("select count(gc.id) from GoodsClass gc where gc.name like ?");
- query.setParameter(0, k);
- Long result = (Long) query.uniqueResult();
- int intValue = result.intValue();
- return intValue;
- } else {
- // Query query =session.createSQLQuery("select count(a.name)
- // from (select hs.name from yeshi_ec_super_goodsclass shs
- // left join yeshi_ec_class hs on shs.goodsclass_id=hs.id
- // where shs.system_id=? and hs.name like ?) a");
- Query query = session.createQuery(
- "select count(sgc.id) from SuperGoodsClass sgc where sgc.goodsClass.name like ? and sgc.system.id=?");
- query.setParameter(0, k);
- query.setParameter(1, system.getId());
- Long result = (Long) query.uniqueResult();
- int intValue = result.intValue();
- return intValue;
- }
- }
- });
- }
-
- // @Transactional
- // public void addGoodsClass(GoodsClass goodsClass) {
- // goodsClass.setCreatetime(java.lang.System.currentTimeMillis());
- // Serializable id = goodsClassDao.save(goodsClass);
- // Properties properties = new Properties();
- // InputStream in = null;
- // try {
- // in = new BufferedInputStream (new FileInputStream("url.properties"));
- // properties.load(in);
- // String url = (String) properties.get("url");
- // goodsClass.setUrl(url+id);
- // goodsClassDao.update(goodsClass);
- // } catch (FileNotFoundException e) {
- // e.printStackTrace();
- // } catch (IOException e) {
- // e.printStackTrace();
- // }finally{
- // if(in !=null){
- // try {
- // in.close();
- // } catch (IOException e) {
- // e.printStackTrace();
- // }
- // }
- // }
- // }
-
- public Integer addGoodsClass(final GoodsClass goodsClass) {
-
- return (Integer) goodsClassDao.excute(new HibernateCallback() {
-
- public Object doInHibernate(Session session) throws HibernateException {
- session.getTransaction().begin();
- goodsClass.setCreatetime(java.lang.System.currentTimeMillis());
- Serializable id = session.save(goodsClass);
- Properties properties = new Properties();
- InputStream in = null;
- try {
- in = this.getClass().getClassLoader().getResourceAsStream("url.properties");
- properties.load(in);
- String url = (String) properties.get("url");
- url = MessageFormat.format(url, id, goodsClass.getKey(), goodsClass.getName());
- goodsClass.setUrl(url);
- session.update(goodsClass);
- session.flush();
- session.getTransaction().commit();
- } catch (FileNotFoundException e) {
- session.getTransaction().rollback();
- e.printStackTrace();
- return 1;
- } catch (IOException e) {
- session.getTransaction().rollback();
- e.printStackTrace();
- return 2;
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return null;
- }
- });
- }
-
-
- @Transactional
- public void deleteGoodsClasss(long[] gcids) {
- for (long id : gcids) {
- superGoodsClassService.deleteSuperGoodsClass(id);
- classRecommendGoodsService.deleteClassGoodsByGC(id);
- goodsSecondClassService.deleteSecondClassByGC(id);
- goodsClassDao.delete(new GoodsClass(id));
- }
- }
-
- public Integer updateGoodsClass(final GoodsClass goodsClass) {
-
- return (Integer) goodsClassDao.excute(new HibernateCallback() {
-
- public Object doInHibernate(Session session) throws HibernateException {
- session.getTransaction().begin();
- goodsClass.setCreatetime(java.lang.System.currentTimeMillis());
- session.update(goodsClass);
- Properties properties = new Properties();
- InputStream in = null;
- try {
- in = this.getClass().getClassLoader().getResourceAsStream("url.properties");
- properties.load(in);
- String url = (String) properties.get("url");
-
- java.lang.System.out.println(goodsClass.getKey());
- java.lang.System.out.println(goodsClass.getName());
-
- String encodeKey = URLEncoder.encode(goodsClass.getKey(), "utf-8");
- String encodeName = URLEncoder.encode(goodsClass.getName(), "utf-8");
- url = MessageFormat.format(url, goodsClass.getId(), encodeKey, encodeName);
- goodsClass.setUrl(url);
- session.update(goodsClass);
- session.flush();
- session.getTransaction().commit();
- } catch (FileNotFoundException e) {
- session.getTransaction().rollback();
- e.printStackTrace();
- return 1;
- } catch (IOException e) {
- session.getTransaction().rollback();
- e.printStackTrace();
- return 2;
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return null;
- }
- });
- }
-
- @SuppressWarnings("unchecked")
@Override
- public List<GoodsClass> queryAll(String platform, String packages) throws Exception{
+ public GoodsClass selectByPrimaryKey(Long gcid) {
+ return goodsClassMapper.selectByPrimaryKey(gcid);
+ }
- List<System> defultList = systemService.getSystems();
+ @Override
+ public int updateByPrimaryKeySelective(GoodsClass record) {
+ return goodsClassMapper.updateByPrimaryKeySelective(record);
+ }
- platform = Utils.getMap().get(platform);
- com.yeshi.fanli.entity.system.System system = systemService.getSystem(platform, packages);
-
- List<GoodsClass> goodsClassList = new ArrayList<GoodsClass>();
- List<SuperGoodsClass> superGoodsClassList = null;
- List<Long> gcIdList = new ArrayList<Long>();
-
- if (system == null) {
-
- goodsClassList = (List<GoodsClass>) goodsClassDao.excute(new HibernateCallback<List<GoodsClass>>() {
- public List<GoodsClass> doInHibernate(Session session) throws HibernateException {
- Query query = session.createQuery(" from GoodsClass order by orderby");
- return query.list();
- }
- });
-
- if (goodsClassList == null || goodsClassList.size() == 0) {
- return null;
- }
-
- /* 瀛樻斁绫诲埆id闆嗗悎 */
- for (GoodsClass rs : goodsClassList) {
- gcIdList.add(rs.getId());
- }
+ @Cacheable(value = "classCache", key = "'getGoodsClass-'+#gcid")
+ @Override
+ public GoodsClass getGoodsClassCache(long gcid) {
+ return getGoodsClass(gcid);
+ }
- } else if (system != null) {
- superGoodsClassList = superGoodsClassService.getSuperGoodsClassAll(system.getId());
-
- if (goodsClassList == null || goodsClassList.size() == 0) {
- return null;
- }
-
- for (SuperGoodsClass superGoodsClass : superGoodsClassList) {
- GoodsClass goodsClass = superGoodsClass.getGoodsClass();
- goodsClassList.add(goodsClass);
- gcIdList.add(goodsClass.getId());
- }
-
+ @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;
}
-
- /* 鏍规嵁绫诲埆 id 鏌ヨ鍏宠仈绯荤粺鏁版嵁 */
- superGoodsClassList = superGoodsClassService.getSuperGoodsClasss(gcIdList);
- for (GoodsClass gclass : goodsClassList) {
-
+ for (GoodsClass gclass : list) {
Long iosClick = gclass.getIosClick();
Long androidClick = gclass.getAndroidClick();
@@ -404,142 +104,192 @@
gclass.setCountClick(0l);
}
- int countlabel = labelClassMapper.getCountQueryByClassId(gclass.getId());
+ // 鍙傛暟澶勭悊
+ String searchParam = gclass.getSearchParam();
+ if (searchParam == null) {
+ gclass.setSearchParam("");
+ } else {
+ gclass.setSearchParam(searchParam);
+ }
+
+ // 鏍囩
+ int countlabel = labelClassService.getCountQueryByClassId(gclass.getId());
gclass.setCountlabel(countlabel);
- List<Long> gList = new ArrayList<Long>();
- if (superGoodsClassList != null && superGoodsClassList.size() > 0) {
- for (SuperGoodsClass srs : superGoodsClassList) {
-
- long rsId = srs.getGoodsClass().getId();
-
- if (gclass.getId() == rsId) {
- System gsystem = srs.getSystem();
- gList.add(gsystem.getId());
- }
+ 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() + ",";
}
- }
-
- List<System> newList = new ArrayList<System>();
- // 鏄惁鏈夊叧鑱旂郴缁熼�夐」
- for (System dsystem : defultList) {
-
- System newsystem = new System();
-
- PropertyUtils.copyProperties(newsystem, dsystem);
- newsystem.setCheck(0);
-
- if (gList != null && gList.size() > 0) {
- Long did = newsystem.getId();
- for (Long gid : gList) {
- if (gid == did) {
- newsystem.setCheck(1);
- }
- }
- }
-
- newList.add(newsystem);
- }
-
- gclass.setSystemList(newList);
-
- }
-
- return goodsClassList;
+ if (!StringUtil.isNullOrEmpty(taobaoCids)) {
+ taobaoCids = taobaoCids.substring(0, taobaoCids.length() - 1);
+ }
+ gclass.setTaobaoCids(taobaoCids);
+ }
+
+ }
+ return list;
}
-
+
public List<GoodsClass> getGoodsClassAll() {
- return goodsClassDao.list("from GoodsClass order by orderby");
+ return goodsClassMapper.getGoodsClassAll(null);
}
@Override
- public String getKwById(Long id) {
- return goodsClassMapper.getKwById(id);
- }
-
- @Override
- public GoodsClass selectByPrimaryKey(Long gcid) {
- return goodsClassMapper.selectByPrimaryKey(gcid);
- }
-
- @Override
- public int updateByPrimaryKeySelective(GoodsClass record) {
- return goodsClassMapper.updateByPrimaryKeySelective(record);
- }
-
-
-
- @Override
- public List<GoodsClass> queryAll() {
- return goodsClassMapper.queryAll();
- }
-
- @Cacheable(value="classCache",key="'getGoodsClass-'+#gcid")
- @Override
- public GoodsClass getGoodsClassCache(long gcid) {
- return getGoodsClass(gcid);
- }
+ @Transactional(rollbackFor=Exception.class)
+ public void saveObject(MultipartFile file, GoodsClass record) throws GoodsClassException, Exception {
- @Override
- @SuppressWarnings("unchecked")
- public long saveAdd(GoodsClass record, MultipartFile file) throws Exception{
-
- long result = 0;
- record.setCreatetime(java.lang.System.currentTimeMillis());
-
- /* 涓婁紶鏂板浘鐗� */
- if (file != null) {
- InputStream inputStream = file.getInputStream();
- String contentType = file.getContentType();
- String type = contentType.substring(contentType.indexOf("/") + 1);
- // 涓婁紶鏂囦欢鐩稿浣嶇疆
- String fileUrl="ClassImg/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
- String uploadFilePath = COSManager.getInstance().uploadFile(inputStream, fileUrl).getUrl();
-
- record.setPicture(uploadFilePath);
+ String name = record.getName();
+ if (name == null || name.trim().length() == 0) {
+ throw new GoodsClassException(1, "鍒嗙被鍚嶇О涓嶈兘涓虹┖");
}
- addGoodsClass(record);
+ Integer sex = record.getSex();
+ if (sex == null) {
+ throw new GoodsClassException(1, "鎬у埆璁剧疆涓嶈兘涓虹┖");
+ }
- record.setOrderby((int)record.getId());
- updateGoodsClass(record);
-
- long id = record.getId();
- if (id > 0)
- return id;
-
- 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.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="ClassImg/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
-
- boolean deleteFile =true;
-
- /* 淇敼鍥剧墖鏃讹紝鍏堝垹闄ゅ凡瀛樺湪鍥剧墖 */
+ String fileUrl = FilePathEnum.goodsClassOld.getPath()+ UUID.randomUUID().toString().replace("-", "") + "." + type;
+
+ boolean deleteFile = true;
+
+ /* 淇敼鍥剧墖鏃讹紝鍏堝垹闄ゅ凡瀛樺湪鍥剧墖 */
String picture = record.getPicture();
- if (!StringUtil.isNullOrEmpty(picture))
+ 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);
- updateGoodsClass(record);
+ goodsClassMapper.updateByPrimaryKey(record);
}
-
+
}
/**
@@ -547,25 +297,113 @@
*/
@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);
// 鏇存柊鏁版嵁搴�
- updateGoodsClass(record);
- }
-
- return;
+ goodsClassMapper.updateByPrimaryKey(record);
+ }
}
-
+ @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