1
0
Переглянути джерело

Merge branch 'master' of csk/kmall-pt into master

Scott Chen 3 роки тому
батько
коміт
154f63bff2

+ 3 - 3
kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java

@@ -208,10 +208,10 @@ public class StoreController {
         }
         String token = accessToken.getToken();
 
-        //构建请求参数
+        //构建微信二维码请求url的请求参数
         Map<Object, Object> params = new HashMap<Object, Object>();
-        params.put("scene", store.getId());//参数
-        params.put("page", "pages/index/index");//页面
+        params.put("scene", store.getId());//门店id作参数
+        params.put("page", "pages/index/index");//微信小程序首页页面
         params.put("width", 90);
         String mapToXml = JSON.toJSONString(params);
 

+ 36 - 29
kmall-admin/src/main/webapp/WEB-INF/page/shop/thirdmerchantbiz.html

@@ -46,11 +46,13 @@
                 <i-input v-model="thirdMerchantBiz.thirdPartyMerchName" placeholder="第三方商户名称"/>
             </Form-item>
             <Row>
-                <i-col span="16" style="margin-top: -10px;" v-show="isOperate">
-                    <span style="margin-left: 120px;color: red;font-size: 12px;">* 选择是,该商户下的所有门店商品库存将共享扣减</span>
+                <i-col span="16" style="margin-top: -10px;" v-show="showField.isStockShareShow">
+                    <span style="margin-left: 120px;color: red;font-size: 12px;">* 选择是,该商户下的所有门店商品库存将共享扣减。</span>
+                    <br/>
+                    <span style="margin-left: 120px;color: red;font-size: 12px;">* 注意,新增后,将不可修改</span>
                 </i-col>
             </Row>
-            <Form-item label="库存是否共享" prop="isStockShare" v-show="isOperate">
+            <Form-item label="库存是否共享" prop="isStockShare" v-show="showField.isStockShareShow">
                 <Radio-group v-model="thirdMerchantBiz.isStockShare">
                     <Radio label="1">
                         <span>是</span>
@@ -60,17 +62,17 @@
                     </Radio>
                 </Radio-group>
             </Form-item>
-            <!--<Form-item label="门店用户是否共享" prop="isStoreUserShare" v-show="isOperate">-->
-                <!--<Radio-group v-model="thirdMerchantBiz.isStoreUserShare">-->
-                    <!--<Radio label="1">-->
-                        <!--<span>是</span>-->
-                    <!--</Radio>-->
-                    <!--<Radio label="0">-->
-                        <!--<span>否</span>-->
-                    <!--</Radio>-->
-                <!--</Radio-group>-->
-            <!--</Form-item>-->
-            <Form-item label="商户地图是否显示" prop="isMapShow" v-show="isOperate">
+            <Form-item label="门店用户是否共享" prop="isStoreUserShare" v-show="showField.isStoreUserShareShow">
+                <Radio-group v-model="thirdMerchantBiz.isStoreUserShare">
+                    <Radio label="1">
+                        <span>是</span>
+                    </Radio>
+                    <Radio label="0">
+                        <span>否</span>
+                    </Radio>
+                </Radio-group>
+            </Form-item>
+            <Form-item label="商户地图是否显示" prop="isMapShow" v-show="showField.isMapShowShow">
                 <Radio-group v-model="thirdMerchantBiz.isMapShow">
                     <Radio label="1">
                         <span>是</span>
@@ -80,17 +82,22 @@
                     </Radio>
                 </Radio-group>
             </Form-item>
-            <!--<Form-item label="渠道分销是否启用" prop="isDistSellStart">-->
-                <!--<Radio-group v-model="thirdMerchantBiz.isDistSellStart">-->
-                    <!--<Radio label="1">-->
-                        <!--<span>是</span>-->
-                    <!--</Radio>-->
-                    <!--<Radio label="0">-->
-                        <!--<span>否</span>-->
-                    <!--</Radio>-->
-                <!--</Radio-group>-->
-            <!--</Form-item>-->
-            <Form-item label="供应商模式商品是否启用" prop="isSupplierGoods" v-show="isOperate">
+            <Form-item label="渠道分销是否启用" prop="isDistSellStart" v-show="showField.isDistSellStartShow">
+                <Radio-group v-model="thirdMerchantBiz.isDistSellStart">
+                    <Radio label="1">
+                        <span>是</span>
+                    </Radio>
+                    <Radio label="0">
+                        <span>否</span>
+                    </Radio>
+                </Radio-group>
+            </Form-item>
+            <Row>
+                <i-col span="16" style="margin-top: -10px;" v-show="showField.isSupplierGoodsShow">
+                    <span style="margin-left: 120px;color: red;font-size: 12px;">* 注意,新增后,将不可修改</span>
+                </i-col>
+            </Row>
+            <Form-item label="供应商模式商品是否启用" prop="isSupplierGoods" v-show="showField.isSupplierGoodsShow">
                 <Radio-group v-model="thirdMerchantBiz.isSupplierGoods">
                     <Radio label="1">
                         <span>是</span>
@@ -100,7 +107,7 @@
                     </Radio>
                 </Radio-group>
             </Form-item>
-            <Form-item label="是否使用人脸核验" prop="isFaceCheck" v-show="isOperate">
+            <Form-item label="是否使用人脸核验" prop="isFaceCheck" v-show="showField.isFaceCheckShow">
                 <Radio-group v-model="thirdMerchantBiz.isFaceCheck">
                     <Radio label="1">
                         <span>是</span>
@@ -112,12 +119,12 @@
             </Form-item>
             <Form-item label="是否有效" prop="isValid">
                 <Radio-group v-model="thirdMerchantBiz.isValid">
-                    <Radio label="1">
-                        <span>无效</span>
-                    </Radio>
                     <Radio label="0">
                         <span>有效</span>
                     </Radio>
+                    <Radio label="1">
+                        <span>无效</span>
+                    </Radio>
                 </Radio-group>
             </Form-item>
             <Form-item>

+ 256 - 217
kmall-admin/src/main/webapp/js/shop/thirdmerchantbiz.js

