Kaynağa Gözat

chore: merge master

周玉环 4 gün önce
ebeveyn
işleme
3c15eba2bf
83 değiştirilmiş dosya ile 805 ekleme ve 230 silme
  1. 1 0
      xinkeaboard-admin/src/models/global.js
  2. 1 4
      xinkeaboard-admin/src/pages/decorate/pc/home/main_banner_pc.js
  3. 3 3
      xinkeaboard-admin/src/pages/manage/order/enquiry/add_track.js
  4. 16 18
      xinkeaboard-admin/src/pages/manage/order/enquiry/enquiry_lists.js
  5. 1 1
      xinkeaboard-admin/src/utils/utils.js
  6. 45 3
      xinkeaboard-gemini-langgraph_prompt/backend/src/agent/graph.py
  7. 1 0
      xinkeaboard-seller/src/models/global.js
  8. 45 40
      xinkeaboard-seller/src/pages/User/Login.js
  9. 1 1
      xinkeaboard-seller/src/utils/utils.js
  10. 5 0
      xinkeaboard-server/b2b2c-core/src/main/java/com/slodon/b2b2c/core/constant/CommonConst.java
  11. 9 0
      xinkeaboard-server/b2b2c-core/src/main/java/com/slodon/b2b2c/core/constant/StoreConst.java
  12. 6 0
      xinkeaboard-server/b2b2c-core/src/main/java/com/slodon/b2b2c/core/util/WebUtil.java
  13. 1 1
      xinkeaboard-server/b2b2c-core/src/main/resources/i18n_en.properties
  14. 3 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/goods/dto/SearchConditionDTO.java
  15. 6 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/goods/example/GoodsSearchWordsExample.java
  16. 3 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/goods/pojo/GoodsSearchWords.java
  17. 5 2
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/dto/OwnStoreAddDTO.java
  18. 3 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/dto/OwnStoreUpdateDTO.java
  19. 3 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/dto/StoreBusinessVO.java
  20. 5 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/example/StoreCompanyShowListExample.java
  21. 5 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/example/StoreExample.java
  22. 11 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/example/StoreSiteInfoExample.java
  23. 3 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/pojo/Store.java
  24. 3 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/pojo/StoreSiteInfo.java
  25. 3 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/system/dto/EnquiryAddDTO.java
  26. 5 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/system/example/SearchLogExample.java
  27. 10 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/system/pojo/Enquiry.java
  28. 3 0
      xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/system/pojo/SearchLog.java
  29. 2 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/cms/front/FrontArticleController.java
  30. 2 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/cms/front/FrontFriendLinkController.java
  31. 16 15
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/front/FrontGoodsCategoryController.java
  32. 20 2
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/front/GoodsListController.java
  33. 3 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/front/GoodsSearchWordsController.java
  34. 37 7
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/admin/AdminEnquiryController.java
  35. 3 4
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/MemberPasswordController.java
  36. 4 4
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/advich/MemberEmailActiveController.java
  37. 20 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/advich/MemberEnquiryController.java
  38. 2 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/admin/AdminCateAuditController.java
  39. 34 19
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/admin/AdminOwnStoreController.java
  40. 8 6
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/admin/AdminStoreAuditController.java
  41. 20 3
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/admin/AdminStoreController.java
  42. 2 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/front/FrontCategoryController.java
  43. 79 16
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/front/FrontStoreController.java
  44. 20 2
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/seller/SellerStoreController.java
  45. 7 2
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/sso/front/FrontAuthController.java
  46. 2 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/statistics/front/FrontMemberBehaviorController.java
  47. 1 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/admin/AdminPcFirstAdvController.java
  48. 50 22
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/front/FrontDecoController.java
  49. 3 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/front/FrontNavigationController.java
  50. 31 4
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/front/FrontPcDecoController.java
  51. 8 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/front/FrontSettingController.java
  52. 13 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/seller/SellerSettingController.java
  53. 1 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/dao/read/goods/GoodsBrandReadMapper.java
  54. 1 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/ESGoodsModel.java
  55. 4 3
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/GoodsBrandModel.java
  56. 2 2
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/GoodsCategoryModel.java
  57. 3 1
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/GoodsSearchWordsModel.java
  58. 2 2
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/StoreCertificateNewListModel.java
  59. 4 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/member/advich/MemberEnquiryModel.java
  60. 2 2
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/seller/SellerStoreCompanyShowModel.java
  61. 25 21
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/seller/StoreModel.java
  62. 2 2
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/seller/StoreProfileModel.java
  63. 6 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/system/SettingModel.java
  64. 3 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/business/OrderEnquiryVO.java
  65. 4 4
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/OwnStoreDetailVO.java
  66. 4 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/OwnStoreVO.java
  67. 4 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/StoreDetailVO.java
  68. 4 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/StoreIndexInformationVO.java
  69. 4 0
      xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/StoreVO.java
  70. 1 0
      xinkeaboard-server/b2b2c-web/src/main/resources/application.yml
  71. 1 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/goods/GoodsBrandReadMapper.xml
  72. 4 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/goods/GoodsSearchWordsReadMapper.xml
  73. 14 2
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/member/MemberEnquiryReadMapper.xml
  74. 4 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/seller/StoreReadMapper.xml
  75. 10 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/seller/StoreSiteInfoReadMapper.xml
  76. 4 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/system/SearchLogReadMapper.xml
  77. 16 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/goods/GoodsSearchWordsWriteMapper.xml
  78. 16 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/seller/StoreSiteInfoWriteMapper.xml
  79. 16 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/seller/StoreWriteMapper.xml
  80. 19 4
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/system/EnquiryWriteMapper.xml
  81. 16 0
      xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/system/SearchLogWriteMapper.xml
  82. 15 0
      xinkeaboard-server/doc/DDL/update.sql
  83. 1 1
      xinkeaboard-web/components/Home/home.vue

+ 1 - 0
xinkeaboard-admin/src/models/global.js

