1
0
Преглед на файлове

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

黄亚琴 преди 6 години
родител
ревизия
f6f2bf54c7
променени са 29 файла, в които са добавени 208 реда и са изтрити 116 реда
  1. 4 4
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java
  2. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/MerchController.java
  3. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/ThirdMerchantBizController.java
  4. 4 5
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  5. 8 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java
  6. 1 0
      kmall-admin/src/main/resources/mybatis/mapper/ProductStoreRelaDao.xml
  7. 1 0
      kmall-api/pom.xml
  8. 18 18
      kmall-api/src/main/java/com/kmall/api/api/ApiCartController.java
  9. 5 7
      kmall-api/src/main/java/com/kmall/api/api/ApiGoodsController.java
  10. 1 0
      kmall-api/src/main/java/com/kmall/api/api/ApiOrderController.java
  11. 28 8
      kmall-api/src/main/java/com/kmall/api/service/ApiOrderService.java
  12. 19 6
      kmall-api/src/main/resources/mybatis/mapper/ApiCartMapper.xml
  13. 11 5
      kmall-api/src/main/resources/mybatis/mapper/ApiGoodsMapper.xml
  14. 17 0
      kmall-schedule/src/main/java/com/kmall/schedule/service/QzOrderService.java
  15. 5 3
      kmall-schedule/src/main/resources/mybatis/mapper/QzOrderMapper.xml
  16. 3 3
      wx-mall/config/api.js
  17. 3 1
      wx-mall/pages/cart/cart.js
  18. 11 11
      wx-mall/pages/cart/cart.wxml
  19. 3 3
      wx-mall/pages/catalog/catalog.wxml
  20. 1 1
      wx-mall/pages/category/category.wxml
  21. 33 21
      wx-mall/pages/goods/goods.js
  22. 4 4
      wx-mall/pages/goods/goods.wxml
  23. 1 1
      wx-mall/pages/hotGoods/hotGoods.wxml
  24. 14 3
      wx-mall/pages/index/index.js
  25. 2 2
      wx-mall/pages/index/index.wxml
  26. 4 2
      wx-mall/pages/search/search.js
  27. 1 1
      wx-mall/pages/search/search.wxml
  28. 1 1
      wx-mall/pages/ucenter/orderDetail/orderDetail.wxml
  29. 1 1
      wx-mall/project.config.json

+ 4 - 4
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java

