1
0
Quellcode durchsuchen

1.库存增删记录
2.批量修改库存

zcb vor 4 Jahren
Ursprung
Commit
f72a9f613a

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

@@ -1040,7 +1040,7 @@ public class OrderController {
     }
 
     @RequestMapping("/resendOrderToCCNET/{orderSn}/{resendType}")
-    public String resendWayBill(@PathVariable("orderSn") String orderSn, @PathVariable("resendType") String resendType){
+    public R resendWayBill(@PathVariable("orderSn") String orderSn, @PathVariable("resendType") String resendType){
 
         String response = null;
         Map map = new HashMap();
@@ -1066,7 +1066,7 @@ public class OrderController {
         }
 
 
-        return response;
+        return R.ok(response);
     }
 
 
@@ -1237,4 +1237,37 @@ public class OrderController {
     }
 
 
+    @RequestMapping("/queryOrderStatus/{orderSn}")
+    public R queryOrderStatus(@PathVariable("orderSn")String orderSn){
+        try {
+
+            // 根据订单查询是什么支付方式
+            OrderEntity order = orderService.queryObjectByOrderSn(orderSn);
+            if(order == null){
+                return R.error("请输入正确的订单号");
+            }
+            String payFlag = order.getPayFlag();
+            if("alipay".equals(payFlag)){
+                AliPayMicropayApiResult aliPayMicropayApiResult = AliPayUtil.aliTradeQuery(orderSn, "");
+                return R.ok();
+            }else if("weixin".equals(payFlag)){
+                WechatRefundApiResult wechatRefundApiResult = WechatUtil.wxOrderQuery(orderSn);
+                String tradeState = wechatRefundApiResult.getTrade_state();
+                String tradeStateDesc = wechatRefundApiResult.getTrade_state_desc();
+                if(StringUtils.isBlank(tradeState)){
+                    return R.error("交易不存在");
+                }
+                return R.ok("交易状态:"+tradeState+"。 交易详情:"+tradeStateDesc);
+            }else{
+                return R.ok();
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error();
+        }
+
+    }
+
+
 }

+ 30 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -953,12 +953,41 @@ public class GoodsServiceImpl implements GoodsService {
 
                 if(!isFail){
                     GoodsEntity goods = goodsDao.queryObjectBySn(goodsDto.getGoodsSn());
+
+                    MngChangeEntity mngChangeEntity = new MngChangeEntity();
+                    mngChangeEntity.setThirdPartyMerchCode(goodsEntity.getThirdPartyMerchCode());
+                    mngChangeEntity.setChangeReason("更新商户商品总库存");
+                    mngChangeEntity.setCreateTime(new Date());
+                    mngChangeEntity.setModTime(new Date());
+                    mngChangeEntity.setCreaterSn(user.getUsername());
+                    mngChangeEntity.setModerSn(user.getUsername());
+                    mngChangeEntity.setIsValid(0);
+                    mngChangeEntity.setMerchSn(goodsEntity.getMerchSn());
+
                     if(goods!=null) {// 修改商品
+                        mngChangeEntity.setOriginalNum(goods.getGoodsNumber());//原库存数
+                        mngChangeEntity.setValidNum(goods.getGoodsNumber() + Integer.parseInt(goodsDto.getGoodsNumber()));//可用数
+                        mngChangeEntity.setChangeNum(Integer.parseInt(goodsDto.getGoodsNumber()));//变化数
+                        mngChangeEntity.setChangeType(Dict.changeType.item_3.getItem());
+                        mngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(goods.getId())));
+
                         goodsEntity.setId(goods.getId());
+                        goodsEntity.setGoodsNumber(goods.getGoodsNumber()+Integer.parseInt(goodsDto.getGoodsNumber()));
                         goodsDao.update(goodsEntity);
                     }else{
+                        mngChangeEntity.setOriginalNum(0);//原库存数
+                        mngChangeEntity.setValidNum(Integer.parseInt(goodsDto.getGoodsNumber()));//可用数
+                        mngChangeEntity.setChangeNum(Integer.parseInt(goodsDto.getGoodsNumber()));//变化数
+                        mngChangeEntity.setChangeType(Dict.changeType.item_2.getItem());
+
                         goodsDao.save(goodsEntity);
+                        mngChangeEntity.setGoodsId(goodsEntity.getId().intValue());
                     }
+
+
+
+
+                    mngChangeDao.save(mngChangeEntity);
 //                    // 保税商品修改各个门店商品价格
 //                    if (!Dict.orderBizType.item_11.getItem().equals(goodsDto.getGoodsBizType())) {
 //                        List<ProductStoreRelaEntity> productStoreRelaEntityList = productStoreRelaDao.queryByGoodsId(goodsDto.getId());
@@ -1273,6 +1302,7 @@ public class GoodsServiceImpl implements GoodsService {
                         goodsEntity.setVideoUrl(goods.getVideoUrl());
                         goodsEntity.setListPicUrl(goods.getListPicUrl());
                         goodsEntity.setPrimaryPicUrl(goods.getPrimaryPicUrl());
+                        goodsEntity.setGoodsNumber(goods.getGoodsNumber()+Integer.parseInt(goodsDto.getGoodsNumber()));
                         goodsDao.update(goodsEntity);
                     }else{
                         goodsDao.save(goodsEntity);

+ 44 - 6
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -1823,6 +1823,23 @@ public class OrderServiceImpl implements OrderService {
 //                                return resultObj;
 //                            }
 //                        }
+                            StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
+                            storeMngChangeEntity.setChangeType(Dict.changeType.item_1.getItem());
+                            storeMngChangeEntity.setChangeReason("商品销售扣减");
+                            storeMngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(productInfo.getGoodsId())));
+                            storeMngChangeEntity.setStoreId(Integer.parseInt(String.valueOf(productInfo.getStoreId())));
+                            storeMngChangeEntity.setMerchSn(productInfo.getMerchSn());
+                            storeMngChangeEntity.setStoreChangeNum(num);
+                            storeMngChangeEntity.setStoreOriginalNum(productInfo.getStockNum());
+                            storeMngChangeEntity.setStoreValidNum(productInfo.getStockNum() - num);
+                            storeMngChangeEntity.setCreateTime(new Date());
+                            storeMngChangeEntity.setModTime(new Date());
+                            storeMngChangeEntity.setCreaterSn(user.getUsername());
+                            storeMngChangeEntity.setModerSn(user.getUsername());
+                            storeMngChangeEntity.setIsValid(0);
+                            storeMngChangeDao.save(storeMngChangeEntity);
+
+
                             productInfo.setStockNum(productInfo.getStockNum() - num);
                             productInfo.setStoreId(Long.valueOf(storeId));
                             productInfo.setSellVolume(productInfo.getSellVolume() + num);
@@ -1830,10 +1847,35 @@ public class OrderServiceImpl implements OrderService {
                             productInfo.setLastSaleTime(new Date());
                             productStoreRelaDao.updateStockNum(productInfo);//修改普通商品库存
 
+
+
+
+
                             if(goodsEntity != null) {
+                                MngChangeEntity mngChangeEntity = new MngChangeEntity();
+                                mngChangeEntity.setThirdPartyMerchCode(goodsEntity.getThirdPartyMerchCode());
+                                mngChangeEntity.setChangeReason("商品销售扣减");
+                                mngChangeEntity.setCreateTime(new Date());
+                                mngChangeEntity.setModTime(new Date());
+                                mngChangeEntity.setCreaterSn(user.getUsername());
+                                mngChangeEntity.setModerSn(user.getUsername());
+                                mngChangeEntity.setIsValid(0);
+                                mngChangeEntity.setMerchSn(goodsEntity.getMerchSn());
+                                mngChangeEntity.setOriginalNum(goodsEntity.getGoodsNumber());//原库存数
+                                mngChangeEntity.setValidNum(goodsEntity.getGoodsNumber() - num);//可用数
+                                mngChangeEntity.setChangeNum(num);//变化数
+                                mngChangeEntity.setChangeType(Dict.changeType.item_1.getItem());
+                                mngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(goodsEntity.getId())));
+
+                                mngChangeDao.save(mngChangeEntity);
+
+
                                 goodsEntity.setGoodsNumber(goodsEntity.getGoodsNumber() - num);
                                 goodsEntity.setLastSaleTime(new Date());
                                 goodsDao.update(goodsEntity);
+
+
+
                             }
                         }
 
