From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 20 五月 2020 17:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2
---
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/GoodsClassServiceImpl.java | 232 ++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 145 insertions(+), 87 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 4758c7c..8cc434f 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
@@ -21,10 +21,14 @@
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.exception.GoodsClassException;
+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
@@ -32,13 +36,15 @@
@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);
@@ -48,44 +54,41 @@
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")
+
+ @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() throws Exception{
-
- List<GoodsClass> list = goodsClassMapper.getGoodsClassAll();
-
- if (list != null && list.size() == 0) {
- return list;
- }
+ 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();
@@ -100,7 +103,7 @@
} else {
gclass.setCountClick(0l);
}
-
+
// 鍙傛暟澶勭悊
String searchParam = gclass.getSearchParam();
if (searchParam == null) {
@@ -108,25 +111,46 @@
} 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();
+ return goodsClassMapper.getGoodsClassAll(null);
}
-
@Override
- public void saveObject(MultipartFile file, GoodsClass record) throws GoodsClassException, Exception{
-
+ @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, "鎬у埆璁剧疆涓嶈兘涓虹┖");
}
// 鍥剧墖涓婁紶
@@ -134,46 +158,45 @@
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)) {
+
+ 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\"}");
+ 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());
@@ -182,77 +205,91 @@
} 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瀽
+
+ // 鏂囦欢瑙f瀽
InputStream inputStream = file.getInputStream();
String contentType = file.getContentType();
String type = contentType.substring(contentType.indexOf("/") + 1);
-
+
// 鏂囦欢璺緞
- String filePath="/img/GoodsClass/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
+ String filePath = FilePathEnum.goodsClass.getPath() + 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
*/
public void removePicture(String picture) throws Exception {
- if (picture != null && picture.trim().length() > 0) {
- COSManager.getInstance().deleteFile(picture);
- }
+ 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);
goodsClassMapper.updateByPrimaryKey(record);
}
-
+
}
/**
@@ -260,31 +297,54 @@
*/
@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
- @Cacheable(value="classCache",key="'getEffectiveClassCache'")
- public List<GoodsClass> getEffectiveClassCache() throws Exception {
- return goodsClassMapper.getEffectiveClass();
+ 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="'getClassListAllCache'+#changePicture")
+ @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();
@@ -296,23 +356,23 @@
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();
@@ -320,13 +380,12 @@
goodsSubClass.setPicture(pictureSecond);
}
}
-
+
// 瀵瑰簲涓嬪瓙鍒嗙被
subClassList.add(goodsSubClass);
iterator.remove();
}
-
-
+
}
}
@@ -340,23 +399,22 @@
return list;
}
-
@Override
- @Transactional
+ @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);
+ GoodsClass exchangeObject = goodsClassMapper.getByAdjoinOrder(order, moveType);
if (exchangeObject == null) {
if (moveType == 1) {
throw new GoodsClassException(1, "鍦ㄧ浉鍚屼娇鐢ㄥ湴鏂逛腑浼樺厛绾у凡缁忔渶浣庝簡");
@@ -364,12 +422,12 @@
throw new GoodsClassException(1, "鍦ㄧ浉鍚屼娇鐢ㄥ湴鏂逛腑浼樺厛绾у凡缁忔渶楂樹簡");
}
}
-
+
resultObj.setOrderby(exchangeObject.getOrderby());
exchangeObject.setOrderby(order);
-
+
goodsClassMapper.updateByPrimaryKey(resultObj);
goodsClassMapper.updateByPrimaryKey(exchangeObject);
}
-
+
}
--
Gitblit v1.8.0