Commit 3388c6f268039255235813c10e81ec4abca52dfe

Authored by yvan.ni
1 parent 21d09ab2

同城配送在切换的时候,对物流的影响~~

packageC/pages/luckyGo/luckyGo_cart_ct/luckyGo_cart_ct.js
@@ -782,113 +782,122 @@ Page({ @@ -782,113 +782,122 @@ Page({
782 782
783 783
784 //-----------当地址不为空,且是物流时,计算物流费用,同时阶梯团不计算拼团价格---------- 784 //-----------当地址不为空,且是物流时,计算物流费用,同时阶梯团不计算拼团价格----------
785 - if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && (th.data.kt_type != 785 + if (th.data.user_addr != null && th.data.bn_exp_type == 0 && (th.data.kt_type !=
786 3 || th.data.bn_goods.is_normal == 1)) { 786 3 || th.data.bn_goods.is_normal == 1)) {
787 787
788 - var user_addr = th.data.user_addr;  
789 - var req_d = {  
790 - province: user_addr.province, city: user_addr.city, district: user_addr.district,  
791 - wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid  
792 - }  
793 -  
794 - //-- 判断包邮 --  
795 - var back_data = null;  
796 - if(!ord_prom || ord_prom.is_post_temp) {  
797 - if (th.data.act.is_post_temp ) {  
798 - await getApp().request.promisePost("/api/weshop/order/areaFreight", {  
799 - is_json: 1, data: req_d  
800 - }).then(rs => {  
801 - if (rs.data.code == 0) back_data = rs.data.data;  
802 - });  
803 - }  
804 - } 788 + if(good.is_free_shipping){
  789 + var wl_txt = "formData.shipping_price";
  790 + th.setData({
  791 + [wl_txt]: 0,
  792 + })
805 793
806 - var gd_arr_list = [];  
807 - gd_arr_list.push(good);  
808 - var cut_good_weight = 0;  
809 - for (let i in gd_arr_list) {  
810 - let item = gd_arr_list[i]; 794 + }else{
811 795
812 - if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) { 796 + var user_addr = th.data.user_addr;
  797 + var req_d = {
  798 + province: user_addr.province, city: user_addr.city, district: user_addr.district,
  799 + wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid
  800 + }
813 801
814 - if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {  
815 - if (goods_weight < 0) goods_weight = 0;  
816 - goods_weight += item['weight'] * item['buynum'];  
817 - cut_good_weight += item['weight'] * item['buynum'];  
818 - }  
819 - if (back_data.weight_free > 0) {  
820 - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; 802 + //-- 判断包邮 --
  803 + var back_data = null;
  804 + if(!ord_prom || ord_prom.is_post_temp) {
  805 + if (th.data.act.is_post_temp ) {
  806 + await getApp().request.promisePost("/api/weshop/order/areaFreight", {
  807 + is_json: 1, data: req_d
  808 + }).then(rs => {
  809 + if (rs.data.code == 0) back_data = rs.data.data;
  810 + });
821 } 811 }
822 - continue;  
823 } 812 }
824 813
825 - switch (item['exp_sum_type']) {  
826 - case 1:  
827 - //统一运费  
828 - o_shipping_price += item['uniform_exp_sum'];  
829 - break;  
830 - case 2:  
831 - if (goods_weight < 0) goods_weight = 0;  
832 - //累积商品重量 每种商品的重量 * 数量  
833 - goods_weight += item['weight'] * item['buynum']; 814 + var gd_arr_list = [];
  815 + gd_arr_list.push(good);
  816 + var cut_good_weight = 0;
  817 + for (let i in gd_arr_list) {
  818 + let item = gd_arr_list[i];
834 819
835 - if (back_data && back_data.is_by_all && !back_data.no_free_goods) { 820 + if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) {
  821 +
  822 + if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {
  823 + if (goods_weight < 0) goods_weight = 0;
  824 + goods_weight += item['weight'] * item['buynum'];
836 cut_good_weight += item['weight'] * item['buynum']; 825 cut_good_weight += item['weight'] * item['buynum'];
837 - if (back_data.weight_free > 0) {  
838 - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;  
839 - }  
840 } 826 }
841 - break;  
842 - case 3:  
843 - if (goods_piece < 0) goods_piece = 0;  
844 - //累积商品数量  
845 - goods_piece += item['buynum'];  
846 - break; 827 + if (back_data.weight_free > 0) {
  828 + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
  829 + }
  830 + continue;
  831 + }
  832 +
  833 + switch (item['exp_sum_type']) {
  834 + case 1:
  835 + //统一运费
  836 + o_shipping_price += item['uniform_exp_sum'];
  837 + break;
  838 + case 2:
  839 + if (goods_weight < 0) goods_weight = 0;
  840 + //累积商品重量 每种商品的重量 * 数量
  841 + goods_weight += item['weight'] * item['buynum'];
  842 +
  843 + if (back_data && back_data.is_by_all && !back_data.no_free_goods) {
  844 + cut_good_weight += item['weight'] * item['buynum'];
  845 + if (back_data.weight_free > 0) {
  846 + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
  847 + }
  848 + }
  849 + break;
  850 + case 3:
  851 + if (goods_piece < 0) goods_piece = 0;
  852 + //累积商品数量
  853 + goods_piece += item['buynum'];
  854 + break;
  855 + }
847 } 856 }
848 - }  
849 857
850 - //如果是正值的时候  
851 - if (out_of_weight >= 0) out_of_weight = -cut_good_weight;  
852 - else out_of_weight = -back_data.weight_free * 1000;  
853 -  
854 - var code = th.data.wu_arr[th.data.index].code;  
855 - var shipping_price = 0;  
856 - // ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,  
857 - // goods_piece, th.data.user_addr, back_data,rs);  
858 -  
859 - var w_data = {  
860 - store_id: os.stoid, code: code,  
861 - o_shipping_price: o_shipping_price,  
862 - goods_weight: goods_weight,  
863 - out_of_weight: out_of_weight, goods_piece: goods_piece,  
864 - user_addr_province: th.data.user_addr.province,  
865 - user_addr_city: th.data.user_addr.city,  
866 - user_addr_district: th.data.user_addr.district,  
867 - is_by_all: back_data && back_data.is_by_all ? 1 : 0,  
868 - no_free_goods: back_data && back_data.no_free_goods && back_data.no_free_goods.length > 0 ? 1 : 0,  
869 - } 858 + //如果是正值的时候
  859 + if (out_of_weight >= 0) out_of_weight = -cut_good_weight;
  860 + else out_of_weight = -back_data.weight_free * 1000;
  861 +
  862 + var code = th.data.wu_arr[th.data.index].code;
  863 + var shipping_price = 0;
  864 + // ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,
  865 + // goods_piece, th.data.user_addr, back_data,rs);
  866 +
  867 + var w_data = {
  868 + store_id: os.stoid, code: code,
  869 + o_shipping_price: o_shipping_price,
  870 + goods_weight: goods_weight,
  871 + out_of_weight: out_of_weight, goods_piece: goods_piece,
  872 + user_addr_province: th.data.user_addr.province,
  873 + user_addr_city: th.data.user_addr.city,
  874 + user_addr_district: th.data.user_addr.district,
  875 + is_by_all: back_data && back_data.is_by_all ? 1 : 0,
  876 + no_free_goods: back_data && back_data.no_free_goods && back_data.no_free_goods.length > 0 ? 1 : 0,
  877 + }
870 878
871 - var is_ok = 0;  
872 - await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', { data: w_data, is_json: 1 }).then(res => {  
873 - if (res.data.code == 0) {  
874 - shipping_price = res.data.data; is_ok = 1; 879 + var is_ok = 0;
  880 + await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', { data: w_data, is_json: 1 }).then(res => {
  881 + if (res.data.code == 0) {
  882 + shipping_price = res.data.data; is_ok = 1;
  883 + }
  884 + })
  885 + if (!is_ok) {
  886 + wx.hideLoading();
  887 + wx.showToast({
  888 + title: "计算物流错误", icon: 'none', duration: 2000
  889 + })
  890 + return false;
875 } 891 }
876 - })  
877 - if (!is_ok) {  
878 - wx.hideLoading();  
879 - wx.showToast({  
880 - title: "计算物流错误", icon: 'none', duration: 2000 892 +
  893 + shipping_price = parseFloat(shipping_price).toFixed(2);
  894 + var wl_txt = "formData.shipping_price";
  895 + th.setData({
  896 + [wl_txt]: shipping_price,
881 }) 897 })
882 - return false;  
883 } 898 }
884 899
885 900
886 - shipping_price = parseFloat(shipping_price).toFixed(2);  
887 - var wl_txt = "formData.shipping_price";  
888 - th.setData({  
889 - [wl_txt]: shipping_price,  
890 - })  
891 -  
892 } else if (th.data.bn_exp_type == 1) { 901 } else if (th.data.bn_exp_type == 1) {
893 var wl_txt = "formData.shipping_price"; 902 var wl_txt = "formData.shipping_price";
894 th.setData({ 903 th.setData({
packageC/pages/presell/cart/cart2.js
@@ -703,9 +703,6 @@ Page({ @@ -703,9 +703,6 @@ Page({
703 allpice = good.offline_price * good.buynum; 703 allpice = good.offline_price * good.buynum;
704 } 704 }
705 705
706 -  
707 -  
708 -  
709 var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; 706 var o_shipping_price = 0, goods_weight = -1, goods_piece = -1;
710 var out_of_weight = null; //超出多少重量 707 var out_of_weight = null; //超出多少重量
711 708
@@ -758,7 +755,7 @@ Page({ @@ -758,7 +755,7 @@ Page({
758 } 755 }
759 756
760 //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮---------- 757 //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮----------
761 - if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past != 1) { 758 + if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_past != 1) {
762 //看是不是有调用过包邮券 759 //看是不是有调用过包邮券
763 if (!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh != 1) { 760 if (!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh != 1) {
764 var condition = allpice - cut_price - quan_price; 761 var condition = allpice - cut_price - quan_price;
@@ -791,118 +788,127 @@ Page({ @@ -791,118 +788,127 @@ Page({
791 } 788 }
792 789
793 var shipping_price =0; 790 var shipping_price =0;
794 - //-- 在没有使用包邮券的时候 --  
795 - if(!quan_no || !th.data.using_quan[bn_pick].isby) {  
796 -  
797 - var gd_arr_list = [];  
798 - gd_arr_list.push(good);  
799 - if (th.data.buy_now_gift_goods) {  
800 - gd_arr_list = [...gd_arr_list, ...th.data.buy_now_gift_goods];  
801 - } 791 + if(good.is_free_shipping == 0 ) {
  792 + //-- 在没有使用包邮券的时候 --
  793 + if (!quan_no || !th.data.using_quan[bn_pick].isby) {
  794 +
  795 + var gd_arr_list = [];
  796 + gd_arr_list.push(good);
  797 + if (th.data.buy_now_gift_goods) {
  798 + gd_arr_list = [...gd_arr_list, ...th.data.buy_now_gift_goods];
  799 + }
802 800
803 - var user_addr=th.data.user_addr;  
804 - var req_d = {  
805 - province: user_addr.province, city: user_addr.city, district: user_addr.district,  
806 - wuliu: parseFloat(parseFloat(allpice) - cut_price - quan_price).toFixed(2), store_id: os.stoid  
807 - }  
808 - var back_data = null;  
809 -  
810 - if(!ord_prom || ord_prom.is_post_temp) {  
811 - if (th.data.act.is_post_temp){  
812 - await getApp().request.promisePost("/api/weshop/order/areaFreight", {  
813 - is_json: 1, data: req_d  
814 - }).then(rs => {  
815 - if (rs.data.code == 0) back_data = rs.data.data;  
816 - }); 801 + var user_addr = th.data.user_addr;
  802 + var req_d = {
  803 + province: user_addr.province,
  804 + city: user_addr.city,
  805 + district: user_addr.district,
  806 + wuliu: parseFloat(parseFloat(allpice) - cut_price - quan_price).toFixed(2),
  807 + store_id: os.stoid
  808 + }
  809 + var back_data = null;
  810 +
  811 + if (!ord_prom || ord_prom.is_post_temp) {
  812 + if (th.data.act.is_post_temp) {
  813 + await getApp().request.promisePost("/api/weshop/order/areaFreight", {
  814 + is_json: 1, data: req_d
  815 + }).then(rs => {
  816 + if (rs.data.code == 0) back_data = rs.data.data;
  817 + });
  818 + }
817 } 819 }
818 - }  
819 820
820 - var cut_good_weight = 0;  
821 - for (let i in gd_arr_list) {  
822 - let item = gd_arr_list[i];  
823 -  
824 - if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) { 821 + var cut_good_weight = 0;
  822 + for (let i in gd_arr_list) {
  823 + let item = gd_arr_list[i];
825 824
826 - if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {  
827 - if (goods_weight < 0) goods_weight = 0;  
828 - cut_good_weight += item['weight'] * item['buynum'];  
829 - goods_weight += item['weight'] * item['buynum']; 825 + if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) {
830 826
  827 + if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {
  828 + if (goods_weight < 0) goods_weight = 0;
  829 + cut_good_weight += item['weight'] * item['buynum'];
  830 + goods_weight += item['weight'] * item['buynum'];
  831 +
  832 + }
  833 + if (back_data.weight_free > 0) {
  834 + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
  835 + }
  836 + continue;
831 } 837 }
832 - if (back_data.weight_free > 0) {  
833 - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;  
834 - }  
835 - continue;  
836 - }  
837 838
838 - switch (item['exp_sum_type']) {  
839 - case 1:  
840 - //统一运费  
841 - o_shipping_price += item['uniform_exp_sum'];  
842 - break;  
843 - case 2:  
844 - if (goods_weight < 0) goods_weight = 0;  
845 - //累积商品重量 每种商品的重量 * 数量  
846 - goods_weight += item['weight'] * item['buynum'];  
847 -  
848 - if (back_data && back_data.is_by_all && !back_data.no_free_goods) {  
849 - cut_good_weight += item['weight'] * item['buynum'];  
850 - if (back_data.weight_free > 0) {  
851 - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; 839 + switch (item['exp_sum_type']) {
  840 + case 1:
  841 + //统一运费
  842 + o_shipping_price += item['uniform_exp_sum'];
  843 + break;
  844 + case 2:
  845 + if (goods_weight < 0) goods_weight = 0;
  846 + //累积商品重量 每种商品的重量 * 数量
  847 + goods_weight += item['weight'] * item['buynum'];
  848 +
  849 + if (back_data && back_data.is_by_all && !back_data.no_free_goods) {
  850 + cut_good_weight += item['weight'] * item['buynum'];
  851 + if (back_data.weight_free > 0) {
  852 + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
  853 + }
852 } 854 }
853 - }  
854 - break;  
855 - case 3:  
856 - if (goods_piece < 0) goods_piece = 0;  
857 - //累积商品数量  
858 - goods_piece += item['buynum'];  
859 - break; 855 + break;
  856 + case 3:
  857 + if (goods_piece < 0) goods_piece = 0;
  858 + //累积商品数量
  859 + goods_piece += item['buynum'];
  860 + break;
  861 + }
860 } 862 }
861 - }  
862 -  
863 - //如果是正值的时候  
864 - if (out_of_weight >= 0) out_of_weight = -cut_good_weight;  
865 - else out_of_weight = -back_data.weight_free * 1000;  
866 -  
867 -  
868 - var code = "";  
869 - if (th.data.wu_arr && th.data.wu_arr[th.data.index]) code = th.data.wu_arr[th.data.index].code;  
870 -  
871 - //--------------开始计算物流------------------  
872 - var shipping_price =0;  
873 - // ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,  
874 - // goods_piece, th.data.user_addr, back_data, rs);  
875 - var w_data={  
876 - store_id:os.stoid, code:code,  
877 - o_shipping_price:o_shipping_price,  
878 - goods_weight:goods_weight,  
879 - out_of_weight:out_of_weight,goods_piece:goods_piece,  
880 - user_addr_province:th.data.user_addr.province,  
881 - user_addr_city:th.data.user_addr.city,  
882 - user_addr_district:th.data.user_addr.district,  
883 - is_by_all:back_data && back_data.is_by_all?1:0,  
884 - no_free_goods:back_data && back_data.no_free_goods && back_data.no_free_goods.length>0?1:0,  
885 - }  
886 863
887 - var is_ok=0;  
888 - await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', {data:w_data,is_json:1}).then(res=>{  
889 - if(res.data.code==0){  
890 - shipping_price=res.data.data; is_ok=1; 864 + //如果是正值的时候
  865 + if (out_of_weight >= 0) out_of_weight = -cut_good_weight;
  866 + else out_of_weight = -back_data.weight_free * 1000;
  867 +
  868 +
  869 + var code = "";
  870 + if (th.data.wu_arr && th.data.wu_arr[th.data.index]) code = th.data.wu_arr[th.data.index].code;
  871 +
  872 + //--------------开始计算物流------------------
  873 + var shipping_price = 0;
  874 + // ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,
  875 + // goods_piece, th.data.user_addr, back_data, rs);
  876 + var w_data = {
  877 + store_id: os.stoid, code: code,
  878 + o_shipping_price: o_shipping_price,
  879 + goods_weight: goods_weight,
  880 + out_of_weight: out_of_weight, goods_piece: goods_piece,
  881 + user_addr_province: th.data.user_addr.province,
  882 + user_addr_city: th.data.user_addr.city,
  883 + user_addr_district: th.data.user_addr.district,
  884 + is_by_all: back_data && back_data.is_by_all ? 1 : 0,
  885 + no_free_goods: back_data && back_data.no_free_goods && back_data.no_free_goods.length > 0 ? 1 : 0,
891 } 886 }
892 - })  
893 - if(!is_ok){  
894 - wx.hideLoading();  
895 - wx.showToast({  
896 - title: "计算物流错误", icon: 'none',duration: 2000 887 +
  888 + var is_ok = 0;
  889 + await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', {
  890 + data: w_data,
  891 + is_json: 1
  892 + }).then(res => {
  893 + if (res.data.code == 0) {
  894 + shipping_price = res.data.data;
  895 + is_ok = 1;
  896 + }
897 }) 897 })
898 - //th.setData({ show_submit:0 }); 898 + if (!is_ok) {
  899 + wx.hideLoading();
  900 + wx.showToast({
  901 + title: "计算物流错误", icon: 'none', duration: 2000
  902 + })
  903 + //th.setData({ show_submit:0 });
899 904
900 - return false;  
901 - } 905 + return false;
  906 + }
902 907
903 908
904 - if (shipping_price <= 0) {  
905 - th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券 909 + if (shipping_price <= 0) {
  910 + th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券
  911 + }
906 } 912 }
907 } 913 }
908 914
packageE/pages/cart/cart2_inte/cart2_inte.js
@@ -679,122 +679,126 @@ Page({ @@ -679,122 +679,126 @@ Page({
679 } 679 }
680 } 680 }
681 681
682 -  
683 -  
684 //to.getwuliuprice(async function (rs) { 682 //to.getwuliuprice(async function (rs) {
685 -  
686 var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; 683 var o_shipping_price = 0, goods_weight = -1, goods_piece = -1;
687 var out_of_weight = null; //超出多少重量 684 var out_of_weight = null; //超出多少重量
688 685
689 //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮---------- 686 //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮----------
690 - if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past != 1 && !th.data.inv_is_post) {  
691 -  
692 - var user_addr=th.data.user_addr;  
693 - var req_d = {  
694 - province: user_addr.province, city: user_addr.city, district: user_addr.district,  
695 - wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid  
696 - }  
697 - var back_data = null;  
698 - //判断是不是包邮模板,bn_is_post_temp 和 订单优惠的包邮模板一起控制  
699 - if (th.data.bn_is_post_temp && (!ord_prom || is_ord_prom_post)) {  
700 - await getApp().request.promisePost("/api/weshop/order/areaFreight", {  
701 - is_json: 1, data: req_d  
702 - }).then(rs => {  
703 - if (rs.data.code == 0) back_data = rs.data.data;  
704 - });  
705 - } 687 + if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_past != 1 && !th.data.inv_is_post) {
  688 +
  689 + if(good.is_free_shipping){
  690 + var wl_txt = "formData.shipping_price";
  691 + th.setData({ [wl_txt]: 0 })
  692 + }else{
  693 + var user_addr=th.data.user_addr;
  694 + var req_d = {
  695 + province: user_addr.province, city: user_addr.city, district: user_addr.district,
  696 + wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid
  697 + }
  698 + var back_data = null;
  699 + //判断是不是包邮模板,bn_is_post_temp 和 订单优惠的包邮模板一起控制
  700 + if (th.data.bn_is_post_temp && (!ord_prom || is_ord_prom_post)) {
  701 + await getApp().request.promisePost("/api/weshop/order/areaFreight", {
  702 + is_json: 1, data: req_d
  703 + }).then(rs => {
  704 + if (rs.data.code == 0) back_data = rs.data.data;
  705 + });
  706 + }
706 707
707 - var gd_arr_list = [];  
708 - gd_arr_list.push(good);  
709 - var cut_good_weight = 0;  
710 - for (let i in gd_arr_list) {  
711 - let item = gd_arr_list[i]; 708 + var gd_arr_list = [];
  709 + gd_arr_list.push(good);
  710 + var cut_good_weight = 0;
  711 + for (let i in gd_arr_list) {
  712 + let item = gd_arr_list[i];
712 713
713 - if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1) ) { 714 + if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1) ) {
714 715
715 - if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {  
716 - if (goods_weight < 0) goods_weight = 0;  
717 - goods_weight += item['weight'] * item['buynum'];  
718 - cut_good_weight += item['weight'] * item['buynum'];  
719 - }  
720 - if (back_data.weight_free > 0) {  
721 - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; 716 + if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {
  717 + if (goods_weight < 0) goods_weight = 0;
  718 + goods_weight += item['weight'] * item['buynum'];
  719 + cut_good_weight += item['weight'] * item['buynum'];
  720 + }
  721 + if (back_data.weight_free > 0) {
  722 + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
  723 + }
  724 + continue;
722 } 725 }
723 - continue;  
724 - }  
725 -  
726 - switch (item['exp_sum_type']) {  
727 - case 1:  
728 - //统一运费  
729 - o_shipping_price += item['uniform_exp_sum'];  
730 - break;  
731 - case 2:  
732 - if (goods_weight < 0) goods_weight = 0;  
733 - //累积商品重量 每种商品的重量 * 数量  
734 - goods_weight += item['weight'] * item['buynum'];  
735 726
736 - if (back_data && back_data.is_by_all && !back_data.no_free_goods) {  
737 - cut_good_weight += item['weight'] * item['buynum'];  
738 - if (back_data.weight_free > 0) {  
739 - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; 727 + switch (item['exp_sum_type']) {
  728 + case 1:
  729 + //统一运费
  730 + o_shipping_price += item['uniform_exp_sum'];
  731 + break;
  732 + case 2:
  733 + if (goods_weight < 0) goods_weight = 0;
  734 + //累积商品重量 每种商品的重量 * 数量
  735 + goods_weight += item['weight'] * item['buynum'];
  736 +
  737 + if (back_data && back_data.is_by_all && !back_data.no_free_goods) {
  738 + cut_good_weight += item['weight'] * item['buynum'];
  739 + if (back_data.weight_free > 0) {
  740 + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
  741 + }
740 } 742 }
741 - }  
742 - break;  
743 - case 3:  
744 - if (goods_piece < 0) goods_piece = 0;  
745 - //累积商品数量  
746 - goods_piece += item['buynum'];  
747 - break; 743 + break;
  744 + case 3:
  745 + if (goods_piece < 0) goods_piece = 0;
  746 + //累积商品数量
  747 + goods_piece += item['buynum'];
  748 + break;
  749 + }
748 } 750 }
749 - }  
750 -  
751 - //如果是正值的时候  
752 - if (out_of_weight >= 0) out_of_weight = -cut_good_weight;  
753 - else out_of_weight = -back_data.weight_free * 1000;  
754 -  
755 - var code = "";  
756 - if (th.data.wu_arr && th.data.wu_arr[th.data.index]) code = th.data.wu_arr[th.data.index].code;  
757 - //--------------开始计算物流------------------  
758 - var shipping_price=0;  
759 - // var shipping_price = ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,  
760 - // goods_piece, th.data.user_addr, back_data, rs);  
761 -  
762 - var w_data={  
763 - store_id:os.stoid, code:code,  
764 - o_shipping_price:o_shipping_price,  
765 - goods_weight:goods_weight,  
766 - out_of_weight:out_of_weight,goods_piece:goods_piece,  
767 - user_addr_province:th.data.user_addr.province,  
768 - user_addr_city:th.data.user_addr.city,  
769 - user_addr_district:th.data.user_addr.district,  
770 - is_by_all:back_data && back_data.is_by_all?1:0,  
771 - no_free_goods:back_data && back_data.no_free_goods && back_data.no_free_goods.length>0?1:0,  
772 - }  
773 751
774 - var is_ok=0;  
775 - await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', {data:w_data,is_json:1}).then(res=>{  
776 - if(res.data.code==0){  
777 - shipping_price=res.data.data; is_ok=1; 752 + //如果是正值的时候
  753 + if (out_of_weight >= 0) out_of_weight = -cut_good_weight;
  754 + else out_of_weight = -back_data.weight_free * 1000;
  755 +
  756 + var code = "";
  757 + if (th.data.wu_arr && th.data.wu_arr[th.data.index]) code = th.data.wu_arr[th.data.index].code;
  758 + //--------------开始计算物流------------------
  759 + var shipping_price=0;
  760 + // var shipping_price = ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,
  761 + // goods_piece, th.data.user_addr, back_data, rs);
  762 +
  763 + var w_data={
  764 + store_id:os.stoid, code:code,
  765 + o_shipping_price:o_shipping_price,
  766 + goods_weight:goods_weight,
  767 + out_of_weight:out_of_weight,goods_piece:goods_piece,
  768 + user_addr_province:th.data.user_addr.province,
  769 + user_addr_city:th.data.user_addr.city,
  770 + user_addr_district:th.data.user_addr.district,
  771 + is_by_all:back_data && back_data.is_by_all?1:0,
  772 + no_free_goods:back_data && back_data.no_free_goods && back_data.no_free_goods.length>0?1:0,
778 } 773 }
779 - })  
780 774
781 - if(!is_ok){  
782 - wx.hideLoading();  
783 - wx.showToast({  
784 - title: "计算物流错误", icon: 'none',duration: 2000 775 + var is_ok=0;
  776 + await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', {data:w_data,is_json:1}).then(res=>{
  777 + if(res.data.code==0){
  778 + shipping_price=res.data.data; is_ok=1;
  779 + }
785 }) 780 })
786 781
787 - return false;  
788 - } 782 + if(!is_ok){
  783 + wx.hideLoading();
  784 + wx.showToast({
  785 + title: "计算物流错误", icon: 'none',duration: 2000
  786 + })
789 787
  788 + return false;
  789 + }