@@ -2043,10 +2085,6 @@ public class OrderServiceImpl implements OrderService {
             }
 
             OrderEntity orderEntity = queryObject(order.getId());
-//            orderEntity.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_201.getItem()));
-//            orderEntity.setPayStatus(Integer.parseInt(Dict.payStatus.item_2.getItem()));
-//            orderEntity.setPayFlag(payFlag);
-//            orderEntity.setPayTime(new Date());
             orderDao.update(orderEntity);
             resultObj.put("shopName",store.getStoreName()); // 根据门店编号查询
             resultObj.put("userName",user.getUsername());
@@ -2713,9 +2751,9 @@ public class OrderServiceImpl implements OrderService {
         // 加上税额
         goodsTotalPrice = goodsTotalPrice.subtract(totalTax).setScale(2,RoundingMode.HALF_UP);
 
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
 
-
-        String orderSn = "ZWCW" +  CommonUtil.generateOrderNumber();
+        String orderSn = "ZWCW" + format.format(new Date()) +  CommonUtil.generateOrderNumber();
         orderInfo.setOrder_sn(orderSn);
         orderInfo.setMerchSn(merchSn);
         orderInfo.setUser_id(loginUser.getId().longValue());

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

@@ -904,7 +904,15 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
                 storeRelaEntity.setRetailPrice(new BigDecimal(storeGoodsDto.getRetailPrice()));
                 storeRelaEntity.setBottomLinePrice(storeGoodsDto.getBottomLinePrice());
                 storeRelaEntity.setStockNum(Integer.valueOf(storeGoodsDto.getStockNum()));
-                save(storeRelaEntity);
+
+                ProductStoreRelaEntity productStoreRelaEntity = productStoreRelaDao.queryByGoodsIdAndStoreId(storeRelaEntity.getStoreId(), storeRelaEntity.getGoodsId());
+                if (Objects.isNull(productStoreRelaEntity)) {
+                    save(storeRelaEntity);
+                }else{
+                    storeRelaEntity.setId(productStoreRelaEntity.getId());
+                    storeRelaEntity.setStockNum(productStoreRelaEntity.getStockNum()+Integer.valueOf(storeGoodsDto.getStockNum()));
+                    update(storeRelaEntity);
+                }
             }
         }else{
             throw new RRException("导入数据为空,或者检查数据是否为空");
@@ -970,6 +978,7 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
                     save(storeRelaEntity);
                 }else{
                     storeRelaEntity.setId(productStoreRelaEntity.getId());
+                    storeRelaEntity.setStockNum(productStoreRelaEntity.getStockNum()+Integer.valueOf(storeGoodsDto.getStockNum()));
                     update(storeRelaEntity);
                 }
             }

