Commit 7be6eb40b5c4cf0fefaa640d1b6ac5f7b9ee3bdd
1 parent
fb660a87
限购的问题的优化
Showing
3 changed files
with
286 additions
and
288 deletions
packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js
... | ... | @@ -2195,6 +2195,9 @@ Page({ |
2195 | 2195 | |
2196 | 2196 | this.get_buy_num(this.data.sele_g, async function () { |
2197 | 2197 | |
2198 | + | |
2199 | + var is_show_bs=0; | |
2200 | + var l_num=-1; | |
2198 | 2201 | //--判断商品是否超出限购-- |
2199 | 2202 | if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { |
2200 | 2203 | |
... | ... | @@ -2205,10 +2208,11 @@ Page({ |
2205 | 2208 | // title: '超出商品限购', |
2206 | 2209 | // }); |
2207 | 2210 | getApp().my_warnning('超出商品限购', 0, th); |
2208 | - var num = th.data.sele_g.viplimited - gd_buy_num; | |
2209 | - if (num < 0) num = 0; | |
2210 | - th.setData({ goodsInputNum: num }) | |
2211 | - return false; | |
2211 | + l_num = th.data.sele_g.viplimited - gd_buy_num; | |
2212 | + if (l_num < 0) l_num = 0; | |
2213 | + //th.setData({ goodsInputNum: num }) | |
2214 | + //return false; | |
2215 | + is_show_bs=1; | |
2212 | 2216 | } |
2213 | 2217 | } |
2214 | 2218 | |
... | ... | @@ -2263,22 +2267,41 @@ Page({ |
2263 | 2267 | } |
2264 | 2268 | } |
2265 | 2269 | |
2270 | + //-- 限购数量也要进行计算一下 -- | |
2271 | + if(l_num>-1){ | |
2272 | + if(e>l_num) e=l_num; | |
2273 | + } | |
2274 | + | |
2275 | + //提示了一个,就不要提示第二个 | |
2276 | + var is_show_bs=0; | |
2266 | 2277 | //--- 促销活动也不控制起订量, 这里很重要的一个控制,起订量的 ---- |
2267 | 2278 | if(th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){ |
2268 | - if(t<mo_num) t=mo_num; | |
2279 | + if(t<mo_num){ | |
2280 | + t=mo_num; | |
2281 | + if(!is_show_bs){ | |
2282 | + wx.showToast({ | |
2283 | + title: '购买数未达到起订量', | |
2284 | + icon: 'none', | |
2285 | + }); | |
2286 | + } | |
2287 | + is_show_bs=1; | |
2288 | + } | |
2269 | 2289 | if(t>mo_num && (t-mo_num)%steep!=0){ |
2270 | - wx.showToast({ | |
2271 | - title: '购买数必须是起订量的倍数', | |
2272 | - icon: 'none', | |
2273 | - }); | |
2290 | + if(!is_show_bs) { | |
2291 | + wx.showToast({ | |
2292 | + title: '购买数必须是起订量的倍数', | |
2293 | + icon: 'none', | |
2294 | + }); | |
2295 | + } | |
2274 | 2296 | t=mo_num+ parseInt((t-mo_num)/steep)*steep+steep; |
2297 | + is_show_bs=1; | |
2275 | 2298 | } |
2276 | 2299 | } |
2277 | 2300 | |
2278 | 2301 | if (!e) e = 0; |
2279 | 2302 | //库存不足,不增加 |
2280 | 2303 | if (e < t) { |
2281 | - wx.showModal({ title: '库存不足', }); | |
2304 | + if(!is_show_bs) wx.showModal({ title: '库存不足', }); | |
2282 | 2305 | if (e < 0) e = 0; |
2283 | 2306 | |
2284 | 2307 | if(th.data.is_normal == 1){ | ... | ... |
pages/cart/cart/cart.js
... | ... | @@ -1559,9 +1559,9 @@ Page({ |
1559 | 1559 | valueToNum: function (t) { |
1560 | 1560 | if (!this.data.is_load) return false; |
1561 | 1561 | //控制住,避免事件响应冲突,只有input有输入的时候,才刷新 |
1562 | - if (this.data.btn_click) { | |
1563 | - return false; | |
1564 | - } | |
1562 | + // if (this.data.btn_click) { | |
1563 | + // return false; | |
1564 | + // } | |
1565 | 1565 | this.data.btn_click = 1; |
1566 | 1566 | |
1567 | 1567 | var a = t.currentTarget.dataset.item; |
... | ... | @@ -2601,55 +2601,7 @@ Page({ |
2601 | 2601 | |
2602 | 2602 | //----------------------更新购物数量,加减,调用接口--------------------- |
2603 | 2603 | postCardList: function (t, item, pitem) { |
2604 | - var e = this, | |
2605 | - th = e, | |
2606 | - user_id = getApp().globalData.user_id; | |
2607 | - | |
2608 | - function normal_check(store_count, goodsinfo, wareIds,cx_arr) { | |
2609 | - | |
2610 | - | |
2611 | - // getApp().my_warnning('购买数量超出商品库存', 0, th); | |
2612 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2613 | - //-- 要判断是不是起订量不购 -- | |
2614 | - if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){ | |
2615 | - var mo_num=getApp().get_limit_qty(goodsinfo,cx_arr.length); | |
2616 | - var steep=getApp().get_limit_qty(goodsinfo,cx_arr.length,1); | |
2617 | - if(mo_num>1 && t.goods_num<mo_num){ | |
2618 | - wx.showToast({ | |
2619 | - title: '购买数量小于商品的起订量', | |
2620 | - icon: 'none', | |
2621 | - }); | |
2622 | - t.goods_num =mo_num; | |
2623 | - } | |
2624 | - if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){ | |
2625 | - | |
2626 | - wx.showToast({ | |
2627 | - title: '购买数量必须是起订量的倍数', | |
2628 | - icon: 'none', | |
2629 | - }); | |
2630 | - t.goods_num =mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep+steep; | |
2631 | - } | |
2632 | - } | |
2633 | - | |
2634 | - | |
2635 | - //--- 看一下是不是线下库存 --- | |
2636 | - if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) { | |
2637 | - th.check_down_line(t, pitem, item, wareIds); | |
2638 | - } else { | |
2639 | - if (t.goods_num > store_count) { | |
2640 | - wx.showToast({ | |
2641 | - title: '购买数量超出商品库存', | |
2642 | - icon: 'none', | |
2643 | - }); | |
2644 | - e.setData({ | |
2645 | - [txt]: store_count | |
2646 | - }); | |
2647 | - e.doCheckAll(); | |
2648 | - t.goods_num = store_count; | |
2649 | - } | |
2650 | - e.update_cart(t, pitem, item); | |
2651 | - } | |
2652 | - } | |
2604 | + var e = this,th = e,user_id = getApp().globalData.user_id; | |
2653 | 2605 | |
2654 | 2606 | // console.log('update'); |
2655 | 2607 | // console.log('9995959595959',t); |
... | ... | @@ -2666,7 +2618,9 @@ Page({ |
2666 | 2618 | var promgoodsbuynum = 0; |
2667 | 2619 | var goodsbuynum = 0; |
2668 | 2620 | |
2669 | - //--要获得商品,该用户买了多少件,同步应用-- | |
2621 | + var is_showing=0; | |
2622 | + | |
2623 | + //--要获得商品,该用户买了多少件,同步应用,用于限购的计算-- | |
2670 | 2624 | await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { |
2671 | 2625 | data: { |
2672 | 2626 | store_id: oo.stoid, |
... | ... | @@ -2686,279 +2640,280 @@ Page({ |
2686 | 2640 | } |
2687 | 2641 | goodsbuynum = buy_num_data.goodsbuynum; |
2688 | 2642 | |
2689 | - | |
2690 | 2643 | }) |
2691 | 2644 | |
2692 | 2645 | //--> by ty |
2693 | 2646 | // var buyed_mum2 = t.goods_num + goodsbuynum; |
2694 | 2647 | var buyed_mum2 = t.goods_num; |
2695 | 2648 | //<-- |
2649 | + // 判断当前预购买的数量是否超过可购买的数量,限购还要考虑到商品的库存 | |
2650 | + if (limit > 0) { | |
2696 | 2651 | |
2697 | - // 判断当前预购买的数量是否超过可购买的数量 | |
2698 | - if (buyed_mum2 > (limit - goodsbuynum) && limit > 0) { | |
2699 | - wx.showToast({ | |
2700 | - title: '购买数量超出商品限购', | |
2701 | - icon: 'none', | |
2702 | - }); | |
2703 | 2652 | //getApp().my_warnning('购买数量超出商品限购', 0, th); |
2704 | 2653 | var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; |
2705 | 2654 | |
2706 | - //--> by ty | |
2707 | - var cbuy = limit - goodsbuynum; | |
2708 | - // var cbuy = limit - buyed_mum2 + 1; | |
2709 | - //<-- | |
2710 | - | |
2711 | - e.setData({ | |
2712 | - // [txt]: cbuy > 0 ? cbuy : 0, | |
2713 | - [txt]: cbuy > 0 ? cbuy : limit, | |
2714 | - }); | |
2715 | - e.doCheckAll(); | |
2716 | - | |
2717 | - t.goods_num = cbuy > 0 ? cbuy : limit; | |
2718 | - | |
2719 | - if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){ | |
2720 | - | |
2721 | - //-- 判断商品是不是 -- | |
2722 | - var cx_arr=await getApp().get_has_cx_act(goodsinfo.goods_id); | |
2723 | - | |
2724 | - var mo_num=getApp().get_limit_qty(goodsinfo,cx_arr.length); | |
2725 | - var steep=getApp().get_limit_qty(goodsinfo,cx_arr.length,1); | |
2726 | - | |
2727 | - if(mo_num>1 && t.goods_num<mo_num){ | |
2728 | - wx.showToast({ | |
2729 | - title: '购买数量小于商品的起订量', | |
2730 | - icon: 'none', | |
2731 | - }); | |
2732 | - t.goods_num=0; | |
2733 | - } | |
2734 | - | |
2735 | - if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){ | |
2736 | - | |
2737 | - wx.showToast({ | |
2738 | - title: '购买数量必须是起订量的倍数', | |
2739 | - icon: 'none', | |
2740 | - }); | |
2655 | + limit = limit - goodsbuynum; | |
2656 | + if(limit<0) limit=0; | |
2741 | 2657 | |
2742 | - t.goods_num=mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep | |
2743 | - } | |
2658 | + if(buyed_mum2>limit){ | |
2659 | + wx.showToast({ | |
2660 | + title: '购买数量超出商品限购', | |
2661 | + icon: 'none', | |
2662 | + }); | |
2663 | + is_showing=1; | |
2744 | 2664 | } |
2745 | - // t.goods_num = cbuy > 0 ? cbuy : 0, | |
2746 | - e.update_cart(t, pitem, item); | |
2747 | - return false; | |
2748 | - } | |
2749 | 2665 | |
2666 | + // e.setData({ | |
2667 | + // // [txt]: cbuy > 0 ? cbuy : 0, | |
2668 | + // [txt]: cbuy > 0 ? cbuy : limit, | |
2669 | + // }); | |
2670 | + //e.doCheckAll(); | |
2671 | + // t.goods_num = cbuy > 0 ? cbuy : limit; | |
2672 | + // | |
2673 | + // if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){ | |
2674 | + // | |
2675 | + // //-- 判断商品是不是 -- | |
2676 | + // var cx_arr=await getApp().get_has_cx_act(goodsinfo.goods_id); | |
2677 | + // var mo_num=getApp().get_limit_qty(goodsinfo,cx_arr.length); | |
2678 | + // var steep=getApp().get_limit_qty(goodsinfo,cx_arr.length,1); | |
2679 | + // | |
2680 | + // if(mo_num>1 && t.goods_num<mo_num){ | |
2681 | + // wx.showToast({ | |
2682 | + // title: '购买数量小于商品的起订量', | |
2683 | + // icon: 'none', | |
2684 | + // }); | |
2685 | + // t.goods_num=0; | |
2686 | + // } | |
2687 | + // | |
2688 | + // if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){ | |
2689 | + // | |
2690 | + // wx.showToast({ | |
2691 | + // title: '购买数量必须是起订量的倍数', | |
2692 | + // icon: 'none', | |
2693 | + // }); | |
2694 | + // | |
2695 | + // t.goods_num=mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep | |
2696 | + // } | |
2697 | + // } | |
2698 | + // // t.goods_num = cbuy > 0 ? cbuy : 0, | |
2699 | + // e.update_cart(t, pitem, item); | |
2700 | + // return false; | |
2701 | + } | |
2702 | + else limit=100000; | |
2750 | 2703 | |
2751 | 2704 | switch (goodsinfo.prom_type) { |
2752 | 2705 | case 1: |
2753 | - //-- 读取秒杀 -- | |
2754 | - rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { | |
2755 | - isShowLoading: 0, | |
2756 | - success: function (res_d) { | |
2757 | - if (res_d.data.code == 0 && res_d.data.data) { | |
2758 | - if (t.goods_num > store_count) { | |
2759 | - // wx.showModal({ | |
2760 | - // title: '提示', | |
2761 | - // content: '购买数量超出商品库存' | |
2762 | - // }); | |
2706 | + //-- 读取秒杀 -- | |
2707 | + var res_d= await getApp().promiseGet("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {}); | |
2708 | + if (res_d.data.code == 0 && res_d.data.data) { | |
2709 | + | |
2710 | + var cbuy=limit; | |
2711 | + if (t.goods_num > store_count && !is_showing) { | |
2763 | 2712 | wx.showToast({ |
2764 | 2713 | title: '购买数量超出商品库存', |
2765 | 2714 | icon: 'none', |
2766 | 2715 | }); |
2767 | - // getApp().my_warnning('购买数量超出商品库存', 0, th); | |
2768 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2769 | - e.setData({ | |
2770 | - [txt]: store_count | |
2771 | - }); | |
2772 | - e.doCheckAll(); | |
2773 | - | |
2774 | - t.goods_num = store_count; | |
2775 | - e.update_cart(t, pitem, item); | |
2776 | - | |
2777 | - return false; | |
2716 | + is_showing=1; | |
2778 | 2717 | } |
2718 | + //一直都要给一个最小值,和库存比较 | |
2719 | + if(cbuy>store_count) cbuy=store_count; | |
2779 | 2720 | |
2780 | 2721 | var false_data = res_d.data.data; |
2781 | 2722 | //--判断库存-- |
2782 | - if (t.goods_num > false_data.goods_num - false_data.buy_num) { | |
2783 | - // wx.showModal({ | |
2784 | - // title: '提示', | |
2785 | - // content: '购买数量超出活动库存' | |
2786 | - // }); | |
2723 | + if (t.goods_num > false_data.goods_num - false_data.buy_num && !is_showing) { | |
2787 | 2724 | wx.showToast({ |
2788 | 2725 | title: '购买数量超出活动库存', |
2789 | 2726 | icon: 'none', |
2790 | 2727 | }); |
2791 | - // getApp().my_warnning('购买数量超出活动库存', 0, th); | |
2792 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2793 | - e.setData({ | |
2794 | - [txt]: false_data.goods_num - false_data.buy_num | |
2795 | - }); | |
2796 | - e.doCheckAll(); | |
2797 | - | |
2798 | - t.goods_num = false_data.goods_num - false_data.buy_num; | |
2799 | - e.update_cart(t, pitem, item); | |
2800 | - | |
2801 | - return false; | |
2728 | + is_showing=1; | |
2802 | 2729 | } |
2730 | + //一直都要给一个最小值,和活动库存比较 | |
2731 | + if(cbuy>false_data.goods_num - false_data.buy_num) cbuy=false_data.goods_num - false_data.buy_num; | |
2803 | 2732 | |
2804 | 2733 | //--判断redis数量是否已经超出-- |
2805 | - if (t.goods_num > false_data.redisnum) { | |
2806 | - // wx.showModal({ | |
2807 | - // title: '提示', | |
2808 | - // content: '购买数量超出商品库存' | |
2809 | - // }); | |
2734 | + if (t.goods_num > false_data.redisnum && !is_showing) { | |
2810 | 2735 | wx.showToast({ |
2811 | 2736 | title: '购买数量超出商品库存', |
2812 | 2737 | icon: 'none', |
2813 | 2738 | }); |
2814 | - //getApp().my_warnning('购买数量超出商品库存', 0, th); | |
2815 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2816 | - e.setData({ | |
2817 | - [txt]: false_data.redisnum | |
2818 | - }); | |
2819 | - e.doCheckAll(); | |
2820 | - | |
2821 | - t.goods_num = false_data.redisnum; | |
2822 | - e.update_cart(t, pitem, item); | |
2823 | - return false; | |
2739 | + is_showing=1; | |
2824 | 2740 | } |
2825 | 2741 | |
2742 | + //一直都要给一个最小值,和活动库存比较 | |
2743 | + if(cbuy>false_data.redisnum) cbuy=false_data.redisnum; | |
2744 | + | |
2826 | 2745 | //--活动的限购是不是要判断-- |
2827 | - if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { | |
2828 | - // wx.showModal({ | |
2829 | - // title: '提示', | |
2830 | - // content: '购买数量超出秒杀限购' | |
2831 | - // }); | |
2832 | - wx.showToast({ | |
2833 | - title: '购买数量超出秒杀限购', | |
2834 | - icon: 'none', | |
2835 | - }); | |
2836 | - // getApp().my_warnning('购买数量超出秒杀限购', 0, th); | |
2837 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2838 | - e.setData({ | |
2839 | - [txt]: false_data.buy_limit | |
2840 | - }); | |
2841 | - e.doCheckAll(); | |
2842 | - t.goods_num = (false_data.buy_limit - promgoodsbuynum) ? false_data.buy_limit - promgoodsbuynum : 0; | |
2843 | - e.update_cart(t, pitem, item); | |
2844 | - return false; | |
2746 | + if(false_data.buy_limit > 0) { | |
2747 | + | |
2748 | + if(t.goods_num + promgoodsbuynum > false_data.buy_limit && !is_showing){ | |
2749 | + wx.showToast({ | |
2750 | + title: '购买数量超出秒杀限购', | |
2751 | + icon: 'none', | |
2752 | + }); | |
2753 | + } | |
2754 | + | |
2755 | + var act_limit=false_data.buy_limit-promgoodsbuynum; | |
2756 | + if(!act_limit) act_limit=0; | |
2757 | + | |
2758 | + if(cbuy>act_limit) cbuy=act_limit; | |
2759 | + | |
2845 | 2760 | } |
2761 | + | |
2762 | + if(t.goods_num>cbuy) t.goods_num=cbuy; | |
2763 | + | |
2846 | 2764 | e.update_cart(t, pitem, item); |
2847 | 2765 | |
2848 | - } else { | |
2849 | - normal_check(store_count, goodsinfo, wareIds); | |
2850 | - } | |
2851 | - } | |
2852 | - }) | |
2853 | - break; | |
2766 | + } else { | |
2767 | + e.normal_check(t, item, pitem,store_count,limit,goodsinfo, wareIds); //普通商品的调用和计算 | |
2768 | + } | |
2769 | + break; | |
2854 | 2770 | case 2: |
2855 | - getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}).then(res => { | |
2771 | + //-- 读取团购 -- | |
2772 | + var res= await getApp().promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}); | |
2856 | 2773 | if (res.data.code == 0 && res.data.data) { |
2857 | - if (t.goods_num > store_count) { | |
2858 | - // wx.showModal({ | |
2859 | - // title: '提示', | |
2860 | - // content: '购买数量超出商品库存' | |
2861 | - // }); | |
2774 | + | |
2775 | + var cbuy=limit; | |
2776 | + if (t.goods_num > store_count && !is_showing) { | |
2862 | 2777 | wx.showToast({ |
2863 | 2778 | title: '购买数量超出商品库存', |
2864 | 2779 | icon: 'none', |
2865 | 2780 | }); |
2866 | - // getApp().my_warnning('购买数量超出商品库存', 0, th); | |
2867 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2868 | - e.setData({ | |
2869 | - [txt]: store_count | |
2870 | - }); | |
2871 | - e.doCheckAll(); | |
2872 | - | |
2873 | - t.goods_num = store_count; | |
2874 | - e.update_cart(t, pitem, item); | |
2875 | - | |
2876 | - return false; | |
2781 | + is_showing=1; | |
2877 | 2782 | } |
2783 | + //一直都要给一个最小值,和库存比较 | |
2784 | + if(cbuy>store_count) cbuy=store_count; | |
2878 | 2785 | |
2879 | 2786 | var gr_data = res.data.data; |
2880 | 2787 | //--判断库存-- |
2881 | - if (t.goods_num > gr_data.goods_num - gr_data.buy_num) { | |
2882 | - // wx.showModal({ | |
2883 | - // title: '提示', | |
2884 | - // content: '购买数量超出活动库存' | |
2885 | - // }); | |
2788 | + if (t.goods_num > gr_data.goods_num - gr_data.buy_num && !is_showing) { | |
2886 | 2789 | wx.showToast({ |
2887 | 2790 | title: '购买数量超出活动库存', |
2888 | 2791 | icon: 'none', |
2889 | 2792 | }); |
2890 | - // getApp().my_warnning('购买数量超出活动库存', 0, th); | |
2891 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2892 | - e.setData({ | |
2893 | - [txt]: gr_data.goods_num - gr_data.buy_num | |
2894 | - }); | |
2895 | - e.doCheckAll(); | |
2896 | - | |
2897 | - t.goods_num = gr_data.goods_num - gr_data.buy_num; | |
2898 | - e.update_cart(t, pitem, item); | |
2899 | - | |
2900 | - return false; | |
2793 | + is_showing=1; | |
2901 | 2794 | } |
2795 | + //一直都要给一个最小值,和库存比较 | |
2796 | + if(cbuy>gr_data.goods_num - gr_data.buy_num ) cbuy=gr_data.goods_num - gr_data.buy_num ; | |
2902 | 2797 | |
2903 | 2798 | //--判断redis数量是否已经超出-- |
2904 | - if (t.goods_num > gr_data.redisnum) { | |
2905 | - // wx.showModal({ | |
2906 | - // title: '提示', | |
2907 | - // content: '购买数量超出商品库存' | |
2908 | - // }); | |
2799 | + if (t.goods_num > gr_data.redisnum && !is_showing) { | |
2909 | 2800 | wx.showToast({ |
2910 | 2801 | title: '购买数量超出商品库存', |
2911 | 2802 | icon: 'none', |
2912 | 2803 | }); |
2913 | - // getApp().my_warnning('购买数量超出商品库存', 0, th); | |
2914 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2915 | - e.setData({ | |
2916 | - [txt]: gr_data.redisnum | |
2917 | - }); | |
2918 | - e.doCheckAll(); | |
2919 | - | |
2920 | - t.goods_num = gr_data.redisnum; | |
2921 | - e.update_cart(t, pitem, item); | |
2922 | - return false; | |
2804 | + is_showing=1; | |
2923 | 2805 | } |
2806 | + if(cbuy>gr_data.redisnum ) cbuy=gr_data.redisnum; | |
2924 | 2807 | |
2925 | 2808 | //--活动的限购是不是要判断-- |
2926 | - if (t.goods_num + promgoodsbuynum > gr_data.buy_limit && gr_data.buy_limit > 0) { | |
2927 | - // wx.showModal({ | |
2928 | - // title: '提示', | |
2929 | - // content: '购买数量超出团购限购' | |
2930 | - // }); | |
2931 | - wx.showToast({ | |
2932 | - title: '购买数量超出团购限购', | |
2933 | - icon: 'none', | |
2934 | - }); | |
2935 | - // getApp().my_warnning('购买数量超出团购限购', 0, th); | |
2936 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2937 | - e.setData({ | |
2938 | - [txt]: gr_data.buy_limit | |
2939 | - }); | |
2940 | - e.doCheckAll(); | |
2809 | + if (gr_data.buy_limit > 0) { | |
2810 | + if(t.goods_num + promgoodsbuynum > gr_data.buy_limit && !is_showing){ | |
2811 | + wx.showToast({ | |
2812 | + title: '购买数量超出团购限购', | |
2813 | + icon: 'none', | |
2814 | + }); | |
2815 | + is_showing=1; | |
2816 | + } | |
2817 | + | |
2818 | + var act_limit=gr_data.buy_limit-promgoodsbuynum; | |
2819 | + if(!act_limit) act_limit=0; | |
2820 | + | |
2821 | + if(cbuy>act_limit) cbuy=act_limit; | |
2941 | 2822 | |
2942 | - t.goods_num = (gr_data.buy_limit - promgoodsbuynum) ? gr_data.buy_limit - promgoodsbuynum : 0; | |
2943 | - e.update_cart(t, pitem, item); | |
2944 | - return false; | |
2945 | 2823 | } |
2824 | + | |
2825 | + if(t.goods_num>cbuy) t.goods_num=cbuy; | |
2826 | + | |
2946 | 2827 | e.update_cart(t, pitem, item); |
2947 | 2828 | |
2948 | 2829 | } else { |
2949 | - normal_check(store_count, goodsinfo, wareIds); | |
2830 | + e.normal_check(t, item, pitem,store_count,limit,goodsinfo, wareIds); //普通商品的调用和计算 | |
2950 | 2831 | } |
2951 | - }) | |
2952 | - break; | |
2832 | + break; | |
2953 | 2833 | default: |
2954 | - var cx_arr=await getApp().get_has_cx_act(goodsinfo.goods_id); | |
2955 | - normal_check(store_count, goodsinfo, wareIds,cx_arr); | |
2834 | + e.normal_check(t, item, pitem,store_count,limit, goodsinfo, wareIds); //普通商品的调用和计算 | |
2956 | 2835 | break |
2957 | 2836 | } |
2958 | 2837 | } |
2959 | 2838 | }); |
2960 | 2839 | }, |
2961 | 2840 | |
2841 | + //-- 这个函数在计算的时候,要包含限购的那一部分 -- | |
2842 | + async normal_check(t, item, pitem,store_count,limit,goodsinfo, wareIds){ | |
2843 | + | |
2844 | + var cx_arr=await getApp().get_has_cx_act(goodsinfo.goods_id); | |
2845 | + | |
2846 | + var th=this; | |
2847 | + // getApp().my_warnning('购买数量超出商品库存', 0, th); | |
2848 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
2849 | + | |
2850 | + //--- 看一下是不是线下库存 --- | |
2851 | + if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) { | |
2852 | + | |
2853 | + //th.check_down_line(t, pitem, item, wareIds,limit); | |
2854 | + var ob = {}; | |
2855 | + await th.check_down_line_next(t, pitem, item, erpwareid, function (res) { | |
2856 | + ob = res; | |
2857 | + }); | |
2858 | + | |
2859 | + | |
2860 | + } else { | |
2861 | + | |
2862 | + var is_showing=0; | |
2863 | + var cbuy=limit; | |
2864 | + if (t.goods_num > limit) { | |
2865 | + wx.showToast({ | |
2866 | + title: '购买数量超出商品限购', | |
2867 | + icon: 'none', | |
2868 | + }); | |
2869 | + is_showing=1; | |
2870 | + } | |
2871 | + | |
2872 | + if (t.goods_num > store_count) { | |
2873 | + if(!is_showing){ | |
2874 | + wx.showToast({ | |
2875 | + title: '购买数量超出商品库存', | |
2876 | + icon: 'none', | |
2877 | + }); | |
2878 | + is_showing=1; | |
2879 | + } | |
2880 | + } | |
2881 | + if(cbuy>store_count) cbuy=store_count; | |
2882 | + | |
2883 | + if(t.goods_num>cbuy) t.goods_num=cbuy; | |
2884 | + | |
2885 | + if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){ | |
2886 | + var mo_num=getApp().get_limit_qty(goodsinfo,cx_arr.length); | |
2887 | + var steep=getApp().get_limit_qty(goodsinfo,cx_arr.length,1); | |
2888 | + | |
2889 | + if(mo_num>1 && t.goods_num<mo_num){ | |
2890 | + if(!is_showing) { | |
2891 | + wx.showToast({ | |
2892 | + title: '购买数量小于商品的起订量', | |
2893 | + icon: 'none', | |
2894 | + }); | |
2895 | + } | |
2896 | + t.goods_num=mo_num; | |
2897 | + } | |
2898 | + | |
2899 | + if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0){ | |
2900 | + if(!is_showing) { | |
2901 | + wx.showToast({ | |
2902 | + title: '购买数量必须是起订量的倍数', | |
2903 | + icon: 'none', | |
2904 | + }); | |
2905 | + } | |
2906 | + if(t.goods_num<mo_num) t.goods_num=mo_num; | |
2907 | + else{ | |
2908 | + t.goods_num=mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep | |
2909 | + } | |
2910 | + } | |
2911 | + } | |
2912 | + | |
2913 | + th.update_cart(t, pitem, item); | |
2914 | + } | |
2915 | + }, | |
2916 | + | |
2962 | 2917 | //----------------------更新购物数量,加减,调用接口--------------------- |
2963 | 2918 | postCardList_ser: async function (t, item, pitem) { |
2964 | 2919 | var e = this, |
... | ... | @@ -3156,11 +3111,10 @@ Page({ |
3156 | 3111 | promcardbuynum: tt.data.data.promcardbuynum, |
3157 | 3112 | cardbuynum: tt.data.data.cardbuynum, |
3158 | 3113 | }); |
3159 | - }; | |
3114 | + } | |
3160 | 3115 | }); |
3161 | 3116 | |
3162 | 3117 | |
3163 | - | |
3164 | 3118 | var buylimit = 0 |
3165 | 3119 | await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, { |
3166 | 3120 | |
... | ... | @@ -3170,7 +3124,7 @@ Page({ |
3170 | 3124 | th.data.sele_g = res.data.data; |
3171 | 3125 | th.data.sele_g.viplimited = res.data.data.buy_limit; |
3172 | 3126 | buylimit = res.data.data.buy_limit; |
3173 | - }; | |
3127 | + } | |
3174 | 3128 | }); |
3175 | 3129 | |
3176 | 3130 | |
... | ... | @@ -3188,18 +3142,15 @@ Page({ |
3188 | 3142 | }); |
3189 | 3143 | // getApp().my_warnning('超出活动限购', 0, th); |
3190 | 3144 | th.setData({ [txt]: buylimit }); |
3191 | - | |
3192 | 3145 | }; |
3193 | 3146 | |
3194 | 3147 | } |
3195 | 3148 | |
3196 | - | |
3197 | 3149 | th.doCheckAll(); |
3198 | 3150 | th.update_cart_ser(t, pitem, item); |
3199 | 3151 | |
3200 | 3152 | |
3201 | - | |
3202 | - }; | |
3153 | + } | |
3203 | 3154 | }, |
3204 | 3155 | |
3205 | 3156 | |
... | ... | @@ -3232,11 +3183,9 @@ Page({ |
3232 | 3183 | |
3233 | 3184 | var this_obj = this.data.requestData[pitem].goods[item]; |
3234 | 3185 | |
3235 | - if (th.data.sales_rules == 3 && this_obj.selected) { | |
3236 | - | |
3186 | + if (th.data.sales_rules >= 2 && this_obj.selected) { | |
3237 | 3187 | |
3238 | 3188 | var goods_id = this_obj.goods_id; |
3239 | - | |
3240 | 3189 | var num = 0; |
3241 | 3190 | |
3242 | 3191 | for (let i = 0; i < this.data.requestData.length; i++) { |
... | ... | @@ -3257,17 +3206,15 @@ Page({ |
3257 | 3206 | return false; |
3258 | 3207 | } |
3259 | 3208 | |
3260 | - | |
3261 | - | |
3262 | 3209 | } |
3263 | 3210 | } |
3264 | 3211 | |
3265 | 3212 | |
3266 | - | |
3267 | - | |
3268 | 3213 | this.update_cart(t, pitem, item); |
3269 | 3214 | }, |
3270 | 3215 | |
3216 | + | |
3217 | + | |
3271 | 3218 | //---检验线下库存的数量的子函数--- |
3272 | 3219 | async check_down_line_next(t, pitem, item, erpwareid, func) { |
3273 | 3220 | ... | ... |
pages/goods/goodsInfo/goodsInfo.js
... | ... | @@ -2444,11 +2444,14 @@ Page({ |
2444 | 2444 | //------检查数量是不是超出限购------ |
2445 | 2445 | checkCartNum: function (t) { |
2446 | 2446 | var th = this; |
2447 | + | |
2447 | 2448 | var mo_num=getApp().get_limit_qty(th.data.sele_g,th.data.is_act); |
2448 | 2449 | var steep=getApp().get_limit_qty(th.data.sele_g,th.data.is_act,1); |
2449 | - | |
2450 | 2450 | this.get_buy_num(this.data.sele_g, async function () { |
2451 | 2451 | |
2452 | + var is_show_bs=0; | |
2453 | + var l_num=-1; | |
2454 | + | |
2452 | 2455 | //--判断商品是否超出限购-- |
2453 | 2456 | if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { |
2454 | 2457 | |
... | ... | @@ -2459,13 +2462,16 @@ Page({ |
2459 | 2462 | title: '超出商品限购', |
2460 | 2463 | icon: 'none', |
2461 | 2464 | }); |
2465 | + | |
2466 | + is_show_bs=1; | |
2467 | + | |
2462 | 2468 | // s.my_warnning('超出商品限购', 0, th); |
2463 | - var num = th.data.sele_g.viplimited - gd_buy_num; | |
2464 | - if (num < 0) num = 0; | |
2465 | - th.setData({ | |
2466 | - goodsInputNum: num | |
2467 | - }) | |
2468 | - return false; | |
2469 | + l_num = th.data.sele_g.viplimited - gd_buy_num; | |
2470 | + if (l_num < 0) l_num = 0; | |
2471 | + // th.setData({ | |
2472 | + // goodsInputNum: num | |
2473 | + // }) | |
2474 | + // return false; | |
2469 | 2475 | } |
2470 | 2476 | } |
2471 | 2477 | |
... | ... | @@ -2533,25 +2539,47 @@ Page({ |
2533 | 2539 | } |
2534 | 2540 | } |
2535 | 2541 | |
2542 | + //-- 限购数量也要进行计算一下 -- | |
2543 | + if(l_num>-1){ | |
2544 | + if(e>l_num) e=l_num; | |
2545 | + } | |
2546 | + | |
2536 | 2547 | //--- 促销活动也不控制起订量, 这里很重要的一个控制,起订量的 ---- |
2537 | 2548 | if([0,3,5,7,10].indexOf(p_type)>-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){ |
2538 | - if(t<mo_num) t=mo_num; | |
2549 | + if(t<mo_num) { | |
2550 | + t=mo_num; | |
2551 | + if(!is_show_bs) { | |
2552 | + wx.showToast({ | |
2553 | + title: '购买数未达到起订量', | |
2554 | + icon: 'none', | |
2555 | + }); | |
2556 | + } | |
2557 | + is_show_bs=1; | |
2558 | + } | |
2539 | 2559 | if(t>mo_num && (t-mo_num)%steep!=0){ |
2540 | - wx.showToast({ | |
2541 | - title: '购买数必须是起订量的倍数', | |
2542 | - icon: 'none', | |
2543 | - }); | |
2560 | + | |
2561 | + if(!is_show_bs){ | |
2562 | + wx.showToast({ | |
2563 | + title: '购买数必须是起订量的倍数', | |
2564 | + icon: 'none', | |
2565 | + }); | |
2566 | + } | |
2567 | + | |
2544 | 2568 | t=mo_num+ parseInt((t-mo_num)/steep)*steep+steep; |
2569 | + is_show_bs=1; | |
2545 | 2570 | } |
2546 | 2571 | } |
2547 | 2572 | |
2548 | 2573 | if (!e) e = 0; |
2549 | 2574 | //库存不足,不增加 |
2550 | 2575 | if (e < t) { |
2551 | - wx.showToast({ | |
2552 | - title: '库存不足', | |
2553 | - icon: 'none', | |
2554 | - }); | |
2576 | + if(!is_show_bs){ | |
2577 | + wx.showToast({ | |
2578 | + title: '库存不足', | |
2579 | + icon: 'none', | |
2580 | + }); | |
2581 | + } | |
2582 | + | |
2555 | 2583 | // wx.showModal({title: '库存不足',}); |
2556 | 2584 | if (e < 0) e = 0; |
2557 | 2585 | ... | ... |