Commit d0a8f34b18d8a94f8b1cccdcb906b7296c0becf8
1 parent
686b18b9
预售尾款不包邮地区 不i包邮商品优化
Showing
5 changed files
with
134 additions
and
20 deletions
packageC/pages/luckyGo/luckyGo_cart/luckyGo_cart.js
... | ... | @@ -1891,7 +1891,7 @@ Page({ |
1891 | 1891 | |
1892 | 1892 | |
1893 | 1893 | //有不包邮区域,且不免运费 |
1894 | - if (no_ex_id && freight_free > 0 && freight_free <= parseFloat(allpice) - cut_price - quan_price) { | |
1894 | + if (no_ex_id && freight_free > 0 && freight_free <= parseFloat(allpice)) { | |
1895 | 1895 | //-----------获取不包邮区域,不包邮商品------- |
1896 | 1896 | await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", { |
1897 | 1897 | data: { store_id: os.stoid, id: no_ex_id } | ... | ... |
packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.js
... | ... | @@ -577,7 +577,7 @@ Page({ |
577 | 577 | } |
578 | 578 | var shipping_price = |
579 | 579 | th.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, |
580 | - goods_piece, th.data.user_addr, freight_free, allpice, rs); | |
580 | + goods_piece, th.data.user_addr, freight_free, allpice, rs,th.data.bn_pick); | |
581 | 581 | |
582 | 582 | shipping_price = parseFloat(shipping_price).toFixed(2); |
583 | 583 | var wl_txt = "formData.shipping_price"; |
... | ... | @@ -1075,7 +1075,7 @@ Page({ |
1075 | 1075 | |
1076 | 1076 | //-------------------计算物流--------------- |
1077 | 1077 | calculatewuliu: function (code, o_shipping_price, goods_weight, out_of_weight, |
1078 | - goods_piece, user_addr, freight_free, o_price, rs) { | |
1078 | + goods_piece, user_addr, freight_free, o_price, rs,pickid) { | |
1079 | 1079 | var price = 0, |
1080 | 1080 | th = this; |
1081 | 1081 | price += parseFloat(o_shipping_price); | ... | ... |
packageC/pages/presell/cart/cart.js
... | ... | @@ -1663,7 +1663,7 @@ Page({ |
1663 | 1663 | |
1664 | 1664 | var t_shipping_price = |
1665 | 1665 | this.calculatewuliu(code, gift_shipping_price, goods_weight, out_of_weight, |
1666 | - goods_piece, user_addr, gift_freight_free, allpice, rs,th.data.bn_pick); | |
1666 | + goods_piece, user_addr, gift_freight_free, allpice, rs, th.data.bn_pick); | |
1667 | 1667 | return t_shipping_price; |
1668 | 1668 | |
1669 | 1669 | }, |
... | ... | @@ -1725,14 +1725,25 @@ Page({ |
1725 | 1725 | good = th.data.goods, |
1726 | 1726 | quan_price = 0, |
1727 | 1727 | exp_price = 0; |
1728 | - | |
1728 | + var no_ex_id = ee.no_ex_id; | |
1729 | 1729 | var quan_no = null; |
1730 | 1730 | var bn_pick = th.data.pickup.pickup_id; |
1731 | 1731 | var allpice = th.data.all_price; |
1732 | 1732 | var out_of_weight = null; //超出多少重量 |
1733 | 1733 | var freight_free = ee.freight_free; //全场满多少包邮 |
1734 | 1734 | var weight_free = ee.weight_free; //多少kg内包邮 |
1735 | - | |
1735 | + var no_ex_good = null; | |
1736 | + var by_qc = {}; | |
1737 | + if (no_ex_id && freight_free > 0) { | |
1738 | + //-----------获取不包邮区域,不包邮商品------- | |
1739 | + await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", { | |
1740 | + data: { store_id: os.stoid, id: no_ex_id } | |
1741 | + }).then(res => { | |
1742 | + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | |
1743 | + by_qc = res.data.data[0]; | |
1744 | + } | |
1745 | + }) | |
1746 | + }; | |
1736 | 1747 | if (th.data.using_quan[bn_pick] != null && th.data.using_quan[bn_pick] != undefined) |
1737 | 1748 | quan_no = th.data.using_quan[bn_pick].coupon_no; |
1738 | 1749 | |
... | ... | @@ -1824,9 +1835,38 @@ Page({ |
1824 | 1835 | } |
1825 | 1836 | |
1826 | 1837 | var code = th.data.wu_arr[th.data.index].code; |
1838 | + th.data.is_no_by[th.data.bn_pick] = 0; | |
1839 | + var no_by_data = null; | |
1840 | + //有不包邮区域,且不免运费 | |
1841 | + if (no_ex_id && freight_free > 0 && freight_free <= parseFloat(allpice)) { | |
1842 | + //-----------获取不包邮区域,不包邮商品------- | |
1843 | + await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", { | |
1844 | + data: { store_id: os.stoid, id: no_ex_id } | |
1845 | + }).then(res => { | |
1846 | + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | |
1847 | + no_by_data = res.data.data[0]; | |
1848 | + //如果有设置不包邮区域的时候 | |
1849 | + if (res.data.data[0].region_list) { | |
1850 | + if (th.check_by_area(res.data.data[0].region_list)) { | |
1851 | + freight_free = 0; | |
1852 | + // out_of_weight = 0; | |
1853 | + th.data.is_no_by[th.data.bn_pick] = 1; | |
1854 | + } | |
1855 | + } | |
1856 | + //如果有设置不包邮商品 | |
1857 | + if (res.data.data[0].goods_list && freight_free) { | |
1858 | + if (th.check_by_goods(res.data.data[0].goods_list)) { | |
1859 | + freight_free = 0; | |
1860 | + // out_of_weight = 0; | |
1861 | + th.data.is_no_by[th.data.bn_pick] = 1; | |
1862 | + } | |
1863 | + } | |
1864 | + } | |
1865 | + }) | |
1866 | + } | |
1827 | 1867 | var shipping_price = |
1828 | 1868 | th.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, |
1829 | - goods_piece, th.data.user_addr, freight_free, allpice, rs); | |
1869 | + goods_piece, th.data.user_addr, freight_free, allpice, rs,th.data.bn_pick); | |
1830 | 1870 | exp_price = parseFloat(shipping_price).toFixed(2); |
1831 | 1871 | } |
1832 | 1872 | th.wuliu_next(allpice, quan_price, exp_price); | ... | ... |
pages/cart/cart2_pt/cart2_pt.js
... | ... | @@ -33,7 +33,7 @@ Page({ |
33 | 33 | couponCode: "",//使用优惠券(多单就用逗号隔开) |
34 | 34 | shipping_price: 0,//物流费用 |
35 | 35 | }, |
36 | - | |
36 | + is_no_by:{}, | |
37 | 37 | /*----------------立即购买---------------------*/ |
38 | 38 | is_b_now: 0, //0是购物车结算 1立即购买 |
39 | 39 | bn_goods: null, //立即购买时候的调用商品 |
... | ... | @@ -404,13 +404,26 @@ Page({ |
404 | 404 | console.log(th.data.formData); |
405 | 405 | |
406 | 406 | to.getConfig2(function (ee) { |
407 | - to.getwuliuprice(function (rs) { | |
407 | + to.getwuliuprice(async function (rs) { | |
408 | 408 | console.log('calculatePrice2222'); |
409 | 409 | console.log(rs); |
410 | 410 | var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; |
411 | 411 | var out_of_weight = null; //超出多少重量 |
412 | 412 | var freight_free = ee.freight_free; //全场满多少包邮 |
413 | 413 | var weight_free = ee.weight_free; //多少kg内包邮 |
414 | + var no_ex_id = ee.no_ex_id; | |
415 | + var no_ex_good = null; | |
416 | + var by_qc = {}; | |
417 | + if (no_ex_id && freight_free > 0) { | |
418 | + //-----------获取不包邮区域,不包邮商品------- | |
419 | + await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", { | |
420 | + data: { store_id: os.stoid, id: no_ex_id } | |
421 | + }).then(res => { | |
422 | + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | |
423 | + by_qc = res.data.data[0]; | |
424 | + } | |
425 | + }) | |
426 | + }; | |
414 | 427 | //-----------当地址不为空,且是物流时,计算物流费用,同时阶梯团不计算拼团价格---------- |
415 | 428 | if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && (th.data.kt_type != 3 || th.data.bn_goods.is_normal == 1)) { |
416 | 429 | switch (good['exp_sum_type']) { |
... | ... | @@ -430,14 +443,42 @@ Page({ |
430 | 443 | //累积商品数量 |
431 | 444 | goods_piece += good['buynum']; break; |
432 | 445 | } |
433 | - | |
434 | - console.log(o_shipping_price + ":" + goods_weight + ":" + goods_piece); | |
446 | + | |
435 | 447 | console.log(th.data.wu_arr); |
436 | 448 | var code = th.data.wu_arr[th.data.index].code; |
437 | - var freight_free = ee.freight_free; //全场满多少包邮 | |
449 | + th.data.is_no_by[th.data.bn_pick] = 0; | |
450 | + var no_by_data = null; | |
451 | + //--全部金额-- | |
452 | + //有不包邮区域,且不免运费 | |
453 | + if (no_ex_id && freight_free > 0 && freight_free <= parseFloat(allpice)) { | |
454 | + //-----------获取不包邮区域,不包邮商品------- | |
455 | + await getApp().request.promiseGet("/api/weshop/areaFeemail/getAreaGoods", { | |
456 | + data: { store_id: os.stoid, id: no_ex_id } | |
457 | + }).then(res => { | |
458 | + if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { | |
459 | + no_by_data = res.data.data[0]; | |
460 | + //如果有设置不包邮区域的时候 | |
461 | + if (res.data.data[0].region_list) { | |
462 | + if (th.check_by_area(res.data.data[0].region_list)) { | |
463 | + freight_free = 0; | |
464 | + // out_of_weight = 0; | |
465 | + th.data.is_no_by[th.data.bn_pick] = 1; | |
466 | + } | |
467 | + } | |
468 | + //如果有设置不包邮商品 | |
469 | + if (res.data.data[0].goods_list && freight_free) { | |
470 | + if (th.check_by_goods(res.data.data[0].goods_list)) { | |
471 | + freight_free = 0; | |
472 | + // out_of_weight = 0; | |
473 | + th.data.is_no_by[th.data.bn_pick] = 1; | |
474 | + } | |
475 | + } | |
476 | + } | |
477 | + }) | |
478 | + } | |
438 | 479 | var shipping_price = |
439 | 480 | th.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, |
440 | - goods_piece, th.data.user_addr, freight_free, allpice, rs); | |
481 | + goods_piece, th.data.user_addr, freight_free, allpice, rs,th.data.bn_pick); | |
441 | 482 | |
442 | 483 | shipping_price = parseFloat(shipping_price).toFixed(2); |
443 | 484 | var wl_txt = "formData.shipping_price"; |
... | ... | @@ -728,6 +769,39 @@ Page({ |
728 | 769 | url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a) |
729 | 770 | }); |
730 | 771 | }, |
772 | + //检查区域是不是包邮 | |
773 | + check_area: function (arr) { | |
774 | + var user_addr = this.data.user_addr; | |
775 | + if (!user_addr) return 0; | |
776 | + for (var i in arr) { | |
777 | + var item = arr[i]; | |
778 | + if (user_addr.twon == item || user_addr.district == item | |
779 | + || user_addr.city == item || user_addr.province == item) { | |
780 | + return 0; | |
781 | + } | |
782 | + } | |
783 | + return 1; | |
784 | + }, | |
785 | + | |
786 | + //检查立即购买的商品是不是不包邮 | |
787 | + check_good: function (arr, goods_id) { | |
788 | + if (!goods_id) goods_id = this.data.goods.goods_id; | |
789 | + for (var i in arr) { | |
790 | + var item = arr[i]; | |
791 | + if (goods_id == item) return 0; | |
792 | + } | |
793 | + return 1; | |
794 | + }, | |
795 | + check_by_area: function (region_list) { | |
796 | + var arr = region_list.split(","); | |
797 | + var check = this.check_area(arr); | |
798 | + return !check; | |
799 | + }, | |
800 | + check_by_goods: function (goods_list, goods_id) { | |
801 | + var arr = goods_list.split(","); | |
802 | + var check = this.check_good(arr, goods_id); | |
803 | + return !check; | |
804 | + }, | |
731 | 805 | enterAddressPage: function () { |
732 | 806 | getApp().globalData.is_cart_old = 1; |
733 | 807 | this.data.enterAddressPage = !0, wx.navigateTo({ |
... | ... | @@ -808,15 +882,15 @@ Page({ |
808 | 882 | } |
809 | 883 | } |
810 | 884 | //------超出重量---------- |
811 | - if (out_of_weight < 0 && o_price >= freight_free) { | |
885 | + if (out_of_weight < 0 && o_price >= freight_free && !th.data.is_no_by[pickid]) { | |
812 | 886 | fw_price = parseFloat(item['money']); |
813 | 887 | var out_of_weight = Math.abs(out_of_weight); |
814 | 888 | if (out_of_weight > item['first_weight']) { |
815 | - var fw = out_of_weight - item['first_weight']; | |
816 | - var n = Math.ceil(fw / item['second_weight']) | |
817 | - fw_price = fw_price + n * parseFloat(item['add_money']); | |
889 | + var fw = out_of_weight - item['first_weight']; | |
890 | + var n = Math.ceil(fw / item['second_weight']) | |
891 | + fw_price = fw_price + n * parseFloat(item['add_money']); | |
818 | 892 | } |
819 | - } | |
893 | + } | |
820 | 894 | //------按件数---------- |
821 | 895 | if (goods_piece > 0) { |
822 | 896 | fp_price = parseFloat(item['piecemoney']); | ... | ... |
pages/cart/cart_wk/cart_wk.js
... | ... | @@ -527,7 +527,7 @@ Page({ |
527 | 527 | } |
528 | 528 | var shipping_price = |
529 | 529 | th.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, |
530 | - goods_piece, th.data.user_addr, freight_free, allpice, rs); | |
530 | + goods_piece, th.data.user_addr, freight_free, allpice, rs,th.data.bn_pick); | |
531 | 531 | var exp_price = parseFloat(shipping_price).toFixed(2); |
532 | 532 | allpice = parseFloat(exp_price) + parseFloat(allpice); |
533 | 533 | allpice = allpice.toFixed(2); |
... | ... | @@ -545,7 +545,7 @@ Page({ |
545 | 545 | |
546 | 546 | //----------------计算物流--------------- |
547 | 547 | calculatewuliu: function (code, o_shipping_price, goods_weight, out_of_weight, |
548 | - goods_piece, user_addr, freight_free, o_price, rs) { | |
548 | + goods_piece, user_addr, freight_free, o_price, rs,pickid) { | |
549 | 549 | var price = 0, th = this; |
550 | 550 | price += parseFloat(o_shipping_price); |
551 | 551 | //如果是包邮 | ... | ... |