From aa552facf6d833acab0d3e3e29bda2a0fb826ffe Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期一, 25 十一月 2019 16:14:13 +0800
Subject: [PATCH] 品牌缓存生效
---
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarServiceImpl.java | 250 +++++++++++++++++++++++++++++--------------------
1 files changed, 148 insertions(+), 102 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarServiceImpl.java
index 7de7bc6..e9d1021 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/HomeNavbarServiceImpl.java
@@ -2,28 +2,27 @@
import java.io.InputStream;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.annotation.Resource;
-import javax.transaction.Transactional;
-import org.apache.commons.beanutils.PropertyUtils;
+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.yeshi.fanli.dao.mybatis.homemodule.HomeNavbarMapper;
-import com.yeshi.fanli.dao.mybatis.homemodule.SuperHomeNavbarMapper;
+import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.homemodule.HomeNavbar;
-import com.yeshi.fanli.entity.bus.homemodule.SuperHomeNavbar;
-import com.yeshi.fanli.entity.system.BusinessSystem;
-import com.yeshi.fanli.exception.ActivityException;
+import com.yeshi.fanli.entity.bus.homemodule.HomeNavbar.NavbarTypeEnum;
+import com.yeshi.fanli.entity.bus.homemodule.SwiperBanner;
import com.yeshi.fanli.exception.homemodule.HomeNavbarException;
-import com.yeshi.fanli.service.inter.config.BusinessSystemService;
+import com.yeshi.fanli.service.inter.goods.GoodsClassService;
import com.yeshi.fanli.service.inter.homemodule.HomeNavbarService;
+import com.yeshi.fanli.service.inter.homemodule.SwiperBannerService;
import com.yeshi.fanli.util.StringUtil;
@@ -31,17 +30,21 @@
public class HomeNavbarServiceImpl implements HomeNavbarService {
@Resource
- private BusinessSystemService businessSystemService;
- @Resource
private HomeNavbarMapper homeNavbarMapper;
- @Resource
- private SuperHomeNavbarMapper superHomeNavbarMapper;
-
+ @Resource
+ private GoodsClassService goodsClassService;
+
+ @Resource
+ private SwiperBannerService swiperBannerService;
+
@Override
@Transactional
public int deleteBatchByPrimaryKey(List<Long> list) {
- superHomeNavbarMapper.deleteBatchByNavbarIds(list);
+ if (list == null || list.size() == 0) {
+ return 0;
+ }
+
for (Long id: list) {
HomeNavbar homeNavbar = homeNavbarMapper.selectByPrimaryKey(id);
if (homeNavbar !=null) {
@@ -52,7 +55,6 @@
}
}
}
-
return homeNavbarMapper.deleteBatchByPrimaryKey(list);
}
@@ -66,6 +68,44 @@
throw new HomeNavbarException(1, "瀵艰埅鍚嶇О涓嶈兘涓虹┖");
}
+ String startTime_str = record.getStartTime_str();
+ if (record.isTimeTask() && (startTime_str == null || startTime_str.length() == 0)) {
+ throw new HomeNavbarException(1, "鎺у埗鏃堕棿涓嶈兘涓虹┖");
+ }
+
+
+ Integer sex = null;
+ NavbarTypeEnum type = record.getType();
+ if (NavbarTypeEnum.category.equals(type)) {
+ Long classId = record.getClassId();
+ if (classId == null) {
+ throw new HomeNavbarException(1, "璇烽�夋嫨鍒嗙被");
+ }
+
+ GoodsClass goodsClass = goodsClassService.getGoodsClass(record.getClassId());
+ if (goodsClass == null) {
+ throw new HomeNavbarException(1, "鍒嗙被涓嶅瓨鍦�");
+ }
+ sex = goodsClass.getSex();
+ if (sex == null) {
+ throw new HomeNavbarException(1, "鍒嗙被鏈寚瀹氶�傜敤鐗堟湰");
+ }
+ record.setUrl(null);
+ } else if(NavbarTypeEnum.weex.equals(type) || NavbarTypeEnum.web.equals(type)) {
+ String url = record.getUrl();
+ if (url == null || url.trim().length() == 0) {
+ throw new HomeNavbarException(1, "璇疯緭鍏Rl閾炬帴");
+ }
+ } else {
+ throw new HomeNavbarException(1, "绫诲瀷鐨勫�间笉姝g‘");
+ }
+
+
+ Long swiperBannerId = record.getSwiperBannerId();
+ if (swiperBannerId != null && swiperBannerId == 0) {
+ record.setSwiperBannerId(null);
+ }
+
// 鏃堕棿杞崲
conversionTime(record);
@@ -73,6 +113,16 @@
String picture = null;
if (file != null) {
picture = uploadPicture(file);
+ }
+
+ Boolean isDefault = record.getIsDefault();
+ if (isDefault == null) {
+ record.setIsDefault(false);
+ }
+
+ Boolean isFixed = record.getIsFixed();
+ if (isFixed == null) {
+ record.setIsFixed(false);
}
Long id = record.getId();
@@ -85,9 +135,12 @@
if (state == null) {
record.setState(0);
}
- int maxOrder = homeNavbarMapper.getMaxOrder();
- record.setOrderby(maxOrder + 1);
+ record.setOrderby(homeNavbarMapper.getDefaultMaxOrder() + 1);
+ record.setOrderMan(homeNavbarMapper.getManMaxOrder() + 1);
+ record.setOrderWoman(homeNavbarMapper.getWomanMaxOrder() + 1);
+
+ record.setIsFixed(false);//鐩墠鏃犲浐瀹氶」
homeNavbarMapper.insert(record);
} else {
// 淇敼
@@ -106,13 +159,16 @@
}
record.setOrderby(resultObj.getOrderby());
+ record.setOrderMan(resultObj.getOrderMan());
+ record.setOrderWoman(resultObj.getOrderWoman());
record.setCreatetime(resultObj.getCreatetime());
record.setUpdatetime(new Date());
+ record.setIsFixed(false);//鐩墠鏃犲浐瀹氶」
homeNavbarMapper.updateByPrimaryKey(record);
}
}
-
+
/**
* 涓婁紶鍥剧墖
* @param file
@@ -149,7 +205,7 @@
* web娈垫椂闂磋浆鎹�
* @param record
*/
- public void conversionTime(HomeNavbar record) throws ActivityException, Exception {
+ public void conversionTime(HomeNavbar record) throws HomeNavbarException, Exception {
// 鏄惁鏃堕棿鎺у埗
if(!record.isTimeTask()) {
record.setStartTime(null);
@@ -160,7 +216,7 @@
if ((startTime_str == null|| startTime_str.trim().length() == 0)
&& (endTime_str == null || endTime_str.trim().length() == 0)) {
- throw new ActivityException(1, "璇疯緭鍏ユ帶鍒舵椂闂�");
+ throw new HomeNavbarException(1, "璇疯緭鍏ユ帶鍒舵椂闂�");
} else {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
if (startTime_str != null && startTime_str.trim().length() > 0) {
@@ -177,7 +233,7 @@
}
@Override
- public void updateOrder(Long id, Integer moveType) throws HomeNavbarException, Exception{
+ public void updateOrder(Long id, Integer moveType, Integer sex) throws HomeNavbarException, Exception{
if (moveType == null || (!moveType.equals(1) && !moveType.equals(-1))) {
throw new HomeNavbarException(1, "浼犻�掔殑绫诲瀷涓嶆纭�");
@@ -187,101 +243,57 @@
throw new HomeNavbarException(1, "ID涓嶈兘涓虹┖");
}
+
HomeNavbar resultObj = homeNavbarMapper.selectByPrimaryKey(id);
if (resultObj == null) {
throw new HomeNavbarException(1, "鎿嶄綔鏁版嵁宸蹭笉瀛樺湪");
}
- Integer oldOrder = resultObj.getOrderby();
- HomeNavbar changeObj = homeNavbarMapper.getChangeOrder(moveType, oldOrder);
+ if (sex == null) {
+ sex = GoodsClass.SEX_DEFAULT;
+ }
+
+ HomeNavbar changeObj = null;
+ if (GoodsClass.SEX_ALL == sex || GoodsClass.SEX_DEFAULT == sex) {
+ Integer orderby = resultObj.getOrderby();
+ changeObj = homeNavbarMapper.getDefaultChangeOrder(moveType, orderby);
+ if (changeObj == null ) {
+ throw new HomeNavbarException(1, "宸茬粡鍦ㄦ渶杈圭紭锛屾棤鍙氦鎹㈢殑浣嶇疆");
+ }
+ resultObj.setOrderby(changeObj.getOrderby());
+ changeObj.setOrderby(orderby);
+ } else if (GoodsClass.SEX_MAN == sex) {
+ Integer orderMan = resultObj.getOrderMan();
+ changeObj = homeNavbarMapper.getManChangeOrder(moveType, orderMan);
+ if (changeObj == null ) {
+ throw new HomeNavbarException(1, "宸茬粡鍦ㄦ渶杈圭紭锛屾棤鍙氦鎹㈢殑浣嶇疆");
+ }
+ resultObj.setOrderMan(changeObj.getOrderMan());
+ changeObj.setOrderMan(orderMan);
+ } else if (GoodsClass.SEX_WOMAN == sex) {
+ Integer orderWoman = resultObj.getOrderWoman();
+ changeObj = homeNavbarMapper.getWomanChangeOrder(moveType, orderWoman);
+ if (changeObj == null ) {
+ throw new HomeNavbarException(1, "宸茬粡鍦ㄦ渶杈圭紭锛屾棤鍙氦鎹㈢殑浣嶇疆");
+ }
+ resultObj.setOrderWoman(changeObj.getOrderWoman());
+ changeObj.setOrderWoman(orderWoman);
+ }
if (changeObj == null ) {
- throw new HomeNavbarException(1, "宸茬粡鍦ㄦ渶杈圭紭锛屾棤鍙氦鎹㈢殑浣嶇疆");
+ throw new HomeNavbarException(1, "鏃犲彲浜ゆ崲鐨勪綅缃�");
}
- // 浜ゆ崲鎺掑簭搴忓彿
- resultObj.setOrderby(changeObj.getOrderby());
- changeObj.setOrderby(oldOrder);
homeNavbarMapper.updateByPrimaryKeySelective(changeObj);
homeNavbarMapper.updateByPrimaryKeySelective(resultObj);
-
}
-
- @Override
- public List<HomeNavbar> listQueryAndBusinessSystem(long start, int count, String key) {
-
- List<HomeNavbar> listObj = homeNavbarMapper.listQuery(start, count, key);
- if (listObj == null || listObj.size() == 0) {
- return null;
- }
-
- List<BusinessSystem> systemList = businessSystemService.getBusinessSystems();
-
- List<Long> listId = new ArrayList<Long>();
- for (HomeNavbar homeNavbar: listObj) {
- listId.add(homeNavbar.getId());
- }
- List<SuperHomeNavbar> listSuper = superHomeNavbarMapper.listByNavbarIds(listId);
-
- if (listSuper == null || listSuper.size() == 0) {
-
- for (HomeNavbar homeNavbar: listObj) {
- homeNavbar.setSystemList(systemList);
- }
-
- } else {
- for (HomeNavbar homeNavbar: listObj) {
-
- Long id = homeNavbar.getId();
- List<BusinessSystem> newList = new ArrayList<BusinessSystem>();
-
- // 鏄惁鏈夊叧鑱旂郴缁熼�夐」
- for (BusinessSystem dsystem : systemList) {
-
- BusinessSystem newsystem = new BusinessSystem();
- try {
- PropertyUtils.copyProperties(newsystem, dsystem);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- if (listSuper != null && listSuper.size() > 0) {
- Long systemId = newsystem.getId();
-
- for (SuperHomeNavbar superHomeNavbar : listSuper) {
- HomeNavbar navbar = superHomeNavbar.getHomeNavbar();
- BusinessSystem system = superHomeNavbar.getSystem();
-
- // 褰撳墠涓撻 銆佸綋鍓嶇郴缁�
- if (navbar != null && system != null && id == navbar.getId()
- && systemId == system.getId()) {
- newsystem.setCheck(1);
- break;
- }
- }
-
- }
-
- if (newsystem.getCheck() != 1) {
- newsystem.setCheck(0);
- }
-
- newList.add(newsystem);
- }
-
- homeNavbar.setSystemList(newList);
- }
- }
-
- return listObj;
- }
@Override
- public List<HomeNavbar> listQuery(long start, int count, String key) {
+ public List<HomeNavbar> listQuery(long start, int count, String key, Integer sex) {
- List<HomeNavbar> listObj = homeNavbarMapper.listQuery(start, count, key);
+ List<HomeNavbar> listObj = homeNavbarMapper.listQuery(start, count, key, sex);
if (listObj == null || listObj.size() == 0) {
return null;
}
@@ -311,19 +323,53 @@
homeNavbar.setEndTime_str(sdf.format(endTime));
}
}
+
+ Long classId = homeNavbar.getClassId();
+ if (classId != null) {
+ GoodsClass goodsClass = goodsClassService.selectByPrimaryKey(classId);
+ if(goodsClass != null) {
+ homeNavbar.setClassName(goodsClass.getName());
+ }
+ }
+
+ Long swiperBannerId = homeNavbar.getSwiperBannerId();
+ if (swiperBannerId != null) {
+ SwiperBanner swiperBanner = swiperBannerService.selectByPrimaryKey(swiperBannerId);
+ if(swiperBanner != null) {
+ homeNavbar.setSwiperName(swiperBanner.getTitle());
+ }
+ } else {
+ // 鍒濆鍖�
+ homeNavbar.setSwiperBannerId(0L);
+ }
}
return listObj;
}
@Override
- public long countlistQuery(String key) {
- return homeNavbarMapper.countListQuery(key);
+ public long countlistQuery(String key, Integer sex) {
+ return homeNavbarMapper.countListQuery(key, sex);
}
@Override
- public List<HomeNavbar> listQueryEffective() {
+ @Cacheable(value = "configCache", key = "'listQueryEffectiveNavbar'")
+ public List<HomeNavbar> listQueryEffectiveNavbar() {
return homeNavbarMapper.listQueryEffective();
}
+
+
+ @Override
+ @Cacheable(value = "configCache", key = "'listQueryDefaultNavbar-'+#sex")
+ public List<HomeNavbar> listQueryDefaultNavbar(Integer sex) {
+ return homeNavbarMapper.listQueryDefaultNavbar(sex);
+ }
+
+
+ @Override
+ @Cacheable(value = "configCache", key = "'listQueryFixedNavbar'")
+ public List<HomeNavbar> listQueryFixedNavbar() {
+ return homeNavbarMapper.listQueryFixedNavbar();
+ }
@Override
public HomeNavbar getEffectiveByClassId(Long classId) {
--
Gitblit v1.8.0