790 790
791 - if (shipping_price <= 0) {  
792 - th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券 791 +
  792 + if (shipping_price <= 0) {
  793 + th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券
  794 + }
  795 +
  796 + shipping_price = parseFloat(shipping_price).toFixed(2);
  797 + var wl_txt = "formData.shipping_price";
  798 + th.setData({ [wl_txt]: shipping_price, })
793 } 799 }
794 800
795 - shipping_price = parseFloat(shipping_price).toFixed(2);  
796 - var wl_txt = "formData.shipping_price";  
797 - th.setData({ [wl_txt]: shipping_price, }) 801 +
798 802
799 } else if(th.data.bn_exp_type == 1 ) { 803 } else if(th.data.bn_exp_type == 1 ) {
800 var wl_txt = "formData.shipping_price"; 804 var wl_txt = "formData.shipping_price";
pages/cart/cart2_pt/cart2_pt.js
@@ -701,117 +701,121 @@ Page({ @@ -701,117 +701,121 @@ Page({
701 } 701 }
702 702
703 //-----------当地址不为空,且是物流时,计算物流费用,同时阶梯团不计算拼团价格---------- 703 //-----------当地址不为空,且是物流时,计算物流费用,同时阶梯团不计算拼团价格----------
704 - 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)) {  
705 -  
706 - var user_addr = th.data.user_addr;  
707 - var req_d = {  
708 - province: user_addr.province, city: user_addr.city, district: user_addr.district,  
709 - wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid  
710 - }  
711 - var back_data = null;  
712 -  
713 - if(!ord_prom || ord_prom.is_post_temp) {  
714 - if (th.data.bn_is_post_temp || th.data.bn_goods.is_normal == 1) {  
715 - await getApp().request.promisePost("/api/weshop/order/areaFreight", {  
716 - is_json: 1, data: req_d  
717 - }).then(rs => {  
718 - if (rs.data.code == 0) back_data = rs.data.data;  
719 - });  
720 - }  
721 - }  
722 -  
723 - var gd_arr_list = [];  
724 - gd_arr_list.push(good);  
725 - var cut_good_weight = 0;  
726 - for (let i in gd_arr_list) {  
727 - let item = gd_arr_list[i]; 704 + if (th.data.user_addr != null && th.data.bn_exp_type == 0 && (th.data.kt_type != 3 || th.data.bn_goods.is_normal == 1)) {
  705 +
  706 + if(good.is_free_shipping){
  707 + var wl_txt = "formData.shipping_price";
  708 + th.setData({ [wl_txt]: 0 })
  709 + }else{
  710 + var user_addr = th.data.user_addr;
  711 + var req_d = {
  712 + province: user_addr.province, city: user_addr.city, district: user_addr.district,
  713 + wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid
  714 + }
  715 + var back_data = null;
  716 +
  717 + if(!ord_prom || ord_prom.is_post_temp) {
  718 + if (th.data.bn_is_post_temp || th.data.bn_goods.is_normal == 1) {
  719 + await getApp().request.promisePost("/api/weshop/order/areaFreight", {
  720 + is_json: 1, data: req_d
  721 + }).then(rs => {
  722 + if (rs.data.code == 0) back_data = rs.data.data;
  723 + });
  724 + }
  725 + }
728 726
729 - if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) { 727 + var gd_arr_list = [];
  728 + gd_arr_list.push(good);
  729 + var cut_good_weight = 0;
  730 + for (let i in gd_arr_list) {
  731 + let item = gd_arr_list[i];
730 732
731 - if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {  
732 - if (goods_weight < 0) goods_weight = 0;  
733 - cut_good_weight += item['weight'] * item['buynum'];  
734 - goods_weight += item['weight'] * item['buynum'];  
735 - }  
736 - if (back_data.weight_free > 0) {  
737 - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;  
738 - }  
739 - continue;  
740 - } 733 + if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) {
741 734
742 - switch (item['exp_sum_type']) {  
743 - case 1:  
744 - //统一运费  
745 - o_shipping_price += item['uniform_exp_sum'];  
746 - break;  
747 - case 2:  
748 - if (goods_weight < 0) goods_weight = 0;  
749 - //累积商品重量 每种商品的重量 * 数量  
750 - goods_weight += item['weight'] * item['buynum'];  
751 -  
752 - if (back_data && back_data.is_by_all && !back_data.no_free_goods) {  
753 - cut_good_weight += item['weight'] * item['buynum'];  
754 - if (back_data.weight_free > 0) {  
755 - out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;  
756 - }  
757 - }  
758 - break;  
759 - case 3:  
760 - if (goods_piece < 0) goods_piece = 0;  
761 - //累积商品数量  
762 - goods_piece += item['buynum'];  
763 - break;  
764 - }  
765 - } 735 + if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {
  736 + if (goods_weight < 0) goods_weight = 0;
  737 + cut_good_weight += item['weight'] * item['buynum'];
  738 + goods_weight += item['weight'] * item['buynum'];
  739 + }
  740 + if (back_data.weight_free > 0) {
  741 + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
  742 + }
  743 + continue;
  744 + }
766 745
767 - //如果是正值的时候  
768 - if (out_of_weight >= 0) out_of_weight = -cut_good_weight;  
769 - else out_of_weight = -back_data.weight_free * 1000; 746 + switch (item['exp_sum_type']) {
  747 + case 1:
  748 + //统一运费
  749 + o_shipping_price += item['uniform_exp_sum'];
  750 + break;
  751 + case 2:
  752 + if (goods_weight < 0) goods_weight = 0;
  753 + //累积商品重量 每种商品的重量 * 数量
  754 + goods_weight += item['weight'] * item['buynum'];
  755 +
  756 + if (back_data && back_data.is_by_all && !back_data.no_free_goods) {
  757 + cut_good_weight += item['weight'] * item['buynum'];
  758 + if (back_data.weight_free > 0) {
  759 + out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
  760 + }
  761 + }
  762 + break;
  763 + case 3:
  764 + if (goods_piece < 0) goods_piece = 0;
  765 + //累积商品数量
  766 + goods_piece += item['buynum'];
  767 + break;
  768 + }
  769 + }
770 770
  771 + //如果是正值的时候
  772 + if (out_of_weight >= 0) out_of_weight = -cut_good_weight;
  773 + else out_of_weight = -back_data.weight_free * 1000;
771 774
772 - var code = th.data.wu_arr[th.data.index].code;  
773 775
774 - //--------------开始计算物流------------------  
775 - var shipping_price = 0;  
776 - // var shipping_price = ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,  
777 - // goods_piece, th.data.user_addr, back_data, rs); 776 + var code = th.data.wu_arr[th.data.index].code;
778 777
779 - var w_data = {  
780 - store_id: os.stoid, code: code,  
781 - o_shipping_price: o_shipping_price,  
782 - goods_weight: goods_weight,  
783 - out_of_weight: out_of_weight, goods_piece: goods_piece,  
784 - user_addr_province: th.data.user_addr.province,  
785 - user_addr_city: th.data.user_addr.city,  
786 - user_addr_district: th.data.user_addr.district,  
787 - is_by_all: back_data && back_data.is_by_all ? 1 : 0,  
788 - no_free_goods: back_data && back_data.no_free_goods && back_data.no_free_goods.length > 0 ? 1 : 0,  
789 - } 778 + //--------------开始计算物流------------------
  779 + var shipping_price = 0;
  780 + // var shipping_price = ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,
  781 + // goods_piece, th.data.user_addr, back_data, rs);
790 782
791 - var is_ok = 0;  
792 - await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', {  
793 - data: w_data,  
794 - is_json: 1  
795 - }).then(res => {  
796 - if (res.data.code == 0) {  
797 - shipping_price = res.data.data;  
798 - is_ok = 1;  
799 - }  
800 - })  
801 - if (!is_ok) {  
802 - wx.hideLoading();  
803 - wx.showToast({  
804 - title: "计算物流错误", icon: 'none', duration: 2000  
805 - })  
806 - //th.setData({ show_submit:0 }); 783 + var w_data = {
  784 + store_id: os.stoid, code: code,
  785 + o_shipping_price: o_shipping_price,
  786 + goods_weight: goods_weight,
  787 + out_of_weight: out_of_weight, goods_piece: goods_piece,
  788 + user_addr_province: th.data.user_addr.province,
  789 + user_addr_city: th.data.user_addr.city,
  790 + user_addr_district: th.data.user_addr.district,
  791 + is_by_all: back_data && back_data.is_by_all ? 1 : 0,
  792 + no_free_goods: back_data && back_data.no_free_goods && back_data.no_free_goods.length > 0 ? 1 : 0,
  793 + }
