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