Explorar el Código

chore: merge master

周玉环 hace 1 día
padre
commit
e1d8f934fe
Se han modificado 26 ficheros con 173 adiciones y 75 borrados
  1. BIN
      xinkeaboard-admin/src/assets/login/logo.png
  2. BIN
      xinkeaboard-admin/src/assets/login/sld_login_bg.png
  3. BIN
      xinkeaboard-admin/src/assets/login/sld_login_left.png
  4. BIN
      xinkeaboard-admin/src/assets/sld_login_bg.jpg
  5. BIN
      xinkeaboard-admin/src/assets/sld_login_bg.png
  6. 5 6
      xinkeaboard-admin/src/pages/User/Login.js
  7. 6 5
      xinkeaboard-admin/src/pages/User/Login.less
  8. 1 1
      xinkeaboard-seller/src/layouts/index.js
  9. 1 1
      xinkeaboard-seller/src/models/common.js
  10. 6 0
      xinkeaboard-seller/src/models/manage.js
  11. 1 1
      xinkeaboard-seller/src/models/project.js
  12. 1 0
      xinkeaboard-seller/src/pages/settledManage/businessInfo/index.js
  13. 1 1
      xinkeaboard-seller/src/pages/store/brand_lists.js
  14. 8 2
      xinkeaboard-seller/src/utils/utils.js
  15. 6 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/goods/example/GoodsCategoryExample.java
  16. 9 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/front/GoodsDetailsController.java
  17. 80 2
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/seller/GoodsCategorySellerController.java
  18. 3 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/seller/GoodsSellerLabelController.java
  19. 24 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/MemberFollowStoreController.java
  20. 1 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/admin/AdminStoreController.java
  21. 9 49
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/front/FrontStoreController.java
  22. 3 3
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/front/FrontPcDecoController.java
  23. 1 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/goods/FrontGoodsCategoryVO.java
  24. 3 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/goods/GoodsCategoryReadMapper.xml
  25. 1 1
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/goods/ProductReadMapper.xml
  26. 3 0
      xinkeaboard-server/doc/DDL/update.sql

BIN
xinkeaboard-admin/src/assets/login/logo.png


BIN
xinkeaboard-admin/src/assets/login/sld_login_bg.png


BIN
xinkeaboard-admin/src/assets/login/sld_login_left.png


BIN
xinkeaboard-admin/src/assets/sld_login_bg.jpg


BIN
xinkeaboard-admin/src/assets/sld_login_bg.png


+ 5 - 6
xinkeaboard-admin/src/pages/User/Login.js