+ 2 - 2
kmall-admin/src/main/resources/mybatis/mapper/GoodsDao.xml

@@ -238,7 +238,7 @@
         LEFT JOIN mall_goods_specification r ON r.goods_id = a.id
         left join mall_product_store_rela m on m.goods_id = a.id and r.goods_id = m.goods_id
         where a.prod_barcode = #{prodBarcode} and m.store_id = #{storeId}
-        and m.stock_num > 0
+        and m.stock_num > 0 order by m.stock_num desc
         limit 1
     </select>
 
@@ -739,7 +739,7 @@
         LEFT JOIN mall_product_store_rela r ON r.goods_id = a.id
         inner join mall_store s on r.store_id=s.id
         where a.prod_barcode = #{prodBarcode}  and r.store_id = #{storeId}
-        and r.stock_num > 0
+        and r.stock_num > 0 order by r.stock_num desc
     </select>
 
 

+ 4 - 0
kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html

@@ -36,8 +36,12 @@
                 </div>
                 <div class="col-md-9" style="background-color: #f0f0f0;margin:0px;padding: 0px" >
                     <div v-show="showList">
+
                         <Row :gutter="16">
                             <ul class="nav navbar-top-links navbar-right" style="font-size: 1.3em;">
+<!--                                <li>-->
+<!--                                    <i-input v-model="orderSn" @on-enter="queryOrderStatus" placeholder="输入要查询的订单号" id="queryOrderStatus"  />-->
+<!--                                </li>-->
                                 <li >
                                     <span style="margin-right: 40px">&nbsp; 门店:<b>{{storeName}}</b></span>
                                 </li>