807 794
808 - return false;  
809 - } 795 + var is_ok = 0;
  796 + await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', {
  797 + data: w_data,
  798 + is_json: 1
  799 + }).then(res => {
  800 + if (res.data.code == 0) {
  801 + shipping_price = res.data.data;
  802 + is_ok = 1;
  803 + }
  804 + })
  805 + if (!is_ok) {
  806 + wx.hideLoading();
  807 + wx.showToast({
  808 + title: "计算物流错误", icon: 'none', duration: 2000
  809 + })
  810 + //th.setData({ show_submit:0 });
810 811
811 - shipping_price = parseFloat(shipping_price).toFixed(2);  
812 - var wl_txt = "formData.shipping_price";  
813 - th.setData({ [wl_txt]: shipping_price, }) 812 + return false;
  813 + }
814 814
  815 + shipping_price = parseFloat(shipping_price).toFixed(2);
  816 + var wl_txt = "formData.shipping_price";
  817 + th.setData({ [wl_txt]: shipping_price, })
  818 + }
815 } else if (th.data.bn_exp_type == 1) { 819 } else if (th.data.bn_exp_type == 1) {
816 var wl_txt = "formData.shipping_price"; 820 var wl_txt = "formData.shipping_price";
817 th.setData({ [wl_txt]: 0, }) 821 th.setData({ [wl_txt]: 0, })