@@ -10,14 +10,14 @@ import {
 
 const FormItem = Form.Item;
 
-let main_admin_top_logo = require('../../assets/logo.png');
+let main_admin_top_logo = require('../../assets/login/logo.png');
 let com_img_info = getSldImgSet('com_img_info');
 if (com_img_info != '') {
-  main_admin_top_logo = com_img_info.filter(item => item.name == 'main_admin_top_logo')[0].imageUrl || main_admin_top_logo;
+  // main_admin_top_logo = com_img_info.filter(item => item.name == 'main_admin_top_logo')[0].imageUrl || main_admin_top_logo;
 }
 const default_login_img = {
-	admin_login_bg: require('../../assets/sld_login_bg.jpg'),//登录背景
-	admin_login_left_bg: require('../../assets/sld_login_left.png'),//登录左侧图片
+	admin_login_bg: require('../../assets/login/sld_login_bg.png'),//登录背景
+	admin_login_left_bg: require('../../assets/login/sld_login_left.png'),//登录左侧图片
   main_admin_top_logo: main_admin_top_logo,//登录页logo
 };
 @connect(({ login, }) => ({
@@ -138,8 +138,7 @@ export default class LoginPage extends Component {
 				/>
           <img
             className={styles.login_logo}
-            src={login_img.main_admin_top_logo}
-            onError={()=>this.showDefault('main_admin_top_logo')}
+            src={main_admin_top_logo}
           />
           <div className={styles.right_bg}>
             <span className={styles.login_title}>{sldComLanguage('平台管理中心')}</span>

+ 6 - 5
xinkeaboard-admin/src/pages/User/Login.less

@@ -51,7 +51,7 @@
     }
     .login_logo{
       max-width: 200px;
-      max-height: 50px;
+      max-height: 88px;
       position: absolute;
       left: 90px;
       top: 87px;
@@ -65,8 +65,8 @@
     right: 80px;
     z-index: 2;
     width: 410px;
-    height: 420px;
-    background: #fff;
+    height: 440px;
+    // background: #fff;
     border-radius: 0 6px 6px 0;
     display: flex;
     flex-direction: column;
@@ -76,9 +76,10 @@
     margin-left: -10px;
 
     .login_title {
-      font-size: 30px;
       font-weight: bold;
-      color: @theme-color;
+      font-size: 30px;
+      color: #282E30;
+      // color: @theme-color;
       //font-family: 'MicrosoftYaHei-Bold';
       letter-spacing: 2px;
       display: flex;

+ 1 - 1
xinkeaboard-seller/src/layouts/index.js

@@ -11,7 +11,7 @@ class LayoutWrapper extends React.PureComponent {
 
     // 非 apply 页 & currentSite 为空,初始化请求
     if (!isApplyPage) {
-      dispatch({ type: 'global/get_site_list_data' });
+      dispatch({ type: 'global/get_site_list_data', payload: { isAll: true } });
     }
   }
 

+ 1 - 1
xinkeaboard-seller/src/models/common.js

@@ -28,7 +28,7 @@ export default {
     },
     //slodon_获取系统设置信息
     * getSetting({ payload, callback }, { call }) {
-      const response = yield call(sldCommonService, payload, 'get', 'v3/system/seller/setting/getSettingList');
+      const response = yield call(sldCommonService, {...payload, isAll: true }, 'get', 'v3/system/seller/setting/getSettingList');
       if (callback) callback(response);
     },
     //slodon_批量保存设置信息

+ 6 - 0
xinkeaboard-seller/src/models/manage.js

@@ -89,6 +89,12 @@ export default {
 
     //逐级获取商户绑定的商品分类,如果有下级,children返回空数组,否则返回null
     * getVendorGoodsCategoryById({ payload, callback }, { call }) {
+      const response = yield call(sldCommonService, payload, 'get', `v3/goods/seller/goodsCategory/getStoreCateList`);
+      if (callback) callback(response);
+    },
+
+    //逐级获取商户绑定的商品分类,如果有下级,children返回空数组,否则返回null
+    * getOldVendorGoodsCategoryById({ payload, callback }, { call }) {
       const response = yield call(sldCommonService, payload, 'get', `v3/goods/seller/goodsCategory/listByPId`);
       if (callback) callback(response);
     },

+ 1 - 1
xinkeaboard-seller/src/models/project.js

@@ -11,7 +11,7 @@ export default {
   effects: {
     //slodon_获取系统配置信息
     * get_system_info({ payload, callback }, { call }) {
-      const response = yield call(sldCommonService, payload, 'get', `v3/system/seller/setting/getSettingList`);
+      const response = yield call(sldCommonService, {...payload, isAll: true }, 'get', `v3/system/seller/setting/getSettingList`);
       if (callback) callback(response);
     },
     //slodon_获取分类列表_根据分类id获取下级分类

+ 1 - 0
xinkeaboard-seller/src/pages/settledManage/businessInfo/index.js

@@ -183,6 +183,7 @@ export default class BusinessInfo extends Component {
     const { select_cat, site_base_info } = this.state;
     dispatch({
       type: "global/get_site_list_data",
+      payload: { isAll: true },
       callback: async (res) => {
         if (res.state == 200) {
           const siteListData = res.data;

+ 1 - 1
xinkeaboard-seller/src/pages/store/brand_lists.js

@@ -296,7 +296,7 @@ export default class BrandLists extends Component {
     targetOption.loading = true;
     const { dispatch } = this.props;
     let { addData } = this.state;
-    let dis_type = 'manage/getVendorGoodsCategoryById';
+    let dis_type = 'manage/getOldVendorGoodsCategoryById';
     let target_grade = selectedOptions[selectedOptions.length-1].grade*1+1;
     dispatch({
       type: dis_type,

+ 8 - 2
xinkeaboard-seller/src/utils/utils.js

@@ -13,6 +13,7 @@ import request from './request';
 import printJS from 'print-js';
 import { getLocale } from 'umi/locale';
 import defaultSettings from '@/defaultSettings';
+import isEmpty from "lodash/isEmpty"
 
 const Search = Input.Search;
 
@@ -1384,11 +1385,16 @@ export function sldComRequest(method, url, params, data_type = '') {
   const currentSite = state.global.currentSite || localStorage.getItem('currentSite');
   const currentPath = state.routing.location.pathname;
   if (!currentPath.includes('/apply') && !currentPath.includes('/user/login')) {
-    params = Object.assign({}, params ?? {}, { webSite: currentSite })
+    params = Object.assign({}, { webSite: currentSite }, params ?? {})
+  }
+
+  if (params && params.isAll) {
+    delete params.isAll;
+    delete params.webSite;
   }
   if (method == 'get') {
     let tmp_url = apiUrl + `${url}`;
-    if (params != undefined) {
+    if (params != undefined && !isEmpty(params)) {
       tmp_url += `?${stringify(params)}`;
     }
     return request(tmp_url);

+ 6 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/goods/example/GoodsCategoryExample.java

@@ -53,6 +53,12 @@ public class GoodsCategoryExample implements Serializable {
      */
     private Integer pid;
 
+
+    /**
+     *  用于批量操作
+     */
+    private String pidIn;
+
     /**
      * 分类描述
      */

+ 9 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/front/GoodsDetailsController.java

@@ -13,6 +13,7 @@ import com.slodon.b2b2c.core.util.StringUtil;
 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.CalculateExpressDTO;
 import com.slodon.b2b2c.goods.dto.GoodsAddDTO;
 import com.slodon.b2b2c.goods.dto.GoodsRankListDTO;
@@ -32,6 +33,7 @@ import com.slodon.b2b2c.model.member.MemberFollowProductModel;
 import com.slodon.b2b2c.model.member.MemberFollowStoreModel;
 import com.slodon.b2b2c.model.promotion.PromotionCommonModel;
 import com.slodon.b2b2c.model.seller.StoreModel;
+import com.slodon.b2b2c.model.seller.StoreSiteInfoModel;
 import com.slodon.b2b2c.model.system.RegionCityModel;
 import com.slodon.b2b2c.seller.pojo.Store;
 import com.slodon.b2b2c.system.example.RegionCityExample;
@@ -43,6 +45,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.beanutils.PropertyUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.util.CollectionUtils;
@@ -105,6 +108,8 @@ public class GoodsDetailsController extends BaseController {
 
     @Resource
     private GoodsAnnexModel goodsAnnexModel;
+    @Autowired
+    private StoreSiteInfoModel storeSiteInfoModel;
 
     @ApiOperation("获取商品详情---静态数据")
     @ApiImplicitParams({
@@ -160,8 +165,11 @@ public class GoodsDetailsController extends BaseController {
             goodsPictureExample.setSpecValueIdIn(product.getSpecValueIds());
         }
         List<GoodsPicture> goodsPictureList = goodsPictureModel.getGoodsPictureList(goodsPictureExample, null);
-
+        String webSite = goods.getWebSite();
         Store store = storeModel.getStoreByStoreId(goods.getStoreId());
+        if (WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)) {
+            store = storeSiteInfoModel.getStoreByStoreIdAndWebSite(goods.getStoreId(), webSite);
+        }
         //默认店铺logo
         if (StringUtils.isEmpty(store.getStoreLogo())) {
             store.setStoreLogo(stringRedisTemplate.opsForValue().get("default_image_store_logo"));

+ 80 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/seller/GoodsCategorySellerController.java

@@ -7,6 +7,7 @@ import com.slodon.b2b2c.core.constant.RedisConst;
 import com.slodon.b2b2c.core.constant.StoreConst;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.SldResponse;
+import com.slodon.b2b2c.core.util.FileUrlUtil;
 import com.slodon.b2b2c.core.util.StringUtil;
 import com.slodon.b2b2c.core.util.UserUtil;
 import com.slodon.b2b2c.goods.example.GoodsCategoryExample;
@@ -265,14 +266,14 @@ public class GoodsCategorySellerController {
             @ApiImplicitParam(name = "categoryId1", value = "一级分类Id", required = true)
     })
     @GetMapping("bottomCategory")
-    public JsonResult<List<FrontGoodsCategoryVO>> bottomCategory(HttpServletRequest request, Integer categoryId1) {
+    public JsonResult<List<FrontGoodsCategoryVO>> bottomCategory(HttpServletRequest request, Integer categoryId1,String webSite) {
         Vendor vendor = UserUtil.getUser(request, Vendor.class);
 
         List<FrontGoodsCategoryVO> vos = new ArrayList<>();
         //根据店铺类型获取分类
         if (vendor.getStore().getIsOwnStore().equals(StoreConst.IS_OWN_STORE)) {
             //查询redis缓存
-            String dataJson = stringRedisTemplate.opsForValue().get(RedisConst.FRONT_GOODS_CATEGORY);
+            String dataJson = stringRedisTemplate.opsForValue().get(RedisConst.FRONT_GOODS_CATEGORY + "_" + webSite);
             if (!StringUtils.isEmpty(dataJson)) {
                 JSONArray jsonArray = JSONArray.parseArray(dataJson);
                 for (int i = 0; i < jsonArray.size(); i++) {
@@ -284,6 +285,7 @@ public class GoodsCategorySellerController {
                             for (int j = 0; j < array2.size(); j++) {
                                 JSONObject object = array2.getJSONObject(j);
                                 FrontGoodsCategoryVO categoryVO = new FrontGoodsCategoryVO();
+                                categoryVO.setWebSite(object.getString("webSite"));
                                 categoryVO.setCategoryId(object.getInteger("categoryId"));
                                 categoryVO.setCategoryName(object.getString("categoryName"));
                                 categoryVO.setPid(object.getInteger("pid"));
@@ -294,6 +296,7 @@ public class GoodsCategorySellerController {
                                     for (int k = 0; k < array3.size(); k++) {
                                         JSONObject jsonObject2 = array3.getJSONObject(k);
                                         FrontGoodsCategoryVO goodsCategoryVO = new FrontGoodsCategoryVO();
+                                        goodsCategoryVO.setWebSite(jsonObject2.getString("webSite"));
                                         goodsCategoryVO.setCategoryId(jsonObject2.getInteger("categoryId"));
                                         goodsCategoryVO.setCategoryName(jsonObject2.getString("categoryName"));
                                         goodsCategoryVO.setPid(jsonObject2.getInteger("pid"));
@@ -314,6 +317,7 @@ public class GoodsCategorySellerController {
             StoreBindCategoryExample example = new StoreBindCategoryExample();
             example.setStoreId(vendor.getStoreId());
             example.setGoodsCategoryId1(categoryId1);
+            example.setWebSite(webSite);
             example.setState(StoreConst.STORE_CATEGORY_STATE_PASS);
             List<StoreBindCategory> list = storeBindCategoryModel.getStoreBindCategoryList(example, null);
             //key-二级分类id, value-二级分类名称
@@ -339,6 +343,7 @@ public class GoodsCategorySellerController {
                 thirdList.forEach(goodsCategory -> {
                     if (secondMap.containsKey(goodsCategory.getPid())) {
                         FrontGoodsCategoryVO categoryVO = new FrontGoodsCategoryVO();
+                        categoryVO.setWebSite(webSite);
                         categoryVO.setCategoryId(goodsCategory.getCategoryId());
                         categoryVO.setCategoryName(goodsCategory.getCategoryName());
                         categoryVO.setPid(goodsCategory.getCategoryId());
@@ -347,6 +352,7 @@ public class GoodsCategorySellerController {
                     } else {
                         List<FrontGoodsCategoryVO> thirdVos = new ArrayList<>();
                         FrontGoodsCategoryVO categoryVO = new FrontGoodsCategoryVO();
+                        categoryVO.setWebSite(webSite);
                         categoryVO.setCategoryId(goodsCategory.getCategoryId());
                         categoryVO.setCategoryName(goodsCategory.getCategoryName());
                         categoryVO.setPid(goodsCategory.getCategoryId());
@@ -368,4 +374,76 @@ public class GoodsCategorySellerController {
         }
         return SldResponse.success(vos);
     }
+
+    @ApiOperation("获取品牌分类列表接口")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "webSite", value = "站点", paramType = "query")
+    })
+    @GetMapping("getStoreCateList")
+    public JsonResult<List<FrontGoodsCategoryVO>> getStoreCateList(HttpServletRequest request, @RequestParam(value = "webSite", required = false, defaultValue = "1") String webSite) {
+        Vendor vendor = UserUtil.getUser(request, Vendor.class);
+
+        List<FrontGoodsCategoryVO> vos = new ArrayList<>();
+        if (vendor.getStore().getIsOwnStore().equals(StoreConst.IS_OWN_STORE)) {
+            //一级分类信息
+            GoodsCategoryExample example = new GoodsCategoryExample();
+            example.setPid(0);
+            example.setWebSite(webSite);
+            example.setState(GoodsCategoryConst.CATEGORY_STATE_1);
+            example.setOrderBy("sort asc, create_time desc");
+            List<GoodsCategory> list = goodsCategoryModel.getGoodsCategoryList(example, null);
+
+            //只获取一级分类,children设置为空集合
+            if (!CollectionUtils.isEmpty(list)) {
+                for (GoodsCategory goodsCategory : list) {
+                    FrontGoodsCategoryVO vo = new FrontGoodsCategoryVO(goodsCategory);
+                    // 设置children为空集合而不是null
+                    vo.setChildren(new ArrayList<>());
+                    vos.add(vo);
+                }
+            }
+        } else {
+            //入驻店铺,获取审核通过的分类
+            StoreBindCategoryExample example = new StoreBindCategoryExample();
+            example.setStoreId(vendor.getStoreId());
+            example.setWebSite(webSite);
+            example.setState(StoreConst.STORE_CATEGORY_STATE_PASS);
+            List<StoreBindCategory> list = storeBindCategoryModel.getStoreBindCategoryList(example, null);
+
+            //只获取一级分类,children设置为空集合
+            if (!CollectionUtils.isEmpty(list)) {
+                // 提取所有一级分类ID并去重
+                Set<Integer> firstLevelIdSet = new HashSet<>();
+                for (StoreBindCategory bindCategory : list) {
+                    firstLevelIdSet.add(bindCategory.getGoodsCategoryId1());
+                }
+
+                // 批量查询一级分类
+                StringBuilder firstLevelIdsBuilder = new StringBuilder();
+                for (Integer id : firstLevelIdSet) {
+                    if (firstLevelIdsBuilder.length() > 0) {
+                        firstLevelIdsBuilder.append(",");
+                    }
+                    firstLevelIdsBuilder.append(id);
+                }
+                String firstLevelIds = firstLevelIdsBuilder.toString();
+
+                GoodsCategoryExample firstExample = new GoodsCategoryExample();
+                firstExample.setCategoryIdIn(firstLevelIds);
+                List<GoodsCategory> firstLevelCategories = goodsCategoryModel.getGoodsCategoryList(firstExample, null);
+
+                // 构建返回结果,children设置为空集合
+                for (GoodsCategory firstCategory : firstLevelCategories) {
+                    FrontGoodsCategoryVO vo = new FrontGoodsCategoryVO(firstCategory);
+                    // 设置children为空集合而不是null
+                    vo.setChildren(new ArrayList<>());
+                    vos.add(vo);
+                }
+            }
+        }
+
+        return SldResponse.success(vos);
+    }
+
+
 }

+ 3 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/seller/GoodsSellerLabelController.java

@@ -34,18 +34,20 @@ public class GoodsSellerLabelController extends BaseController {
 
     @ApiOperation("商品标签列表")
     @ApiImplicitParams({
+            @ApiImplicitParam(name = "webSite", value = "站点", paramType = "query"),
             @ApiImplicitParam(name = "labelName", value = "标签名称", paramType = "query"),
             @ApiImplicitParam(name = "pageSize", value = "分页大小", defaultValue = "20", paramType = "query"),
             @ApiImplicitParam(name = "current", value = "当前页面位置", defaultValue = "1", paramType = "query")
     })
     @GetMapping("list")
-    public JsonResult<PageVO<GoodsLabelVO>> getList(HttpServletRequest request, String labelName) {
+    public JsonResult<PageVO<GoodsLabelVO>> getList(HttpServletRequest request, String webSite, String labelName) {
         //分页设置
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
 
         //根据标签名称查询商品标签集合
         GoodsLabelExample example = new GoodsLabelExample();
         example.setLabelNameLike(labelName);
+        example.setWebSite(webSite);
         example.setOrderBy("sort asc, create_time desc");
         List<GoodsLabel> list = goodsLabelModel.getGoodsLabelList(example, pager);
 

+ 24 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/MemberFollowStoreController.java

@@ -3,6 +3,7 @@ package com.slodon.b2b2c.controller.member.front;
 import com.slodon.b2b2c.core.constant.GoodsConst;
 import com.slodon.b2b2c.core.constant.StoreConst;
 import com.slodon.b2b2c.core.controller.BaseController;
+import com.slodon.b2b2c.core.exception.MallException;
 import com.slodon.b2b2c.core.i18n.Language;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.PagerInfo;
@@ -10,6 +11,7 @@ import com.slodon.b2b2c.core.response.SldResponse;
 import com.slodon.b2b2c.core.util.AssertUtil;
 import com.slodon.b2b2c.core.util.UserUtil;
 import com.slodon.b2b2c.core.util.WebUtil;
+import com.slodon.b2b2c.enums.WebSiteConstant;
 import com.slodon.b2b2c.goods.example.GoodsExample;
 import com.slodon.b2b2c.goods.pojo.Goods;
 import com.slodon.b2b2c.member.example.MemberFollowStoreExample;
@@ -18,13 +20,16 @@ import com.slodon.b2b2c.member.pojo.MemberFollowStore;
 import com.slodon.b2b2c.model.goods.GoodsModel;
 import com.slodon.b2b2c.model.member.MemberFollowStoreModel;
 import com.slodon.b2b2c.model.seller.StoreModel;
+import com.slodon.b2b2c.model.seller.StoreSiteInfoModel;
 import com.slodon.b2b2c.seller.pojo.Store;
 import com.slodon.b2b2c.vo.member.FollowStoreVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
@@ -55,6 +60,8 @@ public class MemberFollowStoreController extends BaseController {
     private StoreModel storeModel;
     @Resource
     private StringRedisTemplate stringRedisTemplate;
+    @Autowired
+    private StoreSiteInfoModel storeSiteInfoModel;
 
     @ApiOperation("关注/取消关注商铺")
     @ApiImplicitParams({
@@ -90,7 +97,7 @@ public class MemberFollowStoreController extends BaseController {
     @GetMapping("list")
     public JsonResult<FollowStoreVO> getList(HttpServletRequest request) {
         Member member = UserUtil.getUser(request, Member.class);
-
+        String webSite = WebUtil.getWebSite( request);
         //根据条件查询集合
         MemberFollowStoreExample example = new MemberFollowStoreExample();
         example.setMemberId(member.getMemberId());
@@ -106,6 +113,20 @@ public class MemberFollowStoreController extends BaseController {
                 //查询店铺
                 Store store = storeModel.getStoreByStoreId(memberFollowStore.getStoreId());
                 AssertUtil.notNull(store, "店铺不存在");
+                Integer state = store.getState();
+                Integer isOwnStore = store.getIsOwnStore();
+                String serviceScore = store.getServiceScore();
+                Integer followNumber = store.getFollowNumber();
+                if (WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)){
+                    store = storeSiteInfoModel.getStoreByStoreIdAndWebSite(store.getStoreId(), WebSiteConstant.MEMBER_DISTRIBUTOR);
+                    if (StringUtils.isEmpty(store.getStoreId())){
+                        throw new MallException("店铺不存在");
+                    }
+                    store.setState(state);
+                    store.setIsOwnStore(isOwnStore);
+                    store.setServiceScore(serviceScore);
+                    store.setFollowNumber(followNumber);
+                }
                 //默认店铺logo
                 if (StringUtils.isEmpty(store.getStoreLogo())) {
                     store.setStoreLogo(stringRedisTemplate.opsForValue().get("default_image_store_logo"));
@@ -113,6 +134,7 @@ public class MemberFollowStoreController extends BaseController {
                 FollowStoreVO.MemberFollowStoreVO followStoreVO = new FollowStoreVO.MemberFollowStoreVO(memberFollowStore, store);
                 //查询店铺推荐商品信息,最多三件
                 GoodsExample goodsExample = new GoodsExample();
+                goodsExample.setWebSite(webSite);
                 goodsExample.setStoreId(memberFollowStore.getStoreId());
                 goodsExample.setStoreIsRecommend(GoodsConst.STORE_IS_RECOMMEND_YES);
                 goodsExample.setState(GoodsConst.GOODS_STATE_UPPER);
@@ -136,6 +158,7 @@ public class MemberFollowStoreController extends BaseController {
                 String dayDate = simpleDateFormat.format(calendar.getTime());
                 //该店铺本月上新的商品
                 GoodsExample newGoodsExample = new GoodsExample();
+                newGoodsExample.setWebSite(webSite);
                 newGoodsExample.setStoreId(store.getStoreId());
                 newGoodsExample.setState(GoodsConst.GOODS_STATE_UPPER);
                 newGoodsExample.setOnlineTimeLikeAfter(dayDate);

+ 1 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/admin/AdminStoreController.java

@@ -423,6 +423,7 @@ public class AdminStoreController extends BaseController {
         List<StoreVO> vos = new ArrayList<>();
         StoreExample storeExample = new StoreExample();
         storeExample.setState(StoreConst.STORE_STATE_OPEN);
+        storeExample.setBusinessState(StoreConst.STORE_BUSINESS_STATE_OPEN);
         storeExample.setStoreNameLike(storeName);
         storeExample.setPager(pager);
         List<Store> storeList = new ArrayList<>();

+ 9 - 49
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/front/FrontStoreController.java

@@ -34,12 +34,10 @@ import com.slodon.b2b2c.model.member.MemberFollowStoreModel;
 import com.slodon.b2b2c.model.seller.*;
 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;
 import com.slodon.b2b2c.vo.seller.FrontStoreListVO;
 import com.slodon.b2b2c.vo.seller.FrontStoreVO;
 import com.slodon.b2b2c.vo.seller.StoreCategoryTreeVO;
-import com.slodon.b2b2c.vo.seller.StoreGoodsVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -59,7 +57,6 @@ import javax.servlet.http.HttpServletRequest;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @author slodon
@@ -154,51 +151,6 @@ public class FrontStoreController {
             vos.add(vo);
         }
 
-//        else {
-//            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, pager);
-//                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));
-//                }
-//            }
-//            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));
     }
 
@@ -212,7 +164,11 @@ public class FrontStoreController {
         Member member = UserUtil.getUser(request, Member.class);
         String webSite = WebUtil.getWebSite(request);
         Store store = storeModel.getStoreByStoreId(storeId);
-        if(WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)){
+        Integer state = store.getState();
+        String serviceScore = store.getServiceScore();
+        String deliverScore = store.getDeliverScore();
+        String descriptionScore = store.getDescriptionScore();
+        if (WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)) {
             store = storeSiteInfoModel.getStoreByStoreIdAndWebSite(storeId, webSite);
             if (!StringUtils.isEmpty(store.getStoreId())) {
                 StoreNameExample storeNameExample = new StoreNameExample();
@@ -220,6 +176,10 @@ public class FrontStoreController {
                 storeNameExample.setWebSite(webSite);
                 StoreName storeName = storeNameModel.getStoreNameByExample(storeNameExample);
                 store.setStoreName(storeName != null ? storeName.getStoreName() : null);
+                store.setState(state);
+                store.setServiceScore(serviceScore);
+                store.setDeliverScore(deliverScore);
+                store.setDescriptionScore(descriptionScore);
             }
         }
         if (store.getState() != StoreConst.STORE_STATE_OPEN && store.getBusinessState() != StoreConst.STORE_BUSINESS_STATE_OPEN) {

+ 3 - 3
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/front/FrontPcDecoController.java

@@ -34,8 +34,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.context.request.async.WebAsyncUtils;
-
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
@@ -124,6 +122,7 @@ public class FrontPcDecoController {
         String webSite = WebUtil.getWebSite(request);
         //查询店铺信息
         Store storeDb = storeModel.getStoreByStoreId(storeId);
+        Integer state = storeDb.getState();
         if (WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)) {
             storeDb = storeSiteInfoModel.getStoreByStoreIdAndWebSite(storeDb.getStoreId(), WebSiteConstant.MEMBER_DISTRIBUTOR);
             if (!StringUtils.isEmpty(storeDb.getStoreId())) {
@@ -132,9 +131,10 @@ public class FrontPcDecoController {
                 storeNameExample.setWebSite(WebSiteConstant.MEMBER_DISTRIBUTOR);
                 StoreName storeName = storeNameModel.getStoreNameByExample(storeNameExample);
                 storeDb.setStoreName(storeName != null ? storeName.getStoreName() : null);
+                storeDb.setState(state);
             }
         }
-        if (storeDb.getState().equals(StoreConst.STORE_STATE_CLOSE)) {
+        if (storeDb.getState().equals(StoreConst.STORE_STATE_CLOSE) && !storeDb.getBusinessState().equals(StoreConst.STORE_BUSINESS_STATE_OPEN)) {
             JsonResult jsonResult = SldResponse.fail("店铺已关闭");
             jsonResult.setState(ResponseConst.STATE_STORE_CLOSE);
             return jsonResult;

+ 1 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/goods/FrontGoodsCategoryVO.java

@@ -3,6 +3,7 @@ package com.slodon.b2b2c.vo.goods;
 import com.slodon.b2b2c.core.util.FileUrlUtil;
 import com.slodon.b2b2c.core.util.StringUtil;
 import com.slodon.b2b2c.goods.pojo.GoodsCategory;
+import com.slodon.b2b2c.seller.pojo.StoreBindCategory;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;

+ 3 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/goods/GoodsCategoryReadMapper.xml

@@ -51,6 +51,9 @@
         <if test="example.pid != null">
           AND `pid` = #{example.pid}
         </if>
+        <if test="example.pidIn != null">
+          AND `pid` in (${example.pidIn})
+        </if>
         <if test="example.description != null">
           AND `description` = #{example.description}
         </if>

+ 1 - 1
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/goods/ProductReadMapper.xml

@@ -43,7 +43,7 @@
     <if test="example != null">
       <trim prefix="WHERE" prefixOverrides="AND|OR">
         <if test="example.webSite != null">
-          AND `webSite` = #{example.webSite}
+          AND `web_site` = #{example.webSite}
         </if>
         <if test="example.productIdNotEquals != null">
           AND `product_id` != #{example.productIdNotEquals}

+ 3 - 0
xinkeaboard-server/doc/DDL/update.sql

@@ -345,6 +345,9 @@ ALTER TABLE member_product_look_log MODIFY COLUMN goods_brief VARCHAR(1000) COMM
 update msg_store_tpl set email_content='{"email_subject":"新询盘提醒-{$siteName}","email_content":"<h2>尊敬的客户,您好:</h2><p>收到询盘信息如下:</p><p>姓 名:{$name}</p><p>邮 箱:{$email}</p><p>国家/地区:{$country}</p><p>联系方式:{$phoneCode}-{$phone}</p><p>数 量:{$quantity}</p><p>询盘内容:{$message}</p><p>访问链接:{$pageUrl}</p>"}'  where tpl_code ='enquiry_reminder'
 
 
+ALTER TABLE enquiry MODIFY COLUMN page_url VARCHAR(2048) COMMENT '询盘来源页面URL';
+
+