@@ -95,6 +95,7 @@ export default {
       };
     },
     setCurrentSite(state, { payload }) {
+      localStorage.setItem('currentSite', payload)
       return {
         ...state,
         currentSite: payload,

+ 1 - 4
xinkeaboard-admin/src/pages/decorate/pc/home/main_banner_pc.js

@@ -164,17 +164,14 @@ export default class MainBannerPc extends Component {
       data = nextProps.tpl_info;
       console.log('nextProps.tpl_info:{}', data);
       console.log('data.hasOwnProperty("info"):{}', data.hasOwnProperty('info'));
-
       if (data.hasOwnProperty('info')) {
         banner_data = data;
       } else {
         if (data.length == 0) {
           banner_data.info.carousel_info.data = tpl_info.data;
         } else {
-          if (data.hasOwnProperty('data')) {
+          if (data.data?.length) {
             banner_data.info.carousel_info.data = data.data;
-          } else {
-            banner_data.info.carousel_info.data = data;
           }
         }
       }

+ 3 - 3
xinkeaboard-admin/src/pages/manage/order/enquiry/add_track.js

@@ -106,7 +106,7 @@ export default class AddTrack extends Component {
   componentDidMount() {
     const { query } = this.state;
     this.setState({ initEditorFlag: true });
-    this.get_vendor_list();
+    this.get_vendor_list(query.store_id);
     if (query.enquiry_id != undefined && query.enquiry_id != null && query.enquiry_id != '' && query.enquiry_id > 0) {
       this.trackEnquiryRecord({ pageSize: pageSize });
     }
@@ -117,12 +117,12 @@ export default class AddTrack extends Component {
   }
 
   //跟踪人列表
-  get_vendor_list = (params = {}) => {
+  get_vendor_list = (storeId) => {
     const { dispatch } = this.props;
     let { search_data } = this.state;
     dispatch({
       type: 'order/get_return_subadmin_lists',
-      payload: {},
+      payload: {storeId},
       callback: (res) => {
         if (res.state == 200) {
           let tmp_data = search_data.filter(item => item.name == 'vendorId')[0];

+ 16 - 18
xinkeaboard-admin/src/pages/manage/order/enquiry/enquiry_lists.js

@@ -315,9 +315,10 @@ export default class EnquiryLists extends Component {
                 pathname: '/manage_order/enquiry_track_to_add',
                 query: {
                   enquiry_id: record.id,
+                  store_id: record.storeId
                 },
               }}>
-                {sldtbaleOpeBtnText(`${sldComLanguage('跟踪')}`, () => null)}
+                {sldtbaleOpeBtnText(`${sldComLanguage('跟踪')}`)}
               </Link>
               {/* 只有管理员才可以操作 */}
               {/*{(record.isDel == 1) ?*/}
@@ -391,22 +392,32 @@ export default class EnquiryLists extends Component {
   componentDidMount() {
     this.get_list({ pageSize: pageSize });
     this.get_store_list();
-    this.get_vendor_list();
   }
 
   //获取用户数据列表
-  get_vendor_list = (params = {}) => {
+  get_vendor_list = (record) => {
     const { dispatch } = this.props;
     let { assignData } = this.state;
     dispatch({
       type: 'order/get_return_subadmin_lists',
-      payload: {},
+      payload: {storeId: record.storeId},
       callback: (res) => {
         if (res.state == 200) {
           let tmp_data = assignData.filter(item => item.name == 'vendorId')[0];
           tmp_data.sel_data = res.data.list;
+          let { operateData, addressType } = this.state;
+          operateData = getSldCopyData(assignData);
+          for (let i in operateData) {
+            operateData[i].initialValue = record[operateData[i].name];
+          }
+          this.cur_edit_id = record.id;//当前操作数据id
           this.setState({
             assignData,
+            type: 'assign',
+            title: `${sldComLanguage('询盘分配')}`,
+            operateData,
+            modalVisible: true,
+            show_foot: true,
           });
         } else {
           failTip(res.msg);
@@ -523,20 +534,7 @@ export default class EnquiryLists extends Component {
 
   //询盘分配按钮
   assignEnquiry = (val) => {
-    let { assignData, operateData, addressType } = this.state;
-    operateData = getSldCopyData(assignData);
-    for (let i in operateData) {
-      operateData[i].initialValue = val[operateData[i].name];
-    }
-
-    this.cur_edit_id = val.id;//当前操作数据id
-    this.setState({
-      type: 'assign',
-      title: `${sldComLanguage('询盘分配')}`,
-      operateData,
-      modalVisible: true,
-      show_foot: true,
-    });//询盘分配
+    this.get_vendor_list(val);
   };
 
   //询盘分配操作

+ 1 - 1
xinkeaboard-admin/src/utils/utils.js

@@ -1329,7 +1329,7 @@ export function getSldStatYTitle() {
  * */
 export function sldComRequest(method, url, params, data_type = '') {
   const state = window.g_app._store.getState();
-  const currentSite = state.global.currentSite;
+  const currentSite = state.global.currentSite || localStorage.getItem('currentSite');
   const currentPath = state.routing.location.pathname;
   if (!currentPath.includes('/user/login')) {
     params = Object.assign({}, params ?? {}, { webSite: currentSite })

+ 45 - 3
xinkeaboard-gemini-langgraph_prompt/backend/src/agent/graph.py

@@ -305,14 +305,56 @@ def finalize_answer(state: OverallState, config: RunnableConfig):
     logger.info("开始:llm.invoke")
     result = llm.invoke(formatted_prompt)
     logger.info("结束:llm.invoke:{}",result)
+    
     # Replace the short urls with the original urls and add all used urls to the sources_gathered
     unique_sources = []
+    citation_map = {}  # Map of short_url to source info
+    citation_numbers = {}  # Map of short_url to citation number
+    
+    # Build source map and assign citation numbers
+    citation_counter = 1
     for source in state["sources_gathered"]:
         if source["short_url"] in result.content:
-            result.content = result.content.replace(
-                source["short_url"], source["value"]
-            )
             unique_sources.append(source)
+            citation_map[source["short_url"]] = source
+            citation_numbers[source["short_url"]] = citation_counter
+            citation_counter += 1
+    
+    # Collect citations from the content
+    citations_in_text = []
+    
+    # Find all citations in the content and replace them with numbered markers
+    import re
+    
+    # Pattern to match markdown links like [text](url)
+    link_pattern = r'\[([^\]]+)\]\(([^)]+)\)'
+    
+    def replace_with_numbered_citation(match):
+        text = match.group(1)
+        url = match.group(2)
+        if url in citation_numbers:
+            # Store the citation for later use
+            citations_in_text.append((citation_numbers[url], text, citation_map[url]))
+            # Return just the text with a numbered citation marker
+            return f"{text}[{citation_numbers[url]}]"
+        return match.group(0)  # Return unchanged if not a citation
+    
+    # Replace inline citations with numbered markers
+    result.content = re.sub(link_pattern, replace_with_numbered_citation, result.content)
+    
+    # Add a section for citations at the end
+    if citations_in_text:
+        # Sort citations by their number
+        citations_in_text.sort(key=lambda x: x[0])
+        
+        # Add citations section
+        result.content += "\n\n## 参考资料\n"
+        added_citations = set()  # To avoid duplicates
+        for num, text, source in citations_in_text:
+            if num not in added_citations:
+                result.content += f"{num}. [{source['label']}]({source['value']})\n"
+                added_citations.add(num)
+    
     #save the result to a markdown file
     # with open(f"result_{get_research_topic(state['messages'])}.md", "w", encoding="utf-8") as f:
     #     f.write(result.content)

+ 1 - 0
xinkeaboard-seller/src/models/global.js

@@ -94,6 +94,7 @@ export default {
       };
     },
     setCurrentSite(state, { payload }) {
+      localStorage.setItem('currentSite', payload)
       return {
         ...state,
         currentSite: payload,

+ 45 - 40
xinkeaboard-seller/src/pages/User/Login.js

@@ -143,50 +143,55 @@ export default class LoginPage extends Component {
   //登录操作
   handleSubmits = () => {
     this.props.form.validateFieldsAndScroll(['username', 'password', 'verifyCode'], (err, values) => {
-      if (values.username == undefined || values.username == '') {
-        failTip(`${sldComLanguage('用户名不能为空')}`);
-      } else if (values.password == undefined || values.password == '') {
-        failTip(`${sldComLanguage('密码不能为空')}`);
-      } else if (values.verifyCode == undefined || values.verifyCode == '') {
-        failTip(`${sldComLanguage('验证码不能为空')}`);
-      } else {
-        //用户登录
-        values.verifyKey = this.login_captcha;
-        const { dispatch } = this.props;
-        this.setState({loginLoading: true})
-        dispatch({
-          type: 'login/login',
-          payload: { ...values },
-          callback: (res) => {
-            if (res.state == 200 || res.state == 267) {
-              localStorage.setItem('sld_token', res.data.access_token);
-              localStorage.setItem('sld_refresh_token', res.data.refresh_token);
-              {
-                setLocalStorageTime();
-              }
-              localStorage.setItem('user_info', JSON.stringify({ user_name: res.data.vendorName, vendorMobile: res.data.vendorMobile }));
-              if (res.state == 267) {
-                //登录的时候初始化入驻状态
-                if (res.data.applyState == 0) {
-                  //未入驻
-                  saveSettleData('state', '');
-                  saveSettleData('cur_step', 0);
-                  router.push('/apply/settled_protocol');
-                } else {
-                  saveSettleData('cur_step', 3);
-                  router.push('/apply/open_up');
-                }
+      Object.keys(values).forEach(key => {
+        values[key] = values[key] ? values[key].replace(/\s/g, '') : ''
+      })
+      const { username, password, verifyCode } = values;
+      if (!username) {
+        return failTip(`${sldComLanguage('用户名不能为空')}`);
+      }
+      if (!password) {
+        return failTip(`${sldComLanguage('密码不能为空')}`);
+      } 
+      if (!verifyCode) {
+        return failTip(`${sldComLanguage('验证码不能为空')}`);
+      }
+      //用户登录
+      values.verifyKey = this.login_captcha;
+      const { dispatch } = this.props;
+      this.setState({loginLoading: true})
+      dispatch({
+        type: 'login/login',
+        payload: { ...values },
+        callback: (res) => {
+          if (res.state == 200 || res.state == 267) {
+            localStorage.setItem('sld_token', res.data.access_token);
+            localStorage.setItem('sld_refresh_token', res.data.refresh_token);
+            {
+              setLocalStorageTime();
+            }
+            localStorage.setItem('user_info', JSON.stringify({ user_name: res.data.vendorName, vendorMobile: res.data.vendorMobile }));
+            if (res.state == 267) {
+              //登录的时候初始化入驻状态
+              if (res.data.applyState == 0) {
+                //未入驻
+                saveSettleData('state', '');
+                saveSettleData('cur_step', 0);
+                router.push('/apply/settled_protocol');
               } else {
-                // dispatch({ type: 'global/get_site_list_data' });
+                saveSettleData('cur_step', 3);
+                router.push('/apply/open_up');
               }
             } else {
-              failTip(res.msg);
-              this.getCaptcha('login_captcha');
+              // dispatch({ type: 'global/get_site_list_data' });
             }
-            this.setState({loginLoading: false})
-          },
-        });
-      }
+          } else {
+            failTip(res.msg);
+            this.getCaptcha('login_captcha');
+          }
+          this.setState({loginLoading: false})
+        },
+      });
     });
   };
 

+ 1 - 1
xinkeaboard-seller/src/utils/utils.js

@@ -1379,7 +1379,7 @@ export function getSldStatYTitle() {
  * */
 export function sldComRequest(method, url, params, data_type = '') {
   const state = window.g_app._store.getState();
-  const currentSite = state.global.currentSite;
+  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 })

+ 5 - 0
xinkeaboard-server/b2b2c-core/src/main/java/com/slodon/b2b2c/core/constant/CommonConst.java

@@ -15,4 +15,9 @@ public class CommonConst {
      */
     public static final String WX_ACCESS_TOKEN = "wx_access_token";
 
+    /**
+     * 默认的网站
+     */
+    public static final String DEFAULT_WEBSITE = "1";
+
 }

+ 9 - 0
xinkeaboard-server/b2b2c-core/src/main/java/com/slodon/b2b2c/core/constant/StoreConst.java

@@ -18,6 +18,15 @@ public class StoreConst {
     public static final int STORE_STATE_CLOSE = 2;
     public static final int STORE_STATE_DELETE = 3;
 
+
+    /**
+     * 店铺经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营
+     */
+    public static final int STORE_BUSINESS_STATE_TO_AUDIT = 1;
+    public static final int STORE_BUSINESS_STATE_DECORATION = 2;
+    public static final int STORE_BUSINESS_STATE_OPEN = 3;
+    public static final int STORE_BUSINESS_STATE_CLOSE = 4;
+
     /**
      * 店铺入驻信查重字段类型:1-公司名称;2-店铺名称
      */

+ 6 - 0
xinkeaboard-server/b2b2c-core/src/main/java/com/slodon/b2b2c/core/util/WebUtil.java

@@ -38,6 +38,12 @@ public class WebUtil {
     }
 
 
+    public static String getWebSite(HttpServletRequest request) {
+        String webSite = request.getHeader("Web-Site");
+        return webSite == null ? CommonConst.DEFAULT_WEBSITE : webSite;
+    }
+
+
 
 
     /**

+ 1 - 1
xinkeaboard-server/b2b2c-core/src/main/resources/i18n_en.properties

@@ -1809,7 +1809,7 @@ admin账号不可删除=admin account can not be deleted
 更新直播和短视频设置表失败,请重试=Live updates and short video settings table failed, please try again
 退出成功=exit successfully
 用户名或密码错误=wrong user name or password
-会员邮箱或密码错误=wrong member email or password
+会员账号或密码错误=wrong member email or password
 系统开小差了=System deserted
 账号已被冻结=Account has been frozen
 账号不可用=Account unavailable

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/goods/dto/SearchConditionDTO.java

@@ -57,4 +57,7 @@ public class SearchConditionDTO implements Serializable {
 
     @ApiModelProperty("商品新价格")
     private String goodsMoney;
+
+    @ApiModelProperty("商品站点")
+    private String webSite;
 }

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

@@ -28,6 +28,12 @@ public class GoodsSearchWordsExample implements Serializable {
      */
     private Long wordsId;
 
+
+    /**
+     * 站点
+     */
+    private String webSite;
+
     /**
      * 高频词内容
      */

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/goods/pojo/GoodsSearchWords.java

@@ -16,6 +16,9 @@ public class GoodsSearchWords implements Serializable {
     @ApiModelProperty("高频词id")
     private Long wordsId;
 
+    @ApiModelProperty("网站")
+    private String webSite;
+
     @ApiModelProperty("高频词内容")
     private String wordsContent;
 

+ 5 - 2
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/dto/OwnStoreAddDTO.java

@@ -16,8 +16,8 @@ public class OwnStoreAddDTO implements Serializable {
     @ApiModelProperty(value = "店铺名称",required = true)
     private String storeName;
 
-    @ApiModelProperty(value = "国内店铺名称",required = true)
-    private String storeNameCn;
+    @ApiModelProperty(value = "站点",required = true)
+    private String webSite;
 
     @ApiModelProperty(value = "店铺联系人",required = true)
     private String contactName;
@@ -52,4 +52,7 @@ public class OwnStoreAddDTO implements Serializable {
     @ApiModelProperty(value = "结算日期字符串,以逗号隔开")
     private String billDays;
 
+    @ApiModelProperty("店铺经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营")
+    private Integer businessState;
+
 }

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/dto/OwnStoreUpdateDTO.java

@@ -42,4 +42,7 @@ public class OwnStoreUpdateDTO implements Serializable {
 
     @ApiModelProperty(value = "结算日期字符串,以逗号隔开")
     private String billDays;
+
+    @ApiModelProperty("店铺经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营")
+    private Integer businessState;
 }

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/dto/StoreBusinessVO.java

@@ -19,4 +19,7 @@ public class StoreBusinessVO {
 
     @ApiModelProperty("店铺等级名称")
     private String storeGradeName;
+
+    @ApiModelProperty("店铺经营状态")
+    private Integer businessState;
 }

+ 5 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/example/StoreCompanyShowListExample.java

@@ -315,6 +315,11 @@ public class StoreCompanyShowListExample {
             return (Criteria) this;
         }
 
+        public Criteria andWebSiteEqualTo(String value) {
+            addCriterion("web_site =", value, "webSite");
+            return (Criteria) this;
+        }
+
         public Criteria andNameIsNull() {
             addCriterion("name is null");
             return (Criteria) this;

+ 5 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/example/StoreExample.java

@@ -147,6 +147,11 @@ public class StoreExample implements Serializable {
     private Integer stateNotEquals;
 
     /**
+     * 店铺经营状态
+     */
+    private Integer businessState;
+
+    /**
      * 自营店铺1-自营店铺,2-入驻店铺
      */
     private Integer isOwnStore;

+ 11 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/example/StoreSiteInfoExample.java

@@ -4,6 +4,7 @@ import com.slodon.b2b2c.core.response.PagerInfo;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 @Data
 public class StoreSiteInfoExample implements Serializable {
@@ -21,6 +22,16 @@ public class StoreSiteInfoExample implements Serializable {
     private Long storeId;
 
     /**
+     *
+     */
+    private List<Long> storeIdIn;
+
+    /**
+     * 店铺经营状态
+     */
+    private Integer businessState;
+
+    /**
      * 站点
      */
     private String webSite;

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/pojo/Store.java

@@ -72,6 +72,9 @@ public class Store implements Serializable {
     @ApiModelProperty("店铺状态 1、开启;2、关闭")
     private Integer state;
 
+    @ApiModelProperty("店铺经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营")
+    private Integer businessState;
+
     @ApiModelProperty("自营店铺1-自营店铺,2-入驻店铺")
     private Integer isOwnStore;
 

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/seller/pojo/StoreSiteInfo.java

@@ -18,6 +18,9 @@ public class StoreSiteInfo implements Serializable {
     @ApiModelProperty("店铺id")
     private Long storeId;
 
+    @ApiModelProperty("经营状态")
+    private Integer businessState;
+
     @ApiModelProperty("站点")
     private String webSite;
 

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/system/dto/EnquiryAddDTO.java

@@ -14,6 +14,9 @@ public class EnquiryAddDTO implements Serializable {
 
     private static final long serialVersionUID = 3737927129030215710L;
 
+    @ApiModelProperty(value = "站点")
+    private String webSite;
+
     @ApiModelProperty(value = "用户名")
     private String name;
 

+ 5 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/system/example/SearchLogExample.java

@@ -25,6 +25,11 @@ public class SearchLogExample implements Serializable {
     private Integer logId;
 
     /**
+     * 站点
+     */
+    private String webSite;
+
+    /**
      * 搜索词
      */
     private String keyword;

+ 10 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/system/pojo/Enquiry.java

@@ -12,6 +12,8 @@ public class Enquiry {
      */
     private Long id;
 
+    private String webSite;
+
     /**
      *
      * This field was generated by MyBatis Generator.
@@ -639,4 +641,12 @@ public class Enquiry {
     public void setQuantity(Integer quantity) {
         this.quantity = quantity;
     }
+
+    public String getWebSite() {
+        return webSite;
+    }
+
+    public void setWebSite(String webSite) {
+        this.webSite = webSite;
+    }
 }

+ 3 - 0
xinkeaboard-server/b2b2c-entity/src/main/java/com/slodon/b2b2c/system/pojo/SearchLog.java

@@ -24,6 +24,9 @@ public class SearchLog implements Serializable {
     @ApiModelProperty("用户不登录存0")
     private Integer memberId;
 
+    @ApiModelProperty("站点")
+    private String webSite;
+
     @ApiModelProperty("创建时间")
     private Date createTime;
 }

+ 2 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/cms/front/FrontArticleController.java

@@ -9,6 +9,7 @@ import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.PagerInfo;
 import com.slodon.b2b2c.core.response.SldResponse;
 import com.slodon.b2b2c.core.util.StringUtil;
+import com.slodon.b2b2c.core.util.WebUtil;
 import com.slodon.b2b2c.model.cms.ArticleCategoryModel;
 import com.slodon.b2b2c.model.cms.ArticleModel;
 import com.slodon.b2b2c.vo.cms.ArticleVO;
@@ -50,6 +51,7 @@ public class FrontArticleController {
             articlePager = new PagerInfo(articleSize, 1);
         }
         ArticleCategoryExample example = new ArticleCategoryExample();
+        example.setWebSite(WebUtil.getWebSite(request));
         example.setIsShow(ArticleConst.STATE_YES);
         example.setOrderBy("sort asc, create_time desc");
         List<ArticleCategory> list = articleCategoryModel.getArticleCategoryList(example, pager);

+ 2 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/cms/front/FrontFriendLinkController.java

@@ -5,6 +5,7 @@ import com.slodon.b2b2c.cms.pojo.FriendLink;
 import com.slodon.b2b2c.core.constant.FriendLinkConst;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.SldResponse;
+import com.slodon.b2b2c.core.util.WebUtil;
 import com.slodon.b2b2c.model.cms.FriendLinkModel;
 import com.slodon.b2b2c.vo.cms.FriendLinkVO;
 import io.swagger.annotations.Api;
@@ -31,6 +32,7 @@ public class FrontFriendLinkController {
     @GetMapping("list")
     public JsonResult<List<FriendLinkVO>> getList(HttpServletRequest request) {
         FriendLinkExample example = new FriendLinkExample();
+        example.setWebSite(WebUtil.getWebSite(request));
         example.setState(FriendLinkConst.STATE_YES);
         example.setOrderBy("sort asc, create_time desc");
         List<FriendLink> friendLinkList = friendLinkModel.getFriendLinkList(example, null);

+ 16 - 15
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/front/FrontGoodsCategoryController.java

@@ -70,8 +70,7 @@ public class FrontGoodsCategoryController extends BaseController {
     @GetMapping("topCategory")
     public JsonResult<List<FrontGoodsCategoryVO>> topCategory(HttpServletRequest request) {
         List<FrontGoodsCategoryVO> vos = new ArrayList<>();
-
-        String webSite = request.getHeader("Web-Site");
+        String webSite = WebUtil.getWebSite(request);
         //查询redis缓存
         String dataJson = stringRedisTemplate.opsForValue().get(RedisConst.GOODS_CATEGORY + "_" + webSite);
         if (!StringUtils.isEmpty(dataJson)) {
@@ -97,9 +96,9 @@ public class FrontGoodsCategoryController extends BaseController {
     @GetMapping("bottomCategory")
     public JsonResult<List<FrontGoodsCategoryVO>> bottomCategory(HttpServletRequest request, Integer categoryId1) {
         List<FrontGoodsCategoryVO> vos = new ArrayList<>();
-
+        String webSite = WebUtil.getWebSite(request);
         //查询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++) {
@@ -151,9 +150,9 @@ public class FrontGoodsCategoryController extends BaseController {
                                                             @RequestParam(value = "grade", defaultValue = "1") Integer grade) {
         List<FrontGoodsCategoryVO> vos = new ArrayList<>();
 
-
+        String webSite = WebUtil.getWebSite(request);
                 //查询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++) {
@@ -167,7 +166,7 @@ public class FrontGoodsCategoryController extends BaseController {
                     vo.setGrade(jsonObject.getInteger("grade"));
 
                     SysSeoVO  sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(
-                            Integer.valueOf(vo.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY);
+                            Integer.valueOf(vo.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY,webSite);
                     vo.setSeoInfo(sysSeoVO);
                     if (categoryId1.equals(categoryId)) {
                         JSONArray array = JSONArray.parseArray(jsonObject.getString("children"));
@@ -182,7 +181,7 @@ public class FrontGoodsCategoryController extends BaseController {
                                 categoryVO.setGrade(jsonObject1.getInteger("grade"));
                                 categoryVO.setChildren(null);
                                 sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(
-                                        Integer.valueOf(categoryVO.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY);
+                                        Integer.valueOf(categoryVO.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY, webSite);
                                 categoryVO.setSeoInfo(sysSeoVO);
                                 children.add(categoryVO);
                             }
@@ -203,7 +202,7 @@ public class FrontGoodsCategoryController extends BaseController {
                                 vo.setPid(object.getInteger("pid"));
                                 vo.setGrade(object.getInteger("grade"));
                                 SysSeoVO sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(
-                                        Integer.valueOf(vo.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY);
+                                        Integer.valueOf(vo.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY,webSite);
                                 vo.setSeoInfo(sysSeoVO);
                                 JSONArray array3 = JSONArray.parseArray(object.getString("children"));
                                 if (!CollectionUtils.isEmpty(array3)) {
@@ -217,7 +216,7 @@ public class FrontGoodsCategoryController extends BaseController {
                                         categoryVO.setGrade(jsonObject1.getInteger("grade"));
                                         categoryVO.setChildren(null);
                                         sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(
-                                                Integer.valueOf(categoryVO.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY);
+                                                Integer.valueOf(categoryVO.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY,webSite);
                                         categoryVO.setSeoInfo(sysSeoVO);
                                         children.add(categoryVO);
                                     }
@@ -245,7 +244,7 @@ public class FrontGoodsCategoryController extends BaseController {
                                         vo.setGrade(jsonObject1.getInteger("grade"));
                                         vo.setChildren(null);
                                         SysSeoVO sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(
-                                                Integer.valueOf(vo.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY);
+                                                Integer.valueOf(vo.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY,webSite);
                                         vo.setSeoInfo(sysSeoVO);
                                         vos.add(vo);
                                     }
@@ -270,11 +269,11 @@ public class FrontGoodsCategoryController extends BaseController {
     public JsonResult<GoodsCategoryTreeVO> list(HttpServletRequest request, Integer categoryId1) {
         Member member = UserUtil.getUser(request, Member.class);
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
-
+        String webSite = WebUtil.getWebSite(request);
         List<GoodsCategoryTreeVO.CategoryInfoVO> categoryList = new ArrayList<>();
         List<GoodsListVO> goodsList = new ArrayList<>();
         //查询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++) {
@@ -296,6 +295,7 @@ public class FrontGoodsCategoryController extends BaseController {
                             //查询当前一级分类下的商品列表
                             SearchConditionDTO qc = new SearchConditionDTO();
                             qc.setCategoryIds(categoryId1.toString());
+                            qc.setWebSite(webSite);
                             goodsList = esGoodsModel.searchGoodsByES(qc, pager, member);
                         }
                     }
@@ -408,9 +408,10 @@ public class FrontGoodsCategoryController extends BaseController {
      */
     @GetMapping("getSecondCategory")
     public JsonResult<List<FrontGoodsCategoryVO>> getSecondCategory(HttpServletRequest request) {
+        String webSite = WebUtil.getWebSite(request);
         List<FrontGoodsCategoryVO> vos = new ArrayList<>();
         //查询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++) {
@@ -427,7 +428,7 @@ public class FrontGoodsCategoryController extends BaseController {
                             vo.setGrade(object.getInteger("grade"));
                             vo.setHomeShow(object.getInteger("homeShow"));
                             SysSeoVO sysSeoVO = storeModel.getRecordByTargetIdAndTypeForStoreDetail(
-                                    Integer.valueOf(vo.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY);
+                                    Integer.valueOf(vo.getCategoryId()).longValue(), SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY,webSite);
                             vo.setSeoInfo(sysSeoVO);
                             vos.add(vo);
                         }

+ 20 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/front/GoodsListController.java

@@ -79,6 +79,8 @@ public class GoodsListController extends BaseController {
     public JsonResult<PageVO<GoodsListVO>> goodsList(HttpServletRequest request, SearchConditionDTO qc) {
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
         Member member = UserUtil.getUser(request, Member.class);
+        String webSite = WebUtil.getWebSite(request);
+        qc.setWebSite(webSite);
         if (!StringUtils.isEmpty(qc.getKeyword())) {
             String keyword = qc.getKeyword();
             //搜索词不为空,记录搜索日志
@@ -91,6 +93,7 @@ public class GoodsListController extends BaseController {
                 searchLog.setKeyword(keyword);
                 searchLog.setIp(WebUtil.getRealIp(request));
                 searchLog.setMemberId(memberId);
+                searchLog.setWebSite(webSite);
                 searchLog.setCreateTime(new Date());
                 searchLogModel.saveSearchLog(searchLog);
             }
@@ -98,7 +101,7 @@ public class GoodsListController extends BaseController {
         List<GoodsListVO> vos = esGoodsModel.searchGoodsByES(qc, pager, member);
         if (!StringUtils.isEmpty(qc.getKeyword())) {
             //关键字搜索,记录热搜词,异步执行,不影响商品列表
-            goodsSearchWordsModel.recordSearchWords(qc.getKeyword(), pager.getRowsCount());
+            goodsSearchWordsModel.recordSearchWords(qc.getKeyword(),qc.getWebSite(), pager.getRowsCount());
         }
         return SldResponse.success(new PageVO<>(vos, pager));
     }
@@ -111,6 +114,7 @@ public class GoodsListController extends BaseController {
     })
     @GetMapping("recommendList")
     public JsonResult<PageVO<GoodsRecommendVO>> recommendList(HttpServletRequest request, String queryType, Long productId, Integer categoryId3) {
+        String webSite = WebUtil.getWebSite(request);
         Member member = UserUtil.getUser(request, Member.class);
         List<GoodsRecommendVO> vos = new ArrayList<>();
         if ("cart".equals(queryType)) {
@@ -137,6 +141,7 @@ public class GoodsListController extends BaseController {
             }
             qc.setSort(1);
             qc.setStore(1);
+            qc.setWebSite(webSite);
             List<GoodsListVO> goodsList = esGoodsModel.searchGoodsByES(qc, pager, member);
             if (!CollectionUtils.isEmpty(goodsList)) {
                 goodsList.forEach(goodsListVO -> {
@@ -163,6 +168,7 @@ public class GoodsListController extends BaseController {
                 SearchConditionDTO conditionDTO = new SearchConditionDTO();
                 conditionDTO.setSort(1);
                 conditionDTO.setStore(1);
+                conditionDTO.setWebSite(webSite);
                 List<GoodsListVO> list = esGoodsModel.searchGoodsByES(conditionDTO, pager1, member);
                 if (!CollectionUtils.isEmpty(list)) {
                     list.forEach(goods1 -> {
@@ -238,7 +244,7 @@ public class GoodsListController extends BaseController {
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
 
         //根据品牌首字母分组查询
-        List<GoodsBrandFrontVO> vos = goodsBrandModel.getGoodsBrandListBy(pager);
+        List<GoodsBrandFrontVO> vos = goodsBrandModel.getGoodsBrandListBy(pager,WebUtil.getWebSite(request));
         return SldResponse.success(new PageVO<>(vos, pager));
     }
 
@@ -252,6 +258,8 @@ public class GoodsListController extends BaseController {
     public JsonResult<PageVO<StoreNewGoodsVO>> newGoods(HttpServletRequest request, @RequestParam("storeId") Long storeId) {
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
 
+        String webSite = WebUtil.getWebSite(request);
+
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         //获取30天之前的时间
         Calendar calendar = Calendar.getInstance();
@@ -263,6 +271,7 @@ public class GoodsListController extends BaseController {
         String timeFields = "LEFT(online_time,10) onTime";
         GoodsExample goodsExample = new GoodsExample();
         goodsExample.setStoreId(storeId);
+        goodsExample.setWebSite(webSite);
         goodsExample.setState(GoodsConst.GOODS_STATE_UPPER);
         goodsExample.setOnlineTimeLikeAfter(dayDate);
         goodsExample.setGroupBy("onTime");
@@ -276,6 +285,7 @@ public class GoodsListController extends BaseController {
             GoodsExample goodsExampleByOnlineTime = new GoodsExample();
             goodsExampleByOnlineTime.setOnlineTimeLike(goodsTime);
             goodsExampleByOnlineTime.setStoreId(storeId);
+            goodsExampleByOnlineTime.setWebSite(webSite);
             goodsExampleByOnlineTime.setState(GoodsConst.GOODS_STATE_UPPER);
             List<Goods> goodsList = goodsModel.getGoodsList(goodsExampleByOnlineTime, null);
             List<GoodsVO> vos = new ArrayList();
@@ -303,6 +313,7 @@ public class GoodsListController extends BaseController {
     public JsonResult<PageVO<GoodsListVO>> goCollectOrder(HttpServletRequest request, Integer promotionId) {
         GoodsPromotion goodsPromotion = goodsPromotionModel.getGoodsPromotionByPromotionId(promotionId);
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
+        String webSite = WebUtil.getWebSite(request);
         SearchConditionDTO qc = new SearchConditionDTO();
         //待修改
         if (goodsPromotion.getPromotionGrade() == PromotionConst.PROMOTION_GRADE_1 && !StringUtil.isNullOrZero(goodsPromotion.getGoodsId())) {
@@ -313,6 +324,7 @@ public class GoodsListController extends BaseController {
             qc.setCategoryIds(goodsPromotion.getGoodsCategoryId3().toString());
         }
         qc.setSort(1);
+        qc.setWebSite(webSite);
         List<GoodsListVO> vos = esGoodsModel.searchGoodsByES(qc, pager, null);
         return SldResponse.success(new PageVO<>(vos, pager));
     }
@@ -326,8 +338,10 @@ public class GoodsListController extends BaseController {
     @GetMapping("storeGoods")
     public JsonResult<PageVO<RecommendGoodsVO>> sellerGoods(HttpServletRequest request, Long storeId) {
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
+        String webSite = WebUtil.getWebSite(request);
         GoodsExample example = new GoodsExample();
         example.setStoreId(storeId);
+        example.setWebSite(webSite);
         example.setStoreIsRecommend(GoodsConst.IS_RECOMMEND_YES);
         example.setState(GoodsConst.GOODS_STATE_UPPER);
         example.setStoreState(GoodsConst.STORE_STATE_1);
@@ -353,8 +367,10 @@ public class GoodsListController extends BaseController {
         AssertUtil.notNullOrZero(storeId, "请选择店铺id");
 
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
+        String webSite = WebUtil.getWebSite(request);
         GoodsExample example = new GoodsExample();
         example.setStoreId(storeId);
+        example.setWebSite(webSite);
         example.setGoodsNameLike(keyword);
         example.setState(GoodsConst.GOODS_STATE_UPPER);
         List<Goods> list = goodsModel.getGoodsList(example, pager);
@@ -374,8 +390,10 @@ public class GoodsListController extends BaseController {
      */
     @GetMapping("new/list")
     public JsonResult<PageVO<GoodsVO>> getNewGoodsList(HttpServletRequest request) {
+        String webSite = WebUtil.getWebSite(request);
         GoodsExample example = new GoodsExample();
         //默认显示在售商品
+        example.setWebSite(webSite);
         example.setState(GoodsConst.GOODS_STATE_UPPER);
         example.setIsDelete(GoodsConst.GOODS_IS_DELETE_NO);
         example.setOrderBy("online_time DESC");

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

@@ -5,6 +5,7 @@ import com.slodon.b2b2c.core.controller.BaseController;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.PagerInfo;
 import com.slodon.b2b2c.core.response.SldResponse;
+import com.slodon.b2b2c.core.util.WebUtil;
 import com.slodon.b2b2c.goods.example.GoodsSearchWordsExample;
 import com.slodon.b2b2c.goods.pojo.GoodsSearchWords;
 import com.slodon.b2b2c.model.goods.GoodsSearchWordsModel;
@@ -39,9 +40,10 @@ public class GoodsSearchWordsController extends BaseController {
     public JsonResult<List<GoodsSearchWords>> list(HttpServletRequest request,
                                                    @RequestParam(value = "keyWord") String keyWord,
                                                    @RequestParam(value = "size",required = false,defaultValue = "10") Integer size) {
-
+        String webSite = WebUtil.getWebSite(request);
         PagerInfo pager = new PagerInfo(size,1);
         GoodsSearchWordsExample example = new GoodsSearchWordsExample();
+        example.setWebSite(webSite);
         example.setWordsContentOrPyLike(keyWord);
         example.setSearchGoodsNumGte(1);
         example.setOrderBy("search_frequency desc,search_goods_num desc,create_time desc");

+ 37 - 7
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/admin/AdminEnquiryController.java

@@ -1,6 +1,7 @@
 package com.slodon.b2b2c.controller.member.admin;
 
 import com.slodon.b2b2c.core.constant.AdminConst;
+import com.slodon.b2b2c.core.constant.VendorConst;
 import com.slodon.b2b2c.core.controller.BaseController;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.PageVO;
@@ -20,17 +21,22 @@ import com.slodon.b2b2c.model.seller.StoreModel;
 import com.slodon.b2b2c.model.seller.StoreNameModel;
 import com.slodon.b2b2c.model.seller.VendorModel;
 import com.slodon.b2b2c.model.system.AdminModel;
+import com.slodon.b2b2c.model.system.SystemResourceModel;
 import com.slodon.b2b2c.seller.example.StoreExample;
 import com.slodon.b2b2c.seller.example.StoreNameExample;
+import com.slodon.b2b2c.seller.example.VendorExample;
 import com.slodon.b2b2c.seller.pojo.Store;
 import com.slodon.b2b2c.seller.pojo.StoreName;
 import com.slodon.b2b2c.seller.pojo.Vendor;
 import com.slodon.b2b2c.system.example.AdminExample;
+import com.slodon.b2b2c.system.example.SystemResourceExample;
 import com.slodon.b2b2c.system.pojo.Admin;
+import com.slodon.b2b2c.system.pojo.SystemResource;
 import com.slodon.b2b2c.vo.business.OrderEnquiryTrackVO;
 import com.slodon.b2b2c.vo.member.EnquiryVendorVO;
 import com.slodon.b2b2c.vo.member.OrderEnquiryVO;
 import com.slodon.b2b2c.vo.seller.StoreVO;
+import com.slodon.b2b2c.vo.system.SystemRoleVO;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -75,6 +81,9 @@ public class AdminEnquiryController extends BaseController {
     @Resource
     private StoreNameModel storeNameModel;
 
+    @Resource
+    private SystemResourceModel systemResourceModel;
+
     /**
      * 询盘管理列表
      *
@@ -115,14 +124,35 @@ public class AdminEnquiryController extends BaseController {
      * @return
      */
     @GetMapping("sub/list")
-    public JsonResult<PageVO<EnquiryVendorVO>> getSubAdminList(HttpServletRequest request) {
-        AdminExample adminExample = new AdminExample();
-        adminExample.setState(AdminConst.ADMIN_STATE_NORM);
-        List<Admin> adminList = adminModel.getAdminList(adminExample, null);
+    public JsonResult<PageVO<EnquiryVendorVO>> getSubAdminList(HttpServletRequest request, Long storeId) {
         ArrayList<EnquiryVendorVO> vos = new ArrayList<>();
-        adminList.forEach(admin -> {
-            vos.add(new EnquiryVendorVO(admin));
-        });
+        if (storeId != null && storeId == 0) {
+            AdminExample adminExample = new AdminExample();
+            adminExample.setState(AdminConst.ADMIN_STATE_NORM);
+            List<Admin> adminList = adminModel.getAdminList(adminExample, null);
+            adminList.forEach(admin -> {
+                //查询角色资源对应表,获取该角色拥有的资源列表
+                SystemResourceExample resourceExample = new SystemResourceExample();
+                resourceExample.setRoleId(admin.getRoleId());
+                resourceExample.setGrade(AdminConst.RESOURCE_GRADE_3);
+                resourceExample.setContent("询盘管理");
+                resourceExample.setOrderBy("resource_id asc");
+                List<SystemResource> resourceRoleList = systemResourceModel.getSystemResourceList(resourceExample, null);
+                if (!CollectionUtils.isEmpty(resourceRoleList)) {
+                    vos.add(new EnquiryVendorVO(admin));
+                }
+            });
+        } else {
+            VendorExample vendorExample = new VendorExample();
+            vendorExample.setStoreId(storeId);
+            vendorExample.setIsStoreAdmin(VendorConst.IS_STORE_ADMIN_1);
+            vendorExample.setIsAllowLogin(VendorConst.IS_ALLOW_LOGIN);
+            List<Vendor> vendorList = vendorModel.getVendorList(vendorExample, null);
+            vendorList.forEach(vendor -> {
+                EnquiryVendorVO vo = new EnquiryVendorVO(vendor);
+                vos.add(vo);
+            });
+        }
         return SldResponse.success(new PageVO<>(vos, null));
     }
 

+ 3 - 4
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/MemberPasswordController.java

@@ -5,10 +5,7 @@ import com.slodon.b2b2c.core.controller.BaseController;
 import com.slodon.b2b2c.core.i18n.Language;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.SldResponse;
-import com.slodon.b2b2c.core.util.AssertUtil;
-import com.slodon.b2b2c.core.util.Md5;
-import com.slodon.b2b2c.core.util.StringUtil;
-import com.slodon.b2b2c.core.util.UserUtil;
+import com.slodon.b2b2c.core.util.*;
 import com.slodon.b2b2c.member.dto.MemberAddLoginPwdDTO;
 import com.slodon.b2b2c.member.dto.MemberAddPayPwdDTO;
 import com.slodon.b2b2c.member.dto.MemberUpdateLoginPwdDTO;
@@ -92,6 +89,7 @@ public class MemberPasswordController extends BaseController {
 
         // 查询该手机号是否被其它账号绑定(若有解除绑定)
         MemberExample example = new MemberExample();
+        example.setWebSite(member1.getWebSite());
         example.setMemberMobile(memberMobile);
         example.setMemberIdNotEquals(member.getMemberId());
         List<Member> memberList = memberModel.getMemberList(example, null);
@@ -167,6 +165,7 @@ public class MemberPasswordController extends BaseController {
 
         //查询邮箱是否被绑定
         MemberExample example = new MemberExample();
+        example.setWebSite(member1.getWebSite());
         example.setMemberIdNotEquals(member.getMemberId());
         example.setMemberEmail(memberEmail);
         List<Member> memberList = memberModel.getMemberList(example, null);

+ 4 - 4
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/advich/MemberEmailActiveController.java

@@ -171,7 +171,7 @@ public class MemberEmailActiveController extends BaseController {
     @PostMapping("/verification/code")
     public JsonResult<Object> getMemberEmailVerificationCode(HttpServletRequest request, String email, Integer source, Integer type, String mobile) {
         log.info("getMemberEmailVerificationCode - email:{},source:{},type:{},mobile:{}", email, source, type, mobile);
-        String webSite = request.getHeader("Web-Site");
+        String webSite = WebUtil.getWebSite(request);
 
         // 根据站点类型进行不同的处理
         if (WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
@@ -262,7 +262,7 @@ public class MemberEmailActiveController extends BaseController {
     @PostMapping("/check/verification/code")
     public JsonResult<Object> checkMemberEmailVerificationCode(HttpServletRequest request, String email, Integer type, String verificationCode, String mobile) {
         log.info("checkMemberEmailVerificationCode - email:{},type:{},verificationCode:{},mobile:{}", email, type, verificationCode, mobile);
-        String webSite = request.getHeader("Web-Site");
+        String webSite = WebUtil.getWebSite(request);
 
         // 参数校验
         ValidationResult validation = validateVerificationParams(webSite, email, mobile, verificationCode);
@@ -364,7 +364,7 @@ public class MemberEmailActiveController extends BaseController {
     @PostMapping("/register")
     public JsonResult<Object> activeMemberEmailInfo(HttpServletRequest request, String email, String nickName, String password, String confirmPassword, String mobile) {
         log.info("activeMemberEmailInfo - email:{},nickName:{},password:{},confirmPassword:{},mobile:{}", email, nickName, password, confirmPassword, mobile);
-        String webSite = request.getHeader("Web-Site");
+        String webSite = WebUtil.getWebSite(request);
         // 参数校验和密码一致性检查
         ValidationResult validation = validateRegistrationParams(webSite, email, mobile, password, confirmPassword);
         if (!validation.isValid()) {
@@ -495,7 +495,7 @@ public class MemberEmailActiveController extends BaseController {
         log.info("emailResetPwd - email:{},verificationCode:{},loginPwd:{},confirmPassWord:{},mobile:{}",
                 email, verificationCode, loginPwd, confirmPassWord, mobile);
 
-        String webSite = request.getHeader("Web-Site");
+        String webSite = WebUtil.getWebSite(request);
 
         // 参数校验
         ValidationResult validation = validateResetPasswordParams(webSite, email, mobile, loginPwd, confirmPassWord);

+ 20 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/member/front/advich/MemberEnquiryController.java

@@ -2,6 +2,7 @@ package com.slodon.b2b2c.controller.member.front.advich;
 
 import com.alibaba.fastjson.JSON;
 import com.slodon.b2b2c.core.constant.EnquiryConst;
+import com.slodon.b2b2c.core.constant.MemberConst;
 import com.slodon.b2b2c.core.controller.BaseController;
 import com.slodon.b2b2c.core.i18n.Language;
 import com.slodon.b2b2c.core.response.JsonResult;
@@ -11,6 +12,7 @@ import com.slodon.b2b2c.core.response.SldResponse;
 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.WebSiteConstant;
 import com.slodon.b2b2c.goods.example.GoodsExample;
 import com.slodon.b2b2c.goods.pojo.Goods;
 import com.slodon.b2b2c.member.example.MemberEnquiryExample;
@@ -20,7 +22,10 @@ import com.slodon.b2b2c.model.goods.GoodsModel;
 import com.slodon.b2b2c.model.member.advich.CountryModel;
 import com.slodon.b2b2c.model.member.advich.MemberEnquiryModel;
 import com.slodon.b2b2c.model.seller.StoreModel;
+import com.slodon.b2b2c.model.seller.StoreNameModel;
+import com.slodon.b2b2c.seller.example.StoreNameExample;
 import com.slodon.b2b2c.seller.pojo.Store;
+import com.slodon.b2b2c.seller.pojo.StoreName;
 import com.slodon.b2b2c.system.dto.EnquiryAddDTO;
 import com.slodon.b2b2c.system.example.CountryExample;
 import com.slodon.b2b2c.system.pojo.Country;
@@ -63,6 +68,9 @@ public class MemberEnquiryController extends BaseController {
     private StoreModel storeModel;
 
     @Resource
+    private StoreNameModel storeNameModel;
+
+    @Resource
     private CountryModel countryModel;
 
     /**
@@ -84,6 +92,7 @@ public class MemberEnquiryController extends BaseController {
         if (enquiryAddDTO.getQuantity() != null && (enquiryAddDTO.getQuantity() > Integer.MAX_VALUE || enquiryAddDTO.getQuantity() < Integer.MIN_VALUE)) {
             return SldResponse.fail(Language.translate("数量超出范围,请重试", Language.EN_LANGUAGE_TYPE));
         }
+        enquiryAddDTO.setWebSite(WebUtil.getWebSite(request));
         Integer key = memberEnquiryModel.saveEnquiry(request, enquiryAddDTO);
         return SldResponse.success(Language.translate("提交成功",Language.EN_LANGUAGE_TYPE),key);
     }
@@ -107,6 +116,7 @@ public class MemberEnquiryController extends BaseController {
         if (enquiryAddDTO.getQuantity() != null && (enquiryAddDTO.getQuantity() > Integer.MAX_VALUE || enquiryAddDTO.getQuantity() < Integer.MIN_VALUE)) {
             return SldResponse.fail(Language.translate("数量超出范围,请重试", Language.EN_LANGUAGE_TYPE));
         }
+        enquiryAddDTO.setWebSite(WebUtil.getWebSite(request));
         Integer key = memberEnquiryModel.saveEnquiry(request, enquiryAddDTO);
         return SldResponse.success(Language.translate("提交成功",Language.EN_LANGUAGE_TYPE),key);
     }
@@ -119,11 +129,12 @@ public class MemberEnquiryController extends BaseController {
     @GetMapping("list")
     public JsonResult<PageVO<MemberEnquiryVO>> getList(HttpServletRequest request, String keyword) {
         Member member = UserUtil.getUser(request, Member.class);
-
+        String webSite = WebUtil.getWebSite(request);
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
         MemberEnquiryExample example = new MemberEnquiryExample();
         example.setCreateUid(member.getMemberId());
         example.setKeyword(keyword);
+        example.setWebSite(webSite);
         example.setPager(pager);
         List<MemberEnquiry> list = memberEnquiryModel.getEnquiryList(example, pager);
         ArrayList<MemberEnquiryVO> vos = new ArrayList<>();
@@ -141,6 +152,14 @@ public class MemberEnquiryController extends BaseController {
                 if (EnquiryConst.ENQUIRY_ITEM_TYPE_SHOP.equals(memberEnquiry.getItemType())) {
                     Store store = storeModel.getStoreByStoreId(memberEnquiry.getStoreId());
                     itemName = store.getStoreName();
+                    if (!WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
+                        StoreNameExample storeNameExample = new StoreNameExample();
+                        storeNameExample.setStoreId(store.getStoreId());
+                        storeNameExample.setWebSite(webSite);
+                        StoreName storeName = storeNameModel.getStoreNameByExample(storeNameExample);
+                        itemName = storeName != null ? storeName.getStoreName() : store.getStoreName();
+                    }
+
                 }
                 memberEnquiry.setItemName(itemName);
                 vos.add(new MemberEnquiryVO(memberEnquiry));

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

@@ -96,7 +96,8 @@ public class AdminCateAuditController {
                     VendorExample vendorExample = new VendorExample();
                     vendorExample.setStoreId(category.getStoreId());
                     vendorExample.setIsStoreAdmin(VendorConst.IS_STORE_ADMIN_1);
-                    vendor = vendorModel.getVendorList(vendorExample, null).get(0);
+                    List<Vendor> vendorList = vendorModel.getVendorList(vendorExample, null);
+                    vendor = !CollectionUtils.isEmpty(vendorList) ? vendorList.get(0) : new Vendor();
                     vendor.setStore(store);
                     vendorMap.put(category.getStoreId(), vendor);
                 }

+ 34 - 19
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/admin/AdminOwnStoreController.java

@@ -13,20 +13,11 @@ import com.slodon.b2b2c.core.util.CommonUtil;
 import com.slodon.b2b2c.core.util.UserUtil;
 import com.slodon.b2b2c.core.util.WebUtil;
 import com.slodon.b2b2c.enums.WebSiteConstant;
-import com.slodon.b2b2c.model.seller.StoreCertificateModel;
-import com.slodon.b2b2c.model.seller.StoreModel;
-import com.slodon.b2b2c.model.seller.StoreNameModel;
-import com.slodon.b2b2c.model.seller.VendorModel;
+import com.slodon.b2b2c.model.seller.*;
 import com.slodon.b2b2c.seller.dto.OwnStoreAddDTO;
 import com.slodon.b2b2c.seller.dto.OwnStoreUpdateDTO;
-import com.slodon.b2b2c.seller.example.StoreCertificateExample;
-import com.slodon.b2b2c.seller.example.StoreExample;
-import com.slodon.b2b2c.seller.example.StoreNameExample;
-import com.slodon.b2b2c.seller.example.VendorExample;
-import com.slodon.b2b2c.seller.pojo.Store;
-import com.slodon.b2b2c.seller.pojo.StoreCertificate;
-import com.slodon.b2b2c.seller.pojo.StoreName;
-import com.slodon.b2b2c.seller.pojo.Vendor;
+import com.slodon.b2b2c.seller.example.*;
+import com.slodon.b2b2c.seller.pojo.*;
 import com.slodon.b2b2c.system.pojo.Admin;
 import com.slodon.b2b2c.vo.seller.OwnStoreDetailVO;
 import com.slodon.b2b2c.vo.seller.OwnStoreVO;
@@ -43,6 +34,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author slodon
@@ -57,6 +49,8 @@ public class AdminOwnStoreController extends BaseController {
     @Resource
     private StoreNameModel storeNameModel;
     @Resource
+    private StoreSiteInfoModel storeSiteInfoModel;
+    @Resource
     private VendorModel vendorModel;
     @Resource
     private StoreCertificateModel storeCertificateModel;
@@ -75,12 +69,14 @@ public class AdminOwnStoreController extends BaseController {
     public JsonResult<PageVO<OwnStoreVO>> getList(HttpServletRequest request,
                                                   @RequestParam(value = "webSite", required = false,defaultValue = "1") String webSite,
                                                   @RequestParam(value = "storeName", required = false) String storeName,
-                                                  @RequestParam(value = "state", required = false) Integer state) {
+                                                  @RequestParam(value = "state", required = false) Integer state,
+                                                  @RequestParam(value = "businessState", required = false) Integer businessState) {
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
 
         StoreExample storeExample = new StoreExample();
         if (WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
             storeExample.setStoreNameLike(storeName);
+            storeExample.setBusinessState(businessState);
         }
         storeExample.setState(state);
         storeExample.setStateNotEquals(StoreConst.STORE_STATE_DELETE);
@@ -88,14 +84,19 @@ public class AdminOwnStoreController extends BaseController {
         storeExample.setPager(pager);
         List<Store> storeList = storeModel.getStoreList(storeExample, pager);
         List<StoreName> storeNameList = Collections.emptyList();
+        List<StoreSiteInfo> storeSiteInfoList = Collections.emptyList();
         if (!WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
             StoreNameExample storeNameExample = new StoreNameExample();
             storeNameExample.setStoreNameLike(storeName);
             storeNameExample.setWebSite(webSite);
             storeNameList = storeNameModel.getStoreNameList(new StoreNameExample(), null);
+            StoreSiteInfoExample storeSiteInfoExample = new StoreSiteInfoExample();
+            storeSiteInfoExample.setBusinessState(businessState);
+            storeSiteInfoExample.setStoreIdIn(storeNameList.stream().map(StoreName::getStoreId).collect(Collectors.toList()));
+            storeSiteInfoList = storeSiteInfoModel.getStoreSiteInfoList(storeSiteInfoExample, null);
         }
         List<OwnStoreVO> vos = new ArrayList<>();
-        if (CollectionUtils.isEmpty(storeNameList) && !WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
+        if (CollectionUtils.isEmpty(storeNameList) && !WebSiteConstant.MEMBER_OVERSEA.equals(webSite) && CollectionUtils.isEmpty(storeSiteInfoList)) {
             return SldResponse.success(new PageVO<>(vos, new PagerInfo(10, 1)));
         }
         if (!CollectionUtils.isEmpty(storeList)) {
@@ -108,6 +109,10 @@ public class AdminOwnStoreController extends BaseController {
                             .findFirst()
                             .map(StoreName::getStoreName)
                             .orElse(""));
+                   StoreSiteInfoExample storeSiteInfoExample = new StoreSiteInfoExample();
+                   storeSiteInfoExample.setStoreId(store.getStoreId());
+                   StoreSiteInfo storeSiteInfo = storeSiteInfoModel.getStoreSiteInfo(storeSiteInfoExample);
+                   vo.setBusinessState(storeSiteInfo != null ? storeSiteInfo.getBusinessState() : StoreConst.STORE_BUSINESS_STATE_DECORATION);
                 }
                 //根据店铺id获取商户账号
                 VendorExample vendorExample = new VendorExample();
@@ -144,7 +149,8 @@ public class AdminOwnStoreController extends BaseController {
     })
     @GetMapping("detail")
     public JsonResult<OwnStoreDetailVO> getDetail(HttpServletRequest request,
-                                                  @RequestParam("storeId") Long storeId) {
+                                                  @RequestParam("storeId") Long storeId,
+                                                  @RequestParam("webSite") String webSite) {
         //根据店铺id获取店铺信息
         Store store = storeModel.getStoreByStoreId(storeId);
 
@@ -159,10 +165,19 @@ public class AdminOwnStoreController extends BaseController {
         StoreCertificate storeCertificate = storeCertificateModel.getStoreCertificateList(storeCertificateExample, null).get(0);
         OwnStoreDetailVO vo = new OwnStoreDetailVO(store, storeCertificate);
 
-        StoreNameExample storeNameExample = new StoreNameExample();
-        storeNameExample.setStoreId(storeId);
-        StoreName storeName = storeNameModel.getStoreNameByExample(storeNameExample);
-        vo.setStoreNameCn(storeName.getStoreName());
+        if(WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)){
+            StoreNameExample storeNameExample = new StoreNameExample();
+            storeNameExample.setStoreId(storeId);
+            storeNameExample.setWebSite(webSite);
+            StoreName storeName = storeNameModel.getStoreNameByExample(storeNameExample);
+            vo.setStoreName(storeName != null ? storeName.getStoreName() : "");
+            StoreSiteInfoExample storeSiteInfoExample = new StoreSiteInfoExample();
+            storeSiteInfoExample.setStoreId(storeId);
+            storeSiteInfoExample.setWebSite(webSite);
+            StoreSiteInfo storeSiteInfo = storeSiteInfoModel.getStoreSiteInfo(storeSiteInfoExample);
+            vo.setBusinessState(storeSiteInfo != null ? storeSiteInfo.getBusinessState() : 2);
+        }
+
         return SldResponse.success(vo);
     }
 

+ 8 - 6
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/admin/AdminStoreAuditController.java

@@ -89,9 +89,9 @@ public class AdminStoreAuditController {
         StoreApplyExample example = new StoreApplyExample();
         if (WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
             example.setStoreNameLike(storeName);
+            example.setStoreGradeId(storeGradeId);
         }
         example.setVendorNameLike(vendorName);
-        example.setStoreGradeId(storeGradeId);
         example.setStoreType(StoreConst.NO_OWN_STORE);
         example.setPager(pager);
         example.setOrderBy("submit_time desc");
@@ -102,14 +102,19 @@ public class AdminStoreAuditController {
         }
         List<StoreApply> storeApplyList = storeApplyModel.getStoreApplyList(example, pager);
         List<StoreName> storeNameList = Collections.emptyList();
+        List<StoreSiteInfo> storeSiteInfoList = Collections.emptyList();
         if (!WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
             StoreNameExample storeNameExample = new StoreNameExample();
             storeNameExample.setStoreNameLike(storeName);
             storeNameExample.setWebSite(webSite);
             storeNameList = storeNameModel.getStoreNameList(new StoreNameExample(), null);
+            StoreSiteInfoExample storeSiteInfoExample = new StoreSiteInfoExample();
+            storeSiteInfoExample.setStoreGradeId(storeGradeId);
+            storeSiteInfoExample.setStoreIdIn(storeNameList.stream().map(StoreName::getStoreId).collect(Collectors.toList()));
+            storeSiteInfoList = storeSiteInfoModel.getStoreSiteInfoList(storeSiteInfoExample, null);
         }
         List<StoreApplyVO> vos = new ArrayList<>();
-        if (CollectionUtils.isEmpty(storeNameList) && !WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
+        if (CollectionUtils.isEmpty(storeNameList) && !WebSiteConstant.MEMBER_OVERSEA.equals(webSite) && CollectionUtils.isEmpty(storeSiteInfoList)) {
             return SldResponse.success(new PageVO<>(vos, new PagerInfo(10, 1)));
         }
         if (!CollectionUtils.isEmpty(storeApplyList)) {
@@ -131,10 +136,7 @@ public class AdminStoreAuditController {
                     storeSiteInfoExample.setStoreId(storeApply.getStoreId());
                     storeSiteInfoExample.setWebSite(webSite);
                     StoreSiteInfo storeSiteInfo = storeSiteInfoModel.getStoreSiteInfo(storeSiteInfoExample);
-                    if (storeSiteInfo != null) {
-                        vo.setStoreGradeName(storeSiteInfo.getStoreGradeName());
-                    }
-
+                    vo.setStoreGradeName(storeSiteInfo != null ? storeSiteInfo.getStoreGradeName() : vo.getStoreGradeName());
                 }
 
                 //获取联系人名称和电话

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

@@ -88,30 +88,38 @@ public class AdminStoreController extends BaseController {
                                                @RequestParam(value = "storeName", required = false) String storeName,
                                                @RequestParam(value = "vendorName", required = false) String vendorName,
                                                @RequestParam(value = "storeGradeId", required = false) Integer storeGradeId,
-                                               @RequestParam(value = "state", required = false) Integer state) {
+                                               @RequestParam(value = "state", required = false) Integer state,
+                                               @RequestParam(value = "businessState", required = false) Integer businessState) {
 
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
 
         StoreExample storeExample = new StoreExample();
         if (WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
             storeExample.setStoreNameLike(storeName);
+            storeExample.setBusinessState(businessState);
+            storeExample.setStoreGradeId(storeGradeId);
         }
         storeExample.setVendorNameLike(vendorName);
-        storeExample.setStoreGradeId(storeGradeId);
         storeExample.setState(state);
         storeExample.setStateNotEquals(StoreConst.STORE_STATE_DELETE);
         storeExample.setIsOwnStore(StoreConst.NO_OWN_STORE);
         storeExample.setPager(pager);
         List<Store> storeList = storeModel.getStoreList(storeExample, pager);
         List<StoreName> storeNameList = Collections.emptyList();
+        List<StoreSiteInfo> storeSiteInfoList = Collections.emptyList();
         if (!WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
             StoreNameExample storeNameExample = new StoreNameExample();
             storeNameExample.setStoreNameLike(storeName);
             storeNameExample.setWebSite(webSite);
             storeNameList = storeNameModel.getStoreNameList(new StoreNameExample(), null);
+            StoreSiteInfoExample storeSiteInfoExample = new StoreSiteInfoExample();
+            storeSiteInfoExample.setBusinessState(businessState);
+            storeSiteInfoExample.setStoreGradeId(storeGradeId);
+            storeSiteInfoExample.setStoreIdIn(storeNameList.stream().map(StoreName::getStoreId).collect(Collectors.toList()));
+            storeSiteInfoList = storeSiteInfoModel.getStoreSiteInfoList(storeSiteInfoExample, null);
         }
         List<StoreVO> vos = new ArrayList<>();
-        if (CollectionUtils.isEmpty(storeNameList) && !WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
+        if (CollectionUtils.isEmpty(storeNameList) && !WebSiteConstant.MEMBER_OVERSEA.equals(webSite) && CollectionUtils.isEmpty(storeSiteInfoList)) {
             return SldResponse.success(new PageVO<>(vos, new PagerInfo(10, 1)));
         }
         if (!CollectionUtils.isEmpty(storeList)) {
@@ -124,6 +132,13 @@ public class AdminStoreController extends BaseController {
                             .findFirst()
                             .map(StoreName::getStoreName)
                             .orElse(""));
+                    StoreSiteInfoExample storeSiteInfoExample = new StoreSiteInfoExample();
+                    storeSiteInfoExample.setStoreId(store.getStoreId());
+                    StoreSiteInfo storeSiteInfo = storeSiteInfoModel.getStoreSiteInfo(storeSiteInfoExample);
+                    vo.setStoreGradeName(storeSiteInfo != null ? storeSiteInfo.getStoreGradeName() : store.getStoreGradeName());
+                    vo.setBusinessState(storeSiteInfo != null ? storeSiteInfo.getBusinessState() : StoreConst.STORE_BUSINESS_STATE_DECORATION);
+                    vo.setCreateTime(storeSiteInfo != null ? storeSiteInfo.getCreateTime() : store.getCreateTime());
+                    vo.setStoreExpireTime(storeSiteInfo != null ? storeSiteInfo.getStoreExpireTime() : store.getStoreExpireTime());
                 }
                 //根据店铺id获取商户账号
                 VendorExample vendorExample = new VendorExample();
@@ -179,6 +194,7 @@ public class AdminStoreController extends BaseController {
         storeBusinessVO.setOpenTime(vo.getOpenTime());
         storeBusinessVO.setStoreGradeId(vo.getStoreGradeId());
         storeBusinessVO.setStoreGradeName(vo.getStoreGradeName());
+        storeBusinessVO.setBusinessState(vo.getBusinessState());
         storeBusinessVOList.add(storeBusinessVO);
 
         StoreNameExample storeNameExample = new StoreNameExample();
@@ -192,6 +208,7 @@ public class AdminStoreController extends BaseController {
         storeBusinessVO.setOpenTime(storeCn != null ? storeCn.getOpenTime() : null);
         storeBusinessVO.setStoreGradeId(storeCn != null ? storeCn.getStoreGradeId() : null);
         storeBusinessVO.setStoreGradeName(storeCn != null ? storeCn.getStoreGradeName() : null);
+        storeBusinessVO.setBusinessState(storeCn != null ? storeCn.getBusinessState() : null);
         storeBusinessVOList.add(storeBusinessVO);
 
         vo.setStoreBusinessVOList(storeBusinessVOList);

+ 2 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/front/FrontCategoryController.java

@@ -39,9 +39,11 @@ public class FrontCategoryController extends BaseController {
     @GetMapping("list")
     public JsonResult<List<StoreCategoryTreeVO>> getList(HttpServletRequest request) {
         PagerInfo pager = WebUtil.handlerPagerInfo(request);
+        String webSite = WebUtil.getWebSite(request);
 
         List<StoreCategoryTreeVO> tree = new ArrayList<>();
         StoreInnerLabelExample storeInnerLabelExample = new StoreInnerLabelExample();
+        storeInnerLabelExample.setWebSite(webSite);
         storeInnerLabelExample.setParentInnerLabelId(0);
         storeInnerLabelExample.setIsShow(StoreCateConst.STORE_LABEL_IS_SHOW);
         List<StoreInnerLabel> storeInnerLabelList = storeInnerLabelModel.getStoreInnerLabelList(storeInnerLabelExample, pager);

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

@@ -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);

+ 20 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/seller/seller/SellerStoreController.java

@@ -91,8 +91,12 @@ public class SellerStoreController extends BaseController {
                 store.setServicePhone(null);
                 store.setAddress(null);
                 store.setEmail(null);
+                store.setOpenTime(null);
+                store.setStoreGradeId(null);
+                store.setStoreGradeName(null);
                 store.setStoreMapInfo(null);
                 store.setStoreMapInfoW(null);
+                store.setBusinessState(StoreConst.STORE_BUSINESS_STATE_TO_AUDIT);
             }
             StoreNameExample storeNameExample = new StoreNameExample();
             storeNameExample.setStoreId(vendor.getStoreId());
@@ -217,8 +221,7 @@ public class SellerStoreController extends BaseController {
             }
         } else {
             store = storeSiteInfoModel.getStoreByStoreIdAndWebSite(vendor.getStoreId(), webSite);
-            store.setStoreGradeId(storeModel.getStoreByStoreId(vendor.getStoreId()).getStoreGradeId());
-            store.setStoreGradeName(storeModel.getStoreByStoreId(vendor.getStoreId()).getStoreGradeName());
+            store.setBusinessState(store.getBusinessState() == null ? StoreConst.STORE_BUSINESS_STATE_TO_AUDIT : store.getBusinessState());
             SysSeo seoInfo = storeModel.getRecordByTargetIdAndType(vendor.getStoreId(), SeoTypeConstant.SEO_TYPE_SHOP + "_" + webSite);
             if (seoInfo != null) {
                 store.setStoreSeoTitle(seoInfo.getTitle());
@@ -242,6 +245,7 @@ public class SellerStoreController extends BaseController {
     @ApiOperation("编辑店铺设置接口")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "webSite", value = "站点", paramType = "query"),
+            @ApiImplicitParam(name = "businessState", value = "经营状态", paramType = "query"),
             @ApiImplicitParam(name = "mainBusiness", value = "店铺主营商品名称,用','分隔,例如'男装,女装,童装'"),
             @ApiImplicitParam(name = "storeLogo", value = "店铺logo"),
             @ApiImplicitParam(name = "servicePhone", value = "店铺客服电话"),
@@ -261,6 +265,7 @@ public class SellerStoreController extends BaseController {
     @PostMapping("updateSetting")
     public JsonResult<Integer> updateStoreSetting(HttpServletRequest request,
                                                   @RequestParam(value = "webSite", required = false, defaultValue = "1") String webSite,
+                                                  @RequestParam(value = "businessState", required = false) Integer businessState,
                                                   @RequestParam(value = "mainBusiness", required = false) String mainBusiness,
                                                   @RequestParam(value = "storeLogo", required = false) String storeLogo,
                                                   @RequestParam(value = "servicePhone", required = false) String servicePhone,
@@ -282,6 +287,7 @@ public class SellerStoreController extends BaseController {
         if (WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
             Store store = new Store();
             store.setStoreId(vendor.getStoreId());
+            store.setBusinessState(businessState);
             store.setMainBusiness(mainBusiness);
             store.setStoreLogo(storeLogo);
             store.setServicePhone(servicePhone);
@@ -302,6 +308,7 @@ public class SellerStoreController extends BaseController {
             StoreSiteInfo storeSiteInfo = new StoreSiteInfo();
             storeSiteInfo.setStoreId(vendor.getStoreId());
             storeSiteInfo.setWebSite(webSite);
+            storeSiteInfo.setBusinessState(businessState);
             storeSiteInfo.setMainBusiness(mainBusiness);
             storeSiteInfo.setStoreLogo(storeLogo);
             storeSiteInfo.setServicePhone(servicePhone);
@@ -386,6 +393,17 @@ public class SellerStoreController extends BaseController {
             storeNameExample.setStoreId(vendor.getStoreId());
             List<StoreName> storeNameList = storeNameModel.getStoreNameList(storeNameExample, null);
             store.setStoreName(CollectionUtils.isEmpty(storeNameList) ? store.getStoreName() : storeNameList.get(0).getStoreName());
+
+            StoreSiteInfoExample storeSiteInfoExample = new StoreSiteInfoExample();
+            storeSiteInfoExample.setStoreId(vendor.getStoreId());
+            StoreSiteInfo storeSiteInfo = storeSiteInfoModel.getStoreSiteInfo(storeSiteInfoExample);
+            if (storeSiteInfo != null) {
+                store.setStoreGradeId(storeSiteInfo.getStoreGradeId());
+                store.setStoreGradeName(storeSiteInfo.getStoreGradeName());
+                store.setStoreExpireTime(storeSiteInfo.getStoreExpireTime());
+                store.setStoreLogo(storeSiteInfo.getStoreLogo());
+                store.setBusinessState(storeSiteInfo.getBusinessState());
+            }
         }
         //店铺默认logo
         if (StringUtils.isEmpty(store.getStoreLogo())) {

+ 7 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/sso/front/FrontAuthController.java

@@ -101,8 +101,9 @@ public class FrontAuthController {
     })
     @PostMapping("token")
     public JsonResult<Object> doLogin(HttpServletRequest request, @RequestParam(value = "loginType", required = false, defaultValue = "1") Integer loginType,
-                                      String username, String password, String cartInfo, String clientId, String alias, String refresh_token, Integer ssoType,@RequestParam(value = "webSite",required = false, defaultValue = "1") String webSite) {
+                                      String username, String password, String cartInfo, String clientId, String alias, String refresh_token, Integer ssoType) {
         Member member;
+        String webSite = WebUtil.getWebSite(request);
         if (!StringUtils.isEmpty(refresh_token)) {
             //校验token
             String memberId = JWTRSA256Util.validToken(refresh_token);
@@ -126,7 +127,7 @@ public class FrontAuthController {
                         memberList = memberModel.getMemberList(memberExample, null);
                     }
                 } else {
-                    AssertUtil.notEmpty(memberList, Language.translate("会员邮箱或密码错误",Language.EN_LANGUAGE_TYPE));
+                    AssertUtil.notEmpty(memberList, Language.translate("会员账号或密码错误",Language.EN_LANGUAGE_TYPE));
                     if (ssoType != null && ssoType == 1) {
                         AssertUtil.isTrue(!memberList.get(0).getLoginPwd().equals(password), Language.translate("会员邮箱或密码错误",Language.EN_LANGUAGE_TYPE));
                     } else {
@@ -268,8 +269,11 @@ public class FrontAuthController {
     })
     @PostMapping("register")
     public JsonResult<Object> registerMember(HttpServletRequest request, String phone, String code, String verifyCode, String verifyKey, Integer source) {
+       String webSite= WebUtil.getWebSite(request);
+
         //判断会员表中是否有重复的手机号
         MemberExample memberExample = new MemberExample();
+        memberExample.setWebSite(webSite);
         memberExample.setMemberMobile(phone);
         List<Member> memberList = memberModel.getMemberList(memberExample, null);
         AssertUtil.isTrue(!CollectionUtils.isEmpty(memberList), "该手机号已注册");
@@ -296,6 +300,7 @@ public class FrontAuthController {
         Member member = new Member();
         member.setMemberName(GoodsIdGenerator.getMemberName());
         member.setMemberMobile(phone);
+        member.setWebSite(webSite);
         member.setLoginPwd("");
         member.setPayPwd("");
         member.setLastLoginIp("");

+ 2 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/statistics/front/FrontMemberBehaviorController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.SldResponse;
 import com.slodon.b2b2c.core.util.StringUtil;
+import com.slodon.b2b2c.core.util.WebUtil;
 import com.slodon.b2b2c.enums.ProvinceJson;
 import com.slodon.b2b2c.enums.StatsConstant;
 import com.slodon.b2b2c.statistics.pojo.MemberBehavior;
@@ -38,6 +39,7 @@ public class FrontMemberBehaviorController {
         //解码
         String json = Base64.decodeStr(u);
         MemberBehavior memberBehavior = JSON.parseObject(json, MemberBehavior.class);
+        memberBehavior.setWebSite(WebUtil.getWebSite(request));
         if (memberBehavior == null) {
             return SldResponse.success();
         }

+ 1 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/admin/AdminPcFirstAdvController.java

@@ -34,7 +34,7 @@ public class AdminPcFirstAdvController {
     })
     public JsonResult<PcFirstAdv> get(@RequestParam(value = "webSite",required = false,defaultValue = "1") String webSite,@RequestParam(value = "type",required = false,defaultValue = "1") Integer type) {
         AssertUtil.isTrue(type != 1 && type != 2 ,"参数不对");
-        PcFirstAdvExample example=new PcFirstAdvExample();
+        PcFirstAdvExample example = new PcFirstAdvExample();
         example.setAdvId(type);
         example.setWebSite(webSite);
         List<PcFirstAdv> pcFirstAdvListList = pcFirstAdvModel.getPcFirstAdvList(example, null);

+ 50 - 22
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/front/FrontDecoController.java

@@ -12,12 +12,14 @@ import com.slodon.b2b2c.core.response.SldResponse;
 import com.slodon.b2b2c.core.util.AssertUtil;
 import com.slodon.b2b2c.core.util.FileUrlUtil;
 import com.slodon.b2b2c.core.util.StringUtil;
+import com.slodon.b2b2c.core.util.WebUtil;
 import com.slodon.b2b2c.goods.pojo.Goods;
 import com.slodon.b2b2c.model.goods.GoodsModel;
 import com.slodon.b2b2c.model.seller.StoreModel;
 import com.slodon.b2b2c.model.system.PcFirstAdvModel;
 import com.slodon.b2b2c.model.system.TplMobileDecoModel;
 import com.slodon.b2b2c.seller.pojo.Store;
+import com.slodon.b2b2c.system.example.PcFirstAdvExample;
 import com.slodon.b2b2c.system.example.TplMobileDecoExample;
 import com.slodon.b2b2c.system.pojo.PcFirstAdv;
 import com.slodon.b2b2c.system.pojo.TplMobileDeco;
@@ -36,10 +38,12 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static com.alibaba.fastjson.serializer.SerializerFeature.WriteEnumUsingName;
 import static com.alibaba.fastjson.serializer.SerializerFeature.WriteMapNullValue;
 
 @Api(tags = "front-首页装修")
@@ -293,10 +297,16 @@ public class FrontDecoController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "type", value = "广告类型,1-弹层广告,2-顶部广告", required = false, defaultValue = "1")
     })
-    public JsonResult<PcFirstAdv> getFirstAdv(@RequestParam(value = "type", required = false, defaultValue = "1") Integer type) {
+    public JsonResult<PcFirstAdv> getFirstAdv(HttpServletRequest request,@RequestParam(value = "type", required = false, defaultValue = "1") Integer type) {
         AssertUtil.isTrue(type != 1 && type != 2, "参数不对");
-        PcFirstAdv pcFirstAdv = pcFirstAdvModel.getPcFirstAdvByAdvId(type);
-        return SldResponse.success(pcFirstAdv);
+        PcFirstAdvExample example = new PcFirstAdvExample();
+        example.setAdvId(type);
+        example.setWebSite(WebUtil.getWebSite(request));
+        List<PcFirstAdv> pcFirstAdvListList = pcFirstAdvModel.getPcFirstAdvList(example, null);
+        if (CollectionUtils.isEmpty(pcFirstAdvListList)){
+            return SldResponse.success();
+        }
+        return SldResponse.success(pcFirstAdvListList.get(0));
     }
 
     /**
@@ -311,32 +321,50 @@ public class FrontDecoController {
                 Long goodsId = jsonObject.getLong("goodsId");
                 //查询商品信息
                 Goods goods = goodsModel.getGoodsByGoodsId(goodsId);
-                if (goods != null) {
-                    if (jsonObject.containsKey("actualSales")) {
-                        //销量
-                        int salesVolume = goods.getActualSales() + goods.getVirtualSales();
-                        jsonObject.put("actualSales", salesVolume);
-                    }
-                    if (jsonObject.containsKey("goodsPrice")) {
-                        //价格
-                        jsonObject.put("goodsPrice", goods.getGoodsPrice());
-                    }
-                    if (jsonObject.containsKey("mainImage")) {
-                        //图片
-                        jsonObject.put("mainImage", FileUrlUtil.getFileUrl(goods.getMainImage(), null));
-                    }
-                    if (jsonObject.containsKey("goodsName")) {
-                        //名称
-                        jsonObject.put("goodsName", goods.getGoodsName());
-                    }
+                // 如果商品不存在或不是上架状态,则从JSON中移除该商品
+                if (goods == null || goods.getState() == null || goods.getState() != 3) {
+                    // 标记需要移除的商品,但不在遍历过程中直接移除
+                    return;
+                }
+                if (jsonObject.containsKey("actualSales")) {
+                    //销量
+                    int salesVolume = goods.getActualSales() + goods.getVirtualSales();
+                    jsonObject.put("actualSales", salesVolume);
                 }
+                if (jsonObject.containsKey("goodsPrice")) {
+                    //价格
+                    jsonObject.put("goodsPrice", goods.getGoodsPrice());
+                }
+                if (jsonObject.containsKey("mainImage")) {
+                    //图片
+                    jsonObject.put("mainImage", FileUrlUtil.getFileUrl(goods.getMainImage(), null));
+                }
+                if (jsonObject.containsKey("goodsName")) {
+                    //名称
+                    jsonObject.put("goodsName", goods.getGoodsName());
+                }
+
             }
             jsonObject.values().forEach(this::dealGoodsSale);
             return;
         }
         if (object instanceof JSONArray) {
             JSONArray o = (JSONArray) object;
-            o.forEach(this::dealGoodsSale);
+            // 使用迭代器以便在遍历过程中安全地移除元素
+            o.removeIf(item -> {
+                if (item instanceof JSONObject) {
+                    JSONObject jsonObject = (JSONObject) item;
+                    if (jsonObject.containsKey("goodsId")) {
+                        Long goodsId = jsonObject.getLong("goodsId");
+                        Goods goods = goodsModel.getGoodsByGoodsId(goodsId);
+                        // 如果商品不存在或不是上架状态,则移除该商品
+                        return goods == null || goods.getState() == null || goods.getState() != 3;
+                    }
+                }
+                // 对于数组中的其他元素,递归处理
+                dealGoodsSale(item);
+                return false;
+            });
         }
     }
 }

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

@@ -4,6 +4,7 @@ import com.slodon.b2b2c.core.constant.TplPcConst;
 import com.slodon.b2b2c.core.controller.BaseController;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.SldResponse;
+import com.slodon.b2b2c.core.util.WebUtil;
 import com.slodon.b2b2c.model.system.NavigationModel;
 import com.slodon.b2b2c.system.example.NavigationExample;
 import com.slodon.b2b2c.system.pojo.Navigation;
@@ -28,8 +29,10 @@ public class FrontNavigationController extends BaseController {
     @ApiOperation("首页导航列表")
     @GetMapping("list")
     public JsonResult<List<Navigation>> list(HttpServletRequest request) {
+        String webSite = WebUtil.getWebSite(request);
         NavigationExample example = new NavigationExample();
         example.setIsShow(TplPcConst.IS_SHOW_YES);
+        example.setWebSite(webSite);
         example.setOrderBy("sort asc");
         List<Navigation> list = navigationModel.getNavigationList(example, null);
         return SldResponse.success(list);

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

@@ -12,14 +12,21 @@ import com.slodon.b2b2c.core.response.SldResponse;
 import com.slodon.b2b2c.core.util.AssertUtil;
 import com.slodon.b2b2c.core.util.FileUrlUtil;
 import com.slodon.b2b2c.core.util.StringUtil;
+import com.slodon.b2b2c.core.util.WebUtil;
+import com.slodon.b2b2c.enums.WebSiteConstant;
 import com.slodon.b2b2c.goods.pojo.Goods;
 import com.slodon.b2b2c.model.goods.GoodsModel;
 import com.slodon.b2b2c.model.seller.StoreModel;
+import com.slodon.b2b2c.model.seller.StoreNameModel;
+import com.slodon.b2b2c.model.seller.StoreSiteInfoModel;
 import com.slodon.b2b2c.model.system.TplPcMallDecoModel;
+import com.slodon.b2b2c.seller.example.StoreNameExample;
 import com.slodon.b2b2c.seller.pojo.Store;
+import com.slodon.b2b2c.seller.pojo.StoreName;
 import com.slodon.b2b2c.system.example.TplPcMallDecoExample;
 import com.slodon.b2b2c.system.pojo.TplPcMallDeco;
 import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
@@ -27,8 +34,10 @@ 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;
 import java.util.List;
 import java.util.Map;
@@ -45,9 +54,13 @@ public class FrontPcDecoController {
     @Resource
     private StoreModel storeModel;
     @Resource
+    private StoreNameModel storeNameModel;
+    @Resource
     private GoodsModel goodsModel;
     @Resource
     private StringRedisTemplate stringRedisTemplate;
+    @Autowired
+    private StoreSiteInfoModel storeSiteInfoModel;
 
     @ApiOperation("pc首页数据")
     @ApiImplicitParams({
@@ -58,12 +71,13 @@ public class FrontPcDecoController {
             @ApiResponse(code = 200, message = "data==装修数据")
     )
     @GetMapping("index")
-    public JsonResult indexPage(@RequestParam(value = "decoType", required = false, defaultValue = "index") String decoType,
+    public JsonResult indexPage(HttpServletRequest request, @RequestParam(value = "decoType", required = false, defaultValue = "index") String decoType,
                                 @RequestParam(value = "decoId", required = false) Integer decoId) {
+        String webSite = WebUtil.getWebSite(request);
         Map<String, Object> modelMap = new HashMap();
         if ("index".equals(decoType) && StringUtil.isNullOrZero(decoId)) {
             //获取首页装修,先查redis缓存是否有数据
-            String pcIndex = stringRedisTemplate.opsForValue().get(RedisConst.PC_INDEX);
+            String pcIndex = stringRedisTemplate.opsForValue().get(RedisConst.PC_INDEX + "_" + webSite);
             if (!StringUtils.isEmpty(pcIndex)) {
                 modelMap.put("data", pcIndex);
                 return SldResponse.success(modelMap);
@@ -71,6 +85,7 @@ public class FrontPcDecoController {
         }
         TplPcMallDeco deco = null;
         TplPcMallDecoExample example = new TplPcMallDecoExample();
+        example.setWebSite(webSite);
         example.setIsEnable(TplPcConst.IS_ENABLE_YES);
         if ("index".equals(decoType) && StringUtil.isNullOrZero(decoId)) {
             example.setDecoType("index");
@@ -90,7 +105,7 @@ public class FrontPcDecoController {
         String data = deco.getData();
         //存入redis
         if ("index".equals(decoType) && StringUtil.isNullOrZero(decoId) && !StringUtil.isEmpty(data)) {
-            stringRedisTemplate.opsForValue().set(RedisConst.PC_INDEX, data);
+            stringRedisTemplate.opsForValue().set(RedisConst.PC_INDEX + "_" + webSite, data);
         }
         modelMap.put("data", data);
         return SldResponse.success(modelMap);
@@ -105,9 +120,20 @@ public class FrontPcDecoController {
             @ApiResponse(code = 200, message = "data==装修数据")
     )
     @GetMapping("sellerIndex")
-    public JsonResult sellerIndexPage(@RequestParam(value = "storeId") Long storeId, Integer decoId) {
+    public JsonResult sellerIndexPage(HttpServletRequest request, @RequestParam(value = "storeId") Long storeId, Integer decoId) {
+        String webSite = WebUtil.getWebSite(request);
         //查询店铺信息
         Store storeDb = storeModel.getStoreByStoreId(storeId);
+        if (WebSiteConstant.MEMBER_DISTRIBUTOR.equals(webSite)) {
+            storeDb = storeSiteInfoModel.getStoreByStoreIdAndWebSite(storeDb.getStoreId(), WebSiteConstant.MEMBER_DISTRIBUTOR);
+            if (!StringUtils.isEmpty(storeDb.getStoreId())) {
+                StoreNameExample storeNameExample = new StoreNameExample();
+                storeNameExample.setStoreId(storeDb.getStoreId());
+                storeNameExample.setWebSite(WebSiteConstant.MEMBER_DISTRIBUTOR);
+                StoreName storeName = storeNameModel.getStoreNameByExample(storeNameExample);
+                storeDb.setStoreName(storeName != null ? storeName.getStoreName() : null);
+            }
+        }
         if (storeDb.getState().equals(StoreConst.STORE_STATE_CLOSE)) {
             JsonResult jsonResult = SldResponse.fail("店铺已关闭");
             jsonResult.setState(ResponseConst.STATE_STORE_CLOSE);
@@ -129,6 +155,7 @@ public class FrontPcDecoController {
         } else {
             TplPcMallDecoExample example = new TplPcMallDecoExample();
             example.setStoreId(storeId);
+            example.setWebSite(webSite);
             example.setIsEnable(TplPcConst.IS_ENABLE_YES);
             example.setDecoType("index");
             List<TplPcMallDeco> tplPcMallDecoList = tplPcMallDecoModel.getTplPcMallDecoList(example, null);

+ 8 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/front/FrontSettingController.java

@@ -3,6 +3,8 @@ package com.slodon.b2b2c.controller.system.front;
 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.WebUtil;
+import com.slodon.b2b2c.enums.WebSiteConstant;
 import com.slodon.b2b2c.model.system.SettingModel;
 import com.slodon.b2b2c.system.pojo.Setting;
 import io.swagger.annotations.Api;
@@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -31,10 +34,14 @@ public class FrontSettingController {
                     value = "配置名称,多个配置名用逗号分隔(basic_site_name==网站名称,main_site_logo==网站logo)")
     })
     @GetMapping("getSettings")
-    public JsonResult getSettings(String names) {
+    public JsonResult getSettings(HttpServletRequest request, String names) {
+        String webSite = WebUtil.getWebSite(request);
         List<String> list = new ArrayList<>();
         for (String name : names.split(",")) {
             Setting setting = settingModel.getSettingByName(name);
+            if (!WebSiteConstant.MEMBER_OVERSEA.equals(webSite)) {
+                setting = settingModel.getSettingByName(name + "_" + webSite);
+            }
             if (setting == null) {
                 list.add("");
             } else {

+ 13 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/system/seller/SellerSettingController.java

@@ -63,6 +63,19 @@ public class SellerSettingController extends BaseController {
         return SldResponse.success(list);
     }
 
+
+    @ApiOperation("获取店铺经营状态配置信息")
+    @GetMapping("getBusinessSettingList")
+    public JsonResult<List<Setting>> getBusinessSettingList() {
+        List<Setting> list = settingModel.getBusinessSetting();
+        return SldResponse.success(list);
+    }
+
+
+
+
+
+
     /**
      * 获取Setting参数
      *

+ 1 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/dao/read/goods/GoodsBrandReadMapper.java

@@ -18,6 +18,6 @@ public interface GoodsBrandReadMapper extends BaseReadMapper<GoodsBrand, GoodsBr
      * @param size     需要查询的数量
      * @return
      */
-    List<String> groupListFieldsPageByExample(@Param("startRow") Integer startRow, @Param("size") Integer size);
+    List<String> groupListFieldsPageByExample(@Param("startRow") Integer startRow, @Param("size") Integer size, @Param("webSite") String webSite);
 
 }

+ 1 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/ESGoodsModel.java

@@ -614,7 +614,7 @@ public class ESGoodsModel {
         //查询商品
         RestHighLevelClient client = getESClient();
         try {
-            SearchRequest searchRequest = new SearchRequest(DomainUrlUtil.ES_INDEX_NAME);
+            SearchRequest searchRequest = new SearchRequest(DomainUrlUtil.ES_INDEX_NAME + "_" + qc.getWebSite());
             searchRequest.source(searchSourceBuilder);
             SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
             SearchHits hits = searchResponse.getHits();

+ 4 - 3
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/GoodsBrandModel.java

@@ -314,14 +314,14 @@ public class GoodsBrandModel {
      * @param pager 分页信息
      * @return
      */
-    public List<GoodsBrandFrontVO> getGoodsBrandListBy(PagerInfo pager) {
+    public List<GoodsBrandFrontVO> getGoodsBrandListBy(PagerInfo pager,String webSite) {
         //根据品牌首字母分组查询
         GoodsBrandExample brandExample = new GoodsBrandExample();
         //最多26个英文字母
-        List<String> list1 = goodsBrandReadMapper.groupListFieldsPageByExample(0, 26);
+        List<String> list1 = goodsBrandReadMapper.groupListFieldsPageByExample(0, 26, webSite);
         pager.setRowsCount(list1.size());
         //分组查询
-        List<String> list = goodsBrandReadMapper.groupListFieldsPageByExample(pager.getStart(), pager.getPageSize());
+        List<String> list = goodsBrandReadMapper.groupListFieldsPageByExample(pager.getStart(), pager.getPageSize(), webSite);
 
         //响应
         List<GoodsBrandFrontVO> vos = new ArrayList<>();
@@ -334,6 +334,7 @@ public class GoodsBrandModel {
                 //按照品牌首字母重新查询品牌集合
                 GoodsBrandExample example = new GoodsBrandExample();
                 example.setBrandInitial(brandInitial);
+                example.setWebSite(webSite);
                 List<GoodsBrand> brandList = goodsBrandReadMapper.listByExample(example);
 
                 List<GoodsBrandFrontVO.GoodsBrandInfo> infos = new ArrayList<>();

+ 2 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/GoodsCategoryModel.java

@@ -236,7 +236,7 @@ public class GoodsCategoryModel {
         }else{
             sysSeo.setCreateUid(Integer.valueOf(admin.getAdminId()).longValue());
             sysSeo.setCreateTime(time);
-            sysSeo.setCode(SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY+"_"+Integer.valueOf(categoryId).longValue());
+            sysSeo.setCode(SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY + "_" + Integer.valueOf(categoryId).longValue());
             count = storeModel.saveSeo(sysSeo);
         }
         if(count == 0){
@@ -283,7 +283,7 @@ public class GoodsCategoryModel {
         }else{
             sysSeo.setCreateUid(Integer.valueOf(admin.getAdminId()).longValue());
             sysSeo.setCreateTime(time);
-            sysSeo.setCode(SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY+"_"+Integer.valueOf(goodsCategoryUpdateDTO.getCategoryId()).longValue());
+            sysSeo.setCode(SeoTypeConstant.SEO_TYPE_GOODS_CATEGORY + "_" + Integer.valueOf(goodsCategoryUpdateDTO.getCategoryId()).longValue());
             count = storeModel.saveSeo(sysSeo);
         }
         if(count == 0){

+ 3 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/GoodsSearchWordsModel.java

@@ -113,14 +113,16 @@ public class GoodsSearchWordsModel {
      * @param goodsNum 搜索词查询到的商品数
      */
     @Async
-    public void recordSearchWords(String searchWords,Integer goodsNum){
+    public void recordSearchWords(String searchWords, String webSite, Integer goodsNum) {
         //查询是否已有记录
         GoodsSearchWordsExample example = new GoodsSearchWordsExample();
         example.setWordsContent(searchWords);
+        example.setWebSite(webSite);
         List<GoodsSearchWords> list = goodsSearchWordsReadMapper.listByExample(example);
         if (CollectionUtils.isEmpty(list)){
             //没有记录,新增一条
             GoodsSearchWords goodsSearchWords = new GoodsSearchWords();
+            goodsSearchWords.setWebSite(webSite);
             goodsSearchWords.setWordsContent(searchWords);
             goodsSearchWords.setFullPy(PinyinUtil.getPinyin(searchWords,""));
             goodsSearchWords.setSimplePy(goodsSearchWords.getFullPy().substring(0,1));

+ 2 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/StoreCertificateNewListModel.java

@@ -175,9 +175,9 @@ public class StoreCertificateNewListModel {
      * @param storeId
      * @return
      */
-    public List<StoreCertificateList> getStoreCertificateByStoreId(Long storeId){
+    public List<StoreCertificateList> getStoreCertificateByStoreId(Long storeId,String webSite){
         StoreCertificateListExample example = new StoreCertificateListExample();
-        example.createCriteria().andStatusEqualTo(StoreCertificateStatusConst.CER_NORMAL).andStoreIdEqualTo(storeId);
+        example.createCriteria().andStatusEqualTo(StoreCertificateStatusConst.CER_NORMAL).andStoreIdEqualTo(storeId).andWebSiteEqualTo(webSite);
         return storeCertificateListReadMapper.selectByExample(example);
     }
 

+ 4 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/member/advich/MemberEnquiryModel.java

@@ -576,12 +576,14 @@ public class MemberEnquiryModel {
         List<String> tos = new ArrayList<>();
         if (enquiry.getStoreId() == 0) {
             AdminEnquiryReceiveMailSettingExample adminEnquiryReceiveMailSettingExample = new AdminEnquiryReceiveMailSettingExample();
+            adminEnquiryReceiveMailSettingExample.setWebSite(enquiry.getWebSite());
             List<AdminEnquiryReceiveMailSetting> list = adminEnquiryReceiverMailSettingModel.getEnquiryAdminReceiveMailSettings(adminEnquiryReceiveMailSettingExample, null);
             if (!CollectionUtils.isEmpty(list)) {
                 tos = list.stream().map(AdminEnquiryReceiveMailSetting::getEmail).collect(Collectors.toList());
             }
         } else {
             EnquiryReceiveMailSettingExample enquiryReceiveMailSettingExample = new EnquiryReceiveMailSettingExample();
+            enquiryReceiveMailSettingExample.setWebSite(enquiry.getWebSite());
             enquiryReceiveMailSettingExample.setStoreId(enquiry.getStoreId());
             List<EnquiryReceiveMailSetting> list = enquiryReceiverMailSettingModel.getEnquiryReceiveMailSettings(enquiryReceiveMailSettingExample, null);
             if (!CollectionUtils.isEmpty(list)) {
@@ -629,12 +631,14 @@ public class MemberEnquiryModel {
         List<String> mobiles = new ArrayList<>();
         if (enquiry.getStoreId() == 0) {
             AdminEnquiryReceiveMailSettingExample adminEnquiryReceiveMailSettingExample = new AdminEnquiryReceiveMailSettingExample();
+            adminEnquiryReceiveMailSettingExample.setWebSite(enquiry.getWebSite());
             List<AdminEnquiryReceiveMailSetting> list = adminEnquiryReceiverMailSettingModel.getEnquiryAdminReceiveMailSettings(adminEnquiryReceiveMailSettingExample, null);
             if (!CollectionUtils.isEmpty(list)) {
                 mobiles = list.stream().filter(admin -> !StringUtil.isEmpty(admin.getPhone())).map(AdminEnquiryReceiveMailSetting::getPhone).collect(Collectors.toList());
             }
         } else {
             EnquiryReceiveMailSettingExample enquiryReceiveMailSettingExample = new EnquiryReceiveMailSettingExample();
+            enquiryReceiveMailSettingExample.setWebSite(enquiry.getWebSite());
             enquiryReceiveMailSettingExample.setStoreId(enquiry.getStoreId());
             List<EnquiryReceiveMailSetting> list = enquiryReceiverMailSettingModel.getEnquiryReceiveMailSettings(enquiryReceiveMailSettingExample, null);
             if (!CollectionUtils.isEmpty(list)) {

+ 2 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/seller/SellerStoreCompanyShowModel.java

@@ -152,9 +152,9 @@ public class SellerStoreCompanyShowModel {
      * @param storeId
      * @return
      */
-    public List<StoreCompanyShowList> getStoreCompanyShowByStoreIdAndStatus(Long storeId){
+    public List<StoreCompanyShowList> getStoreCompanyShowByStoreIdAndStatus(Long storeId,String webSite){
         StoreCompanyShowListExample example = new StoreCompanyShowListExample();
-        example.createCriteria().andStatusEqualTo(StoreCompanyShowConstant.COMPANY_NORMAL).andStoreIdEqualTo(storeId);
+        example.createCriteria().andStatusEqualTo(StoreCompanyShowConstant.COMPANY_NORMAL).andStoreIdEqualTo(storeId).andWebSiteEqualTo(webSite);
         return storeCompanyShowListReadMapper.selectByExample(example);
     }
 

+ 25 - 21
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/seller/StoreModel.java

@@ -5,7 +5,6 @@ import com.slodon.b2b2c.business.example.OrderExample;
 import com.slodon.b2b2c.core.constant.*;
 import com.slodon.b2b2c.core.exception.MallException;
 import com.slodon.b2b2c.core.response.PagerInfo;
-import com.slodon.b2b2c.core.uid.GoodsIdGenerator;
 import com.slodon.b2b2c.core.util.*;
 import com.slodon.b2b2c.dao.read.business.OrderReadMapper;
 import com.slodon.b2b2c.dao.read.goods.GoodsExtendReadMapper;
@@ -18,7 +17,6 @@ import com.slodon.b2b2c.dao.write.goods.GoodsWriteMapper;
 import com.slodon.b2b2c.dao.write.seller.*;
 import com.slodon.b2b2c.dao.write.system.SysSeoWriteMapper;
 import com.slodon.b2b2c.enums.WebSiteConstant;
-import com.slodon.b2b2c.goods.example.GoodsCategoryExample;
 import com.slodon.b2b2c.goods.example.GoodsExample;
 import com.slodon.b2b2c.goods.example.GoodsExtendExample;
 import com.slodon.b2b2c.goods.pojo.Goods;
@@ -33,7 +31,6 @@ import com.slodon.b2b2c.seller.pojo.*;
 import com.slodon.b2b2c.system.example.SysSeoExample;
 import com.slodon.b2b2c.system.pojo.Admin;
 import com.slodon.b2b2c.system.pojo.SysSeo;
-import com.slodon.b2b2c.system.pojo.TplPcMallDeco;
 import com.slodon.b2b2c.vo.goods.SysSeoVO;
 import com.slodon.smartid.client.utils.SmartId;
 import lombok.extern.slf4j.Slf4j;
@@ -156,6 +153,7 @@ public class StoreModel {
         calendar.add(Calendar.YEAR, storeApply.getApplyYear());
         store.setStoreExpireTime(calendar.getTime());
         store.setState(StoreConst.STORE_STATE_OPEN);
+        store.setBusinessState(StoreConst.STORE_BUSINESS_STATE_DECORATION);
         store.setIsOwnStore(StoreConst.NO_OWN_STORE);
         store.setOpenTime(storeApply.getApplyYear());
 
@@ -180,6 +178,7 @@ public class StoreModel {
         //新增storeSiteInfo表
         StoreSiteInfo storeSiteInfo = new StoreSiteInfo();
         storeSiteInfo.setStoreId(storeApply.getStoreId());
+        storeSiteInfo.setBusinessState(StoreConst.STORE_BUSINESS_STATE_DECORATION);
         storeSiteInfo.setWebSite(WebSiteConstant.MEMBER_DISTRIBUTOR);
         storeSiteInfo.setStoreGradeId(storeApply.getStoreGradeIdCn());
         storeGrade = storeGradeReadMapper.getByPrimaryKey(storeSiteInfo.getStoreGradeId());
@@ -255,14 +254,17 @@ public class StoreModel {
         }
 
         //判断国内店铺名称是否重复
-        StoreNameExample storeNameExample = new StoreNameExample();
-        storeNameExample.setStoreName(ownStoreAddDTO.getStoreNameCn());
-        storeNameExample.setWebSite(WebSiteConstant.MEMBER_DISTRIBUTOR);
-        List<StoreName> storeNames = storeNameReadMapper.listByExample(storeNameExample);
-        if (!CollectionUtils.isEmpty(storeNames)) {
-            throw new MallException("国内站店铺名称已存在,请重新填写");
+        if (WebSiteConstant.MEMBER_DISTRIBUTOR.equals(ownStoreAddDTO.getWebSite())) {
+            StoreNameExample storeNameExample = new StoreNameExample();
+            storeNameExample.setStoreName(ownStoreAddDTO.getStoreName());
+            storeNameExample.setWebSite(ownStoreAddDTO.getWebSite());
+            List<StoreName> storeNames = storeNameReadMapper.listByExample(storeNameExample);
+            if (!CollectionUtils.isEmpty(storeNames)) {
+                throw new MallException("国内站店铺名称已存在,请重新填写");
+            }
         }
 
+
         //插入store表
         Long storeId = SmartId.nextId(BizTypeConst.STORE);
         Store storeInsert = new Store();
@@ -271,6 +273,7 @@ public class StoreModel {
         storeInsert.setCreateTime(new Date());
         storeInsert.setIsOwnStore(StoreConst.IS_OWN_STORE);
         storeInsert.setState(StoreConst.STORE_STATE_OPEN);
+        storeInsert.setBusinessState(StoreConst.STORE_BUSINESS_STATE_DECORATION);
         storeInsert.setOpenTime(100);
         storeInsert.setProvinceCode(ownStoreAddDTO.getProvinceCode());
         storeInsert.setCityCode(ownStoreAddDTO.getCityCode());
@@ -313,17 +316,18 @@ public class StoreModel {
         }
 
         //插入storeName表
-        StoreName storeNameInsert = new StoreName();
-        storeNameInsert.setStoreId(storeId);
-        storeNameInsert.setStoreName(ownStoreAddDTO.getStoreNameCn());
-        storeNameInsert.setWebSite(WebSiteConstant.MEMBER_DISTRIBUTOR);
-        storeNameInsert.setCreateId(0L);
-        storeNameInsert.setCreateTime(new Date());
-        count = storeNameWriteMapper.insert(storeNameInsert);
-        if (count == 0) {
-            throw new MallException("添加店铺名称表失败,请重试");
+        if (WebSiteConstant.MEMBER_DISTRIBUTOR.equals(ownStoreAddDTO.getWebSite())) {
+            StoreName storeNameInsert = new StoreName();
+            storeNameInsert.setStoreId(storeId);
+            storeNameInsert.setStoreName(ownStoreAddDTO.getStoreName());
+            storeNameInsert.setWebSite(ownStoreAddDTO.getWebSite());
+            storeNameInsert.setCreateId(0L);
+            storeNameInsert.setCreateTime(new Date());
+            count = storeNameWriteMapper.insert(storeNameInsert);
+            if (count == 0) {
+                throw new MallException("添加店铺名称表失败,请重试");
+            }
         }
-
         //插入vendor表,关联storeId
         Vendor vendor = new Vendor();
 
@@ -531,9 +535,9 @@ public class StoreModel {
      * @param type
      * @return
      */
-    public SysSeoVO getRecordByTargetIdAndTypeForStoreDetail(Long targetId, String type) {
+    public SysSeoVO getRecordByTargetIdAndTypeForStoreDetail(Long targetId, String type,String  webSite) {
         SysSeoVO sysSeoVO = new SysSeoVO();
-        SysSeo seo = getRecordByTargetIdAndType(targetId, type);
+        SysSeo seo = getRecordByTargetIdAndType(targetId,type,webSite);
         if (seo != null) {
             sysSeoVO.setSeoTitle(seo.getTitle());
             sysSeoVO.setSeoDesc(seo.getRemark());

+ 2 - 2
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/seller/StoreProfileModel.java

@@ -153,9 +153,9 @@ public class StoreProfileModel {
      * @param storeId
      * @return
      */
-    public List<StoreProfileList> getStoreProfileByStoreIdAndStatus(Long storeId){
+    public List<StoreProfileList> getStoreProfileByStoreIdAndStatus(Long storeId, String webSite){
         StoreProfileListExample example = new StoreProfileListExample();
-        example.createCriteria().andStatusEqualTo(StoreCompanyShowConstant.COMPANY_NORMAL).andStoreIdEqualTo(storeId);
+        example.createCriteria().andStatusEqualTo(StoreCompanyShowConstant.COMPANY_NORMAL).andStoreIdEqualTo(storeId).andWebSiteEqualTo(webSite);
         return storeProfileListReadMapper.selectByExample(example);
     }
 

+ 6 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/system/SettingModel.java

@@ -178,4 +178,10 @@ public class SettingModel {
         example.setNameLike("site_source_");
         return settingReadMapper.listByExample(example);
     }
+
+    public List<Setting> getBusinessSetting() {
+        SettingExample example = new SettingExample();
+        example.setNameLike("business_state_");
+        return settingReadMapper.listByExample(example);
+    }
 }

+ 3 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/business/OrderEnquiryVO.java

@@ -75,6 +75,8 @@ public class OrderEnquiryVO implements Serializable {
 
     private String storeName;
 
+    private Long storeId;
+
     public OrderEnquiryVO(MemberEnquiry memberEnquiry) {
         id = memberEnquiry.getId();
         webSite = memberEnquiry.getWebSite();
@@ -103,6 +105,7 @@ public class OrderEnquiryVO implements Serializable {
         validStatusStr = getEnquiryGarbageStatusText(memberEnquiry.getValidStatus());
         goodsName = memberEnquiry.getGoodsName();
         storeName = memberEnquiry.getStoreName();
+        storeId = memberEnquiry.getStoreId();
     }
 
     /**

+ 4 - 4
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/OwnStoreDetailVO.java

@@ -23,10 +23,6 @@ public class OwnStoreDetailVO {
     @ApiModelProperty("店铺名称")
     private String storeName;
 
-    @ApiModelProperty("国内店铺名称")
-    private String storeNameCn;
-
-
     @ApiModelProperty("联系人名称")
     private String contactName;
 
@@ -57,6 +53,9 @@ public class OwnStoreDetailVO {
     @ApiModelProperty("结算周期")
     private String billDay;
 
+    @ApiModelProperty("店铺经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营")
+    private Integer businessState;
+
     public OwnStoreDetailVO(Store store, StoreCertificate storeCertificate) {
         storeId = store.getStoreId();
         storeName = store.getStoreName();
@@ -70,6 +69,7 @@ public class OwnStoreDetailVO {
         billType = store.getBillType();
         billTypeValue = getRealBillTypeValue(billType);
         billDay = store.getBillDay();
+        businessState = store.getBusinessState();
     }
 
     public static String getRealBillTypeValue(Integer billType) {

+ 4 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/OwnStoreVO.java

@@ -21,6 +21,9 @@ public class OwnStoreVO {
     @ApiModelProperty("店铺状态 1、开启;2、关闭")
     private Integer state;
 
+    @ApiModelProperty("店铺经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营")
+    private Integer businessState;
+
     @ApiModelProperty("商户账号")
     private String vendorName;
 
@@ -31,5 +34,6 @@ public class OwnStoreVO {
         storeId = store.getStoreId();
         storeName = store.getStoreName();
         state = store.getState();
+        businessState = store.getBusinessState();
     }
 }

+ 4 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/StoreDetailVO.java

@@ -51,6 +51,9 @@ public class StoreDetailVO {
     @ApiModelProperty("入驻类型值:0-个人入驻,1-企业入驻")
     private String enterTypeValue;
 
+    @ApiModelProperty("经营状态")
+    private Integer businessState;
+
     @ApiModelProperty("注册省编码")
     private String companyProvinceCode;
 
@@ -172,6 +175,7 @@ public class StoreDetailVO {
         companyAreaCode = storeCertificate.getCompanyAreaCode();
         areaInfo = storeCertificate.getAreaInfo();
         companyAddress = storeCertificate.getCompanyAddress();
+        businessState = store.getBusinessState();
         personCardUp = storeCertificate.getPersonCardUp();
         personCardUpPath = FileUrlUtil.getFileUrl(storeCertificate.getPersonCardUp(), null);
         personCardDown = storeCertificate.getPersonCardDown();

+ 4 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/StoreIndexInformationVO.java

@@ -71,6 +71,9 @@ public class StoreIndexInformationVO {
     @ApiModelProperty("店铺到期时间")
     private Date storeExpireTime;
 
+    @ApiModelProperty("经营状态")
+    private Integer businessState;
+
     public StoreIndexInformationVO(Store store, Vendor vendor) {
         storeId = store.getStoreId();
         storeName = store.getStoreName();
@@ -87,6 +90,7 @@ public class StoreIndexInformationVO {
         isOwnStoreValue = getRealIsOwnStoreValue(isOwnStore);
         comprehensiveScore = dealComprehensiveScore(store.getServiceScore(), store.getDeliverScore(), store.getDescriptionScore());
         storeExpireTime = store.getStoreExpireTime();
+        businessState = store.getBusinessState();
     }
 
     public static String dealComprehensiveScore(String serviceScore, String deliverScore, String descriptionScore) {

+ 4 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/vo/seller/StoreVO.java

@@ -31,6 +31,9 @@ public class StoreVO {
     @ApiModelProperty("店铺状态 1、开启;2、关闭")
     private Integer state;
 
+    @ApiModelProperty("店铺经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营")
+    private Integer businessState;
+
     @ApiModelProperty("店主账号")
     private String vendorName;
 
@@ -60,6 +63,7 @@ public class StoreVO {
         storeName = store.getStoreName();
         storeLogo = store.getStoreLogo();
         state = store.getState();
+        businessState = store.getBusinessState();
         storeGradeName = store.getStoreGradeName();
         createTime = store.getCreateTime();
         storeExpireTime = store.getStoreExpireTime();

+ 1 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/application.yml

@@ -43,6 +43,7 @@ secure:
       - "/v3/member/front/active/**"
       - "/v3/open/api/sso/login/**"
       - "/v3/system/seller/setting/getSiteSettingList"
+      - "/v3/system/seller/setting/getBusinessSettingList"
       - "/openapi/**"
     #      - "/v3/seller/seller/enquiry/sendMsgStr"
     login-urls: #登录接口

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

@@ -236,6 +236,7 @@
     `brand_initial`
     FROM
     `goods_brand`
+    WHERE web_site = #{webSite}
     GROUP BY
     `brand_initial`
     ORDER BY

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

@@ -3,6 +3,7 @@
 <mapper namespace="com.slodon.b2b2c.dao.read.goods.GoodsSearchWordsReadMapper">
   <resultMap id="resultMap" type="com.slodon.b2b2c.goods.pojo.GoodsSearchWords">
     <id column="words_id" property="wordsId" />
+    <result column="web_site" property="webSite" />
     <result column="words_content" property="wordsContent" />
     <result column="full_py" property="fullPy" />
     <result column="simple_py" property="simplePy" />
@@ -25,6 +26,9 @@
         <if test="example.wordsIdIn != null">
           AND `words_id` in (${example.wordsIdIn})
         </if>
+        <if test="example.webSite != null">
+          AND `web_site` = #{example.webSite}
+        </if>
         <if test="example.wordsContent != null">
           AND `words_content` = #{example.wordsContent}
         </if>

+ 14 - 2
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/member/MemberEnquiryReadMapper.xml

@@ -268,8 +268,20 @@
 
     <!--分页查询符合条件的记录(指定字段)-->
     <select id="enquiryAdminListPage" resultMap="resultMap">
-        select t1.*,t2.vendor_id,t3.admin_name as vendor_name,(select store_name from store s where s.store_id = t1.store_id) storeName
-               from enquiry t1 LEFT JOIN enquiry_assign t2 on t1.id = t2.enquiry_id LEFT JOIN sys_admin t3 ON t2.vendor_id = t3.admin_id where t1.`status` != 'DELETE'
+        SELECT
+        t1.*,
+        t2.vendor_id,
+        CASE
+        WHEN t1.store_id = 0 THEN t3.admin_name
+        ELSE t5.vendor_name
+        END AS vendor_name,
+        (SELECT store_name FROM store s WHERE s.store_id = t1.store_id) AS storeName
+        FROM enquiry t1
+        LEFT JOIN enquiry_assign t2 ON t1.id = t2.enquiry_id
+        LEFT JOIN sys_admin t3 ON t2.vendor_id = t3.admin_id
+        LEFT JOIN enquiry_assign t4 ON t1.id = t4.enquiry_id AND t1.store_id != 0
+        LEFT JOIN vendor t5 ON t4.vendor_id = t5.vendor_id AND t1.store_id != 0
+        WHERE t1.status != 'DELETE'
         <if test="nameLike != null">
             AND t1.`name` like concat('%',#{nameLike},'%')
         </if>

+ 4 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/seller/StoreReadMapper.xml

@@ -20,6 +20,7 @@
     <result column="order_total_count" property="orderTotalCount" />
     <result column="order_finished_count" property="orderFinishedCount" />
     <result column="state" property="state" />
+    <result column="business_state" property="businessState" />
     <result column="is_own_store" property="isOwnStore" />
     <result column="store_category_id" property="storeCategoryId" />
     <result column="store_category_name" property="storeCategoryName" />
@@ -128,6 +129,9 @@
         <if test="example.state != null">
           AND `state` = #{example.state}
         </if>
+        <if test="example.businessState != null">
+          AND `business_state` = #{example.businessState}
+        </if>
         <if test="example.stateNotEquals != null">
           AND `state` != #{example.stateNotEquals}
         </if>

+ 10 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/seller/StoreSiteInfoReadMapper.xml

@@ -5,6 +5,7 @@
     <id column="id" property="id" />
     <result column="web_site" property="webSite" />
     <result column="store_id" property="storeId" />
+    <result column="business_state" property="businessState" />
     <result column="store_logo" property="storeLogo" />
     <result column="store_banner_pc" property="storeBannerPc" />
     <result column="main_business" property="mainBusiness" />
@@ -33,12 +34,21 @@
         <if test="example.storeId != null">
           AND `store_id` =#{example.storeId}
         </if>
+        <if test="example.storeIdIn != null">
+          AND `store_id` IN
+          <foreach item="item" index="index" collection="example.storeIdIn" separator="," close=")" open="(">
+            #{item}
+          </foreach>
+        </if>
         <if test="example.webSite != null">
           AND `web_site` = #{example.webSite}
         </if>
         <if test="example.storeGradeId != null">
           AND `store_grade_id` = #{example.storeGradeId}
         </if>
+        <if test="example.businessState != null">
+         AND `business_state` = #{example.businessState}
+        </if>
       </trim>
     </if>
   </sql>

+ 4 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/read/system/SearchLogReadMapper.xml

@@ -3,6 +3,7 @@
 <mapper namespace="com.slodon.b2b2c.dao.read.system.SearchLogReadMapper">
   <resultMap id="resultMap" type="com.slodon.b2b2c.system.pojo.SearchLog">
     <id column="log_id" property="logId" />
+    <result column="web_site" property="webSite" />
     <result column="keyword" property="keyword" />
     <result column="ip" property="ip" />
     <result column="member_id" property="memberId" />
@@ -22,6 +23,9 @@
         <if test="example.logIdIn != null">
           AND `log_id` in (${example.logIdIn})
         </if>
+        <if test="example.webSite != null">
+          AND `web_site` = #{example.webSite}
+        </if>
         <if test="example.keyword != null">
           AND `keyword` = #{example.keyword}
         </if>

+ 16 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/goods/GoodsSearchWordsWriteMapper.xml

@@ -3,6 +3,7 @@
 <mapper namespace="com.slodon.b2b2c.dao.write.goods.GoodsSearchWordsWriteMapper">
   <resultMap id="resultMap" type="com.slodon.b2b2c.goods.pojo.GoodsSearchWords">
     <id column="words_id" property="wordsId" />
+    <result column="web_site" property="webSite" />
     <result column="words_content" property="wordsContent" />
     <result column="full_py" property="fullPy" />
     <result column="simple_py" property="simplePy" />
@@ -14,6 +15,9 @@
   <!--除主键外的所有字段,用于插入操作-->
   <sql id="columns">
     <trim suffixOverrides=",">
+      <if test="webSite != null">
+        `web_site`,
+      </if>
       <if test="wordsContent != null">
         `words_content`,
       </if>
@@ -51,6 +55,9 @@
         <if test="example.wordsIdIn != null">
           AND `words_id` in (${example.wordsIdIn})
         </if>
+        <if test="example.webSite != null">
+          AND `web_site` = #{example.webSite}
+        </if>
         <if test="example.wordsContent != null">
           AND `words_content` = #{example.wordsContent}
         </if>
@@ -206,6 +213,9 @@
     )
     VALUES(
     <trim suffixOverrides=",">
+      <if test="webSite != null">
+        #{webSite},
+      </if>
       <if test="wordsContent != null">
         #{wordsContent},
       </if>
@@ -234,6 +244,9 @@
   <update id="updateByExampleSelective">
     UPDATE `goods_search_words`
     <trim prefix="SET" suffixOverrides=",">
+      <if test="record.webSite != null">
+        `web_site` = #{record.webSite},
+      </if>
       <if test="record.wordsContent != null">
         `words_content` = #{record.wordsContent},
       </if>
@@ -262,6 +275,9 @@
   <update id="updateByPrimaryKeySelective">
     UPDATE `goods_search_words`
     <trim prefix="SET" suffixOverrides=",">
+      <if test="webSite != null">
+        `web_site` = #{webSite},
+      </if>
       <if test="wordsContent != null">
         `words_content` = #{wordsContent},
       </if>

+ 16 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/seller/StoreSiteInfoWriteMapper.xml

@@ -5,6 +5,7 @@
     <id column="id" property="id" />
     <result column="web_site" property="webSite" />
     <result column="store_id" property="storeId" />
+    <result column="business_state" property="businessState" />
     <result column="store_logo" property="storeLogo" />
     <result column="store_banner_pc" property="storeBannerPc" />
     <result column="main_business" property="mainBusiness" />
@@ -31,6 +32,9 @@
       <if test="storeId != null">
         `store_id`,
       </if>
+      <if test="businessState != null">
+        `business_state`,
+      </if>
       <if test="storeLogo != null">
         `store_logo`,
       </if>
@@ -95,6 +99,9 @@
         <if test="example.webSite != null">
           AND `web_site` = #{example.webSite}
         </if>
+        <if test="example.businessState != null">
+          AND `business_state` = #{example.businessState}
+        </if>
       </trim>
     </if>
   </sql>
@@ -227,6 +234,9 @@
       <if test="storeId != null">
         #{storeId},
       </if>
+      <if test="businessState != null">
+        #{businessState},
+      </if>
       <if test="storeLogo != null">
         #{storeLogo},
       </if>
@@ -282,6 +292,9 @@
   <update id="updateByExampleSelective">
     UPDATE `store_site_info`
     <trim prefix="SET" suffixOverrides=",">
+      <if test="record.businessState != null">
+        `business_state` = #{record.businessState},
+      </if>
       <if test="record.storeLogo != null">
         `store_logo` = #{record.storeLogo},
       </if>
@@ -332,6 +345,9 @@
   <update id="updateByPrimaryKeySelective">
     UPDATE `store_site_info`
     <trim prefix="SET" suffixOverrides=",">
+      <if test="businessState != null">
+        `business_state` = #{businessState},
+      </if>
       <if test="storeLogo != null">
         `store_logo` = #{storeLogo},
       </if>

+ 16 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/seller/StoreWriteMapper.xml

@@ -20,6 +20,7 @@
     <result column="order_total_count" property="orderTotalCount" />
     <result column="order_finished_count" property="orderFinishedCount" />
     <result column="state" property="state" />
+    <result column="business_state" property="businessState" />
     <result column="is_own_store" property="isOwnStore" />
     <result column="store_category_id" property="storeCategoryId" />
     <result column="store_category_name" property="storeCategoryName" />
@@ -102,6 +103,9 @@
       <if test="state != null">
         `state`,
       </if>
+      <if test="businessState != null">
+        `business_state`,
+      </if>
       <if test="isOwnStore != null">
         `is_own_store`,
       </if>
@@ -256,6 +260,9 @@
         <if test="example.state != null">
           AND `state` = #{example.state}
         </if>
+        <if test="example.businessState != null">
+         AND `business_state` = #{example.businessState}
+        </if>
         <if test="example.isOwnStore != null">
           AND `is_own_store` = #{example.isOwnStore}
         </if>
@@ -508,6 +515,9 @@
       <if test="state != null">
         #{state},
       </if>
+      <if test="businessState != null">
+        #{businessState},
+      </if>
       <if test="isOwnStore != null">
         #{isOwnStore},
       </if>
@@ -638,6 +648,9 @@
       <if test="record.state != null">
         `state` = #{record.state},
       </if>
+      <if test="record.businessState != null">
+        `business_state` = #{record.businessState},
+      </if>
       <if test="record.isOwnStore != null">
         `is_own_store` = #{record.isOwnStore},
       </if>
@@ -768,6 +781,9 @@
       <if test="state != null">
         `state` = #{state},
       </if>
+      <if test="businessState != null">
+        `business_state` = #{businessState},
+      </if>
       <if test="isOwnStore != null">
         `is_own_store` = #{isOwnStore},
       </if>

+ 19 - 4
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/system/EnquiryWriteMapper.xml

@@ -8,6 +8,7 @@
       This element was generated on Wed Sep 14 10:26:21 CST 2022.
     -->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="web_site" jdbcType="VARCHAR" property="webSite" />
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result column="email" jdbcType="VARCHAR" property="email" />
     <result column="phone_code" jdbcType="VARCHAR" property="phoneCode" />
@@ -104,7 +105,7 @@
       This element is automatically generated by MyBatis Generator, do not modify.
       This element was generated on Wed Sep 14 10:26:21 CST 2022.
     -->
-    id, name, email, phone_code, phone, quantity,company, message, country, region, ip, page_url,
+    id,web_site, name, email, phone_code, phone, quantity,company, message, country, region, ip, page_url,
     item_type, item_id, create_time, status, last_uid, last_username, last_time,store_id,valid_status
   </sql>
 
@@ -137,13 +138,13 @@
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
       SELECT LAST_INSERT_ID()
     </selectKey>
-    insert into enquiry (name, email, phone_code,
+    insert into enquiry (name,web_site, email, phone_code,
       phone, quantity,company, message,
       country, region, ip,
       page_url, item_type, item_id,create_uid,
       create_time, status, last_uid,
       last_username, last_time,store_id,valid_status)
-    values (#{name,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{phoneCode,jdbcType=VARCHAR},
+    values (#{name,jdbcType=VARCHAR},#{webSite,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{phoneCode,jdbcType=VARCHAR},
       #{phone,jdbcType=VARCHAR}, #{quantity,jdbcType=INTEGER}, #{company,jdbcType=VARCHAR}, #{message,jdbcType=VARCHAR},
       #{country,jdbcType=VARCHAR}, #{region,jdbcType=VARCHAR}, #{ip,jdbcType=VARCHAR},
       #{pageUrl,jdbcType=VARCHAR}, #{itemType,jdbcType=VARCHAR}, #{itemId,jdbcType=BIGINT},#{createUid,jdbcType=INTEGER},
@@ -161,6 +162,9 @@
     </selectKey>
     insert into enquiry
     <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="webSite != null">
+        web_site,
+      </if>
       <if test="name != null">
         name,
       </if>
@@ -226,6 +230,9 @@
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="webSite != null">
+        #{webSite,jdbcType=VARCHAR},
+      </if>
       <if test="name != null">
         #{name,jdbcType=VARCHAR},
       </if>
@@ -303,6 +310,9 @@
       <if test="row.id != null">
         id = #{row.id,jdbcType=BIGINT},
       </if>
+      <if test="row.webSite != null">
+        web_site = #{row.webSite,jdbcType=VARCHAR},
+      </if>
       <if test="row.name != null">
         name = #{row.name,jdbcType=VARCHAR},
       </if>
@@ -379,6 +389,7 @@
     -->
     update enquiry
     set id = #{row.id,jdbcType=BIGINT},
+      web_site = #{row.webSite,jdbcType=VARCHAR},
       name = #{row.name,jdbcType=VARCHAR},
       email = #{row.email,jdbcType=VARCHAR},
       phone_code = #{row.phoneCode,jdbcType=VARCHAR},
@@ -412,6 +423,9 @@
     -->
     update enquiry
     <set>
+      <if test="webSite !=null">
+        web_site = #{webSite,jdbcType=VARCHAR},
+      </if>
       <if test="name != null">
         name = #{name,jdbcType=VARCHAR},
       </if>
@@ -485,7 +499,8 @@
       This element was generated on Wed Sep 14 10:26:21 CST 2022.
     -->
     update enquiry
-    set name = #{name,jdbcType=VARCHAR},
+    set web_site = #{webSite,jdbcType=VARCHAR},
+       name = #{name,jdbcType=VARCHAR},
       email = #{email,jdbcType=VARCHAR},
       phone_code = #{phoneCode,jdbcType=VARCHAR},
       phone = #{phone,jdbcType=VARCHAR},

+ 16 - 0
xinkeaboard-server/b2b2c-web/src/main/resources/mapper/write/system/SearchLogWriteMapper.xml

@@ -3,6 +3,7 @@
 <mapper namespace="com.slodon.b2b2c.dao.write.system.SearchLogWriteMapper">
   <resultMap id="resultMap" type="com.slodon.b2b2c.system.pojo.SearchLog">
     <id column="log_id" property="logId" />
+    <result column="web_site" property="webSite" />
     <result column="keyword" property="keyword" />
     <result column="ip" property="ip" />
     <result column="member_id" property="memberId" />
@@ -11,6 +12,9 @@
   <!--除主键外的所有字段,用于插入操作-->
   <sql id="columns">
     <trim suffixOverrides=",">
+      <if test="webSite != null">
+        `web_site`,
+      </if>
       <if test="keyword != null">
         `keyword`,
       </if>
@@ -39,6 +43,9 @@
         <if test="example.logIdIn != null">
           AND `log_id` in (${example.logIdIn})
         </if>
+        <if test="example.webSite != null">
+          AND `web_site` = #{example.webSite}
+        </if>
         <if test="example.keyword != null">
           AND `keyword` = #{example.keyword}
         </if>
@@ -182,6 +189,9 @@
     )
     VALUES(
     <trim suffixOverrides=",">
+      <if test="webSite != null">
+        #{webSite},
+      </if>
       <if test="keyword != null">
         #{keyword},
       </if>
@@ -201,6 +211,9 @@
   <update id="updateByExampleSelective">
     UPDATE `sys_search_log`
     <trim prefix="SET" suffixOverrides=",">
+      <if test="record.webSite != null">
+        `web_site` = #{record.webSite},
+      </if>
       <if test="record.keyword != null">
         `keyword` = #{record.keyword},
       </if>
@@ -220,6 +233,9 @@
   <update id="updateByPrimaryKeySelective">
     UPDATE `sys_search_log`
     <trim prefix="SET" suffixOverrides=",">
+      <if test="webSite != null">
+        `web_site` = #{webSite},
+      </if>
       <if test="keyword != null">
         `keyword` = #{keyword},
       </if>

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

@@ -15,6 +15,8 @@ ALTER TABLE product ADD COLUMN web_site TINYINT NOT NULL DEFAULT 1 COMMENT '发
 
 ALTER TABLE product ADD COLUMN goods_name_cn VARCHAR(200) NOT NULL COMMENT '商品中文名' AFTER goods_name;
 
+ALTER TABLE goods_label ADD COLUMN web_site TINYINT NOT NULL DEFAULT 1 COMMENT '站点 1:国外站 2:国内站' AFTER label_id;
+
 ALTER TABLE goods_related_template ADD COLUMN web_site TINYINT NOT NULL DEFAULT 1 COMMENT '站点 1:海外门户 2:国内分销门户';
 
 ALTER TABLE goods_parameter_group ADD COLUMN web_site TINYINT NOT NULL DEFAULT 1 COMMENT '站点 1:海外门户 2:国内分销门户';
@@ -308,6 +310,19 @@ FROM sys_seo WHERE type = 'MALL' AND create_uid = 1;
 
 
 
+ALTER TABLE store ADD COLUMN business_state TINYINT NOT NULL DEFAULT 3 COMMENT '经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营' AFTER state;
+
+ALTER TABLE store_site_info ADD COLUMN business_state TINYINT NOT NULL DEFAULT 3 COMMENT '经营状态 1 资质审核 2装修筹备 3经营中4 暂停经营' AFTER store_id;
+
+INSERT INTO `sys_setting` VALUES ('business_state_1', '资质审核', '1', '经营状态码表', 3);
+INSERT INTO `sys_setting` VALUES ('business_state_2', '装修筹备', '2', '经营状态码表', 3);
+INSERT INTO `sys_setting` VALUES ('business_state_3', '经营中', '3', '经营状态码表', 3);
+INSERT INTO `sys_setting` VALUES ('business_state_4', '暂停经营', '4', '经营状态码表', 3);
+
+ALTER TABLE sys_search_log ADD COLUMN web_site TINYINT NOT NULL DEFAULT 1 COMMENT '站点 1:国外站 2:国内站' AFTER log_id;
+
+ALTER TABLE goods_search_words ADD COLUMN web_site TINYINT NOT NULL DEFAULT 1 COMMENT '站点 1:国外站 2:国内站' AFTER words_id;
+
 
 
 

+ 1 - 1
xinkeaboard-web/components/Home/home.vue

@@ -62,7 +62,7 @@ const getInitData = async () => {
     pending,
     error,
     refresh,
-  } = await useFetchRaw(apiUrl + "v3/system/front/pcDeco/index");
+  } = await useFetchRaw(apiUrl + "v3/system/front/pcDeco/index", { params: param });
   const res = value._rawValue;
   if (!pending._rawValue) {
     firstLoading.value = false;