+ 26 - 10
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -493,6 +493,7 @@ let vm = new Vue({
         goodsDetail:false,
         title: null,
         goods:{},
+        orderSn:"",
         sysNotice: {},
         goodsList:[],
         orderInfo:[],
@@ -563,13 +564,10 @@ let vm = new Vue({
         // 存储商品信息
         goodsMap:new Map(),
         response: "",
-
         // 支付码
         parCode : "",
-
         // 总件数
         totalCount:0,
-
     },
     methods: {
 
@@ -579,6 +577,11 @@ let vm = new Vue({
             toPayOrder();
         },2000),
 
+        queryOrderStatus:function(){
+            $.get("../order/details/"+vm.orderSn, function (r) {
+
+            });
+        },
         query: function () {
 
 
@@ -736,7 +739,14 @@ let vm = new Vue({
                 alert("订单挂起最多支持3单");
                 return;
             }
-            vm.pendingOrderMap.set(vm.pendingIndex,this.goodsList);
+            var pendingObject = {
+                'goodsList':this.goodsList,
+                'totalPrice':vm.totalPrice,
+                'totalCount':vm.totalCount,
+                'discountedPrice':vm.discountedPrice,
+                'actualPrice':vm.actualPrice
+            }
+            vm.pendingOrderMap.set(vm.pendingIndex,pendingObject);
             vm.pendingOrderKeys.push(vm.pendingIndex);
             var newIndex = ++vm.pendingIndex;
             vm.pendingIndex = newIndex > 3?1: newIndex;
@@ -758,7 +768,13 @@ let vm = new Vue({
                 alert("购物车中已有商品,不允许恢复!")
                 return ;
             }
-            vm.goodsList = vm.pendingOrderMap.get(key);
+            var pendingObject = vm.pendingOrderMap.get(key);
+            console.log(pendingObject);
+            vm.goodsList = pendingObject.goodsList;
+            vm.totalPrice = pendingObject.totalPrice;
+            vm.totalCount = pendingObject.totalCount;
+            vm.discountedPrice = pendingObject.discountedPrice;
+            vm.actualPrice = pendingObject.actualPrice;
             // 清除恢复的数据
             vm.pendingOrderMap.delete(key);
             removeByValue(vm.pendingOrderKeys,key);
@@ -961,21 +977,21 @@ let vm = new Vue({
         resendNotice:function(){
             confirm('确认重发重置吗?', function () {
                 $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/notice", function (r) {
-                    alert(r);
+                    alert(r.msg);
                 });
             })
         },
         resendWaybill:function(){
             confirm('确认重发运单吗?', function () {
                 $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/waybill", function (r) {
-                    alert(r);
+                    alert(r.msg);
                 });
             })
         },
         resendPayment:function(){
             confirm('确认重发支付单吗?', function () {
                 $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/payment", function (r) {
-                    alert(r);
+                    alert(r.msg);
                 });
             })
         },
@@ -1182,8 +1198,8 @@ function openWebSocket() {
         //无法使用wss,浏览器打开WebSocket时报错
         //ws对应http、wss对应https。
         // webSocket = new WebSocket("ws://183.62.225.124:8080/ws/server/"+storeId);
-        // webSocket = new WebSocket("ws://127.0.0.1:8080//ws/server/"+storeId);
-        webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
+        webSocket = new WebSocket("ws://127.0.0.1:8080//ws/server/"+storeId);
+        // webSocket = new WebSocket("wss://cb.k1net.cn/ws/server/"+storeId);
         if (webSocket.readyState === webSocket.CONNECTING) {
             console.log('1.连接正在打开......');
         }

+ 2 - 0
kmall-admin/src/main/webapp/js/shop/offilineOrderList.js

@@ -91,6 +91,8 @@ $(function () {
                         return '退款中';
                     } else if (value == '4') {
                         return '退款';
+                    } else if (value == '5') {
+                        return '退款已关闭';
                     }
                     return value;
                 }