@@ -50,7 +50,7 @@ public class GoodsController {
     @RequestMapping("/list")
     @RequiresPermissions("goods:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
+        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode");
         String goodsName = (String) params.get("name");
         if(org.apache.commons.lang3.StringUtils.isNotEmpty(goodsName)){
             try{
@@ -126,7 +126,7 @@ public class GoodsController {
      */
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
+        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode");
         params.put("isDelete", Integer.parseInt(Dict.isDelete.item_0.getItem()));
         params.put("isOnSale", Integer.parseInt(Dict.isOnSale.item_1.getItem()));
         List<GoodsEntity> list = goodsService.queryList(params);
@@ -142,7 +142,7 @@ public class GoodsController {
      */
     @RequestMapping("/historyList")
     public R historyList(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
+        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -171,7 +171,7 @@ public class GoodsController {
      */
     @RequestMapping("/queryTotal")
     public R queryTotal(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
+        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode");
         params.put("isDelete", 0);
         int sum = goodsService.queryTotal(params);
         return R.ok().put("goodsSum", sum);

+ 2 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/MerchController.java

@@ -34,7 +34,7 @@ public class MerchController {
     @RequiresPermissions("merch:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", null);
+        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "roleMerchSn", null);
 
         //查询列表数据
         Query query = new Query(params);
@@ -102,7 +102,7 @@ public class MerchController {
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", null);
+        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "roleMerchSn", null);
 
         List<MerchEntity> list = merchService.queryList(params);
 

+ 2 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/ThirdMerchantBizController.java

@@ -43,7 +43,7 @@ public class ThirdMerchantBizController {
     @RequiresPermissions("thirdmerchantbiz:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
+        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode");
 
         String thirdPartyName = (String) params.get("name");
         if(org.apache.commons.lang3.StringUtils.isNotEmpty(thirdPartyName)){
@@ -166,7 +166,7 @@ public class ThirdMerchantBizController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
+        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode");
         List<ThirdMerchantBizEntity> list = thirdMerchantBizService.queryList(params);
 
         return R.ok().put("list", list);

+ 4 - 5
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -420,15 +420,14 @@ public class OrderServiceImpl implements OrderService {
                 if (storeRelaEntity.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {
                     //还原商户商品库存
                     stockNum = storeRelaEntity.getGoodsNumber();
-                    BigDecimal goodsSellVolume = new BigDecimal(storeRelaEntity.getGoodsSellVolume() - orderGoodsEntity.getNumber());//销售量
-                    if (goodsSellVolume.compareTo(Constant.ZERO) < 0) {
-                        goodsSellVolume = Constant.ZERO;
-                    }
                     GoodsEntity goodsEntity = goodsDao.queryObject(storeRelaEntity.getGoodsId());
                     if(goodsEntity!=null){
                         goodsEntity.setGoodsNumber(stockNum + orderGoodsEntity.getNumber());
-                        goodsEntity.setSellVolume(Integer.parseInt(goodsSellVolume.toString()));
+//                        goodsEntity.setSellVolume(Integer.parseInt(goodsSellVolume.toString()));
                         goodsDao.update(goodsEntity);
+
+                        storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString()));
+                        productStoreRelaDao.update(storeRelaEntity);
                         
                         MngChangeEntity mngChangeEntity = new MngChangeEntity();
                         mngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(goodsEntity.getId())));

+ 8 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java

@@ -245,7 +245,7 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
         ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
         builder.put("storeId", "门店");
         builder.put("goodsId", "商品");
-        builder.put("stockNum", "库存");
+//        builder.put("stockNum", "库存");
         builder.put("attributeCategory", "一级分类");
         builder.put("categoryId", "二级分类");
         builder.put("brandId", "品牌");
@@ -256,6 +256,13 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
             throw new RRException(r.get("msg").toString());
         } else {
             goodsEntity = goodsDao.queryObject(productStoreRela.getGoodsId());
+            if(Dict.orderBizType.item_00.getItem().equalsIgnoreCase(goodsEntity.getGoodsBizType())){
+                if(Dict.isStockShare.item_0.getItem().equalsIgnoreCase(goodsEntity.getIsStockShare())){
+                    builder.put("stockNum", "库存");
+                }
+            }else{
+                builder.put("stockNum", "库存");
+            }
             if (Dict.orderBizType.item_11.getItem().equals(goodsEntity.getGoodsBizType())) {
                 // 普通商品校验商品规格
                 builder.put("specification", "规格");

+ 1 - 0
kmall-admin/src/main/resources/mybatis/mapper/ProductStoreRelaDao.xml

@@ -148,6 +148,7 @@
         a.`market_price`,
         a.`stock_price`,
         a.`sell_volume`,
+        b.sell_volume 'goodsSellVolume',
         b.sku,a.goods_biz_type, a.creater_sn, a.create_time, a.moder_sn, a.mod_time, a.tstm,
         b.goods_sn goodsSn,
         b.list_pic_url,

+ 1 - 0
kmall-api/pom.xml

@@ -48,6 +48,7 @@
                 <version>2.18.1</version>
                 <configuration>
                     <skipTests>true</skipTests>
+                    <argLine>-Dfile.encoding=UTF-8</argLine>
                 </configuration>
             </plugin>
         </plugins>

+ 18 - 18
kmall-api/src/main/java/com/kmall/api/api/ApiCartController.java

@@ -111,14 +111,14 @@ public class ApiCartController extends ApiBaseAction {
      * 获取购物车中的数据
      */
     @GetMapping("getCart")
-    public Object getCart(String checkCart) {
+    public Object getCart(String checkCart,Long storeId) {
         UserVo loginUser = new UserVo();
         loginUser.setId(getUserId());
         Map<String, Object> resultObj = Maps.newHashMap();
         //查询列表数据
         Map param = Maps.newHashMap();
         param.put("user_id", loginUser.getId());
-        Long storeId = getStoreId();
+        storeId = getStoreId();
         param.put("store_id", storeId);
         param.put("merchSn", getMerchSn());
         param.put("checkCart", checkCart);
@@ -243,9 +243,9 @@ public class ApiCartController extends ApiBaseAction {
     /**
      * 获取购物车信息,所有对购物车的增删改操作,都要重新返回购物车的信息
      */
-    @GetMapping("index")
-    public Object index(String checkCart) {
-        return toResponsSuccess(getCart(checkCart));
+    @GetMapping("indexs")
+    public Object indexs(String checkCart,Long storeId) {
+        return toResponsSuccess(getCart(checkCart,storeId));
     }
 
     /**
@@ -342,7 +342,7 @@ public class ApiCartController extends ApiBaseAction {
             cartInfo.setSku(goodsInfo.getSku());
             cartService.update(cartInfo);
         }
-        return toResponsSuccess(getCart(checkCart));
+        return toResponsSuccess(getCart(checkCart,storeId));
     }
 
     /**
@@ -363,7 +363,7 @@ public class ApiCartController extends ApiBaseAction {
         if (0 != MapUtils.getInteger("errno", resultObj)) {
             return toResponsObject(MapUtils.getInteger("errno", resultObj), MapUtils.getString("errmsg", resultObj), "");
         }
-        return toResponsSuccess(getCart(checkCart));
+        return toResponsSuccess(getCart(checkCart,storeId));
     }
 
     /**
@@ -515,7 +515,7 @@ public class ApiCartController extends ApiBaseAction {
         //取得规格的信息,判断规格库存
         ProductVo productInfo = productService.queryByStoreId(productId, storeId);
         if (null == productInfo) {
-            return this.toResponsObject(400, "商品已下架", getCart(checkCart));
+            return this.toResponsObject(400, "商品已下架", getCart(checkCart,storeId));
         }
         ThirdMerchantBizVo thirdMerchantBiz = apiThirdMerchantBizService.getThirdMerchangByCode(goodsInfo.getThirdPartyMerchCode());
         if(null == thirdMerchantBiz){
@@ -536,7 +536,7 @@ public class ApiCartController extends ApiBaseAction {
             }
         }
         if(stockNum == null || number > stockNum || stockNum <= 0){
-            return this.toResponsObject(400, "该商品库存不足", getCart(checkCart));
+            return this.toResponsObject(400, "该商品库存不足", getCart(checkCart,storeId));
         }
         String msg = "";
 //        if (productInfo.getStock_num() < number) {
@@ -551,7 +551,7 @@ public class ApiCartController extends ApiBaseAction {
             cartInfo.setNumber(number);
             cartInfo.setStockNum(stockNum);
             cartService.update(cartInfo);
-            return toResponsObject(0, msg, getCart(checkCart));
+            return toResponsObject(0, msg, getCart(checkCart,storeId));
         }
 
         Map cartParam = Maps.newHashMap();
@@ -583,7 +583,7 @@ public class ApiCartController extends ApiBaseAction {
             cartInfo.setGoods_specification_ids(productInfo.getGoods_specification_ids());
             cartService.update(cartInfo);
         }
-        return toResponsObject(0, msg, getCart(checkCart));
+        return toResponsObject(0, msg, getCart(checkCart,storeId));
     }
 
     /**
@@ -611,7 +611,7 @@ public class ApiCartController extends ApiBaseAction {
             }
         }
         cartService.updateCheck(goodsIdArray, isChecked, loginUser.getId(), getStoreId());
-        return toResponsSuccess(getCart(checkCart));
+        return toResponsSuccess(getCart(checkCart,getStoreId()));
     }
 
     //删除选中的购物车商品,批量删除
@@ -624,12 +624,12 @@ public class ApiCartController extends ApiBaseAction {
             return toResponsFail("删除出错");
         }
         cartService.delete(cartId);
-        return toResponsSuccess(getCart(checkCart));
+        return toResponsSuccess(getCart(checkCart,getStoreId()));
     }
 
     //  获取购物车商品的总件件数
-    @GetMapping("goodscount")
-    public Object goodscount(@LoginUser UserVo loginUser) {
+    @GetMapping("goodscounts")
+    public Object goodscounts(@LoginUser UserVo loginUser, Long storeId) {
         if (null == loginUser || null == loginUser.getId()) {
             return toResponsFail("未登录");
         }
@@ -637,8 +637,8 @@ public class ApiCartController extends ApiBaseAction {
         //查询列表数据
         Map param = Maps.newHashMap();
         param.put("user_id", loginUser.getId());
-        param.put("store_id", getStoreId());
-        param.putAll(setIsStockShare(getStoreId()));
+        param.put("store_id", storeId);
+        param.putAll(setIsStockShare(storeId));
         List<CartVo> cartList = cartService.queryList(param);
         //获取购物车统计信息
         Integer goodsCount = 0;
@@ -846,7 +846,7 @@ public class ApiCartController extends ApiBaseAction {
             for (CartVo cart: list) {
                 cartService.delete(cart.getId());
             }
-            return toResponsSuccess(getCart(checkCart));
+            return toResponsSuccess(getCart(checkCart,storeId));
         }catch (Exception e){
             return toResponsFail("清空失败");
         }

+ 5 - 7
kmall-api/src/main/java/com/kmall/api/api/ApiGoodsController.java

@@ -129,16 +129,14 @@ public class ApiGoodsController extends ApiBaseAction {
         List<GoodsGalleryVo> gallery = goodsGalleryService.queryList(param);
         return toResponsSuccess(gallery);
     }
-
     /**
      * 商品详情页数据
      * */
-    @GetMapping("detail")
-    public Object detail(Long id, Long referrer,String merchSn) {
+    @GetMapping("details")
+    public Object details(Long id, Long referrer,String merchSn,Long storeId) {
         Map<String, Object> resultObj = Maps.newHashMap();
         //
         Long userId = getUserId();
-        Long storeId = getStoreId();
         GoodsVo info = goodsService.queryObjectByStoreId(id, storeId);
         if(info == null){
             return toResponsFail("此商品不存在");
@@ -148,7 +146,7 @@ public class ApiGoodsController extends ApiBaseAction {
 
         Map param = Maps.newHashMap();
         param.put("goods_id", id);
-        param.put("store_id", getStoreId());
+        param.put("store_id", storeId);
         List<Map> specificationList = goodsSpecificationService.queryByGoodsIdGroupByNames(id);
         //
         List<ProductVo> productEntityList = productService.queryList(param);
@@ -218,13 +216,13 @@ public class ApiGoodsController extends ApiBaseAction {
         cartMap.put("isStockShare", info.getIsStockShare());
         List<CartVo> cartVoList = cartService.queryList(cartMap);
 
-        FreightEntity freightEntity = apiFreightService.queryObjectByGoodsId(info.getId(), getStoreId());
+        FreightEntity freightEntity = apiFreightService.queryObjectByGoodsId(info.getId(), storeId);
 
         Integer stockNum = 0;
         if(info.getGoodsBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem())){
             if (info.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {
                 stockNum = info.getGoods_number();
-                info.setSell_volume(info.getGoods_sell_volume());
+//                info.setSell_volume(info.getGoods_sell_volume());
             }
             if (info.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_0.getItem())) {
                 stockNum = info.getStockNum();

+ 1 - 0
kmall-api/src/main/java/com/kmall/api/api/ApiOrderController.java

@@ -242,6 +242,7 @@ public class ApiOrderController extends ApiBaseAction {
     public Object submit(@LoginUser UserVo loginUser) {
         Map resultObj = null;
         try {
+            loginUser.setId(getUserId());
             resultObj = orderService.submit(getJsonRequest(), loginUser, getStoreId());
             if (null != resultObj) {
                 return toResponsObject(MapUtils.getInteger(resultObj, "errno"), MapUtils.getString(resultObj, "errmsg"), resultObj.get("data"));

+ 28 - 8
kmall-api/src/main/java/com/kmall/api/service/ApiOrderService.java

@@ -128,9 +128,13 @@ public class ApiOrderService {
                     stockNum = goodsInfo.getGoods_number();
                     stockNum = stockNum == null? 0 : stockNum;
                     goodsInfo.setGoods_number(stockNum + orderGoodsVo.getNumber());
-                    goodsInfo.minusSellVolume();
+//                    goodsInfo.setSell_volume(goodsInfo.getGoods_sell_volume() - orderGoodsVo.getNumber());
                     apiGoodsMapper.updateGoodsStock(goodsInfo);
 
+                    productInfo.setSell_volume(productInfo.getSell_volume() - orderGoodsVo.getNumber());
+                    productInfo.setGoods_id(goodsInfo.getId());
+                    apiProductMapper.updateStockNum(productInfo);
+
                     MngChangeVo mngChangeVo = new MngChangeVo();
                     mngChangeVo.setGoodsId(Integer.parseInt(String.valueOf(goodsInfo.getId())));
                     mngChangeVo.setThirdPartyMerchCode(goodsInfo.getThirdPartyMerchCode());
@@ -152,7 +156,7 @@ public class ApiOrderService {
                     stockNum = productInfo.getStock_num();
                     stockNum = stockNum == null? 0 : stockNum;
                     productInfo.setStock_num(stockNum + orderGoodsVo.getNumber());
-                    productInfo.minusSellVolume();
+                    productInfo.setSell_volume(productInfo.getSell_volume() - orderGoodsVo.getNumber());
                     productInfo.setGoods_id(goodsInfo.getId());
                     apiProductMapper.updateStockNum(productInfo);
 
@@ -178,7 +182,7 @@ public class ApiOrderService {
                 stockNum = stockNum == null? 0 : stockNum;
                 productInfo.setStock_num(stockNum + orderGoodsVo.getNumber());
                 productInfo.setGoods_id(goodsInfo.getId());
-                productInfo.minusSellVolume();
+                productInfo.setSell_volume(productInfo.getSell_volume() - orderGoodsVo.getNumber());
                 apiProductMapper.updateStockNum(productInfo);
 
                 StoreMngChangeVo storeMngChangeVo = new StoreMngChangeVo();
@@ -257,8 +261,13 @@ public class ApiOrderService {
         userVo.setId(loginUser.getId());
         userVo.setIdNo(idNo);
         userVo.setUsername(userName);
+        logger.info("param userId:"+ loginUser.getId());
+        logger.info("param idNo:"+ idNo);
+        logger.info("param userName:"+ userName);
         if(user != null){
-            if(loginUser.getId() != user.getId()){
+            logger.info("query userId:"+ user.getId());
+            if(loginUser.getId().compareTo(user.getId()) != 0){
+                logger.info("该身份证信息已被绑定,登陆用户:"+ user.getId()+",查询用户:"+ user.getId());
                 resultObj.put("errno", 400);
                 resultObj.put("errmsg", "该身份证信息已被绑定");
                 return resultObj;
@@ -270,6 +279,7 @@ public class ApiOrderService {
         if(vo.getRespCode().equalsIgnoreCase("0000")){
             apiUserMapper.update(userVo);
         }else{
+            logger.info(vo.getRespMessage());
             resultObj.put("errno", 400);
             resultObj.put("errmsg", vo.getRespMessage());
             return resultObj;
@@ -285,6 +295,7 @@ public class ApiOrderService {
         if (null == checkedGoodsList) {
             resultObj.put("errno", 400);
             resultObj.put("errmsg", "请选择商品");
+            logger.error("请选择商品");
             return resultObj;
         }
         // 检查库存和更新库存
@@ -294,12 +305,14 @@ public class ApiOrderService {
             //取得规格的信息,判断规格库存
             GoodsVo goodsInfo = apiGoodsMapper.queryObjectByStoreId(goodsItem.getGoods_id(), storeId);
             if (null == goodsInfo || goodsInfo.getIs_delete() == 1 || goodsInfo.getIs_on_sale() == 0) {
+                logger.error("订单提交失败:商品不存在");
                 throw new RRException("订单提交失败:商品不存在");
             }
             ProductVo productInfo = apiProductMapper.queryByStoreId(goodsItem.getProduct_id(), storeId);
 
             synchronized (productInfo){
                 if (null == productInfo) {
+                    logger.error("订单提交失败:商品已下架");
                     throw new RRException("订单提交失败:商品已下架");
                 }
                 // TODO: 2019/3/5  普通商品不受共享库存影响,直接取门店配置库存
@@ -314,12 +327,14 @@ public class ApiOrderService {
                     stockNum = productInfo.getStock_num();
                 }
                 if (null == stockNum || stockNum < goodsItem.getNumber() || stockNum <= 0) {
+                    logger.error("订单提交失败:库存不足,仅剩余" + stockNum);
                     throw new RRException("订单提交失败:库存不足,仅剩余" + stockNum);
                 }else{
                     if(goodsInfo.getGoodsBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem())){
                         if (goodsInfo.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {
                             //扣减商户商品库存
-                            updateGoodsStock(goodsInfo,stockNum,goodsItem,userName);
+                            productInfo.setStore_id(storeId);
+                            updateGoodsStock(goodsInfo,productInfo,stockNum,goodsItem,userName);
                         }
                         if (goodsInfo.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_0.getItem())) {
                             //扣减门店库存
@@ -438,6 +453,7 @@ public class ApiOrderService {
             List<OrderProcessRecordEntity> processRecordEntityList = new ArrayList<>();
             for (OrderVo orderInfo : orderInfoList) {
                 if (null == orderInfo.getId()) {
+                    logger.error("订单提交失败");
                     throw new RRException("订单提交失败");
                 }
                 //新增订单详情
@@ -446,6 +462,7 @@ public class ApiOrderService {
                     if (orderInfo.getOrderBizType().equalsIgnoreCase(goodsItem.getGoodsBizType())) {
                         GoodsVo goodsVo = apiGoodsMapper.queryObjectByStoreId(goodsItem.getGoods_id(), storeId);
                         if(goodsVo==null){
+                            logger.error("订单提交失败:商品不存在");
                             throw new RRException("订单提交失败:商品不存在");
                         }
                         OrderGoodsVo orderGoodsVo = setOrderGoodsVo(orderInfo, goodsItem, goodsVo);
@@ -495,11 +512,14 @@ public class ApiOrderService {
 
         return resultObj;
     }
-    private void updateGoodsStock(GoodsVo goodsVo,Integer stockNum,CartVo goodsItem,String userName){
+    private void updateGoodsStock(GoodsVo goodsVo,ProductVo productInfo,Integer stockNum,CartVo goodsItem,String userName){
         goodsVo.setGoods_number(stockNum - goodsItem.getNumber());
-        goodsVo.addSellVolume();
         goodsVo.setId(goodsVo.getId());
         apiGoodsMapper.updateGoodsStock(goodsVo);
+        //修改门店商品销量
+        productInfo.setSell_volume(productInfo.getSell_volume() + goodsItem.getNumber());
+        productInfo.setGoods_id(goodsVo.getId());
+        apiProductMapper.updateStockNum(productInfo);
 
         MngChangeVo mngChangeVo = new MngChangeVo();
         mngChangeVo.setGoodsId(Integer.parseInt(String.valueOf(goodsVo.getId())));
@@ -520,7 +540,7 @@ public class ApiOrderService {
     private void updateStock(ProductVo productInfo,GoodsVo goodsVo,Integer stockNum,CartVo goodsItem,Long storeId,String userName){
         productInfo.setStock_num(stockNum - goodsItem.getNumber());
         productInfo.setStore_id(storeId);
-        productInfo.addSellVolume();
+        productInfo.setSell_volume(productInfo.getSell_volume() + goodsItem.getNumber());
         productInfo.setGoods_id(goodsVo.getId());
 //        productVos.add(productInfo);
         apiProductMapper.updateStockNum(productInfo);

+ 19 - 6
kmall-api/src/main/resources/mybatis/mapper/ApiCartMapper.xml

@@ -60,21 +60,26 @@
         left join mall_product c on c.goods_id = a.goods_id and c.id = a.product_id
         left join mall_product_store_rela psr on psr.product_id = c.id and psr.store_id = #{store_id}
         where 1 = 1  and b.is_delete = 0 and b.is_on_sale = 1
-        <if test="isStockShare == 1 and checkCart != null and checkCart == '00'">
+        <if test="checkCart == null">
+            <if test="isStockShare == 1">
+                and b.goods_number > 0
+            </if>
+            <if test="isStockShare == 0">
+                and psr.stock_num > 0
+            </if>
+        </if>
+        <if test="isStockShare == 1 and (checkCart != null and checkCart == '00')">
             and b.goods_number > 0
         </if>
-        <if test="isStockShare == 0 and checkCart != null and checkCart == '00'">
+        <if test="isStockShare == 0 and (checkCart != null and checkCart == '00')">
             and psr.stock_num > 0
         </if>
         <if test="checkCart != null and checkCart == '11'">
-            and psr.stock_num > 0
+            and psr.stock_num > 0 and b.goods_biz_type = '11'
         </if>
         <if test="checkCart != null and checkCart == '00'">
             and b.goods_biz_type != '11'
         </if>
-        <if test="checkCart != null and checkCart == '11'">
-            and b.goods_biz_type = '11'
-        </if>
         <if test="user_id != null">
             AND a.user_id = #{user_id}
         </if>
@@ -166,6 +171,14 @@
         left join mall_product c on c.goods_id = a.goods_id and c.id = a.product_id
         left join mall_product_store_rela psr on psr.product_id = c.id and psr.store_id = #{store_id}
         where 1 = 1  and b.is_delete = 0 and b.is_on_sale = 1
+        <if test="checkCart == null">
+            <if test="isStockShare == 1">
+                and b.goods_number > 0
+            </if>
+            <if test="isStockShare == 0">
+                and psr.stock_num > 0
+            </if>
+        </if>
         <if test="isStockShare == 1 and checkCart != null and checkCart == '00'">
             and b.goods_number > 0
         </if>

+ 11 - 5
kmall-api/src/main/resources/mybatis/mapper/ApiGoodsMapper.xml

@@ -158,7 +158,7 @@
             a.*
         </if>
         ,psr1.stock_num,psr1.category_id,psr1.brand_id,psr1.attribute_category,a.third_party_merch_code
-        ,a.goods_biz_type,a.goods_number,mb.is_stock_share isStockShare
+        ,a.goods_biz_type,a.goods_number,mb.is_stock_share isStockShare,psr1.store_id
         from mall_goods a
         LEFT JOIN mall_product_store_rela psr1 ON a.id = psr1.goods_id and a.merch_sn = psr1.merch_sn
         left join third_merchant_biz mb on a.third_party_merch_code = mb.third_party_merch_code and mb.merch_sn=a.merch_sn
@@ -196,9 +196,12 @@
                 #{item}
             </foreach>
         </if>
-        <if test="category_parent_id != null and category_parent_id != null">
+        <if test="category_parent_id != null and category_parent_id != null and category_parent_id != 0">
             and FIND_IN_SET(psr1.category_id, getCategoryChildLst(#{category_parent_id}))
         </if>
+        <if test="category_parent_id != null and category_parent_id != null and category_parent_id == 0">
+            and FIND_IN_SET(c.parent_id, getCategoryChildLst(#{category_parent_id}))
+        </if>
         <if test="goods_ids != null">
             and a.id in
             <foreach item="item" collection="goods_ids" open="(" separator="," close=")">
@@ -233,7 +236,7 @@
         ,a.goods_biz_type,
         a.goods_number,
         a.third_party_merch_code third_party_merch_code,
-        mb.is_stock_share isStockShare
+        mb.is_stock_share isStockShare,psr1.store_id
         from mall_goods a
         LEFT JOIN mall_product_store_rela psr1 ON a.id = psr1.goods_id and a.merch_sn = psr1.merch_sn
         left join third_merchant_biz mb on mb.third_party_merch_code = a.third_party_merch_code and mb.merch_sn=a.merch_sn
@@ -268,7 +271,10 @@
                 #{item}
             </foreach>
         </if>
-        <if test="category_parent_id != null and category_parent_id != null">
+        <if test="category_parent_id != null and category_parent_id != null and category_parent_id != 0">
+            and FIND_IN_SET(psr1.category_id, getCategoryChildLst(#{category_parent_id}))
+        </if>
+        <if test="category_parent_id != null and category_parent_id != null and category_parent_id == 0">
             and FIND_IN_SET(c.parent_id, getCategoryChildLst(#{category_parent_id}))
         </if>
         <if test="goods_ids != null">
@@ -296,7 +302,7 @@
     <select id="queryCatalogProductList" resultMap="goodsMap">
         select a.id, a.name, a.list_pic_url,psr1.category_id,psr1.brand_id,psr1.attribute_category , psr1.market_price, psr1.retail_price, a.goods_brief, b.id AS product_id,
         psr1.stock_num,a.third_party_merch_code,a.goods_biz_type,a.goods_number,
-        mb.is_stock_share isStockShare
+        mb.is_stock_share isStockShare,psr1.store_id
         <if test="is_group != null and is_group == true">
            ,gg.id as group_id
         </if>

+ 17 - 0
kmall-schedule/src/main/java/com/kmall/schedule/service/QzOrderService.java

@@ -236,10 +236,19 @@ public class QzOrderService {
         String third_party_merch_code = MapUtils.getString("third_party_merch_code", map);
         if(goods_biz_type.equalsIgnoreCase(Dict.orderBizType.item_00.getItem())){
             if(goods_biz_type.equalsIgnoreCase(Dict.orderBizType.item_00.getItem()) && isStockShare.equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {//共享
+//                Integer sell_volume = MapUtils.getInteger("goods_sell_volume", map);//销量
                 Map param = Maps.newHashMap();
                 param.put("id", goods_id);
                 param.put("goods_number", goods_number + number);
                 qzOrderMapper.updateGoodsStockNum(param);//商户商品库存还原
+
+                Integer sell_volume = MapUtils.getInteger("store_sell_volume", map);//销量
+                if(sell_volume >= number){
+                    param.put("sell_volume", sell_volume - number);
+                }
+                param.put("id", storeRelaId);
+                qzOrderMapper.updateStockNum(param);//门店库存还原
+
                 MngChangeJobEntity mngChangeJobEntity = new MngChangeJobEntity();
                 mngChangeJobEntity.setGoodsId(Integer.parseInt(String.valueOf(goods_id)));
                 mngChangeJobEntity.setThirdPartyMerchCode(third_party_merch_code);
@@ -260,6 +269,10 @@ public class QzOrderService {
                 Map param = Maps.newHashMap();
                 param.put("id", storeRelaId);
                 param.put("stock_num", stock_num + number);
+                Integer sell_volume = MapUtils.getInteger("store_sell_volume", map);//销量
+                if(sell_volume >= number){
+                    param.put("sell_volume", sell_volume - number);
+                }
                 qzOrderMapper.updateStockNum(param);//门店库存还原
                 StoreMngChangeJobEntity storeMngChangeJobEntity = new StoreMngChangeJobEntity();
                 storeMngChangeJobEntity.setChangeType(Dict.changeType.item_0.getItem());
@@ -281,6 +294,10 @@ public class QzOrderService {
             Map param = Maps.newHashMap();
             param.put("id", storeRelaId);
             param.put("stock_num", stock_num + number);
+            Integer sell_volume = MapUtils.getInteger("store_sell_volume", map);//销量
+            if(sell_volume >= number){
+                param.put("sell_volume", sell_volume - number);
+            }
             qzOrderMapper.updateStockNum(param);//门店库存还原
             StoreMngChangeJobEntity storeMngChangeJobEntity = new StoreMngChangeJobEntity();
             storeMngChangeJobEntity.setChangeType(Dict.changeType.item_0.getItem());

+ 5 - 3
kmall-schedule/src/main/resources/mybatis/mapper/QzOrderMapper.xml

@@ -22,7 +22,7 @@
 
     <select id="queryPastOrderList" resultType="map">
         SELECT b.product_id,b.number,c.stock_num,c.id as storeRelaId,mb.is_stock_share,mb.third_party_merch_code,g.goods_number,g.id goods_id,g.goods_biz_type,
-        a.store_id,g.merch_sn
+        a.store_id,g.merch_sn,g.sell_volume 'goods_sell_volume',c.sell_volume 'store_sell_volume'
         FROM mall_order a
         LEFT JOIN mall_order_goods b ON a.id = b.order_id
         LEFT JOIN mall_product_store_rela c ON b.goods_id = c.goods_id
@@ -46,6 +46,7 @@
         update mall_product_store_rela a
         <set>
             <if test="stock_num != null">a.`stock_num` = #{stock_num},</if>
+            <if test="sell_volume != null">a.`sell_volume` = #{sell_volume},</if>
         </set>
         where a.id = #{id}
     </update>
@@ -53,6 +54,7 @@
         update mall_goods a
         <set>
             <if test="goods_number != null">a.`goods_number` = #{goods_number},</if>
+            <if test="sell_volume != null">a.`sell_volume` = #{sell_volume},</if>
         </set>
         where a.id = #{id}
     </update>
@@ -135,7 +137,7 @@
     <select id="queryPayingOrderList" resultType="map">
 		select a.pay_transaction_id,a.order_sn,a.order_status,a.pay_status,a.id 'order_id',a.merch_order_sn,date_format(a.add_time,'%Y-%m-%d %H:%i:%s') as add_time,
         b.product_id,b.number,c.stock_num,c.id as storeRelaId,a.pay_flag,mb.is_stock_share,mb.third_party_merch_code,g.goods_number,g.id goods_id,g.goods_biz_type,
-        a.store_id,g.merch_sn,mb.third_party_merch_code
+        a.store_id,g.merch_sn,mb.third_party_merch_code,g.sell_volume 'goods_sell_volume',c.sell_volume 'store_sell_volume'
         from mall_order a
         LEFT JOIN mall_order_goods b ON a.id = b.order_id
         LEFT JOIN mall_product_store_rela c ON b.goods_id = c.goods_id
@@ -150,7 +152,7 @@
     <select id="queryPinganPayingOrderList" resultType="map">
 		select a.pay_transaction_id,a.order_sn,a.order_status,a.pay_status,a.id 'order_id',a.merch_order_sn,date_format(a.add_time,'%Y-%m-%d %H:%i:%s') as add_time,
         b.product_id,b.number,c.stock_num,c.id as storeRelaId,a.pay_flag,mb.is_stock_share,mb.third_party_merch_code,g.goods_number,g.id goods_id,g.goods_biz_type,
-        a.store_id,g.merch_sn,mb.third_party_merch_code
+        a.store_id,g.merch_sn,mb.third_party_merch_code,g.sell_volume 'goods_sell_volume',c.sell_volume 'store_sell_volume'
         from mall_order a
         LEFT JOIN mall_order_goods b ON a.id = b.order_id
         LEFT JOIN mall_product_store_rela c ON b.goods_id = c.goods_id

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

@@ -30,7 +30,7 @@ module.exports = {
     GoodsList: NewApiRootUrl + 'goods/list',  //获得商品列表
     GoodsCategory: NewApiRootUrl + 'goods/category',  //获得分类数据
     GoodsCategoryBrand: NewApiRootUrl + 'goods/brand',  //获得分类品牌数据
-    GoodsDetail: NewApiRootUrl + 'goods/detail',  //获得商品的详情
+    GoodsDetail: NewApiRootUrl + 'goods/details',  //获得商品的详情
     GoodsHot: NewApiRootUrl + 'goods/hot',  //热门
     GoodsRelated: NewApiRootUrl + 'goods/related',  //商品详情页的关联商品(大家都在看)
     GoodsCrashList: NewApiRootUrl + 'goodscrash/list',  //搭配减价
@@ -42,14 +42,14 @@ module.exports = {
     BrandList: NewApiRootUrl + 'brand/list',  //品牌列表
     BrandDetail: NewApiRootUrl + 'brand/detail',  //品牌详情
 
-    CartList: NewApiRootUrl + 'cart/index', //获取购物车的数据
+    CartList: NewApiRootUrl + 'cart/indexs', //获取购物车的数据
     CartAdd: NewApiRootUrl + 'cart/add', // 添加商品到购物车
     CartAddByOrder: NewApiRootUrl + 'cart/addByOrder', // 根据订单id添加商品到购物车
     CartMinus: NewApiRootUrl + 'cart/minus', // 删除购物车
     CartUpdate: NewApiRootUrl + 'cart/update', // 更新购物车的商品
     CartDelete: NewApiRootUrl + 'cart/delete', // 删除购物车的商品
     CartChecked: NewApiRootUrl + 'cart/checked', // 选择或取消选择商品
-    CartGoodsCount: NewApiRootUrl + 'cart/goodscount', // 获取购物车商品件数
+    CartGoodsCount: NewApiRootUrl + 'cart/goodscounts', // 获取购物车商品件数
     CartCheckout: NewApiRootUrl + 'cart/checkout', // 下单前信息确认
     CartCouponList: NewApiRootUrl + 'cart/checkedCouponList', // 选择用户可用优惠券
     GetFootCart: NewApiRootUrl + 'cart/getFootCart', // 底部购物车显示

+ 3 - 1
wx-mall/pages/cart/cart.js

@@ -189,8 +189,10 @@ Page({
     wx.showLoading({
       title: '加载中...',
     });
+    console.log('分享的storeId' + wx.getStorageSync('storeId'))
     util.request(api.CartList, {
-      checkCart: that.data.checkCart
+      checkCart: that.data.checkCart,
+      storeId: wx.getStorageSync('storeId')
     }).then(function(res) {
       if (res.errno === 0) {
         that.setCommonData(res);

+ 11 - 11
wx-mall/pages/cart/cart.wxml

@@ -46,12 +46,12 @@
           <view class="item" wx:for="{{cartGoods00}}" wx:if="{{item.goodsBizType == 00}}" wx:key="{{item.id}}">
             <view class="checkbox {{item.checked ? 'checked' : ''}}" bindtap="checkedItem" data-item-index="{{index}}"  data-goods-Biz-Type="00" data-goods-Id="{{item.goods_id}}" data-checked="{{item.checked}}"></view>
             <view class="cart-goods">
-              <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+              <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                 <image class="img" src="{{item.list_pic_url}}"></image>
               </navigator>
               <view class="info">
                 <view class="t">
-                  <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+                  <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                     <text class="name">{{item.goods_name}}</text>
                   </navigator>
                   <view class="goods-do">
@@ -86,12 +86,12 @@
           <view class="item" wx:for="{{cartGoods02}}" wx:if="{{item.goodsBizType == 02}}" wx:key="{{item.id}}">
             <view class="checkbox {{item.checked ? 'checked' : ''}}" bindtap="checkedItem" data-item-index="{{index}}" data-goods-Biz-Type="00" data-goods-Id="{{item.goods_id}}" data-checked="{{item.checked}}"></view>
             <view class="cart-goods">
-              <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+              <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                 <image class="img" src="{{item.list_pic_url}}"></image>
               </navigator>
               <view class="info">
                 <view class="t">
-                  <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+                  <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                     <text class="name">{{item.goods_name}}</text>
                   </navigator>
                   <view class="goods-do">
@@ -127,12 +127,12 @@
           <view class="item" wx:for="{{cartGoods10}}" wx:if="{{item.goodsBizType == 10}}" wx:key="{{item.id}}">
             <view class="checkbox {{item.checked ? 'checked' : ''}}" bindtap="checkedItem" data-item-index="{{index}}" data-goods-Biz-Type="00" data-goods-Id="{{item.goods_id}}" data-checked="{{item.checked}}"></view>
             <view class="cart-goods">
-              <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+              <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                 <image class="img" src="{{item.list_pic_url}}"></image>
               </navigator>
               <view class="info">
                 <view class="t">
-                  <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+                  <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                     <text class="name">{{item.goods_name}}</text>
                   </navigator>
                   <view class="goods-do">
@@ -168,12 +168,12 @@
           <view class="item" wx:for="{{cartGoods11}}" wx:if="{{item.goodsBizType == 11}}" wx:key="{{item.id}}">
             <view class="checkbox {{item.checked ? 'checked' : ''}}" bindtap="checkedItem" data-item-index="{{index}}" data-goods-Biz-Type="00" data-goods-Id="{{item.goods_id}}" data-checked="{{item.checked}}"></view>
             <view class="cart-goods">
-              <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+              <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                 <image class="img" src="{{item.list_pic_url}}"></image>
               </navigator>
               <view class="info">
                 <view class="t">
-                  <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+                  <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                     <text class="name">{{item.goods_name}}</text>
                   </navigator>
                   <view class="goods-do">
@@ -215,12 +215,12 @@
           <view class="item" wx:for="{{validCartList}}" wx:key="{{item.id}}">
             <view class="shixiao">失效</view>
             <view class="cart-goods">
-              <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+              <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                 <image class="img" src="{{item.list_pic_url}}"></image>
               </navigator>
               <view class="info">
                 <view class="t">
-                  <navigator url="/pages/goods/goods?id={{item.goods_id}}">
+                  <navigator url="/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}">
                     <text class="name" style='color:rgba(87, 86, 86, 0.63);'>{{item.goods_name}} {{null==item.goods_specification_name_value?"":item.goods_specification_name_value}}</text>
                   </navigator>
                 </view>
@@ -245,7 +245,7 @@
       </view>
       <view class="b">
         <block wx:for="{{footprintList}}" wx:for-index="iindex" wx:for-item="iitem" wx:key="unique">
-          <navigator wx:if="{{iitem.retail_price > 0}}" class="item {{iindex % 2 == 0 ? 'item-b' : '' }}" url="../goods/goods?id={{iitem.goods_id}}">
+          <navigator wx:if="{{iitem.retail_price > 0}}" class="item {{iindex % 2 == 0 ? 'item-b' : '' }}" url="../goods/goods?id={{iitem.goods_id}}&&storeId={{item.storeId}}">
             <image class="img2" src="{{iitem.list_pic_url}}" ></image>
             <text class="name">{{iitem.name}}</text>
             <view class="price" data-goods-id="{{iitem.goods_id}}" catchtap='addCart' >¥{{iitem.retail_price}}

+ 3 - 3
wx-mall/pages/catalog/catalog.wxml

@@ -125,7 +125,7 @@
 
         <!-- 商品开始 -->
         <view class="item" wx:for="{{goodsList}}" wx:for-index="index" wx:for-item="item" wx:key="{{item.id}}">
-          <navigator url="/pages/goods/goods?id={{item.id}}">
+          <navigator url="/pages/goods/goods?id={{item.id}}&&storeId={{item.storeId}}">
             <view class="left">
               <image class="img" wx:if="{{item.list_pic_url}}" src="{{item.list_pic_url}}"></image>
             </view>
@@ -133,14 +133,14 @@
           <!-- 文字开始 -->
           <view class="right">
             <view class="text">
-            <navigator url="/pages/goods/goods?id={{item.id}}">
+            <navigator url="/pages/goods/goods?id={{item.id}}&&storeId={{item.storeId}}">
               <text class="name" bindtap="bindtapGoodsDetail" data-item-id="{{filterDiscount != 2?item.id:item.group_id}}">{{item.name?item.name:""}}</text>
               <text class="desc" bindtap="bindtapGoodsDetail" data-item-id="{{filterDiscount != 2?item.id:item.group_id}}">{{item.goods_brief?item.goods_brief:""}}</text>
             </navigator>
 
             <!-- 描述开始 -->
             <view class="goods-do">
-              <navigator url="/pages/goods/goods?id={{item.id}}">
+              <navigator url="/pages/goods/goods?id={{item.id}}&&storeId={{item.storeId}}">
                 <text class="price">{{item.retail_price?"¥"+item.retail_price:"¥0"}}</text>
                 <text class="org-price line-through">{{item.market_price?"¥"+item.market_price:""}}</text>
               </navigator>

+ 1 - 1
wx-mall/pages/category/category.wxml

@@ -64,7 +64,7 @@
     <view class="b">
       <block wx:for="{{goodsList}}" wx:for-index="iindex" wx:for-item="iitem" wx:key="unique">
         <view class="item {{iindex % 2 == 0 ? 'item-b' : '' }}">
-         <navigator url="../goods/goods?id={{iitem.id}}&&currentIndex={{navIndex}}">
+         <navigator url="../goods/goods?id={{iitem.id}}&&currentIndex={{navIndex}}&&storeId={{item.storeId}}">
             <image class="img" src="{{iitem.list_pic_url}}"></image>
             <text class="name">{{iitem.name}}</text>
           </navigator>

+ 33 - 21
wx-mall/pages/goods/goods.js

@@ -43,7 +43,9 @@ Page({
     imgHiddenName: false,
     page: 1,
     size: 4,
-    detailContent: ''
+    detailContent: '',
+    storeId: '',
+    detailStoreId: ''
   },
   toggleNav() {
     this.setData({
@@ -70,8 +72,9 @@ Page({
     }, 350)
     let that = this;
     const regex = new RegExp('<img', 'gi');
+    console.log('分享的storeId'+ wx.getStorageSync('storeId'))
     util.request(api.GoodsDetail, { id: that.data.id, referrer: this.data.referrer, 
-      merchSn: wx.getStorageSync('merchSn') }).then(function (res) {
+      merchSn: wx.getStorageSync('merchSn'), storeId: wx.getStorageSync('storeId') }).then(function (res) {
       if (res.errno === 0) {
         that.setData({
           goods: res.data.info,
@@ -87,7 +90,8 @@ Page({
           cartNumber: res.data.cartNumber,
           defaultFreight: res.data.defaultFreight,
           checkedSpecText: res.data.specificationList[0].valueList[0].value,
-          detailContent: that.escape2Html(res.data.info.goods_desc).replace(regex, `<img style="width: 100%;"`)
+          detailContent: that.escape2Html(res.data.info.goods_desc).replace(regex, `<img style="width: 100%;"`),
+          detailStoreId:res.data.info.storeId
         });
 
         if (res.data.userHasCollect == 1) {
@@ -183,19 +187,16 @@ Page({
   onLoad: function (options) {
     // 页面初始化 options为页面跳转所带来的参数
     this.setData({
-      id: parseInt(options.id)
+      id: parseInt(options.id),
+      storeId: options.storeId
       // id: 1181000
     });
-    var that = this;
-    this.getGoodsInfo();
-    util.request(api.CartGoodsCount).then(function (res) {
-      if (res.errno === 0) {
-        that.setData({
-          cartGoodsCount: res.data.cartTotal.goodsCount
-        });
 
-      }
-    });
+    if(options.storeId){
+      wx.setStorageSync('storeId', options.storeId);
+      wx.setStorageSync('isShare', 'true');
+    }
+    console.log('分享的storeId1:' + wx.getStorageSync('storeId'))
     var that = this;
     //  高度自适应
     wx.getSystemInfo({
@@ -269,6 +270,15 @@ Page({
             wx.setStorageSync('storeId', wx.getStorageSync('storeId'));
             wx.setStorageSync('merchSn', wx.getStorageSync('merchSn'));
             that.reLoad();
+
+            that.getGoodsInfo();
+            util.request(api.CartGoodsCount, { storeId: wx.getStorageSync('storeId') }).then(function (res) {
+              if (res.errno === 0) {
+                that.setData({
+                  cartGoodsCount: res.data.cartTotal.goodsCount
+                });
+              }
+            });
           }
         });
       }
@@ -387,10 +397,11 @@ Page({
         util.showErrorToast('库存不足');
         //找不到对应的product信息,提示没有库存
         return false;
-      }
+      } 
+      // console.log(that.data.productList)
       // //根据选中的规格,判断是否有对应的sku信息
       let checkedProduct = goodsUtil.getCheckedProductItem(goodsUtil.getCheckedSpecKey(that), that);
-      console.log(checkedProduct)
+      // console.log(goodsUtil.getCheckedSpecKey(that))
       if (!checkedProduct || checkedProduct.length <= 0) {
         wx.showToast({
           title: '库存不足',
@@ -399,7 +410,6 @@ Page({
         //找不到对应的product信息,提示没有库存
         return false;
       }
-
       //验证库存
       // if (checkedProduct.goods_number < this.data.number) {
       //   //找不到对应的product信息,提示没有库存
@@ -458,13 +468,15 @@ Page({
   onShareAppMessage: function () {
     var that = this;
     // console.log("url:" + that.data.goods.list_pic_url);
-    // var userId = wx.getStorageSync('userId');
-    // console.log("userId:" + userId);
+    var userId = wx.getStorageSync('userId');
+    console.log("userId:" + userId);
+    console.log("detailStoreId:" + that.data.detailStoreId);
+
     return {
-      title: '商业版',
-      desc: null != that.data.goods.name ? that.data.goods.name : "商业版",
+      title: '商品详情',
+      desc: null != that.data.goods.name ? that.data.goods.name : "商品详情",
       imageUrl: that.data.goods.list_pic_url,
-      path: '/pages/goods/goods?id=' + that.data.id + '&&referrer=' + wx.getStorageSync('userId'),
+      path: '/pages/goods/goods?id=' + that.data.id + '&&referrer=' + wx.getStorageSync('userId') + '&&storeId=' + that.data.detailStoreId,
       success: function (res) {
         console.log("转发成功");
         // 转发成功

+ 4 - 4
wx-mall/pages/goods/goods.wxml

@@ -129,14 +129,14 @@
       <image class="i" src="../../static/images/address_right.png" background-size="cover"></image>
     </view>
 
-    <view class="crash-goods" wx:if="{{crashList.length > 0}}" bindtap="hideSwitchAttrPop">
+    <!-- <view class="crash-goods" wx:if="{{crashList.length > 0}}" bindtap="hideSwitchAttrPop">
       <view class="h">
         <view class="line"></view>
         <text class="title">搭配减价</text>
       </view>
       <view class="b">
         <view class="item" wx:for="{{crashList}}" wx:key="{{item.id}}">
-          <navigator url="/pages/goods/goods?id={{item.goods_crash_id}}">
+          <navigator url="/pages/goods/goods?id={{item.goods_crash_id}}&&storeId={{item.storeId}}">
             <image class="img" src="{{item.list_pic_url}}" background-size="cover"></image>
             <text class="name">{{item.name}}</text>
           </navigator>
@@ -148,7 +148,7 @@
           </view>
         </view>
       </view>
-    </view>
+    </view> -->
 
     <!--<view class="section-nav section-act">
       <view class="t">
@@ -239,7 +239,7 @@
       </view>
       <view class="b">
         <view class="item" wx:for="{{relatedGoods}}" wx:key="{{item.id}}">
-          <navigator url="/pages/goods/goods?id={{item.id}}">
+          <navigator url="/pages/goods/goods?id={{item.id}}&&storeId={{item.storeId}}">
             <image class="img" src="{{item.list_pic_url}}"></image>
             <text class="name">{{item.name}}</text>
             <view class="price">¥{{item.retail_price}}

+ 1 - 1
wx-mall/pages/hotGoods/hotGoods.wxml

@@ -81,7 +81,7 @@
       <block wx:for="{{goodsList}}" wx:for-index="iindex" wx:for-item="iitem" wx:key="unique">
         <view class="item {{iindex % 2 == 0 ? 'item-b' : '' }}">
 
-          <navigator url="../goods/goods?id={{iitem.id}}">
+          <navigator url="../goods/goods?id={{iitem.id}}&&storeId={{item.storeId}}">
             <image class="img" src="{{iitem.list_pic_url}}" ></image>
             <text class="name">{{iitem.name}}</text>
           </navigator>

+ 14 - 3
wx-mall/pages/index/index.js

@@ -114,17 +114,27 @@ Page({
   onLoad: function (options) {
     let that = this;
     wx.setStorageSync("navUrl", "/pages/index/index");
-    // options.scene = 38;
+    // options.scene = 42;
+
     if (options.scene) {
+      console.log("have scene");
       var scene = decodeURIComponent(options.scene);
       console.log("scene is ", scene);
       that.setData({
         storeId: scene
       });
       wx.setStorageSync('storeId', scene);
+      wx.removeStorageSync('isShare');//扫码进入的小程序则清除是否分享缓存
     } else {
-      wx.removeStorageSync('storeId');
-      console.log("no scene");
+      console.log("wx.getStorageSync('isShare')"+wx.getStorageSync('isShare'));
+      if (wx.getStorageSync('isShare')) {//是否分享过商品,有数据则分享过;从首页进入页面则没有分享过,从详情页进入则分享过
+        console.log('是分享进入首页门店id:' + wx.getStorageSync('storeId')+',从商品也获取的缓存')
+        console.log('是分享进入首页:' + wx.getStorageSync('isShare'))
+      } else {
+        wx.removeStorageSync('storeId');
+        console.log('不是分享进入首页门店id:【' + wx.getStorageSync('storeId')+'】,获取最近门店')
+        console.log('不是分享进入首页:' + wx.getStorageSync('isShare'))
+      }
     }
   },
   onReady: function () {
@@ -224,6 +234,7 @@ Page({
     util.getLocation((lng, lat) => {
       wx.setStorageSync('location', JSON.stringify({ lng, lat }));
       let storeId = wx.getStorageSync('storeId');
+      console.log('查询门店id:' + storeId)
       util.request(api.NearbyList, { longitude: lng, latitude: lat, storeId: storeId, thirdPartyMerchCode: '' }).then((res) => {
         let nlist = res.data;
         // wx.removeStorageSync('nearStoreList');

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

@@ -167,13 +167,13 @@
     <view class="b">
       <view class="item" wx:for="{{hotGoods}}" wx:for-index="index" wx:for-item="item" wx:key="{{item.id}}">
         <view class="c">
-          <navigator url="/pages/goods/goods?id={{item.id}}">
+          <navigator url="/pages/goods/goods?id={{item.id}}&&storeId={{item.storeId}}">
             <image class="img" src="{{item.list_pic_url}}" mode="aspectFill"></image>
           </navigator>
         </view>
         <view class="right">
           <view class="text">
-            <navigator url="/pages/goods/goods?id={{item.id}}">
+            <navigator url="/pages/goods/goods?id={{item.id}}&&storeId={{item.storeId}}">
               <text class="name">{{item.name?item.name:""}}</text>
               <text class="desc">{{item.goods_brief?item.goods_brief:""}}</text>
             </navigator>

+ 4 - 2
wx-mall/pages/search/search.js

@@ -21,7 +21,8 @@ Page({
     showNavList: false,
     footCart: {},
     page: 1,
-    size: 6
+    size: 6,
+    storeId: ''
   },
   toggleNav() {
     this.setData({
@@ -146,7 +147,8 @@ Page({
       keyword: keyword,
       categoryId: 0,
       page: 1,
-      goodsList: []
+      goodsList: [],
+      storeId: wx.getStorageSync("storeId")
     });
 
     this.getGoodsList();

+ 1 - 1
wx-mall/pages/search/search.wxml

@@ -99,7 +99,7 @@
     </view>
     <view class="cate-item">
       <view class="b">
-        <navigator class="item {{(iindex + 1) % 2 == 0 ? 'item-b' : ''}}" url="/pages/goods/goods?id={{iitem.id}}" wx:for="{{goodsList}}" wx:for-item="iitem" wx:for-index="iindex">
+        <navigator class="item {{(iindex + 1) % 2 == 0 ? 'item-b' : ''}}" url="/pages/goods/goods?id={{iitem.id}}&storeId={{storeId}}" wx:for="{{goodsList}}" wx:for-item="iitem" wx:for-index="iindex">
           <image class="img" src="{{iitem.list_pic_url}}" background-size="cover"></image>
           <text class="name">{{iitem.name}}</text>
           <text class="goods-do">

+ 1 - 1
wx-mall/pages/ucenter/orderDetail/orderDetail.wxml

@@ -75,7 +75,7 @@
             <text class="num fr">x{{item.number}}</text>
             <text class="price fr">¥{{item.retail_price}}</text>
           </view>
-          <navigator open-type='navigate' wx:if = '{{currentStoreId == orderInfo.store_id && (orderInfo.orderBizType ==00 || orderInfo.orderBizType == 11)}}' url='/pages/goods/goods?id={{item.goods_id}}'>
+          <navigator open-type='navigate' wx:if = '{{currentStoreId == orderInfo.store_id && (orderInfo.orderBizType ==00 || orderInfo.orderBizType == 11)}}' url='/pages/goods/goods?id={{item.goods_id}}&&storeId={{item.storeId}}'>
             <image class="order-image" src="{{item.list_pic_url}}"></image>
             <text class="name">{{item.goods_name}}</text>
             <text class="num fr">x{{item.number}}</text>

+ 1 - 1
wx-mall/project.config.json

@@ -11,7 +11,7 @@
 	"compileType": "miniprogram",
 	"libVersion": "2.6.2",
 	"appid": "wxb6b30b1b14ee502a",
-	"projectname": "kmall-mp",
+	"projectname": "wx-mall",
 	"condition": {
 		"search": {
 			"current": -1,