|
@@ -22,6 +22,7 @@ import com.slodon.b2b2c.core.util.TimeUtil;
|
|
|
import com.slodon.b2b2c.core.util.UserUtil;
|
|
|
import com.slodon.b2b2c.core.util.WebUtil;
|
|
|
import com.slodon.b2b2c.enums.SeoTypeConstant;
|
|
|
+import com.slodon.b2b2c.enums.WebSiteConstant;
|
|
|
import com.slodon.b2b2c.goods.dto.SearchProductDTO;
|
|
|
import com.slodon.b2b2c.member.example.MemberFollowStoreExample;
|
|
|
import com.slodon.b2b2c.member.pojo.Member;
|
|
@@ -31,10 +32,7 @@ import com.slodon.b2b2c.model.goods.GoodsModel;
|
|
|
import com.slodon.b2b2c.model.goods.StoreCertificateNewListModel;
|
|
|
import com.slodon.b2b2c.model.member.MemberFollowStoreModel;
|
|
|
import com.slodon.b2b2c.model.seller.*;
|
|
|
-import com.slodon.b2b2c.seller.example.StoreCertificateExample;
|
|
|
-import com.slodon.b2b2c.seller.example.StoreExample;
|
|
|
-import com.slodon.b2b2c.seller.example.StoreInnerLabelExample;
|
|
|
-import com.slodon.b2b2c.seller.example.VendorExample;
|
|
|
+import com.slodon.b2b2c.seller.example.*;
|
|
|
import com.slodon.b2b2c.seller.pojo.*;
|
|
|
import com.slodon.b2b2c.system.pojo.SysSeo;
|
|
|
import com.slodon.b2b2c.vo.goods.SysSeoVO;
|
|
@@ -61,6 +59,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author slodon
|
|
@@ -74,6 +73,10 @@ public class FrontStoreController {
|
|
|
@Resource
|
|
|
private StoreModel storeModel;
|
|
|
@Resource
|
|
|
+ private StoreNameModel storeNameModel;
|
|
|
+ @Resource
|
|
|
+ private StoreSiteInfoModel storeSiteInfoModel;
|
|
|
+ @Resource
|
|
|
private VendorModel vendorModel;
|
|
|
@Resource
|
|
|
private StoreCertificateModel storeCertificateModel;
|
|
@@ -128,7 +131,11 @@ public class FrontStoreController {
|
|
|
StoreExample storeExample = new StoreExample();
|
|
|
storeExample.setState(StoreConst.STORE_STATE_OPEN);
|
|
|
// storeExample.setStoreIdIn(storeIds.substring(1));
|
|
|
- storeExample.setStoreNameLike(keyword);
|
|
|
+ String webSite = WebUtil.getWebSite(request);
|
|
|
+ if (WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
|
|
|
+ storeExample.setStoreNameLike(keyword);
|
|
|
+ storeExample.setBusinessState(StoreConst.STORE_BUSINESS_STATE_OPEN);
|
|
|
+ }
|
|
|
if (sort == 2) {
|
|
|
storeExample.setOrderBy("store_look_volume DESC");
|
|
|
} else {
|
|
@@ -136,6 +143,28 @@ public class FrontStoreController {
|
|
|
}
|
|
|
|
|
|
List<Store> storeList = storeModel.getStoreList(storeExample, pager);
|
|
|
+ List<StoreName> storeNameList = new ArrayList<>();
|
|
|
+ List<StoreSiteInfo> storeSiteInfoList = new ArrayList<>();
|
|
|
+ if (WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)) {
|
|
|
+ StoreNameExample storeNameExample = new StoreNameExample();
|
|
|
+ storeNameExample.setStoreNameLike(keyword);
|
|
|
+ storeNameExample.setWebSite(webSite);
|
|
|
+ storeNameList = storeNameModel.getStoreNameList(storeNameExample, null);
|
|
|
+ if (CollectionUtils.isEmpty(storeNameList)) {
|
|
|
+ //没有满足条件的店铺
|
|
|
+ return SldResponse.success(new PageVO<>(vos, pager));
|
|
|
+ }
|
|
|
+ StoreSiteInfoExample storeSiteInfoExample = new StoreSiteInfoExample();
|
|
|
+ storeSiteInfoExample.setStoreIdIn(storeNameList.stream().map(StoreName::getStoreId).collect(Collectors.toList()));
|
|
|
+ storeSiteInfoExample.setWebSite(webSite);
|
|
|
+ storeSiteInfoExample.setBusinessState(StoreConst.STORE_BUSINESS_STATE_OPEN);
|
|
|
+ storeSiteInfoList = storeSiteInfoModel.getStoreSiteInfoList(storeSiteInfoExample, null);
|
|
|
+ if (CollectionUtils.isEmpty(storeSiteInfoList)) {
|
|
|
+ //没有满足条件的店铺
|
|
|
+ return SldResponse.success(new PageVO<>(vos, pager));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (CollectionUtils.isEmpty(storeList)) {
|
|
|
//没有满足条件的店铺
|
|
|
return SldResponse.success(new PageVO<>(vos, pager));
|
|
@@ -219,6 +248,27 @@ public class FrontStoreController {
|
|
|
// vo.setNewGoodsListVOS(storeGoodsOnlineList);
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
+ for (StoreSiteInfo storeSiteInfo : storeSiteInfoList) {
|
|
|
+ Store store = storeModel.getStoreByStoreId(storeSiteInfo.getStoreId());
|
|
|
+ if (store != null) {
|
|
|
+ store.setStoreName(storeNameList.stream()
|
|
|
+ .filter(storeNameWebSite -> storeNameWebSite.getStoreId().equals(storeSiteInfo.getStoreId()))
|
|
|
+ .findFirst()
|
|
|
+ .map(StoreName::getStoreName)
|
|
|
+ .orElse(""));
|
|
|
+ store.setStoreLogo(storeSiteInfo.getStoreLogo());
|
|
|
+ //默认店铺logo
|
|
|
+ if (StringUtils.isEmpty(store.getStoreLogo())) {
|
|
|
+ store.setStoreLogo(stringRedisTemplate.opsForValue().get("default_image_store_logo"));
|
|
|
+ }
|
|
|
+ //默认店铺背景图片(取移动端横幅)
|
|
|
+ if (StringUtils.isEmpty(store.getStoreBannerMobile())) {
|
|
|
+ store.setStoreBannerMobile(stringRedisTemplate.opsForValue().get("default_image_store_backdrop"));
|
|
|
+ }
|
|
|
+ FrontStoreListVO vo = new FrontStoreListVO(store);
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
return SldResponse.success(new PageVO<>(vos, pager));
|
|
|
}
|
|
@@ -231,9 +281,19 @@ public class FrontStoreController {
|
|
|
@GetMapping("detail")
|
|
|
public JsonResult<FrontStoreVO> detail(HttpServletRequest request, @RequestParam("storeId") Long storeId) throws IOException, WriterException {
|
|
|
Member member = UserUtil.getUser(request, Member.class);
|
|
|
-
|
|
|
+ String webSite = WebUtil.getWebSite(request);
|
|
|
Store store = storeModel.getStoreByStoreId(storeId);
|
|
|
- if (store.getState() != StoreConst.STORE_STATE_OPEN) {
|
|
|
+ if(WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)){
|
|
|
+ store = storeSiteInfoModel.getStoreByStoreIdAndWebSite(storeId, webSite);
|
|
|
+ if (!StringUtils.isEmpty(store.getStoreId())) {
|
|
|
+ StoreNameExample storeNameExample = new StoreNameExample();
|
|
|
+ storeNameExample.setStoreId(store.getStoreId());
|
|
|
+ storeNameExample.setWebSite(webSite);
|
|
|
+ StoreName storeName = storeNameModel.getStoreNameByExample(storeNameExample);
|
|
|
+ store.setStoreName(storeName != null ? storeName.getStoreName() : null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (store.getState() != StoreConst.STORE_STATE_OPEN && store.getBusinessState() != StoreConst.STORE_BUSINESS_STATE_OPEN) {
|
|
|
throw new MallException("店铺已关闭", ResponseConst.STATE_STORE_CLOSE);
|
|
|
}
|
|
|
//默认店铺logo
|
|
@@ -268,22 +328,22 @@ public class FrontStoreController {
|
|
|
}
|
|
|
|
|
|
//店铺荣誉资质信息(区别于上面的StoreCertificate老表)
|
|
|
- List<StoreCertificateList> storeCertificateList = storeCertificateNewListModel.getStoreCertificateByStoreId(storeId);
|
|
|
+ List<StoreCertificateList> storeCertificateList = storeCertificateNewListModel.getStoreCertificateByStoreId(storeId, webSite);
|
|
|
vo.setStoreCertificateList(storeCertificateList);
|
|
|
|
|
|
//店铺简介图片信息
|
|
|
- List<StoreProfileList> storeProfileList = storeProfileModel.getStoreProfileByStoreIdAndStatus(storeId);
|
|
|
+ List<StoreProfileList> storeProfileList = storeProfileModel.getStoreProfileByStoreIdAndStatus(storeId, webSite);
|
|
|
vo.setStoreProfileList(storeProfileList);
|
|
|
//店铺简介的内容信息
|
|
|
- StoreProfileTextList storeProfileTextList = storeProfileTextListModel.getList(storeId, "1");
|
|
|
+ StoreProfileTextList storeProfileTextList = storeProfileTextListModel.getList(storeId, webSite);
|
|
|
vo.setStoreProfileTextList(storeProfileTextList);
|
|
|
|
|
|
//店铺工厂图片信息
|
|
|
- List<StoreCompanyShowList> storeCompanyShowList = sellerStoreCompanyShowModel.getStoreCompanyShowByStoreIdAndStatus(storeId);
|
|
|
+ List<StoreCompanyShowList> storeCompanyShowList = sellerStoreCompanyShowModel.getStoreCompanyShowByStoreIdAndStatus(storeId, webSite);
|
|
|
vo.setStoreCompanyShowList(storeCompanyShowList);
|
|
|
|
|
|
//seo
|
|
|
- SysSeoVO sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(storeId, SeoTypeConstant.SEO_TYPE_SHOP);
|
|
|
+ SysSeoVO sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(storeId, SeoTypeConstant.SEO_TYPE_SHOP, webSite);
|
|
|
vo.setSeoInfo(sysSeoVO);
|
|
|
|
|
|
//店铺二维码
|
|
@@ -316,15 +376,17 @@ public class FrontStoreController {
|
|
|
})
|
|
|
@GetMapping("storeCategory")
|
|
|
public JsonResult<Object> storeCategory(HttpServletRequest request, @RequestParam("storeId") Long storeId) {
|
|
|
+ String webSite = WebUtil.getWebSite(request);
|
|
|
PagerInfo pager = WebUtil.handlerPagerInfo(request);
|
|
|
List<StoreCategoryTreeVO> tree = new ArrayList<>();
|
|
|
StoreInnerLabelExample storeInnerLabelExample = new StoreInnerLabelExample();
|
|
|
+ storeInnerLabelExample.setWebSite(webSite);
|
|
|
storeInnerLabelExample.setParentInnerLabelId(0);
|
|
|
storeInnerLabelExample.setStoreId(storeId);
|
|
|
storeInnerLabelExample.setOrderBy("inner_label_sort ASC");
|
|
|
storeInnerLabelExample.setIsShow(StoreCateConst.STORE_LABEL_IS_SHOW);
|
|
|
List<StoreInnerLabel> storeInnerLabelList = storeInnerLabelModel.getStoreInnerLabelList(storeInnerLabelExample, pager);
|
|
|
- generateTree(tree, storeInnerLabelList, 2);
|
|
|
+ generateTree(tree, storeInnerLabelList, 2, webSite);
|
|
|
|
|
|
return SldResponse.success(tree);
|
|
|
}
|
|
@@ -336,7 +398,7 @@ public class FrontStoreController {
|
|
|
* @param data data
|
|
|
* @return 返回列表
|
|
|
*/
|
|
|
- private List<StoreCategoryTreeVO> generateTree(List<StoreCategoryTreeVO> treeList, List<StoreInnerLabel> data, Integer grade) {
|
|
|
+ private List<StoreCategoryTreeVO> generateTree(List<StoreCategoryTreeVO> treeList, List<StoreInnerLabel> data, Integer grade, String webSite) {
|
|
|
if (grade > 0) {
|
|
|
for (StoreInnerLabel storeInnerLabel : data) {
|
|
|
StoreCategoryTreeVO tree = new StoreCategoryTreeVO();
|
|
@@ -350,13 +412,14 @@ public class FrontStoreController {
|
|
|
|
|
|
|
|
|
StoreInnerLabelExample storeInnerLabelExample = new StoreInnerLabelExample();
|
|
|
+ storeInnerLabelExample.setWebSite(webSite);
|
|
|
storeInnerLabelExample.setParentInnerLabelId(storeInnerLabel.getInnerLabelId());
|
|
|
storeInnerLabelExample.setIsShow(StoreCateConst.STORE_LABEL_IS_SHOW);
|
|
|
storeInnerLabelExample.setOrderBy("inner_label_sort ASC");
|
|
|
tree.setChildren(generateTree(new ArrayList<>(),
|
|
|
- storeInnerLabelModel.getStoreInnerLabelList(storeInnerLabelExample, null), grade - 1));
|
|
|
+ storeInnerLabelModel.getStoreInnerLabelList(storeInnerLabelExample, null), grade - 1,webSite));
|
|
|
SysSeoVO sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(Integer.valueOf(tree.getInnerLabelId()).longValue(),
|
|
|
- SeoTypeConstant.SEO_TYPE_SHOP_CATEGORY);
|
|
|
+ SeoTypeConstant.SEO_TYPE_SHOP_CATEGORY,webSite);
|
|
|
tree.setSeoInfo(sysSeoVO);
|
|
|
|
|
|
treeList.add(tree);
|