@@ -1,225 +1,264 @@
 $(function () {
-    $("#jqGrid").jqGrid({
-        url: '../thirdmerchantbiz/list',
-        datatype: "json",
-        colModel: [
-			{label: 'thirdMerchSn', name: 'thirdMerchSn', index: 'third_merch_sn', key: true, hidden: true},
-            {label: '商户编号', name: 'merchSn', index: 'merch_sn', width: 80, align: 'center'},
-			{label: '第三方商户代码', name: 'thirdPartyMerchCode', index: 'third_party_merch_code', width: 80, align: 'center'},
-			{label: '第三方商户名称', name: 'thirdPartyMerchName', index: 'third_party_merch_name', width: 80, align: 'center'},
-            // {label: '库存是否共享', name: 'isStockShare', index: 'isStockShare', width: 80, align: 'center',
-            //     formatter: function (value) {
-            //         if (value == '0') {
-            //             return '否';
-            //         } else if (value == '1') {
-            //             return '是';
-            //         }
-            //         return '';
-            //     }},
-            // {label: '门店用户是否共享', name: 'isStoreUserShare', index: 'isStoreUserShare', width: 80, align: 'center',
-            //     formatter: function (value) {
-            //         if (value == '0') {
-            //             return '否';
-            //         } else if (value == '1') {
-            //             return '是';
-            //         }
-            //         return '';
-            //     }},
-            // {label: '商户地图是否显示', name: 'isMapShow', index: 'isMapShow', width: 80, align: 'center',
-            //     formatter: function (value) {
-            //         if (value == '0') {
-            //             return '否';
-            //         } else if (value == '1') {
-            //             return '是';
-            //         }
-            //         return '';
-            //     }},
-            // {label: '渠道分销是否启用', name: 'isDistSellStart', index: 'isDistSellStart', width: 80, align: 'center',
-            //     formatter: function (value) {
-            //         if (value == '0') {
-            //             return '禁用';
-            //         } else if (value == '1') {
-            //             return '启用';
-            //         }
-            //         return '';
-            //     }},
-			{label: '是否有效', name: 'isValid', index: 'is_valid', width: 80, align: 'center',
-                formatter: function (value) {
-                    if (value == '0') {
-                        return '有效';
-                    } else if (value == '1') {
-                        return '无效';
-                    }
-                    return '';
-                }},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80, align: 'center',
-                formatter: function (value) {
-                    return transDate(value, 'yyyy-MM-dd hh:mm:ss');
-                }},
-			{label: '修改时间', name: 'modTime', index: 'mod_time', width: 80, align: 'center',
-                formatter: function (value) {
-                    return transDate(value, 'yyyy-MM-dd hh:mm:ss');
-                }}],
-		viewrecords: true,
-        height: 550,
-        rowNum: 10,
-        rowList: [10, 30, 50],
-        rownumbers: true,
-        rownumWidth: 25,
-        autowidth: true,
-        multiselect: true,
-        pager: "#jqGridPager",
-        jsonReader: {
-            root: "page.list",
-            page: "page.currPage",
-            total: "page.totalPage",
-            records: "page.totalCount"
-        },
-        prmNames: {
-            page: "page",
-            rows: "limit",
-            order: "order"
-        },
-        gridComplete: function () {
-            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+  $('#jqGrid').jqGrid({
+    url: '../thirdmerchantbiz/list',
+    datatype: 'json',
+    colModel: [
+      {label: 'thirdMerchSn', name: 'thirdMerchSn', index: 'third_merch_sn', key: true, hidden: true},
+      {label: '商户编号', name: 'merchSn', index: 'merch_sn', width: 80, align: 'center'},
+      {label: '第三方商户代码', name: 'thirdPartyMerchCode', index: 'third_party_merch_code', width: 80, align: 'center'},
+      {label: '第三方商户名称', name: 'thirdPartyMerchName', index: 'third_party_merch_name', width: 80, align: 'center'},
+      {
+        label: '库存是否共享', name: 'isStockShare', index: 'isStockShare', width: 80, align: 'center',
+        formatter: function (value) {
+          if (value == '0') {
+            return '否'
+          } else if (value == '1') {
+            return '是'
+          }
+          return ''
         }
-    });
-});
+      },
+      {label: '门店用户是否共享', name: 'isStoreUserShare', index: 'isStoreUserShare', width: 80, align: 'center',
+          formatter: function (value) {
+              if (value == '0') {
+                  return '否';
+              } else if (value == '1') {
+                  return '是';
+              }
+              return '';
+          }},
+      {
+        label: '商户地图是否显示', name: 'isMapShow', index: 'isMapShow', width: 80, align: 'center',
+        formatter: function (value) {
+          if (value == '0') {
+            return '否'
+          } else if (value == '1') {
+            return '是'
+          }
+          return ''
+        }
+      },
+      {label: '渠道分销是否启用', name: 'isDistSellStart', index: 'isDistSellStart', width: 80, align: 'center',
+          formatter: function (value) {
+              if (value == '0') {
+                  return '禁用';
+              } else if (value == '1') {
+                  return '启用';
+              }
+              return '';
+          }},
+      {
+        label: '是否有效', name: 'isValid', index: 'is_valid', width: 80, align: 'center',
+        formatter: function (value) {
+          if (value == '0') {
+            return '有效'
+          } else if (value == '1') {
+            return '无效'
+          }
+          return ''
+        }
+      },
+      {
+        label: '创建时间', name: 'createTime', index: 'create_time', width: 80, align: 'center',
+        formatter: function (value) {
+          return transDate(value, 'yyyy-MM-dd hh:mm:ss')
+        }
+      },
+      {
+        label: '修改时间', name: 'modTime', index: 'mod_time', width: 80, align: 'center',
+        formatter: function (value) {
+          return transDate(value, 'yyyy-MM-dd hh:mm:ss')
+        }
+      }],
+    viewrecords: true,
+    height: 550,
+    rowNum: 10,
+    rowList: [10, 30, 50],
+    rownumbers: true,
+    rownumWidth: 25,
+    autowidth: true,
+    multiselect: true,
+    pager: '#jqGridPager',
+    jsonReader: {
+      root: 'page.list',
+      page: 'page.currPage',
+      total: 'page.totalPage',
+      records: 'page.totalCount'
+    },
+    prmNames: {
+      page: 'page',
+      rows: 'limit',
+      order: 'order'
+    },
+    gridComplete: function () {
+      $('#jqGrid').closest('.ui-jqgrid-bdiv').css({'overflow-x': 'hidden'})
+    }
+  })
+})
 
 let vm = new Vue({
-	el: '#rrapp',
-	data: {
-        showList: true,
-        title: null,
-		thirdMerchantBiz: {isValid: '', isStockShare:'',isStoreUserShare:'',isMapShow:'',isDistSellStart:'',isSupplierGoods:'',isFaceCheck:''},
-		ruleValidate: {
-			name: [
-				{required: true, message: '名称不能为空', trigger: 'blur'}
-			]
-		},
-		q: {
-		    name: ''
-		},
-        merchList: [],
-        isOperate: false
-	},
-	methods: {
-		query: function () {
-			vm.reload();
-		},
-		add: function () {
-			vm.showList = false;
-			vm.title = "新增";
-            vm.getMerchList();
-			vm.thirdMerchantBiz = {isValid: 0,isStockShare:0,isStoreUserShare:0,isMapShow:0,isDistSellStart:0,isSupplierGoods:0,isFaceCheck:0};
-			vm.isOperate = true;
-		},
-		update: function (event) {
-            let thirdMerchSn = getSelectedRow();
-			if (thirdMerchSn == null) {
-				return;
-			}
-			vm.showList = false;
-            vm.title = "修改";
-            vm.isOperate = false;
-            vm.getMerchList();
-
-            vm.getInfo(thirdMerchSn)
-		},
-		saveOrUpdate: function (event) {
-            let url = vm.thirdMerchantBiz.thirdMerchSn == null ? "../thirdmerchantbiz/save" : "../thirdmerchantbiz/update";
-            if(vm.isOperate){
-                confirm('库存是否共享,供应商模式商品是否启用字段添加成功后则不可修改!请确认后添加?', function () {
-                    $.ajax({
-                        type: "POST",
-                        url: url,
-                        contentType: "application/json",
-                        data: JSON.stringify(vm.thirdMerchantBiz),
-                        success: function (r) {
-                            if (r.code === 0) {
-                                alert('操作成功', function (index) {
-                                    vm.reload();
-                                });
-                            } else {
-                                alert(r.msg);
-                            }
-                        }
-                    });
+  el: '#rrapp',
+  data: {
+    showList: true,
+    title: null,
+    thirdMerchantBiz: {
+      merchSn: '',
+      thirdPartyMerchCode: '',
+      thirdPartyMerchName: '',
+      isValid: '',
+      isStockShare: '',
+      isStoreUserShare: '',
+      isMapShow: '',
+      isDistSellStart: '',
+      isSupplierGoods: '',
+      isFaceCheck: ''
+    },
+    showField: {
+      isStockShareShow: true, // 库存是否共享显示
+      isStoreUserShareShow: false,  // 门店用户是否共享显示
+      isMapShowShow: true,  // 商户地图是否显示显示
+      isDistSellStartShow: false,  // 渠道分销是否启用显示
+      isSupplierGoodsShow: true, // 供应商模式商品是否启用显示
+      isFaceCheckShow: false  // 使用人脸核验是否启用显示
+    },
+    ruleValidate: {
+      name: [
+        {required: true, message: '名称不能为空', trigger: 'blur'}
+      ]
+    },
+    q: {
+      name: ''
+    },
+    merchList: []
+  },
+  methods: {
+    query: function () {
+      vm.reload()
+    },
+    add: function () {
+      vm.showList = false
+      vm.title = '新增'
+      vm.getMerchList()
+      vm.thirdMerchantBiz = {
+        merchSn: '',
+        thirdPartyMerchCode: '',
+        thirdPartyMerchName: '',
+        isValid: 0,
+        isStockShare: 0,
+        isStoreUserShare: 0,
+        isMapShow: 0,
+        isDistSellStart: 0,
+        isSupplierGoods: 0,
+        isFaceCheck: 0
+      }
+    },
+    update: function (event) {
+      let thirdMerchSn = getSelectedRow()
+      if (thirdMerchSn == null) {
+        return
+      }
+      vm.showList = false
+      vm.title = '修改'
+      vm.getMerchList()
+      vm.getInfo(thirdMerchSn)
+    },
+    saveOrUpdate: function (event) {
+      let url = vm.thirdMerchantBiz.thirdMerchSn == null ? '../thirdmerchantbiz/save' : '../thirdmerchantbiz/update'
+      if (vm.showField.isStockShareShow || vm.showField.isSupplierGoodsShow) {
+        let str = vm.showField.isStockShareShow == true ? '库存共享字段是否启用,' : '';
+        str += vm.showField.isSupplierGoodsShow == true ? '供应商模式商品字段是否启用,' : '';
+        str += '添加成功后则不可修改!请确认后再添加?';
+        confirm(str, function () {
+          $.ajax({
+            type: 'POST',
+            url: url,
+            contentType: 'application/json',
+            data: JSON.stringify(vm.thirdMerchantBiz),
+            success: function (r) {
+              if (r.code === 0) {
+                alert('操作成功', function (index) {
+                  vm.reload()
                 })
-            }else{
-                $.ajax({
-                    type: "POST",
-                    url: url,
-                    contentType: "application/json",
-                    data: JSON.stringify(vm.thirdMerchantBiz),
-                    success: function (r) {
-                        if (r.code === 0) {
-                            alert('操作成功', function (index) {
-                                vm.reload();
-                            });
-                        } else {
-                            alert(r.msg);
-                        }
-                    }
-                });
+              } else {
+                alert(r.msg)
+              }
+            }
+          })
+        })
+      } else {
+        $.ajax({
+          type: 'POST',
+          url: url,
+          contentType: 'application/json',
+          data: JSON.stringify(vm.thirdMerchantBiz),
+          success: function (r) {
+            if (r.code === 0) {
+              alert('操作成功', function (index) {
+                vm.reload()
+              })
+            } else {
+              alert(r.msg)
             }
-		},
-		del: function (event) {
-            let thirdMerchSns = getSelectedRows();
-			if (thirdMerchSns == null){
-				return;
-			}
+          }
+        })
+      }
+    },
+    del: function (event) {
+      let thirdMerchSns = getSelectedRows()
+      if (thirdMerchSns == null) {
+        return
+      }
 
-			confirm('确定要删除选中的记录?', function () {
-				$.ajax({
-					type: "POST",
-				    url: "../thirdmerchantbiz/delete",
-				    contentType: "application/json",
-				    data: JSON.stringify(thirdMerchSns),
-				    success: function (r) {
-						if (r.code == 0) {
-							alert('操作成功', function (index) {
-								$("#jqGrid").trigger("reloadGrid");
-							});
-						} else {
-							alert(r.msg);
-						}
-					}
-				});
-			});
-		},
-        getMerchList: function() {
-            $.get("../merch/queryAll", function (r) {
-                vm.merchList = r.list;
-            });
-        },
-		getInfo: function(thirdMerchSn){
-			$.get("../thirdmerchantbiz/info/"+thirdMerchSn, function (r) {
-                vm.thirdMerchantBiz = r.thirdMerchantBiz;
-            });
-		},
-        reloadSearch: function() {
-            vm.q = {
-                name: ''
+      confirm('确定要删除选中的记录?', function () {
+        $.ajax({
+          type: 'POST',
+          url: '../thirdmerchantbiz/delete',
+          contentType: 'application/json',
+          data: JSON.stringify(thirdMerchSns),
+          success: function (r) {
+            if (r.code == 0) {
+              alert('操作成功', function (index) {
+                $('#jqGrid').trigger('reloadGrid')
+              })
+            } else {
+              alert(r.msg)
             }
-            vm.reload();
-		},
-		reload: function (event) {
-			vm.showList = true;
-            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
-			$("#jqGrid").jqGrid('setGridParam', {
-                postData: {'name': vm.q.name},
-                page: page
-            }).trigger("reloadGrid");
-            vm.handleReset('formValidate');
-		},
-        handleSubmit: function (name) {
-            handleSubmitValidate(this, name, function () {
-                vm.saveOrUpdate()
-            });
-        },
-        handleReset: function (name) {
-            handleResetForm(this, name);
-        }
-	}
-});
+          }
+        })
+      })
+    },
+    getMerchList: function () {
+      $.get('../merch/queryAll', function (r) {
+        vm.merchList = r.list
+      })
+    },
+    getInfo: function (thirdMerchSn) {
+      $.get('../thirdmerchantbiz/info/' + thirdMerchSn, function (r) {
+        vm.thirdMerchantBiz = r.thirdMerchantBiz
+      })
+    },
+    reloadSearch: function () {
+      vm.q = {
+        name: ''
+      }
+      vm.reload()
+    },
+    reload: function (event) {
+      vm.showList = true
+      let page = $('#jqGrid').jqGrid('getGridParam', 'page')
+      $('#jqGrid').jqGrid('setGridParam', {
+        postData: {'name': vm.q.name},
+        page: page
+      }).trigger('reloadGrid')
+      vm.handleReset('formValidate')
+    },
+    handleSubmit: function (name) {
+      handleSubmitValidate(this, name, function () {
+        vm.saveOrUpdate()
+      })
+    },
+    handleReset: function (name) {
+      handleResetForm(this, name)
+    }
+  }
+})

+ 87 - 0
kmall-api/src/main/java/com/kmall/api/api/ApiStoreController.java

@@ -0,0 +1,87 @@
+package com.kmall.api.api;
+
+import com.google.common.collect.Maps;
+import com.kmall.api.annotation.IgnoreAuth;
+import com.kmall.api.entity.AddressVo;
+import com.kmall.api.entity.StoreVo;
+import com.kmall.api.entity.StoreWithThirdMerchBizVo;
+import com.kmall.api.service.ApiStoreService;
+import com.kmall.api.util.ApiBaseAction;
+import org.springframework.beans.factory.annotation.Autowired;
+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 java.util.List;
+import java.util.Map;
+
+/**
+ * @author Scott Chen
+ * @date 2021-09-09
+ */
+@RestController
+@RequestMapping("/api/store")
+public class ApiStoreController extends ApiBaseAction {
+    @Autowired
+    private ApiStoreService apiStoreService;
+
+    /**
+     * 获取收货地址的详情
+     */
+    @IgnoreAuth
+    @GetMapping("detail")
+    public Object detail(Long id) {
+        StoreVo entity = apiStoreService.queryObject(id);
+        return toResponsSuccess(entity);
+    }
+
+    /**
+     * 门店及所属第三方商户信息
+     * @param storeId
+     * @return
+     */
+    @IgnoreAuth
+    @GetMapping("storeByIdWithMerch")
+    public Object storeByIdWithMerch(@RequestParam String storeId) {
+        if (org.apache.commons.lang3.StringUtils.isEmpty(storeId)) {
+            return toResponsFail("门店编号为空");
+        }
+        Map param = Maps.newHashMap();
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(storeId)){
+            param.put("storeId", storeId);
+        }
+        List<StoreWithThirdMerchBizVo> entities = apiStoreService.storeByIdWithThirdMerch(param);
+        if (entities != null && entities.size() > 0) {
+            StoreWithThirdMerchBizVo vo = entities.get(0);
+            StoreVo storeVo = new StoreVo();
+
+            storeVo.setId(vo.getId());
+            storeVo.setMerchSn(vo.getMerchSn());
+            storeVo.setMerchName(vo.getMerchName());
+            storeVo.setThirdPartyMerchCode(vo.getThirdPartyMerchCode());
+            storeVo.setThirdPartyMerchName(vo.getThirdPartyMerchName());
+
+            storeVo.setStoreName(vo.getStoreName());
+            storeVo.setStoreNumber(vo.getStoreNumber());
+            storeVo.setStoreAddress(vo.getStoreAddress());
+            storeVo.setProvinceName(vo.getProvinceName());
+            storeVo.setCityName(vo.getCityName());
+            storeVo.setCountyName(vo.getCountyName());
+
+            storeVo.setLatitude(vo.getLatitude());
+            storeVo.setCoverRadius(vo.getCoverRadius());
+            storeVo.setRemark(vo.getRemark());
+            storeVo.setIsValid(vo.getIsValid());
+
+            Map<String, Object> resultData = Maps.newHashMap();
+            resultData.put("storeVo", storeVo);
+            resultData.put("storeWithThirdMerchBizVo", vo);
+
+            return toResponsSuccess(resultData);
+        } else {
+            return toResponsFail("门店" + storeId + "无对应信息");
+        }
+    }
+
+}

+ 3 - 0
kmall-api/src/main/java/com/kmall/api/dao/ApiStoreMapper.java

@@ -2,6 +2,7 @@ package com.kmall.api.dao;
 
 
 import com.kmall.api.entity.StoreVo;
+import com.kmall.api.entity.StoreWithThirdMerchBizVo;
 import com.kmall.manager.dao.BaseDao;
 import org.springframework.stereotype.Service;
 
@@ -18,4 +19,6 @@ import java.util.Map;
 @Service
 public interface ApiStoreMapper extends BaseDao<StoreVo> {
     List<StoreVo> queryNearbyList(Map param);
+
+    List<StoreWithThirdMerchBizVo> storeByIdWithThirdMerch(Map param);
 }

+ 325 - 0
kmall-api/src/main/java/com/kmall/api/entity/StoreWithThirdMerchBizVo.java

@@ -0,0 +1,325 @@
+package com.kmall.api.entity;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 门店及所属第三方商户信息
+ * @author Scott Chen
+ * @date 2021-09-09
+ */
+public class StoreWithThirdMerchBizVo implements Serializable {
+    private static final long serialVersionUID = 2544445720127534573L;
+
+    // ------------------------------ mall_store ------------------------------
+
+    /**
+     * 门店主键
+     */
+    private Long id;
+    /**
+     * 门店名称
+     */
+    private String storeName;
+    /**
+     * 门店编号
+     */
+    private String storeNumber;
+    /**
+     * 门店地址
+     */
+    private String storeAddress;
+    /**
+     *
+     */
+    private String provinceName;
+    /**
+     *
+     */
+    private String cityName;
+    /**
+     *
+     */
+    private String countyName;
+    /**
+     * 纬度
+     */
+    private BigDecimal latitude;
+    /**
+     * 经度
+     */
+    private BigDecimal longitude;
+    /**
+     * 配送半径(km)
+     */
+    private BigDecimal coverRadius;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private String merchSn;
+
+    private String merchName;
+
+    private String thirdPartyMerchCode;
+
+    private String thirdPartyMerchName;
+
+    private String isValid;
+
+    private String exprAgreementType;
+
+    private String isLoadGoods;
+
+    // ------------------------------ third_merchant_biz ------------------------------
+
+    /**
+     * 第三方商户编号,主键编号
+     */
+    private Integer thirdMerchSn;
+
+    /**
+     * 商品库存是否共享 0:否 1:是
+     */
+    private String isStockShare;
+
+    /**
+     * 门店用户是否共享 0:否 1:是
+     */
+    private String isStoreUserShare;
+
+    /**
+     * 是否有效,0:有效,1:无效
+     */
+    private String isValidMerch;
+
+    /**
+     * 商户地图是否显示 0:否 1:是
+     */
+    private String isMapShow;
+
+    /**
+     * 是否开启渠道销售  0:否 1:是
+     */
+    private String isDistSellStart;
+
+    /**
+     * 门店第三方商户是否属于供应商模式商品购买 0:否 1:是
+     */
+    private String isSupplierGoods;
+
+    /**
+     * 是否使用人脸核验 0:否 1:是
+     */
+    private String isFaceCheck;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    public String getStoreNumber() {
+        return storeNumber;
+    }
+
+    public void setStoreNumber(String storeNumber) {
+        this.storeNumber = storeNumber;
+    }
+
+    public String getStoreAddress() {
+        return storeAddress;
+    }
+
+    public void setStoreAddress(String storeAddress) {
+        this.storeAddress = storeAddress;
+    }
+
+    public String getProvinceName() {
+        return provinceName;
+    }
+
+    public void setProvinceName(String provinceName) {
+        this.provinceName = provinceName;
+    }
+
+    public String getCityName() {
+        return cityName;
+    }
+
+    public void setCityName(String cityName) {
+        this.cityName = cityName;
+    }
+
+    public String getCountyName() {
+        return countyName;
+    }
+
+    public void setCountyName(String countyName) {
+        this.countyName = countyName;
+    }
+
+    public BigDecimal getLatitude() {
+        return latitude;
+    }
+
+    public void setLatitude(BigDecimal latitude) {
+        this.latitude = latitude;
+    }
+
+    public BigDecimal getLongitude() {
+        return longitude;
+    }
+
+    public void setLongitude(BigDecimal longitude) {
+        this.longitude = longitude;
+    }
+
+    public BigDecimal getCoverRadius() {
+        return coverRadius;
+    }
+
+    public void setCoverRadius(BigDecimal coverRadius) {
+        this.coverRadius = coverRadius;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    public String getMerchName() {
+        return merchName;
+    }
+
+    public void setMerchName(String merchName) {
+        this.merchName = merchName;
+    }
+
+    public String getThirdPartyMerchCode() {
+        return thirdPartyMerchCode;
+    }
+
+    public void setThirdPartyMerchCode(String thirdPartyMerchCode) {
+        this.thirdPartyMerchCode = thirdPartyMerchCode;
+    }
+
+    public String getThirdPartyMerchName() {
+        return thirdPartyMerchName;
+    }
+
+    public void setThirdPartyMerchName(String thirdPartyMerchName) {
+        this.thirdPartyMerchName = thirdPartyMerchName;
+    }
+
+    public String getIsValid() {
+        return isValid;
+    }
+
+    public void setIsValid(String isValid) {
+        this.isValid = isValid;
+    }
+
+    public String getExprAgreementType() {
+        return exprAgreementType;
+    }
+
+    public void setExprAgreementType(String exprAgreementType) {
+        this.exprAgreementType = exprAgreementType;
+    }
+
+    public String getIsLoadGoods() {
+        return isLoadGoods;
+    }
+
+    public void setIsLoadGoods(String isLoadGoods) {
+        this.isLoadGoods = isLoadGoods;
+    }
+
+    public Integer getThirdMerchSn() {
+        return thirdMerchSn;
+    }
+
+    public void setThirdMerchSn(Integer thirdMerchSn) {
+        this.thirdMerchSn = thirdMerchSn;
+    }
+
+    public String getIsStockShare() {
+        return isStockShare;
+    }
+
+    public void setIsStockShare(String isStockShare) {
+        this.isStockShare = isStockShare;
+    }
+
+    public String getIsStoreUserShare() {
+        return isStoreUserShare;
+    }
+
+    public void setIsStoreUserShare(String isStoreUserShare) {
+        this.isStoreUserShare = isStoreUserShare;
+    }
+
+    public String getIsValidMerch() {
+        return isValidMerch;
+    }
+
+    public void setIsValidMerch(String isValidMerch) {
+        this.isValidMerch = isValidMerch;
+    }
+
+    public String getIsMapShow() {
+        return isMapShow;
+    }
+
+    public void setIsMapShow(String isMapShow) {
+        this.isMapShow = isMapShow;
+    }
+
+    public String getIsDistSellStart() {
+        return isDistSellStart;
+    }
+
+    public void setIsDistSellStart(String isDistSellStart) {
+        this.isDistSellStart = isDistSellStart;
+    }
+
+    public String getIsSupplierGoods() {
+        return isSupplierGoods;
+    }
+
+    public void setIsSupplierGoods(String isSupplierGoods) {
+        this.isSupplierGoods = isSupplierGoods;
+    }
+
+    public String getIsFaceCheck() {
+        return isFaceCheck;
+    }
+
+    public void setIsFaceCheck(String isFaceCheck) {
+        this.isFaceCheck = isFaceCheck;
+    }
+}

+ 4 - 0
kmall-api/src/main/java/com/kmall/api/service/ApiStoreService.java

@@ -2,6 +2,7 @@ package com.kmall.api.service;
 
 import com.kmall.api.dao.ApiStoreMapper;
 import com.kmall.api.entity.StoreVo;
+import com.kmall.api.entity.StoreWithThirdMerchBizVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -36,4 +37,7 @@ public class ApiStoreService {
         return apiStoreMapper.queryNearbyList(map);
     }
 
+    public List<StoreWithThirdMerchBizVo> storeByIdWithThirdMerch(Map<String, Object> map) {
+        return apiStoreMapper.storeByIdWithThirdMerch(map);
+    }
 }

+ 52 - 0
kmall-api/src/main/resources/mybatis/mapper/ApiStoreMapper.xml

@@ -25,6 +25,37 @@
         <result property="isValid" column="is_valid"/>
     </resultMap>
 
+
+    <resultMap type="com.kmall.api.entity.StoreWithThirdMerchBizVo" id="storeWithThirdMerchMap">
+        <result property="id" column="id"/>
+        <result property="storeName" column="store_name"/>
+        <result property="storeNumber" column="store_number"/>
+        <result property="storeAddress" column="store_address"/>
+        <result property="provinceName" column="province_name"/>
+        <result property="cityName" column="city_name"/>
+        <result property="countyName" column="county_name"/>
+        <result property="latitude" column="latitude"/>
+        <result property="longitude" column="longitude"/>
+        <result property="coverRadius" column="cover_radius"/>
+        <result property="remark" column="remark"/>
+
+        <result property="merchSn" column="merch_sn"  jdbcType="VARCHAR" />
+        <result property="merchName" column="merch_name" jdbcType="VARCHAR" />
+        <result property="thirdPartyMerchCode" column="third_party_merch_code"/>
+        <result property="thirdPartyMerchName" column="third_party_merch_name"/>
+        <result property="isValid" column="is_valid"/>
+        <result property="exprAgreementType" column="expr_agreement_type"/>
+        <result property="isLoadGoods" column="is_load_goods"/>
+
+        <result property="isStockShare" column="is_stock_share"/>
+        <result property="isStoreUserShare" column="is_store_user_share"/>
+        <result property="isValidMerch" column="is_valid"/>
+        <result property="isMapShow" column="is_map_show"/>
+        <result property="isDistSellStart" column="is_dist_sell_start"/>
+        <result property="isSupplierGoods" column="is_supplier_goods"/>
+        <result property="isFaceCheck" column="is_face_check"/>
+    </resultMap>
+
     <select id="queryObject" resultType="com.kmall.api.entity.StoreVo">
 		select
 			`id`,
@@ -188,4 +219,25 @@
         limit 0, 10
     </select>
 
+    <select id="storeByIdWithThirdMerch" resultMap="storeWithThirdMerchMap">
+        select t.id, t.merch_sn, t.merch_name, t.store_name, t.store_number,
+               t.store_address, t.province_name,
+               t.city_name, t.county_name,
+               t.latitude, t.longitude, t.cover_radius, t.remark, t.is_valid,
+               t.third_party_merch_code, t.third_party_merch_name,
+               t.expr_agreement_type, t.is_load_goods,
+
+               t1.third_merch_sn,
+               t1.is_stock_share, t1.is_store_user_share, t1.is_map_show,
+               t1.is_dist_sell_start, t1.is_supplier_goods,
+               t1.is_face_check, t1.is_valid
+        from mall_store t
+                 left join third_merchant_biz t1 on t.third_party_merch_code=t1.third_party_merch_code
+        where 1=1 and t.is_valid='0' and t1.is_valid='0'
+        <if test="storeId != null and storeId != '' ">
+            AND t.id = #{storeId}
+        </if>
+        limit 0, 10
+    </select>
+
 </mapper>

+ 3 - 0
wx-mall/config/api.js

@@ -25,6 +25,9 @@ module.exports = {
   StoreByCity: NewApiRootUrl + 'auth/storeListByCity', //获取地市的门店
   ActivityList: NewApiRootUrl + 'activity/list', //活动列表
 
+  StoreById: NewApiRootUrl + 'store/detail', // 获取门店信息
+  StoreByIdWithMerch: NewApiRootUrl + 'store/storeByIdWithMerch', // 门店及所属第三方商户信息
+
   GoodsSku: NewApiRootUrl + 'goods/sku', //获取sku信息
   GoodsCount: NewApiRootUrl + 'goods/count', //统计商品总数
   GoodsList: NewApiRootUrl + 'goods/list', //获得商品列表

+ 3 - 3
wx-mall/pages/goods/goods.js

@@ -87,7 +87,7 @@ Page({
       });
       if (storeId) {
         wx.setStorageSync('storeId', storeId);
-        wx.setStorageSync('isShare', 'true'); //商品详情是由用户分享进入的
+        wx.setStorageSync('isShareGoods', 'true'); //商品详情是由用户分享进入的
       }
     } else {
       //由列表页、与普通用户分享点进来带来的参数,商品id,门店id;商品id,门店id,分享用户
@@ -107,9 +107,9 @@ Page({
         this.setData({
           referrer: options.referrer
         });
-        wx.setStorageSync('isShare', 'true');
+        wx.setStorageSync('isShareGoods', 'true');
       } else {
-        wx.removeStorageSync('isShare'); //由列表页、与普通用户分享点进来则清除是否分享缓存
+        wx.removeStorageSync('isShareGoods'); //由列表页、与普通用户分享点进来则清除是否分享缓存
       }
     }
     var that = this;

+ 1 - 1
wx-mall/pages/groupDetail/groupDetail.js

@@ -218,7 +218,7 @@ Page({
     wx.showLoading({
       mask: true
     })
-    // 页面初始化 options为页面跳转所带来的参数
+    // 页面初始化 options为页面跳转或分享所带来的参数
     this.setData({
       id: parseInt(options.id),
       referrer: (null!=options.referrer?parseInt(options.referrer):0)

+ 289 - 103
wx-mall/pages/index/index.js

@@ -23,11 +23,14 @@ Page({
     list: [],
     openAttr: false,
     isMapShow: '', //第三方商户是否启用地图显示
-    isStartLocation: null,
-    isSystemLocation: null
+    isStartLocation: null, // 是否授权地理位置获取权限
+    isSystemLocation: null // 手机系统设置中定位是否开启
   },
   onLoad: function(options) {
     let that = this;
+
+    wx.clearStorageSync();
+
     // console.log('http://120.76.26.84:80/group1/M00/00/03/rBJEdVv1LDWAAjsfABCztmpupr8780.mp4')
     // console.log(wx.getFileSystemManager().readFile())
     wx.setStorageSync("navUrl", "/pages/index/index");
@@ -37,37 +40,113 @@ Page({
     // options.scene = 67;
     // options.scene = 28;
     // options.scene = 8;
+
+    // 目前共分四种情况进入小程序
+
     if (options.scene) {
+      // 是否通过扫门店码进入小程序首页
+
       // console.log("have scene");
       var scene = decodeURIComponent(options.scene);
       console.log("scene is ", scene);
       that.setData({
         storeId: scene
       });
+      wx.removeStorageSync('storeId');
       wx.setStorageSync('storeId', scene);
-      //扫码进入的小程序则清除是否分享缓存
-      wx.removeStorageSync('isShare');
+      console.log('扫门店码进入小程序首页,storeId(scene):', scene)
+
+      //扫门店码进入的小程序首页则清除是否分享缓存
+          // 20210908 add by scott chen
+      wx.setStorageSync('isScanShopEntry', 'true');  // 通过扫门店码进入
+      wx.removeStorageSync('isShareIndexEntry');  // 通过分享首页进入
+      wx.removeStorageSync('isShareGoodEntry');  // 通过分享商品进入
+      wx.removeStorageSync('isDirectEntry');  // 直接进入
+
+      //清除是否分享商品标识缓存
+      wx.removeStorageSync('isShareGood');
+
+    } else if (options.shareIndex) {
+      // 是否通过分享首页进入小程序首页
+
+      // console.log("have shareIndex");
+      var shareIndex = decodeURIComponent(options.shareIndex);
+      console.log("shareIndex is ", shareIndex);
+      that.setData({
+        storeId: shareIndex
+      });
+      wx.removeStorageSync('storeId');
+      wx.setStorageSync('storeId', shareIndex);
+      console.log('分享门店首页进入小程序首页,storeId(shareIndex):', shareIndex)
+
+      wx.setStorageSync('isShareIndexEntry', 'true');  // 通过分享首页进入
+      wx.removeStorageSync('isScanShopEntry');  // 通过扫门店码进入
+      wx.removeStorageSync('isShareGoodEntry');  // 通过分享商品进入
+      wx.removeStorageSync('isDirectEntry');  // 直接进入
+
+      //清除是否分享商品标识缓存
+      wx.removeStorageSync('isShareGood');
+
     } else {
-      //是否分享过商品,有数据则分享过;从首页进入页面则没有分享过,从详情页进入则分享过
-      if (wx.getStorageSync('isShare') == 'true') {
-        console.log('是分享进入首页门店id:' + wx.getStorageSync('storeId') + ',从商品页获取的缓存')
-        console.log('是分享进入首页:' + wx.getStorageSync('isShare'))
+      // 是否通过分享商品进入,或直接进入小程序
+
+      // 是否分享过商品进入,isShareGoods标识是通过商品分享进入goods页面后,生成的标记;
+      if (wx.getStorageSync('isShareGoods') == 'true') {
+
+        // 商品分享一定会有storeId编号
+        if(!wx.getStorageSync('storeId')) {
+          console.log('商品分享进入首页,从商品页获取缓存的storeId不存在。');
+        }
+
+        console.log('商品分享进入首页,从商品页获取缓存的storeId:', wx.getStorageSync('storeId'));
+        that.setData({
+          storeId: wx.getStorageSync('storeId')
+        });
+
+        wx.setStorageSync('isShareGoodEntry', 'true');  // 通过分享商品进入
+        wx.removeStorageSync('isScanShopEntry');  // 通过扫门店码进入
+        wx.removeStorageSync('isShareIndexEntry');  // 通过分享首页进入
+        wx.removeStorageSync('isDirectEntry');  // 直接进入
       } else {
-        //小程序入口进入的主页,则清除storeId,获取当前地址最近的门店
+
+        //直接进入小程序主页,则清除storeId,通过当前位置获取附近门店
+
         wx.removeStorageSync('storeId');
-        // console.log('不是分享进入首页门店id:【' + wx.getStorageSync('storeId') + '】,获取最近门店')
-        // console.log('不是分享进入首页:' + wx.getStorageSync('isShare'))
+        that.setData({
+          storeId: '',
+          storeName: ''
+        });
+        console.log('直接进入小程序,storeId:', that.data.storeId)
+
+        wx.setStorageSync('isDirectEntry', 'true');  // 直接进入
+        wx.removeStorageSync('isScanShopEntry');  // 通过扫门店码进入
+        wx.removeStorageSync('isShareIndexEntry');  // 通过分享首页进入
+        wx.removeStorageSync('isShareGoodEntry');  // 通过分享商品进入
+
+        //清除是否分享商品标识缓存
+        wx.removeStorageSync('isShareGood');
       }
     }
+    console.log('isScanShopEntry-0:', wx.getStorageSync('isScanShopEntry'))
+    console.log('isShareIndexEntry-0:', wx.getStorageSync('isShareIndexEntry'))
+    console.log('isShareGoodEntry-0:', wx.getStorageSync('isShareGoodEntry'))
+    console.log('isDirectEntry-0:', wx.getStorageSync('isDirectEntry'))
+
     wx.getLocation({
       success: function(location) {
-        // that.successLoadStore(location);
+        // do nothing
+        // console.log('获取用户位置成功,获取附近门店');
       },
       fail: function() {
+        // console.log('获取用户位置失败');
         wx.hideLoading();
+
+        // 判断获取地理位置失败的原因
+        // 获取配置信息
         wx.getSetting({
           success: function(res) {
             if (!res.authSetting['scope.userLocation']) {
+              // 是否授权地理位置获取权限
               wx.showModal({
                 title: '',
                 content: '检测到您没有开启获取地理位置权限,是否开启',
@@ -83,7 +162,9 @@ Page({
                 }
               })
             } else {
-              //用户已授权,但是获取地理位置失败,提示用户去系统设置中打开定位
+              // 已授权地理位置获取权限,但依然未获取到定位
+              // 用户未在手机系统设置中打开定位
+
               wx.showModal({
                 title: '',
                 content: '请在系统设置中打开定位服务',
@@ -110,18 +191,62 @@ Page({
     wx.setStorageSync("navUrl", "/pages/index/index");
     wx.setStorageSync("isLocationIndex", "false"); //购物车是否已跳转登录页,到首页重置字段为false未跳转
     if (!wx.getStorageSync('isRefusedLogin')) {
+      // 是否拒绝授权
       if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) {
         console.log('缓存是否授权为空,用户已授权:' + wx.getStorageSync('isRefusedLogin'))
-        wx.setStorageSync('isRefusedLogin', 'false'); 
+        wx.setStorageSync('isRefusedLogin', 'false'); //授权
       } else {
         console.log('缓存是否授权为空,用户未授权:' + wx.getStorageSync('isRefusedLogin'))
         wx.setStorageSync('isRefusedLogin', 'true'); //拒绝授权
       }
     } else {
-      console.log('授权不为空:' + wx.getStorageSync('isRefusedLogin'))
+      console.log('授权不为空,isRefusedLogin:' + wx.getStorageSync('isRefusedLogin'))
       wx.setStorageSync('isRefusedLogin', wx.getStorageSync('isRefusedLogin')); 
     }
-    that.syncStore();
+    console.log('是否拒绝授权,isRefusedLogin', wx.getStorageSync('isRefusedLogin'));
+    
+    // 判断isMapShow,是否同步门店,没有storeId的,要同步
+    that.syncNearbyStore();
+
+    /*if(wx.getStorageSync('isDirectEntry') == 'true') {
+      // 直接进入小程序,或分享首页进入,同步
+      that.syncNearbyStore();
+    } else if(wx.getStorageSync('isScanShopEntry') == 'true'
+              || wx.getStorageSync('isShareGoodEntry') == 'true'
+              || wx.getStorageSync('isShareIndexEntry' == 'true')) {
+      // 扫门店码,商品分享,首页分享,判断当前门店码判断isMapShow是否开启
+
+      if (!wx.getStorageSync('storeId')) {
+        // 判断条件成立,如发生丢失storeId的问题,为保持容错,加载附近门店
+
+        wx.showModal({
+          title: '',
+          content: '<>通过扫门店码进入,仍然加载附近门店<>',
+          confirmText: '确定',
+          showCancel: true,
+          cancelText: '取消',
+          success: function(resConfirm2) {
+            // 加载附近门店
+            this.syncNearbyStore();
+          }
+        })
+      } else {
+        this.syncNearbyStore();
+        // isMapShow是否开启
+        // 门店及所属第三方商户信息
+        // function callback() {
+        //   // 商户地图是否显示 0:否 1:是
+        //   if(that.data.isMapShow == '1') {
+        //     this.syncNearbyStore();
+        //   }
+        // };
+        // this.getStoreByIdWithMerch(callback);
+      }
+    } else {
+      // do nothing
+      console.log('进入小程序标识异常,onShow() 判断isMapShow,是否同步门店,无进入条件');
+    }*/
+
     // if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) {
 
     // } else {
@@ -160,19 +285,55 @@ Page({
     return {
       title: '中网跨境电商主页',
       desc: '中网跨境电商主页',
-      path: '/pages/index/index?scene=' + that.data.storeId
+      path: '/pages/index/index?shareIndex=' + that.data.storeId
     }
   },
-  // 同步门店
-  syncStore: function() {
+
+  // 获取门店及商户信息
+  // 此时 storeId已经保存到本地缓存中
+  getStoreByIdWithMerch: function(callback) {
+    let that = this;
+    util.request(api.StoreByIdWithMerch, {
+      storeId: wx.getStorageSync('storeId'),
+    }).then((res) => {
+      if (res.errno == '0') {
+        if(res.data) {
+          let storeVo = res.data.storeVo;
+          let storeWithThirdMerchBizVo = res.data.storeWithThirdMerchBizVo;
+
+         that.setData({
+           storeId: storeWithThirdMerchBizVo.id,
+           storeName: storeWithThirdMerchBizVo.storeName,
+           isMapShow: storeWithThirdMerchBizVo.isMapShow
+         })
+          console.log('获取第三方商户及门店信息,storeId:', storeWithThirdMerchBizVo.id)
+          console.log('获取第三方商户及门店信息,storeName:', storeWithThirdMerchBizVo.storeName)
+          console.log('获取第三方商户及门店信息,isMapShow:', storeWithThirdMerchBizVo.isMapShow)
+
+          wx.setStorageSync('storeId', storeWithThirdMerchBizVo.id);
+          wx.setStorageSync('storeName', storeWithThirdMerchBizVo.storeName);
+          wx.setStorageSync('isMapShow', storeWithThirdMerchBizVo.isMapShow);
+          wx.setStorageSync('storeVo', JSON.stringify(storeVo));
+        }
+        if(callback){
+          callback();
+        }            
+      }
+      
+    }).catch((error) => {
+
+    })
+  },
+
+  // 同步附近门店
+  syncNearbyStore: function() {
     let that = this;
     // console.log(wx.getStorageSync('merchSn'));
     //获取附件门店信息
-    // util.getLocation((lng, lat) => {
     wx.getLocation({
       success: function(location) {
         // console.log(location)
-        that.successLoadStore(location);
+        that.loadNearbyStore(location);
       },
       fail: function() {
         wx.hideLoading();
@@ -187,33 +348,19 @@ Page({
               that.setData({
                 isSystemLocation: false
               });
-              // wx.showModal({
-              //   title: '',
-              //   content: '请在系统设置中打开定位服务',
-              //   confirmText: '确定',
-              //   showCancel: false,
-              //   success: function (resConfirm2) {
-              //     that.setData({
-              //       isSystemLocation: false
-              //     });
-              //   }
-              // })
             }
           }
         });
       }
     });
   },
-  /**
-   * 打开微信定位
-   */
-  openSetLocation: function() {
-    wx.openSetting();
-  },
+
   /**
    * 定位确定授权加载附近门店信息
+   * 分不同情况,加载附近门店信息
    */
-  successLoadStore: function(location) {
+  loadNearbyStore: function(location) {
+
     let that = this;
     that.setData({
       isStartLocation: true,
@@ -221,15 +368,18 @@ Page({
     });
     var lng = location.longitude;
     var lat = location.latitude;
+
     wx.setStorageSync('location', JSON.stringify({
       lng,
       lat
     }));
-    let storeId = wx.getStorageSync('storeId');
+
+    console.log('定位加载附近门店时,storeId:', wx.getStorageSync('storeId'))
+
     util.request(api.NearbyList, {
       longitude: lng,
       latitude: lat,
-      storeId: storeId,
+      storeId: wx.getStorageSync('storeId'),
       thirdPartyMerchCode: ''
     }).then((res) => {
       let nlist = res.data;
@@ -240,45 +390,73 @@ Page({
       if (!wx.getStorageSync('currentCategory')) {
         wx.removeStorageSync('currentCategory');
       }
+
       if (!nlist.length) {
         wx.removeStorageSync('nearStoreList');
-        wx.removeStorageSync('mapIndexStoreId');
       } else {
         wx.setStorageSync('nearStoreList', JSON.stringify(nlist));
-        wx.setStorageSync('mapIndexStoreId', nlist[0].id);
       }
 
-      if (!nlist.length) {
-        // wx.removeStorageSync('storeId');
-        wx.removeStorageSync('storeVo');
-        that.setData({
-          storeName: '附近暂无门店'
-        })
-      } else {
-        that.setData({
-          storeName: nlist[0].storeName,
-          storeId: nlist[0].id
-        })
-        
-        that.checkLoginTokenByUpd(nlist);
-        wx.setStorageSync('storeVo', JSON.stringify(nlist[0]));
+      let param = {}
+
+      // 区分情况,对原有门店编号及名称进行覆盖
+      if (wx.getStorageSync('isDirectEntry') == 'true') {
+
+        // 直接进入小程序
+        if (!nlist.length) {
+          wx.removeStorageSync('storeVo');
+          wx.removeStorageSync('mapIndexStoreId');
+
+          that.setData({
+            storeName: '附近暂无门店',
+            storeId: ''
+          })
+        } else {
+          // 更新
+          that.setData({
+            storeId: nlist[0].id,
+            storeName: nlist[0].storeName
+          })
+
+        }
+        wx.setStorageSync('storeId', that.data.storeId);
+
+        param.id = nlist[0].id;
+        param.merchSn = nlist[0].merchSn;
+      } else if(wx.getStorageSync('isScanShopEntry') == 'true'
+                || wx.getStorageSync('isShareIndexEntry') == 'true'
+                || wx.getStorageSync('isShareGoodEntry') == 'true') {
+
+        // 不能使用附近门店编码storeId替代原有的storeId
+        param.id = wx.getStorageSync('storeId');
+        param.merchSn = nlist[0].merchSn;
       }
+      wx.setStorageSync('mapIndexStoreId', nlist[0].id);
+
+      // 获取门店及第三方商户对应的信息
+      that.getStoreByIdWithMerch(that.checkLoginTokenByUpd(param));
+
+      // that.checkLoginTokenByUpd(param);
+      // wx.setStorageSync('storeVo', JSON.stringify(nlist[0]));
     })
   },
   /**
    * 校验token是否失效,失效则更新新token
    */
-  checkLoginTokenByUpd: function (nlist){
+  checkLoginTokenByUpd: function (param){
     var that = this;
+    // token验证
     util.request(api.checkToken, {
       token: wx.getStorageSync('token'),
       isRefusedLogin: wx.getStorageSync('isRefusedLogin'),
       userId: wx.getStorageSync('userId')+'',
-      storeId: parseInt(that.data.storeId)
+      storeId: parseInt(param.storeId)
     }, 'POST').then(function (res) {
       if (res.data.errno == 401) {
-        console.log(res.data.errmsg)
-        console.log(wx.getStorageSync('token'))
+        // token在服务端失败
+        console.log('checkLoginTokenByUpd() res.data.errmsg:', res.data.errmsg)
+        console.log('checkLoginTokenByUpd() token:', wx.getStorageSync('token'))
+
         wx.getSetting({
           success: (setRes) => {
             if (setRes.authSetting['scope.userInfo'] == undefined) {
@@ -286,8 +464,8 @@ Page({
               wx.request({
                 url: api.AuthLoginSaveToken,
                 data: {
-                  storeId: that.data.storeId,
-                  merchSn: nlist[0].merchSn
+                  storeId: param.storeId,
+                  merchSn: param.merchSn
                 },
                 method: 'POST',
                 header: {
@@ -297,16 +475,14 @@ Page({
                 success: function (wxRes) {
                   // console.log(wxRes)
                   if (wxRes.data.errno === 0) {
-                    //存储用户信息
-                    // wx.setStorageSync('userInfo', wxRes.data.data.userInfo);
+                    //存储信息
                     wx.setStorageSync('token', wxRes.data.data.token);
-                    console.log('微信用户未授权,获取一个新的token' + wx.getStorageSync('token'))
-                    // wx.setStorageSync('userId', wxRes.data.data.userId);
-                    that.chooseStore(nlist[0].id, nlist[0].merchSn);
+                    console.log('checkLoginTokenByUpd() loginSaveToken 微信用户未授权,获取到一个新的token:' + wx.getStorageSync('token'))
+                    that.chooseStore(param.id, param.merchSn);
                   }
                 },
                 fail: function (err) {
-                  console.log("failed");
+                  console.log("checkLoginTokenByUpd() loginSaveToken failed");
                 }
               });
             } else {
@@ -320,8 +496,8 @@ Page({
                       data: {
                         code: loginRes.code,
                         userInfo: wx.getStorageSync('userInfo'),
-                        storeId: that.data.storeId,
-                        merchSn: nlist[0].merchSn
+                        storeId: wx.getStorageSync('storeId'),
+                        merchSn: param.merchSn
                       },
                       method: 'POST',
                       header: {
@@ -335,54 +511,67 @@ Page({
                           wx.setStorageSync('token', wxRes.data.data.token);
                           wx.setStorageSync('userId', wxRes.data.data.userId);
                           wx.setStorageSync('isRefusedLogin', 'false');//允许授权
-                          console.log("登录成功");
-                          that.chooseStore(nlist[0].id, nlist[0].merchSn);
+                          console.log("checkLoginTokenByUpd() loginSaveToken token失效,更新token,登录成功");
+                          that.chooseStore(param.id, param.merchSn);
                         }
                       },
                       fail: function (err) {
-                        console.log("failed");
+                        console.log("checkLoginTokenByUpd() loginSaveToken failed");
                       }
                     });
                   } else {
-                    console.log("failed");
+                    console.log("checkLoginTokenByUpd() loginSaveToken !loginRes.code failed");
                   }
                 },
                 fail: function (err) {
-                  console.log("failed");
+                  console.log("checkLoginTokenByUpd() wx.login() failed");
                 }
               });
             }
           }
         });
       } else {
-        console.log('token未失效');
+        console.log('checkLoginTokenByUpd() checkToken token未失效');
         // console.log(res)
-        that.chooseStore(nlist[0].id, nlist[0].merchSn);
+        that.chooseStore(param.id, param.merchSn);
       }
     });
   },
   // 更新门店Id
   chooseStore: function(storeId, merchSn) {
     let that = this;
+    console.log('chooseStore(),storeId:', storeId,)
+
     util.request(api.ChooseStoreId, {
       storeId: storeId,
       merchSn: merchSn,
       isRefusedLogin: wx.getStorageSync('isRefusedLogin')
     }, 'POST').then(function (res) {
       if (res.errno === 0) {
-        wx.setStorageSync('storeId', storeId);
+
+        if(wx.getStorageSync('isScanShopEntry') == 'true'
+          || wx.getStorageSync('isShareIndexEntry') == 'true'
+          || wx.getStorageSync('isShareGoodEntry') == 'true'){
+          // 通过扫门店码,分享首页,分享商品等进入,不更新
+        } else if(wx.getStorageSync('isDirectEntry') == 'true') {
+          // 直接进入,更新
+          that.setData({
+            storeId: storeId,
+          });
+
+          console.log('更新了门店编号,storeId:', storeId)
+          wx.setStorageSync('storeId', storeId);
+        }
+
         wx.setStorageSync('merchSn', merchSn);
-        console.log(res.data.token)
+
+        console.log('chooseStore() token:',res.data.token)
         wx.setStorageSync('token', res.data.token);
-        // wx.getSetting({
-        //   success: (setRes) => {
-        //     if (setRes.authSetting['scope.userInfo'] == undefined) {
-              
-        //     }else{
-        //       wx.setStorageSync('token', res.data.token);
-        //     }
-        //   }
-        // });
+
+        console.log('isScanShopEntry-1:', wx.getStorageSync('isScanShopEntry'))
+        console.log('isShareIndexEntry-1:', wx.getStorageSync('isShareIndexEntry'))
+        console.log('isShareGoodEntry-1:', wx.getStorageSync('isShareGoodEntry'))
+        console.log('isDirectEntry-1:', wx.getStorageSync('isDirectEntry'))
 
         if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) {
           that.reLoad();
@@ -400,6 +589,7 @@ Page({
     // console.log(wx.getStorageSync('userId'));
     // console.log(wx.getStorageSync('storeId'));
     // console.log(wx.getStorageSync('merchSn'));
+
     if (wx.getStorageSync('storeId')) {
       if (wx.getStorageSync('userId')) {
         wx.request({
@@ -426,7 +616,7 @@ Page({
             }
           },
           fail: function(err) {
-            console.log("failed");
+            console.log("reLoad()::api.updateLoginUser: failed");
           }
         });
       }
@@ -451,18 +641,13 @@ Page({
           // groupBanner: res.data.groupBanner,
           channel: res.data.channel
         });
-        // console.log(that.data.hotGoods.length)
-        // console.log(wx.getStorageSync('storeId'))
-        // console.log(wx.getStorageSync('mapIndexStoreId'))
-        // if (that.data.hotGoods.length == 0) {
-        //   that.getGoodsList();
-        // }
-        // console.log("mapIndexStoreId:" + wx.getStorageSync('mapIndexStoreId'))
-        // console.log("storeId:" + wx.getStorageSync('storeId'))
-        // console.log("isShare:" + wx.getStorageSync('isShare'))
-        // console.log("isLoadGoods:" + wx.getStorageSync('isLoadGoods'))
-        //当切换了门店地图(mapIndexStoreId),或是由用户分享进入的商品详情切换进入的首页(isShare:true)
-        if (wx.getStorageSync('storeId') != wx.getStorageSync('mapIndexStoreId') || wx.getStorageSync('isShare') == 'true' || that.data.hotGoods.length == 0 || wx.getStorageSync('isLoadGoods') == '1') {
+
+        //当切换了门店地图(mapIndexStoreId);或由用户分享进入的商品详情页,再切换进入的首页(isShareGoodEntry:true)
+        if (wx.getStorageSync('storeId') != wx.getStorageSync('mapIndexStoreId')
+              || wx.getStorageSync('isShareGoodEntry') == 'true'
+              || that.data.hotGoods.length == 0
+              || wx.getStorageSync('isLoadGoods') == '1') {
+
           that.setData({
             hotGoods: [],
             page: 1
@@ -473,7 +658,7 @@ Page({
               storeId: wx.getStorageSync('storeId')
             }).then(function(res) {});
           }
-          wx.setStorageSync('isShare', 'false');
+          wx.setStorageSync('isShareGoodEntry', 'false');
         }
       }
       wx.hideLoading();
@@ -513,6 +698,7 @@ Page({
     });
   },
   handleStore() {
+    console.log('进入 handleStore()');
     wx.navigateTo({
       url: '../map/map',
     })

+ 1 - 1
wx-mall/pages/index/index.json

@@ -1,2 +1,2 @@
 {
-  "navigationBarTitleText": "e海购"}
+  "navigationBarTitleText": "易买"}

+ 2 - 2
wx-mall/pages/ucenter/index/index.wxml

@@ -149,10 +149,10 @@
   <button wx:if="{{userInfo.nickName!='点击头像登录'}}" type='primary' class="logout" bindtap="exitLogin">退出登录</button>
   <view class='banquan-view'>
     <view class="banquan">
-      Copyright©2016-2020
+      Copyright©2016-2021
     </view>
     <view class="banquan">
-      中网科技版权所有
+      中网科技(深圳)有限公司
     </view>
   </view>
 </view>