Commit 75f749f4a6bf5d306c3fd7cfa1171b4ce6952665

Authored by yvan.ni
1 parent e2015e88

优惠促销多活动,订单确认页面和购物车页面的优化

packageE/pages/cart/cart2/cart2.js
@@ -720,10 +720,8 @@ Page({ @@ -720,10 +720,8 @@ Page({
720 store_id: oo.stoid, pageSize: 600 720 store_id: oo.stoid, pageSize: 600
721 }, 721 },
722 success: async function (su) { 722 success: async function (su) {
723 - //按门店分类的数组  
724 - var arr = new Array();  
725 - var carr = su.data.data.pageData;  
726 723
  724 + var carr = su.data.data.pageData;
727 th.setData({ is_all_zt: 1 }); 725 th.setData({ is_all_zt: 1 });
728 726
729 //-- 找出所有的门店 -- 727 //-- 找出所有的门店 --
@@ -743,545 +741,566 @@ Page({ @@ -743,545 +741,566 @@ Page({
743 }) 741 })
744 742
745 th.data.cartlist_y = carr; //存储原始购物车列表 743 th.data.cartlist_y = carr; //存储原始购物车列表
746 - th.data.in_zhact_gdmap = {};  
747 -  
748 - //---是不是购买等级卡成功的返回---等级卡显示的判断---  
749 - var is_card_back = getApp().globalData.is_card_back;  
750 -  
751 - //-- 判断组合购是总数量是不是存在 --  
752 - var no_zh_num={};  
753 -  
754 - for (var i = 0; i < carr.length; i++) {  
755 - var item1 = carr[i];  
756 - //-- 获取一下商品的所有活动 --  
757 - await th.buy_pro_group(item1);  
758 - //把已经购买了多少见的内容填入  
759 - var goodsbuynum = 0, promgoodsbuynum = 0;  
760 - //--要获得商品,该用户买了多少件,同步应用--  
761 - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {  
762 - data: {  
763 - store_id: os.stoid,  
764 - user_id: getApp().globalData.user_id,  
765 - goods_id: item1.goods_id,  
766 - prom_type: item1.prom_type,  
767 - prom_id: item1.prom_id  
768 - },  
769 - }).then(res => {  
770 - var buy_num_data = res.data.data;  
771 - if (buy_num_data.promgoodsbuynum) {  
772 - promgoodsbuynum = buy_num_data.promgoodsbuynum;  
773 - }  
774 - goodsbuynum = buy_num_data.goodsbuynum;  
775 - })  
776 - //如果有购买活动  
777 - item1.promgoodsbuynum = promgoodsbuynum;  
778 -  
779 - //默认是包邮和优惠的  
780 - item1.is_order_yh=1;  
781 - item1.is_post_temp=1;  
782 -  
783 - //如果是秒杀,团购的时候  
784 - if([1,2,6].indexOf(item1.prom_type)>-1){  
785 - var url= "/api/weshop/activitylist/getSJGoodsPriceNew/" + os.stoid  
786 - + "/" + item1.goods_id + "/"+item1.prom_type+"/" + item1.prom_id + "/" + app.globalData.user_id;  
787 - await app.request.promiseGet(url,{}).then(res=>{  
788 - if(res.data.code==0){  
789 - console.log(res.data.data,"111");  
790 - item1.is_order_yh=res.data.data.is_order_yh;  
791 - item1.is_post_temp=res.data.data.is_post_temp;  
792 - }  
793 - })  
794 - }  
795 -  
796 - //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠  
797 - if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) {  
798 - // th.check_is_youhui(item1.goods_id, item1.pick_id);  
799 - //增加优惠活动次数限制  
800 - let limit_num= await th.getprom(item1) //活动限制次数  
801 -  
802 - if(!limit_num){  
803 - await th.add_prom_goods_map(item1);  
804 - // item1.prom_id=''  
805 - // item1.prom_type=''  
806 - }else{  
807 - let user_pre_buynum = await th.getUserBuyPromNum_pre(item1.prom_id) //用户已经参与次数  
808 - if(user_pre_buynum<limit_num){  
809 - await th.add_prom_goods_map(item1);  
810 - }else{  
811 - // await th.add_prom_goods_map(item1);  
812 - item1.prom_id=''  
813 - item1.prom_type=''  
814 - }  
815 - }  
816 - }  
817 -  
818 - //-- 如果组合购的总数量不足的处理 --  
819 - if(no_zh_num[item1.prom_id] && item1.prom_type == 7){  
820 - item1.prom_type = 0;  
821 - item1.prom_type1 = 0;  
822 - item1.prom_id = 0;  
823 - item1.prom_id1 = 0  
824 - }  
825 -  
826 - //要把组合购的东西拿出来算一下,同时组合购的总数量要有存在  
827 - if (item1.prom_type == 7) {  
828 - if (!th.data.zuhe_map_good[item1.prom_id]) {  
829 - var isok = 1;  
830 - var is_flag = 1;  
831 - var store_count_ok=1;  
832 - //如果有组合购  
833 - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id + '/' + getApp().globalData.userInfo.user_id;  
834 - await getApp().request.promiseGet(url, {}).then(res => {  
835 - if (res.data.code == 0 && res.data.data) {  
836 - //如果活动已经结束  
837 - if (res.data.data.is_end == 1) {  
838 - isok = 0;  
839 - }  
840 - if (ut.gettimestamp() > res.data.data.end_time) {  
841 - isok = 0;  
842 - }  
843 - item1.act = res.data.data;  
844 -  
845 - //-- 在这里要判断一下活动的组合购总数量 --  
846 - if(item1.act.zh_num>0 && item1.act.zh_buy_num>=item1.act.zh_num){  
847 - store_count_ok = 0;  
848 - no_zh_num[item1.prom_id]=1;  
849 - //-- 清理一下活动的状态 --  
850 - item1.prom_type = 0;  
851 - item1.prom_type1 = 0;  
852 - item1.prom_id = 0;  
853 - item1.prom_id1 = 0  
854 -  
855 - }else{  
856 - th.data.zhhe_act_map[item1.prom_id] = res.data.data;  
857 - }  
858 744
859 - } else {  
860 - //未找到商品的活动  
861 - is_flag = 0;  
862 - }  
863 - }) 745 + th.get_cart_next(carr);
864 746
865 - if (!isok) {  
866 - getApp().my_warnning("组合购的活动已经过期", 0, th);  
867 - return false;  
868 - } 747 + }
  748 + });
  749 + },
869 750
870 - //------ 先增组合活动的总数量的时候 -------  
871 - if(store_count_ok) {  
872 - var url1 = "/api/weshop/prom/zhbuyGoods/page";  
873 - var req_data = {  
874 - page: 1,  
875 - pageSize: 2000,  
876 - store_id: os.stoid,  
877 - zh_id: item1.prom_id,  
878 - }  
879 - await getApp().request.promiseGet(url1, {  
880 - data: req_data  
881 - }).then(res => {  
882 - if (ut.ajax_ok(res)) {  
883 - var gdlist = res.data.data.pageData;  
884 - gdlist.forEach(i => {  
885 - if (item1.goods_id == i.goods_id && !is_flag) {  
886 - item1.prom_type = 0;  
887 - item1.prom_type1 = 0;  
888 - item1.prom_id = 0;  
889 - item1.prom_id1 = 0  
890 - }  
891 - })  
892 - th.data.zuhe_map_good[item1.prom_id] = gdlist;  
893 - }  
894 - })  
895 - }  
896 751
  752 + async get_cart_next(carr,is_change){
897 753
  754 + if(is_change) carr=this.data.cartlist_y;
  755 + //按门店分类的数组
  756 + var arr = new Array();
898 757
899 - }  
900 - else {  
901 - item1.act = th.data.zhhe_act_map[item1.prom_id];  
902 - } 758 + var th=this;
  759 + th.data.in_zhact_gdmap = {};
  760 + //---是不是购买等级卡成功的返回---等级卡显示的判断---
  761 + var is_card_back = getApp().globalData.is_card_back;
  762 +
  763 + //-- 判断组合购是总数量是不是存在 --
  764 + var no_zh_num={};
  765 +
  766 + for (var i = 0; i < carr.length; i++) {
  767 + var item1 = carr[i];
  768 + //-- 获取一下商品的所有活动 --
  769 + await th.buy_pro_group(item1);
  770 + //把已经购买了多少见的内容填入
  771 + var goodsbuynum = 0, promgoodsbuynum = 0;
  772 + //--要获得商品,该用户买了多少件,同步应用--
  773 + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
  774 + data: {
  775 + store_id: os.stoid,
  776 + user_id: getApp().globalData.user_id,
  777 + goods_id: item1.goods_id,
  778 + prom_type: item1.prom_type,
  779 + prom_id: item1.prom_id
  780 + },
  781 + }).then(res => {
  782 + var buy_num_data = res.data.data;
  783 + if (buy_num_data.promgoodsbuynum) {
  784 + promgoodsbuynum = buy_num_data.promgoodsbuynum;
  785 + }
  786 + goodsbuynum = buy_num_data.goodsbuynum;
  787 + })
  788 + //如果有购买活动
  789 + item1.promgoodsbuynum = promgoodsbuynum;
  790 +
  791 + //默认是包邮和优惠的
  792 + item1.is_order_yh=1;
  793 + item1.is_post_temp=1;
  794 +
  795 + //如果是秒杀,团购的时候
  796 + if([1,2,6].indexOf(item1.prom_type)>-1){
  797 + var url= "/api/weshop/activitylist/getSJGoodsPriceNew/" + os.stoid
  798 + + "/" + item1.goods_id + "/"+item1.prom_type+"/" + item1.prom_id + "/" + app.globalData.user_id;
  799 + await app.request.promiseGet(url,{}).then(res=>{
  800 + if(res.data.code==0){
  801 + console.log(res.data.data,"111");
  802 + item1.is_order_yh=res.data.data.is_order_yh;
  803 + item1.is_post_temp=res.data.data.is_post_temp;
903 } 804 }
904 - if (item1.prom_type == 10) {  
905 - if (!th.data.ladder_map[item1.prom_id]) {  
906 - //如果有预售  
907 - var isok = 1;  
908 - var is_flag = 1;  
909 - var act = null;  
910 - var url = "/api/weshop/prom/ladderForm/get/" + os.stoid + "/" + item1.prom_id;  
911 - await getApp().request.promiseGet(url, {}).then(res => {  
912 - console.log(res, 1000);  
913 - if (res.data.code == 0 && res.data.data) {  
914 - if (res.data.data.isuse != 1) {  
915 - isok = 0;  
916 - }  
917 - //如果活动已经结束  
918 - if (res.data.data.is_end == 1) {  
919 - isok = 0;  
920 - }  
921 - //已经结束  
922 - if (ut.gettimestamp() > res.data.data.end_time) {  
923 - isok = 0;  
924 - }  
925 - //还未开始  
926 - if (ut.gettimestamp() < res.data.data.start_time) {  
927 - isok = 0;  
928 - }  
929 - act = res.data.data; 805 + })
  806 + }
930 807
931 - } else {  
932 - //未找到商品的活动  
933 - is_flag = 0;  
934 - }  
935 - })  
936 - if (!isok) {  
937 - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item1.id;  
938 - getApp().request.delete(url, {});  
939 - th.data.ladder_map[item1.prom_id] = -1;  
940 - continue;  
941 - }  
942 - th.data.ladder_map[item1.prom_id] = act; 808 + //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠
  809 + if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) {
  810 + // th.check_is_youhui(item1.goods_id, item1.pick_id);
  811 + //增加优惠活动次数限制
  812 + let limit_num= await th.getprom(item1) //活动限制次数
943 813
944 - //-- 获取阶梯规则 --  
945 - var url1 = "/api/weshop/prom/ladderList/list";  
946 - var req_data = {  
947 - store_id: os.stoid,  
948 - form_id: item1.prom_id, 814 + if(!limit_num){
  815 + await th.add_prom_goods_map(item1);
  816 + // item1.prom_id=''
  817 + // item1.prom_type=''
  818 + }else{
  819 + let user_pre_buynum = await th.getUserBuyPromNum_pre(item1.prom_id) //用户已经参与次数
  820 + if(user_pre_buynum<limit_num){
  821 + await th.add_prom_goods_map(item1);
  822 + }else{
  823 + // await th.add_prom_goods_map(item1);
  824 + item1.prom_id=''
  825 + item1.prom_type=''
  826 + }
  827 + }
  828 + }
  829 +
  830 + //-- 如果组合购的总数量不足的处理 --
  831 + if(no_zh_num[item1.prom_id] && item1.prom_type == 7){
  832 + item1.prom_type = 0;
  833 + item1.prom_type1 = 0;
  834 + item1.prom_id = 0;
  835 + item1.prom_id1 = 0
  836 + }
  837 +
  838 + //要把组合购的东西拿出来算一下,同时组合购的总数量要有存在
  839 + if (item1.prom_type == 7) {
  840 + if (!th.data.zuhe_map_good[item1.prom_id]) {
  841 + var isok = 1;
  842 + var is_flag = 1;
  843 + var store_count_ok=1;
  844 + //如果有组合购
  845 + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id + '/' + getApp().globalData.userInfo.user_id;
  846 + await getApp().request.promiseGet(url, {}).then(res => {
  847 + if (res.data.code == 0 && res.data.data) {
  848 + //如果活动已经结束
  849 + if (res.data.data.is_end == 1) {
  850 + isok = 0;
949 } 851 }
950 - await getApp().request.promiseGet(url1, {  
951 - data: req_data  
952 - }).then(rs1 => {  
953 - if (rs1.data.code == 0 && rs1.data.data) {  
954 - var gdlist = rs1.data.data;  
955 - th.data.ladder_map[item1.prom_id].ladder_list = gdlist;  
956 - }  
957 - })  
958 - }  
959 - }  
960 -  
961 - //-- 判断一下,获取搭配购的消息,只有prom_type==5才会判断优惠活动 --  
962 - if ( item1.prom_type == 5 && (!carr[i].collocationList || !carr[i].collocationList.length)) {  
963 - await th.set_collection(item1, carr, i);  
964 - }  
965 - } 852 + if (ut.gettimestamp() > res.data.data.end_time) {
  853 + isok = 0;
  854 + }
  855 + item1.act = res.data.data;
  856 +
  857 + //-- 在这里要判断一下活动的组合购总数量 --
  858 + if(item1.act.zh_num>0 && item1.act.zh_buy_num>=item1.act.zh_num){
  859 + store_count_ok = 0;
  860 + no_zh_num[item1.prom_id]=1;
  861 + //-- 清理一下活动的状态 --
  862 + item1.prom_type = 0;
  863 + item1.prom_type1 = 0;
  864 + item1.prom_id = 0;
  865 + item1.prom_id1 = 0
966 866
967 - //在分组的时候,就不要再调用接口,await  
968 - for (var i = 0; i < carr.length; i++) {  
969 - var item = carr[i];  
970 - //-- 如果是等级会员注册返回 --  
971 - if (is_card_back) {  
972 - th.data.card_name = th.data.userinfo.card_field;  
973 - //如果是秒杀的返回,就要把活动弄回0  
974 - if (item['prom_type'] == 1) {  
975 - item['prom_type'] = 0;  
976 - item['prom_id'] = 0;  
977 - }  
978 - // 拼团,搭配购不计算,赠品也不计算  
979 - if (item['prom_type'] != 5 && item['prom_type'] != 6 && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) {  
980 - item.goods_price = item[th.data.card_name];  
981 - carr[i].goods_price = item[th.data.card_name]; 867 + }else{
  868 + th.data.zhhe_act_map[item1.prom_id] = res.data.data;
  869 + }
982 870
  871 + } else {
  872 + //未找到商品的活动
  873 + is_flag = 0;
983 } 874 }
984 - } else {  
985 - // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员  
986 - if (item[th.data.card_name] > 0 && item['prom_type'] != 5 && item['prom_type'] != 6 && !th.data.userinfo.card_field  
987 - && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) {  
988 - item.cut_price1 = item.goods_price - item[th.data.card_name];  
989 - carr[i].cut_price1 = (item.goods_price - item[th.data.card_name]) * item.goods_num;  
990 - } 875 + })
991 876
  877 + if (!isok) {
  878 + getApp().my_warnning("组合购的活动已经过期", 0, th);
  879 + return false;
992 } 880 }
993 881
994 - item.original_img = oo.imghost + item.original_img;  
995 -  
996 - var car_item = item;  
997 - /*----接口要弄出来的,先顶着-----*/  
998 - var pcid = car_item.pick_id;  
999 - var find = 0;  
1000 - //----如果有就加进去,没有就新增一个----  
1001 - //-----------循环查找门店-------------  
1002 - if (arr.length > 0) {  
1003 - for (var j = 0; j < arr.length; j++) {  
1004 - if (arr[j].pickup_id == pcid) {  
1005 - if (item.is_gift != 1) {  
1006 - //确定配送方式  
1007 - if (arr[j].distr_t == 0) {  
1008 - arr[j].distr_t = car_item.distr_type;  
1009 - }  
1010 - var e_t = 0  
1011 - switch (arr[j].distr_t) {  
1012 - case 0:  
1013 - e_t = 1;  
1014 - if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0;  
1015 - break;  
1016 - case 1:  
1017 - e_t = 1;  
1018 - break;  
1019 - case 2:  
1020 - e_t = 0;  
1021 - break; 882 + //------ 先增组合活动的总数量的时候 -------
  883 + if(store_count_ok) {
  884 + var url1 = "/api/weshop/prom/zhbuyGoods/page";
  885 + var req_data = {
  886 + page: 1,
  887 + pageSize: 2000,
  888 + store_id: os.stoid,
  889 + zh_id: item1.prom_id,
  890 + }
  891 + await getApp().request.promiseGet(url1, {
  892 + data: req_data
  893 + }).then(res => {
  894 + if (ut.ajax_ok(res)) {
  895 + var gdlist = res.data.data.pageData;
  896 + gdlist.forEach(i => {
  897 + if (item1.goods_id == i.goods_id && !is_flag) {
  898 + item1.prom_type = 0;
  899 + item1.prom_type1 = 0;
  900 + item1.prom_id = 0;
  901 + item1.prom_id1 = 0
1022 } 902 }
1023 - arr[j].exp_type = e_t;  
1024 - if (e_t == 0) th.setData({ is_all_zt: 0 });  
1025 - //else if (e_t == 1) th.setData({ is_all_zt: 1 });  
1026 - }  
1027 -  
1028 - //-- 把等级卡会优惠多少钱装进去 --  
1029 - if (car_item.cut_price1) arr[j].card_cut_price += car_item.cut_price1; 903 + })
  904 + th.data.zuhe_map_good[item1.prom_id] = gdlist;
  905 + }
  906 + })
  907 + }
1030 908
1031 - arr[j].goods.push(car_item);  
1032 - if (car_item.collocationList) {  
1033 909
1034 - if (!arr[j].collocationList) arr[j].collocationList = car_item.collocationList;  
1035 - else {  
1036 - var arr_new = [...arr[j].collocationList, ...car_item.collocationList];  
1037 - arr[j].collocationList = arr_new;  
1038 - }  
1039 - }  
1040 910
1041 - find = 1;  
1042 - break; 911 + }
  912 + else {
  913 + item1.act = th.data.zhhe_act_map[item1.prom_id];
  914 + }
  915 + }
  916 + if (item1.prom_type == 10) {
  917 + if (!th.data.ladder_map[item1.prom_id]) {
  918 + //如果有预售
  919 + var isok = 1;
  920 + var is_flag = 1;
  921 + var act = null;
  922 + var url = "/api/weshop/prom/ladderForm/get/" + os.stoid + "/" + item1.prom_id;
  923 + await getApp().request.promiseGet(url, {}).then(res => {
  924 + console.log(res, 1000);
  925 + if (res.data.code == 0 && res.data.data) {
  926 + if (res.data.data.isuse != 1) {
  927 + isok = 0;
1043 } 928 }
1044 - }  
1045 - }  
1046 - //------如果没有找到-----  
1047 - if (find == 0) {  
1048 - var pikname = '', sto = null;  
1049 - //----找到门店名称-----  
1050 - for (var k = 0; k < th.data.allsto.length; k++) {  
1051 - if (pcid == th.data.allsto[k].pickup_id) {  
1052 - pikname = th.data.allsto[k].pickup_name;  
1053 - sto = th.data.allsto[k];  
1054 - break; 929 + //如果活动已经结束
  930 + if (res.data.data.is_end == 1) {
  931 + isok = 0;
1055 } 932 }
1056 - }  
1057 - var e_t = 0, dis_t = 0;//物流方式,配送方式  
1058 - if (item.distr_type == 0) {  
1059 - dis_t = sto.distr_type; 933 + //已经结束
  934 + if (ut.gettimestamp() > res.data.data.end_time) {
  935 + isok = 0;
  936 + }
  937 + //还未开始
  938 + if (ut.gettimestamp() < res.data.data.start_time) {
  939 + isok = 0;
  940 + }
  941 + act = res.data.data;
  942 +
1060 } else { 943 } else {
1061 - dis_t = item.distr_type; 944 + //未找到商品的活动
  945 + is_flag = 0;
1062 } 946 }
1063 - switch (dis_t) {  
1064 - case 0:  
1065 - e_t = 1;  
1066 - //-- 系统后台有设置要默认的 --  
1067 - if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0;  
1068 - break;  
1069 - case 1:  
1070 - e_t = 1;  
1071 - break;  
1072 - case 2:  
1073 - e_t = 0;  
1074 - break; 947 + })
  948 + if (!isok) {
  949 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item1.id;
  950 + getApp().request.delete(url, {});
  951 + th.data.ladder_map[item1.prom_id] = -1;
  952 + continue;
  953 + }
  954 + th.data.ladder_map[item1.prom_id] = act;
  955 +
  956 + //-- 获取阶梯规则 --
  957 + var url1 = "/api/weshop/prom/ladderList/list";
  958 + var req_data = {
  959 + store_id: os.stoid,
  960 + form_id: item1.prom_id,
  961 + }
  962 + await getApp().request.promiseGet(url1, {
  963 + data: req_data
  964 + }).then(rs1 => {
  965 + if (rs1.data.code == 0 && rs1.data.data) {
  966 + var gdlist = rs1.data.data;
  967 + th.data.ladder_map[item1.prom_id].ladder_list = gdlist;
1075 } 968 }
1076 - //如果是物流的话,全部自提的控制要弄成0  
1077 - if (e_t == 0) th.setData({ is_all_zt: 0 });  
1078 - //else th.setData({ is_all_zt: 1 });  
1079 -  
1080 - var narr = new Array();  
1081 - narr.push(car_item);  
1082 -  
1083 - //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下-----------------  
1084 - var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code;  
1085 - if (def_exp_code && !th.data.is_default_logistics) {  
1086 - for (var k = 0; k < th.data.wu_arr.length; k++) {  
1087 - var item = th.data.wu_arr[k];  
1088 - if (def_exp_code == item.code) {  
1089 - m_wind = k;  
1090 - } 969 + })
  970 + }
  971 + }
  972 +
  973 + if(is_change){
  974 + carr[i].collocationList=null;
  975 + }
  976 +
  977 + //-- 判断一下,获取搭配购的消息,只有prom_type==5才会判断优惠活动 --
  978 + if ( item1.prom_type == 5 && (!carr[i].collocationList || !carr[i].collocationList.length)) {
  979 + await th.set_collection(item1, carr, i);
  980 + }
  981 + }
  982 +
  983 + //在分组的时候,就不要再调用接口,await
  984 + for (var i = 0; i < carr.length; i++) {
  985 + var item = carr[i];
  986 + //-- 如果是等级会员注册返回 --
  987 + if (is_card_back) {
  988 + th.data.card_name = th.data.userinfo.card_field;
  989 + //如果是秒杀的返回,就要把活动弄回0
  990 + if (item['prom_type'] == 1) {
  991 + item['prom_type'] = 0;
  992 + item['prom_id'] = 0;
  993 + }
  994 + // 拼团,搭配购不计算,赠品也不计算
  995 + if (item['prom_type'] != 5 && item['prom_type'] != 6 && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) {
  996 + item.goods_price = item[th.data.card_name];
  997 + carr[i].goods_price = item[th.data.card_name];
  998 +
  999 + }
  1000 + } else {
  1001 + // 拼团,搭配购不计算,赠品也不计算,同时会员还未购买等级会员
  1002 + if (item[th.data.card_name] > 0 && item['prom_type'] != 5 && item['prom_type'] != 6 && !th.data.userinfo.card_field
  1003 + && !item.is_gift && !item['is_collocation'] && item.goods_price > item[th.data.card_name]) {
  1004 + item.cut_price1 = item.goods_price - item[th.data.card_name];
  1005 + carr[i].cut_price1 = (item.goods_price - item[th.data.card_name]) * item.goods_num;
  1006 + }
  1007 +
  1008 + }
  1009 +
  1010 + item.original_img = oo.imghost + item.original_img;
  1011 +
  1012 + var car_item = item;
  1013 + /*----接口要弄出来的,先顶着-----*/
  1014 + var pcid = car_item.pick_id;
  1015 + var find = 0;
  1016 + //----如果有就加进去,没有就新增一个----
  1017 + //-----------循环查找门店-------------
  1018 + if (arr.length > 0) {
  1019 + for (var j = 0; j < arr.length; j++) {
  1020 + if (arr[j].pickup_id == pcid) {
  1021 + if (item.is_gift != 1) {
  1022 + //确定配送方式
  1023 + if (arr[j].distr_t == 0) {
  1024 + arr[j].distr_t = car_item.distr_type;
1091 } 1025 }
  1026 + var e_t = 0
  1027 + switch (arr[j].distr_t) {
  1028 + case 0:
  1029 + e_t = 1;
  1030 + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0;
  1031 + break;
  1032 + case 1:
  1033 + e_t = 1;
  1034 + break;
  1035 + case 2:
  1036 + e_t = 0;
  1037 + break;
  1038 + }
  1039 + arr[j].exp_type = e_t;
  1040 + if (e_t == 0) th.setData({ is_all_zt: 0 });
  1041 + //else if (e_t == 1) th.setData({ is_all_zt: 1 });
1092 } 1042 }
1093 1043
1094 - var ie = {  
1095 - pickup_id: pcid,  
1096 - pname: pikname,  
1097 - goods: narr,  
1098 - wind: m_wind,  
1099 - distr_t: dis_t,  
1100 - card_cut_price: 0,  
1101 - exp_type: e_t,  
1102 - goods_price: 0,  
1103 - shipping_price: 0,  
1104 - user_money: 0,  
1105 - total_amount: 0,  
1106 - order_amount: 0,  
1107 - user_note: "",  
1108 - sto: sto  
1109 - };  
1110 -  
1111 //-- 把等级卡会优惠多少钱装进去 -- 1044 //-- 把等级卡会优惠多少钱装进去 --
1112 - if (car_item.cut_price1) ie.card_cut_price += car_item.cut_price1; 1045 + if (car_item.cut_price1) arr[j].card_cut_price += car_item.cut_price1;
  1046 +
  1047 + arr[j].goods.push(car_item);
1113 if (car_item.collocationList) { 1048 if (car_item.collocationList) {
1114 - ie.collocationList = car_item.collocationList;  
1115 - }  
1116 1049
  1050 + if (!arr[j].collocationList) arr[j].collocationList = car_item.collocationList;
  1051 + else {
  1052 + var arr_new = [...arr[j].collocationList, ...car_item.collocationList];
  1053 + arr[j].collocationList = arr_new;
  1054 + }
  1055 + }
1117 1056
1118 - arr.push(ie); 1057 + find = 1;
  1058 + break;
1119 } 1059 }
1120 } 1060 }
1121 - //-- 如果是回退回来的情况 --  
1122 - if (th.data.cartlist && th.data.cartlist.length > 0) {  
1123 - for (var kj in th.data.cartlist) {  
1124 - for (var ih in arr) {  
1125 - var ie = arr[ih];  
1126 - if (ie.pickup_id == th.data.cartlist[kj].pickup_id) {  
1127 - ie.exp_type = parseInt(th.data.cartlist[kj].exp_type);  
1128 - ie.wind = parseInt(th.data.cartlist[kj].wind); 1061 + }
  1062 + //------如果没有找到-----
  1063 + if (find == 0) {
  1064 + var pikname = '', sto = null;
  1065 + //----找到门店名称-----
  1066 + for (var k = 0; k < th.data.allsto.length; k++) {
  1067 + if (pcid == th.data.allsto[k].pickup_id) {
  1068 + pikname = th.data.allsto[k].pickup_name;
  1069 + sto = th.data.allsto[k];
  1070 + break;
  1071 + }
  1072 + }
  1073 + var e_t = 0, dis_t = 0;//物流方式,配送方式
  1074 + if (item.distr_type == 0) {
  1075 + dis_t = sto.distr_type;
  1076 + } else {
  1077 + dis_t = item.distr_type;
  1078 + }
  1079 + switch (dis_t) {
  1080 + case 0:
  1081 + e_t = 1;
  1082 + //-- 系统后台有设置要默认的 --
  1083 + if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) e_t = 0;
  1084 + break;
  1085 + case 1:
  1086 + e_t = 1;
  1087 + break;
  1088 + case 2:
  1089 + e_t = 0;
  1090 + break;
  1091 + }
  1092 + //如果是物流的话,全部自提的控制要弄成0
  1093 + if (e_t == 0) th.setData({ is_all_zt: 0 });
  1094 + //else th.setData({ is_all_zt: 1 });
1129 1095
1130 - //-- 是不是全部自提清空 --  
1131 - if (ie.exp_type == 0 || ie.exp_type == 2) th.setData({ is_all_zt: 0 });  
1132 - break;  
1133 - } 1096 + var narr = new Array();
  1097 + narr.push(car_item);
  1098 +
  1099 + //-----------拼装购物车结算的数组,如果有默认物流时要用默认物流编号,计算默认的物流,不管是不是自提都算一下-----------------
  1100 + var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code;
  1101 + if (def_exp_code && !th.data.is_default_logistics) {
  1102 + for (var k = 0; k < th.data.wu_arr.length; k++) {
  1103 + var item = th.data.wu_arr[k];
  1104 + if (def_exp_code == item.code) {
  1105 + m_wind = k;
1134 } 1106 }
1135 } 1107 }
1136 } 1108 }
1137 1109
1138 - var cart_commission = 0;  
1139 - //-- 循环计算一下线下取价 --  
1140 - for (var k = 0; k < arr.length; k++) {  
1141 - var c_item = arr[k]; 1110 + var ie = {
  1111 + pickup_id: pcid,
  1112 + pname: pikname,
  1113 + goods: narr,
  1114 + wind: m_wind,
  1115 + distr_t: dis_t,
  1116 + card_cut_price: 0,
  1117 + exp_type: e_t,
  1118 + goods_price: 0,
  1119 + shipping_price: 0,
  1120 + user_money: 0,
  1121 + total_amount: 0,
  1122 + order_amount: 0,
  1123 + user_note: "",
  1124 + sto: sto
  1125 + };
1142 1126
1143 - //-- 要进行归类一下活动 --  
1144 - await th.cart_cx_group(arr[k].goods,c_item,(show_can_cx)=>{  
1145 - arr[k].show_can_cx=show_can_cx;  
1146 - }) 1127 + //-- 把等级卡会优惠多少钱装进去 --
  1128 + if (car_item.cut_price1) ie.card_cut_price += car_item.cut_price1;
  1129 + if (car_item.collocationList) {
  1130 + ie.collocationList = car_item.collocationList;
  1131 + }
1147 1132
1148 1133
1149 - var item = arr[k].goods;  
1150 - var offline_price = 0;  
1151 - var offline_num = 0;  
1152 - //计算佣金的商品  
1153 - var commission_gds = [];  
1154 - for (var c = 0; c < item.length; c++) { 1134 + arr.push(ie);
  1135 + }
  1136 + }
  1137 + //-- 如果是回退回来的情况 --
  1138 + if (th.data.cartlist && th.data.cartlist.length > 0) {
  1139 + for (var kj in th.data.cartlist) {
  1140 + for (var ih in arr) {
  1141 + var ie = arr[ih];
  1142 + if (ie.pickup_id == th.data.cartlist[kj].pickup_id) {
  1143 + ie.exp_type = parseInt(th.data.cartlist[kj].exp_type);
  1144 + ie.wind = parseInt(th.data.cartlist[kj].wind);
  1145 +
  1146 + //-- 是不是全部自提清空 --
  1147 + if (ie.exp_type == 0 || ie.exp_type == 2) th.setData({ is_all_zt: 0 });
  1148 + break;
  1149 + }
  1150 + }
  1151 + }
  1152 + }
1155 1153
1156 - if (!item[c].is_gift) {  
1157 - var hr = {  
1158 - goods_id: item[c].goods_id,  
1159 - goods_num: item[c].goods_num,  
1160 - prom_type: item[c].prom_type,  
1161 - prom_id: item[c].prom_id,  
1162 - }  
1163 - let req_d1 = {  
1164 - user_id: getApp().globalData.user_id, goods_ids: [hr], store_id: os.stoid  
1165 - }  
1166 -  
1167 - await getApp().request.promisePost("/api/weshop/order/getrebateSum", {  
1168 - is_json: 1, data: req_d1  
1169 - }).then(grs => {  
1170 - if (grs.data.code == 0) item[c].use_commission = grs.data.data;  
1171 - });  
1172 - commission_gds.push(hr);  
1173 - }  
1174 - if (th.data.sales_rules != 2) {  
1175 - item[c].offline_price = 0;  
1176 - }  
1177 - //-- 如果这个商品是线下取价的时候 --  
1178 - if (item[c].offline_price > 0 && item[c].prom_type != 7) {  
1179 - offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num;  
1180 - offline_num += item[c].goods_num;  
1181 - } 1154 + var cart_commission = 0;
  1155 + //-- 循环计算一下线下取价 --
  1156 + for (var k = 0; k < arr.length; k++) {
  1157 + var c_item = arr[k];
  1158 + if(!is_change){
  1159 + //-- 要进行归类一下活动 --
  1160 + await th.cart_cx_group(arr[k].goods,c_item,(show_can_cx)=>{
  1161 + arr[k].show_can_cx=show_can_cx;
  1162 + })
  1163 + }else{
  1164 + var show_can_cx=this.data.cartlist[k].show_can_cx;
  1165 + //-- 多促销活动的优化 --
  1166 + if(show_can_cx){
  1167 + arr[k].show_can_cx=show_can_cx;
1182 } 1168 }
1183 - if (offline_price > 0) {  
1184 - c_item.offline_price = offline_price;  
1185 - c_item.offline_num = offline_num;  
1186 - c_item.is_offline = 1; 1169 + }
  1170 +
  1171 + var item = arr[k].goods;
  1172 + var offline_price = 0;
  1173 + var offline_num = 0;
  1174 + //计算佣金的商品
  1175 + var commission_gds = [];
  1176 + for (var c = 0; c < item.length; c++) {
  1177 +
  1178 + if (!item[c].is_gift) {
  1179 + var hr = {
  1180 + goods_id: item[c].goods_id,
  1181 + goods_num: item[c].goods_num,
  1182 + prom_type: item[c].prom_type,
  1183 + prom_id: item[c].prom_id,
1187 } 1184 }
1188 -  
1189 - //获取购物车的佣金,此处要优化调用接口,获取佣金  
1190 - var req_d = {  
1191 - user_id: getApp().globalData.user_id, goods_ids: commission_gds, store_id: os.stoid 1185 + let req_d1 = {
  1186 + user_id: getApp().globalData.user_id, goods_ids: [hr], store_id: os.stoid
1192 } 1187 }
1193 - var back_data = null; 1188 +
1194 await getApp().request.promisePost("/api/weshop/order/getrebateSum", { 1189 await getApp().request.promisePost("/api/weshop/order/getrebateSum", {
1195 - is_json: 1, data: req_d  
1196 - }).then(rs => {  
1197 - if (rs.data.code == 0) back_data = rs.data.data; 1190 + is_json: 1, data: req_d1
  1191 + }).then(grs => {
  1192 + if (grs.data.code == 0) item[c].use_commission = grs.data.data;
1198 }); 1193 });
1199 -  
1200 - if (back_data && parseFloat(back_data)) {  
1201 - c_item.can_usecommise = parseFloat(back_data);  
1202 - cart_commission += c_item.can_usecommise;  
1203 - }  
1204 - 1194 + commission_gds.push(hr);
1205 } 1195 }
1206 -  
1207 - if (cart_commission) {  
1208 - th.setData({ cart_commission }); 1196 + if (th.data.sales_rules != 2) {
  1197 + item[c].offline_price = 0;
1209 } 1198 }
1210 -  
1211 - //每一个门店内的组合购要进行拆分,  
1212 - //还得把组合商品的多余商品的线下价格算一算  
1213 - for (let var1 in arr) {  
1214 - var u_item = arr[var1];  
1215 - //把组合购进行分组  
1216 - var obj = zh_calc.find_split(u_item);  
1217 - if (!obj) continue;  
1218 - //存储不同活动的商品列表  
1219 - u_item.zh_prom_goods = {};  
1220 - for (let var1 in obj) {  
1221 - var h_item = obj[var1];  
1222 - var gdlist = th.data.zuhe_map_good[h_item.prom_id];  
1223 - //获取活动需要的商品列表  
1224 - u_item.zh_prom_goods[h_item.prom_id] = { gdlist: gdlist, act: h_item.act };  
1225 - }  
1226 - zh_calc.fir_set_arr(u_item, th); 1199 + //-- 如果这个商品是线下取价的时候 --
  1200 + if (item[c].offline_price > 0 && item[c].prom_type != 7) {
  1201 + offline_price += (item[c].goods_price - item[c].offline_price) * item[c].goods_num;
  1202 + offline_num += item[c].goods_num;
1227 } 1203 }
  1204 + }
  1205 + if (offline_price > 0) {
  1206 + c_item.offline_price = offline_price;
  1207 + c_item.offline_num = offline_num;
  1208 + c_item.is_offline = 1;
  1209 + }
1228 1210
1229 - //每一个门店内的阶梯促销要进行拆分,  
1230 - //还得把阶梯促销商品的多余商品的线下价格算一算  
1231 - for (let var2 in arr) {  
1232 - var u_item1 = arr[var2]; 1211 + //获取购物车的佣金,此处要优化调用接口,获取佣金
  1212 + var req_d = {
  1213 + user_id: getApp().globalData.user_id, goods_ids: commission_gds, store_id: os.stoid
  1214 + }
  1215 + var back_data = null;
  1216 + await getApp().request.promisePost("/api/weshop/order/getrebateSum", {
  1217 + is_json: 1, data: req_d
  1218 + }).then(rs => {
  1219 + if (rs.data.code == 0) back_data = rs.data.data;
  1220 + });
1233 1221
1234 - //把阶梯促销进行分组  
1235 - var obj = ladder_calc.find_split(u_item1);  
1236 - if (!obj) continue;  
1237 - //存储不同阶梯促销活动的商品列表  
1238 - u_item1.ladder_map = {};  
1239 - for (let var1 in obj) {  
1240 - var h_item = obj[var1];  
1241 - var act = th.data.ladder_map[h_item.prom_id];  
1242 - //获取活动需要的商品列表  
1243 - u_item1.ladder_map[h_item.prom_id] = act;  
1244 - }  
1245 - ladder_calc.fir_set_arr(u_item1, th);  
1246 - } 1222 + if (back_data && parseFloat(back_data)) {
  1223 + c_item.can_usecommise = parseFloat(back_data);
  1224 + cart_commission += c_item.can_usecommise;
  1225 + }
1247 1226
1248 - //-- 要判断总开关有没有同城配送 --  
1249 - if(th.data.is_same_city) {  
1250 - //----- 判断每一个商品的配送方式,和门店的配送方式 -------  
1251 - for (var ik = 0; ik < arr.length; ik++) {  
1252 - if (!arr[ik].sto.is_same_city) continue;  
1253 - var fd = arr[ik].goods.filter(function (e) {  
1254 - return e.is_same_city != 1 || e.whsle_id > 0  
1255 - })  
1256 - if (!fd || fd.length == 0) {  
1257 - arr[ik].show_same_city = 1;  
1258 - }  
1259 - }  
1260 - } 1227 + }
1261 1228
1262 - //深拷贝  
1263 - th.data.old_cartlist = JSON.parse(JSON.stringify(arr));  
1264 - th.setData({  
1265 - cartlist: arr,  
1266 - }); 1229 + if (cart_commission) {
  1230 + th.setData({ cart_commission });
  1231 + }
1267 1232
1268 - //--- 获取一下看有没有优惠券 ----  
1269 - setTimeout(function () {  
1270 - var frozenQuan = null;  
1271 - var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id;  
1272 - app.request.promiseGet(url0, { 1: 1 }).then(res => {  
1273 - if (res.data.code == 0) {  
1274 - frozenQuan = res.data.data;  
1275 - th.data.frozenQuan = frozenQuan;  
1276 - }  
1277 - th.calculatePrice();  
1278 - th.get_cart_quan();  
1279 - })  
1280 - }, 500) 1233 + //每一个门店内的组合购要进行拆分,
  1234 + //还得把组合商品的多余商品的线下价格算一算
  1235 + for (let var1 in arr) {
  1236 + var u_item = arr[var1];
  1237 + //把组合购进行分组
  1238 + var obj = zh_calc.find_split(u_item);
  1239 + if (!obj) continue;
  1240 + //存储不同活动的商品列表
  1241 + u_item.zh_prom_goods = {};
  1242 + for (let var1 in obj) {
  1243 + var h_item = obj[var1];
  1244 + var gdlist = th.data.zuhe_map_good[h_item.prom_id];
  1245 + //获取活动需要的商品列表
  1246 + u_item.zh_prom_goods[h_item.prom_id] = { gdlist: gdlist, act: h_item.act };
  1247 + }
  1248 + zh_calc.fir_set_arr(u_item, th);
  1249 + }
  1250 +
  1251 + //每一个门店内的阶梯促销要进行拆分,
  1252 + //还得把阶梯促销商品的多余商品的线下价格算一算
  1253 + for (let var2 in arr) {
  1254 + var u_item1 = arr[var2];
  1255 +
  1256 + //把阶梯促销进行分组
  1257 + var obj = ladder_calc.find_split(u_item1);
  1258 + if (!obj) continue;
  1259 + //存储不同阶梯促销活动的商品列表
  1260 + u_item1.ladder_map = {};
  1261 + for (let var1 in obj) {
  1262 + var h_item = obj[var1];
  1263 + var act = th.data.ladder_map[h_item.prom_id];
  1264 + //获取活动需要的商品列表
  1265 + u_item1.ladder_map[h_item.prom_id] = act;
  1266 + }
  1267 + ladder_calc.fir_set_arr(u_item1, th);
  1268 + }
  1269 +
  1270 + //-- 要判断总开关有没有同城配送 --
  1271 + if(th.data.is_same_city) {
  1272 + //----- 判断每一个商品的配送方式,和门店的配送方式 -------
  1273 + for (var ik = 0; ik < arr.length; ik++) {
  1274 + if (!arr[ik].sto.is_same_city) continue;
  1275 + var fd = arr[ik].goods.filter(function (e) {
  1276 + return e.is_same_city != 1 || e.whsle_id > 0
  1277 + })
  1278 + if (!fd || fd.length == 0) {
  1279 + arr[ik].show_same_city = 1;
  1280 + }
1281 } 1281 }
  1282 + }
  1283 +
  1284 + //深拷贝
  1285 + th.data.old_cartlist = JSON.parse(JSON.stringify(arr));
  1286 + th.setData({
  1287 + cartlist: arr,
1282 }); 1288 });
1283 - },  
1284 1289
  1290 + //--- 获取一下看有没有优惠券 ----
  1291 + setTimeout(function () {
  1292 + var frozenQuan = null;
  1293 + var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id;
  1294 + app.request.promiseGet(url0, { 1: 1 }).then(res => {
  1295 + if (res.data.code == 0) {
  1296 + frozenQuan = res.data.data;
  1297 + th.data.frozenQuan = frozenQuan;
  1298 + }
  1299 + th.calculatePrice();
  1300 + th.get_cart_quan();
  1301 + })
  1302 + }, 500)
  1303 + },
1285 1304
1286 //-----单个商品购买的入口判断---- 1305 //-----单个商品购买的入口判断----
1287 get_buy_goods: function (e) { 1306 get_buy_goods: function (e) {
@@ -1794,294 +1813,35 @@ Page({ @@ -1794,294 +1813,35 @@ Page({
1794 //先用着,后面会用接口来代替 1813 //先用着,后面会用接口来代替
1795 async buy_pro_group(item1, is_state) { 1814 async buy_pro_group(item1, is_state) {
1796 //-- 代发商品不参与任何活动 -- 1815 //-- 代发商品不参与任何活动 --
1797 - if(item1.whsle_id) return false; 1816 + if (item1.whsle_id) return false;
1798 var th=this; 1817 var th=this;
1799 - var url = '/api/weshop/activitylist/listGoodActInfo2New';  
1800 - var user_id = getApp().globalData.user_id;  
1801 - var zh_id = 0;  
1802 - var zh_prom = null;  
1803 - var gdlist = null;  
1804 -  
1805 var req_d = { 1818 var req_d = {
1806 - "store_id": os.stoid,  
1807 - "goods_id": item1.goods_id,  
1808 - "user_id": user_id,  
1809 - }  
1810 -  
1811 - await getApp().request.promiseGet(url, {data: req_d}).then(e => {  
1812 - if (e.data.code == 0 && e.data.data && e.data.data.length > 0) {  
1813 - var arr = e.data.data;  
1814 - if (arr.length) {  
1815 - var arr3 = arr.filter(function (e) {  
1816 - return e.s_time < ut.gettimestamp() && e.prom_type == 7;  
1817 - })  
1818 - if (arr3 && arr3.length) {  
1819 - zh_id = arr3[0].act_id;  
1820 - }  
1821 - }  
1822 - }  
1823 - })  
1824 -  
1825 - //-- 如果有组合购的时候,同时还要判断单件商品的购买数量有没有满足组合购的条件 --  
1826 - if (zh_id) {  
1827 - var is_zh_ok = 1;  
1828 - var zh_pro0 = null;  
1829 - //-- 获取活动信息 --  
1830 - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + zh_id + "/" + user_id;  
1831 - await getApp().request.promiseGet(url, {}).then(res => {  
1832 - if (res.data.code == 0 && res.data.data) {  
1833 - //如果活动已经结束  
1834 - if (res.data.data.is_end == 1) {  
1835 - is_zh_ok = 0;  
1836 - }  
1837 - if (ut.gettimestamp() > res.data.data.end_time) {  
1838 - is_zh_ok = 0;  
1839 - }  
1840 - zh_pro0 = res.data.data;  
1841 - //--- 在这里要判断一下活动的组合购总数量 ---  
1842 - if (zh_pro0.zh_num > 0 && zh_pro0.zh_buy_num >= zh_pro0.zh_num) {  
1843 - is_zh_ok = 0;  
1844 - }  
1845 - } else {  
1846 - is_zh_ok = 0;  
1847 - }  
1848 - })  
1849 -  
1850 - //--- 首先组合购的限购 ---  
1851 - if(is_zh_ok){  
1852 - //-- 组合购活动是限购 --  
1853 - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`;  
1854 - let res = await getApp().request.promiseGet(url, {  
1855 - data: {}  
1856 - });  
1857 - let userbuynum = 0  
1858 - if (res.data.code == 0 && res.data.data) {  
1859 - userbuynum = res.data.data.userbuynum  
1860 - }  
1861 -  
1862 - if(zh_pro0.buy_limit>0 && zh_pro0.buy_limit<=userbuynum){  
1863 - is_zh_ok=0;  
1864 - }  
1865 - }  
1866 -  
1867 - //-- 如果满足条件,才会显示活动 --  
1868 - if (is_zh_ok) {  
1869 -  
1870 - //-- 组合的数组填充一下 --  
1871 - th.data.zhhe_act_map[zh_pro0.id] = zh_pro0;  
1872 -  
1873 - var url1 = "/api/weshop/prom/zhbuyGoods/page";  
1874 - var req_data = {  
1875 - page: 1, pageSize: 2000,  
1876 - store_id: os.stoid,  
1877 - zh_id: zh_id,  
1878 - }  
1879 -  
1880 - await getApp().request.promiseGet(url1, {  
1881 - data: req_data  
1882 - }).then(res => {  
1883 - if (ut.ajax_ok(res)) {  
1884 - gdlist = res.data.data.pageData;  
1885 - }  
1886 - })  
1887 -  
1888 - var zh_gd_fd = gdlist.find(function (e) {  
1889 - return e.goods_id == item1.goods_id;  
1890 - })  
1891 -  
1892 - if (is_zh_ok) {  
1893 - //-- 商品的限购 --  
1894 - var promgoodsbuynum = 0;  
1895 - //--要获得商品,该用户买了多少件,同步应用--  
1896 - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {  
1897 - data: {  
1898 - store_id: os.stoid,  
1899 - user_id: getApp().globalData.user_id,  
1900 - goods_id: item1.goods_id,  
1901 - prom_type: 7,  
1902 - prom_id: zh_id  
1903 - },  
1904 - }).then(res => {  
1905 - var buy_num_data = res.data.data;  
1906 - if (buy_num_data.promgoodsbuynum) {  
1907 - promgoodsbuynum = buy_num_data.promgoodsbuynum;  
1908 - }  
1909 - })  
1910 -  
1911 - //-- 组合购活动是限购 --  
1912 - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`;  
1913 - let res = await getApp().request.promiseGet(url, {});  
1914 - let userbuynum = 0  
1915 - if (res.data.code == 0 && res.data.data) {  
1916 - userbuynum = res.data.data.userbuynum  
1917 - }  
1918 -  
1919 - //-- 判断是不是超出商品的限购 --  
1920 - if (zh_gd_fd.buyqty > 0 && zh_gd_fd.promgoodsbuynum >= zh_gd_fd.buyqty) {  
1921 - is_zh_ok = 0;  
1922 - }  
1923 - //--- 要判断这个商品的必买有没有满足,如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 ---  
1924 - if (is_state == 1) {  
1925 - //-- 看有没有必买商品不满足的时候 --  
1926 - var f_gd = gdlist.find(function (e) {  
1927 - return e.zhqty > 0 && e.goods_id != item1.goods_id;  
1928 - })  
1929 - if (f_gd) {  
1930 - is_zh_ok = 0;  
1931 - }  
1932 - //-- 同时商品的购买数量有没有满足 --  
1933 - if(item1.goods_num<zh_pro0.zhbuyqty){  
1934 - is_zh_ok = 0;  
1935 - }  
1936 - }  
1937 - //判断组合购活动是不是满足  
1938 - if(is_zh_ok){  
1939 - if(!item1.more_cx) item1.more_cx=[];  
1940 - var show_time=ut.formatTime(zh_pro0.start_time)+"至"+ ut.formatTime(zh_pro0.end_time);  
1941 - item1.more_cx.push({  
1942 - prom_type:7,prom_id:zh_id,gdlist:gdlist,  
1943 - title: zh_pro0.name,  
1944 - show_time: show_time,  
1945 - id:zh_id  
1946 - })  
1947 - }  
1948 - }  
1949 - }  
1950 -  
1951 - }  
1952 -  
1953 - //调用接口判断优惠,  
1954 - var m_res=await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + item1.goods_id + "/0" + "/" + user_id, {});  
1955 - if(m_res && m_res.data.code == 0 && m_res.data.data){  
1956 -  
1957 - var r_data = m_res.data.data;  
1958 - //-- 如果是搭配购的时候 --  
1959 - if (r_data.collocationList) {  
1960 - if(!item1.more_cx) item1.more_cx=[];  
1961 -  
1962 - var show_price= '¥'+r_data.collocationPromList.max+'-'+ r_data.collocationPromList.min;  
1963 - var show_time=ut.formatTime(r_data.collocationPromList.start_time)+"至"+ ut.formatTime(r_data.collocationPromList.end_time);  
1964 -  
1965 - item1.more_cx.push({  
1966 - prom_type:5,prom_id: r_data.collocationPromList.id,  
1967 - title: r_data.collocationPromList.title,  
1968 - show_time: show_time,  
1969 - id:r_data.collocationPromList.id,  
1970 - });  
1971 - }  
1972 - //-- 如果是阶梯促销的时候 --  
1973 - if (r_data.ladderLists) {  
1974 - var act_id = r_data.ladderLists[0].form_id;  
1975 - //-- 判断会员能不能参与阶梯促销 --  
1976 - await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => {  
1977 - if (res.data.code == 0 && res.data.data) {  
1978 - th.data.ladder_map[act_id] = res.data.data;  
1979 - if(!item1.more_cx) item1.more_cx=[];  
1980 -  
1981 - var prom_content = "";  
1982 -  
1983 - for (let jj in r_data.ladderLists) {  
1984 - if (r_data.ladderLists[jj].discount == 10) {  
1985 - prom_content += "第" + (parseInt(jj) + 1) + "件原价,";  
1986 - } else {  
1987 - prom_content += "第" + (parseInt(jj) + 1) + "件" + r_data.ladderLists[jj].discount + "折,";  
1988 - }  
1989 - }  
1990 - prom_content = ut.sub_last(prom_content);  
1991 -  
1992 - var s_time=res.data.data.start_time;  
1993 - var e_time=res.data.data.end_time;  
1994 -  
1995 - item1.more_cx.push({  
1996 - prom_type:10,prom_id: act_id,  
1997 - title: prom_content,  
1998 - show_time: ut.formatTime(s_time) + "至" + ut.formatTime(e_time),  
1999 - id:act_id  
2000 - });  
2001 - }  
2002 - })  
2003 -  
2004 - if(th.data.ladder_map[act_id]){  
2005 - //-- 获取阶梯规则 --  
2006 - var url1 = "/api/weshop/prom/ladderList/list";  
2007 - var req_data0 = {  
2008 - store_id: os.stoid,  
2009 - form_id: act_id,  
2010 - }  
2011 - await getApp().request.promiseGet(url1, {  
2012 - data: req_data0  
2013 - }).then(rs1 => {  
2014 - if (rs1.data.code == 0 && rs1.data.data) {  
2015 - var gdlist = rs1.data.data;  
2016 - th.data.ladder_map[act_id].ladder_list = gdlist;  
2017 - }  
2018 - })  
2019 - }  
2020 - }  
2021 - //-- 优惠促销的时候 -- 此时要注意活动的限购次数,以及活动的购买金额或者购买数量有没有满足  
2022 - if (r_data.promGoodsLists) {  
2023 -  
2024 - var fir_act = r_data.promGoodsLists[0];  
2025 - //-- 计算一下限购,满足限购数才显示 --  
2026 - var url = `/api/weshop/ordergoods/getUserBuyPromNum?is_all=1&store_id=${os.stoid}&user_id=${user_id}&prom_type=3&prom_id=${fir_act.prom_id}`;  
2027 - let res_o = await getApp().request.promiseGet(url, {});  
2028 - let user_pre_buynum=0  
2029 - if(res_o.data.code==0 && res_o.data.data){  
2030 - user_pre_buynum=res_o.data.data.userbuynum  
2031 - }  
2032 - //--- 这个地方是在计算优惠促销的限购 ---  
2033 - if(!fir_act.limit_num || th.data.user_pre_buynum<fir_act.limit_num){  
2034 -  
2035 -  
2036 - var more_arr = [];  
2037 - //减价  
2038 - if (fir_act.money > 0) more_arr.push('减价'+fir_act.money+'元');  
2039 - if (fir_act.sale > 0) more_arr.push('打'+fir_act.sale+'折');  
2040 - if (fir_act.past ==1) more_arr.push('包邮');  
2041 - if (fir_act.intValue > 0) more_arr.push('送'+fir_act.intValue+'积分');  
2042 - if (fir_act.couponId > 0) more_arr.push('送'+fir_act.couponMoney+'元优惠券');  
2043 - if (fir_act.gift_id) {  
2044 - var is_more_gf=fir_act.gift_id.split(',')  
2045 - if(is_more_gf.length>1){  
2046 - more_arr.push('送赠品');  
2047 - }else{  
2048 - more_arr.push('送'+fir_act.goods_name+' x'+fir_act.zp_num);  
2049 - }  
2050 - }  
2051 - if (fir_act.lb_id) more_arr.push('送'+fir_act.lbtitle);  
2052 - if (fir_act.zxlb_id) more_arr.push('送'+fir_act.zxlbtitle);  
2053 -  
2054 - var push_item={  
2055 - prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act,  
2056 - condition: fir_act.condition + (fir_act.prom_type == 1 ? '件' : '元'),  
2057 - limit: '每人' + (fir_act.limit_num ? '限参与' + fir_act.limit_num + '次' : '参与不限次'),  
2058 - more: more_arr,  
2059 - id:fir_act.prom_id  
2060 - };  
2061 -  
2062 - //--- 如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 ---  
2063 - if (is_state == 1) {  
2064 - //-- 按件进行计算 --  
2065 - if (fir_act.prom_type == 1) {  
2066 - if (fir_act.condition <= item1.goods_num) {  
2067 - item1.more_cx.push(push_item);  
2068 - }  
2069 - }else{  
2070 - //-- 按数量进行计算 --  
2071 - var all_price = item1.goods_price * item1.goods_num;  
2072 - if (parseFloat(fir_act.condition) <= parseFloat(parseFloat(all_price).toFixed(2))) {  
2073 - item1.more_cx.push(push_item);  
2074 - } 1819 + store_id: os.stoid,
  1820 + user_id: getApp().globalData.user_id,
  1821 + goods_id: item1.goods_id,
  1822 + goods_num: item1.goods_num,
  1823 + goods_price: item1.goods_price,
  1824 + }
  1825 + //--- 调用接口获取活动 ---
  1826 + await getApp().promiseGet('/api/weshop/goods/getGoodsPromInfo', {data:req_d}).then(res => {
  1827 + if(res.data.code==0){
  1828 + item1.more_cx=res.data.data.more_cx;
  1829 +
  1830 + if(res.data.data.zh_pro){
  1831 + th.data.zhhe_act_map[res.data.data.zh_pro.id]=res.data.data.zh_pro;
  1832 + }
  1833 + if(res.data.data.ladder_pro){
  1834 + var ladder_pro=res.data.data.ladder_pro;
  1835 + th.data.ladder_map[ladder_pro.id]=ladder_pro;
  1836 + var fd=res.data.data.more_cx.find(function (e){
  1837 + return e.prom_type==10;
  1838 + })
  1839 + if(fd){
  1840 + th.data.ladder_map[ladder_pro.id].ladder_list=fd.ladder_list;
  1841 + }
2075 } 1842 }
2076 -  
2077 - }else{  
2078 - if(!item1.more_cx) item1.more_cx=[];  
2079 - item1.more_cx.push(push_item);  
2080 - }  
2081 - }  
2082 - }  
2083 - }  
2084 - 1843 + }
  1844 + })
2085 }, 1845 },
2086 1846
2087 //---------------检查是否有收货地址------------------- 1847 //---------------检查是否有收货地址-------------------
@@ -7387,6 +7147,8 @@ Page({ @@ -7387,6 +7147,8 @@ Page({
7387 //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 -- 7147 //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 --
7388 if(!ck_prom_type) ck_prom_type=k_item.act_arr[0]; 7148 if(!ck_prom_type) ck_prom_type=k_item.act_arr[0];
7389 7149
  7150 + k_item.sele_prom_type=ck_prom_type.prom_type;
  7151 +
7390 //-- 此时要把购物车中的商品确定活动 -- 7152 //-- 此时要把购物车中的商品确定活动 --
7391 for (var b=0; b<ck_prom_type.goods.length;b++){ 7153 for (var b=0; b<ck_prom_type.goods.length;b++){
7392 //-- 开始查找 -- 7154 //-- 开始查找 --
@@ -7430,8 +7192,8 @@ Page({ @@ -7430,8 +7192,8 @@ Page({
7430 cx_act_map.push(p_item); 7192 cx_act_map.push(p_item);
7431 } 7193 }
7432 } 7194 }
7433 - goods[i].prom_type=0;  
7434 - goods[i].prom_id=0; 7195 + //goods[i].prom_type=0;
  7196 + //goods[i].prom_id=0;
7435 } 7197 }
7436 //-- 如果活动数量大于1个,那么活动就要排序一下,有商品种类数最多排再前面,降序进行排列 -- 7198 //-- 如果活动数量大于1个,那么活动就要排序一下,有商品种类数最多排再前面,降序进行排列 --
7437 if(cx_act_map.length>1){ 7199 if(cx_act_map.length>1){
@@ -7540,6 +7302,11 @@ Page({ @@ -7540,6 +7302,11 @@ Page({
7540 if(can_calc_cx.length){ 7302 if(can_calc_cx.length){
7541 for(var p=0;p<can_calc_cx.length;p++){ 7303 for(var p=0;p<can_calc_cx.length;p++){
7542 var ch_map=[]; 7304 var ch_map=[];
  7305 +
  7306 + //-- 立即购买的时候,选择的活动是确定的 --
  7307 + if(can_calc_cx[p].prom_type==can_calc_cx[p].goods[0].prom_type){
  7308 + can_calc_cx[p].sele=1;
  7309 + }
7543 can_calc_cx[p].goods.map(function (gd){ 7310 can_calc_cx[p].goods.map(function (gd){
7544 ch_map.push(gd.goods_id); 7311 ch_map.push(gd.goods_id);
7545 }) 7312 })
@@ -7596,6 +7363,9 @@ Page({ @@ -7596,6 +7363,9 @@ Page({
7596 } 7363 }
7597 //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 -- 7364 //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 --
7598 if(!ck_prom_type) ck_prom_type=k_item.act_arr[0]; 7365 if(!ck_prom_type) ck_prom_type=k_item.act_arr[0];
  7366 +
  7367 + k_item.sele_prom_type=ck_prom_type.prom_type;
  7368 +
7599 //-- 此时要把购物车中的商品确定活动 -- 7369 //-- 此时要把购物车中的商品确定活动 --
7600 for (var b=0; b<ck_prom_type.goods.length;b++){ 7370 for (var b=0; b<ck_prom_type.goods.length;b++){
7601 //-- 开始查找 -- 7371 //-- 开始查找 --
@@ -7653,14 +7423,15 @@ Page({ @@ -7653,14 +7423,15 @@ Page({
7653 this.data.sele_cx_group_cidx=idx; 7423 this.data.sele_cx_group_cidx=idx;
7654 this.data.cx_group_gd_key=gd_key; 7424 this.data.cx_group_gd_key=gd_key;
7655 //-- 获取到-- 7425 //-- 获取到--
7656 - var cx_prom_group=this.data.requestData[idx].show_can_cx[gd_key].act_arr; 7426 + var cx_prom_group=this.data.cartlist[idx].show_can_cx[gd_key].act_arr;
7657 7427
7658 var cx_arr=[]; 7428 var cx_arr=[];
7659 - var find_sele=0; 7429 +
7660 for (var h=0;h<cx_prom_group.length;h++){ 7430 for (var h=0;h<cx_prom_group.length;h++){
  7431 + cx_prom_group[h].act.sele=0;
7661 //-- 看有没有选中的活动 -- 7432 //-- 看有没有选中的活动 --
7662 if(cx_prom_group[h].sele){ 7433 if(cx_prom_group[h].sele){
7663 - find_sele=1; 7434 + cx_prom_group[h].act.sele=1;
7664 } 7435 }
7665 cx_arr.push(cx_prom_group[h].act); 7436 cx_arr.push(cx_prom_group[h].act);
7666 } 7437 }
@@ -7668,7 +7439,7 @@ Page({ @@ -7668,7 +7439,7 @@ Page({
7668 //-- if(!find_sele) cx_arr[0].sele=1; -- 7439 //-- if(!find_sele) cx_arr[0].sele=1; --
7669 var cp_arr=JSON.parse(JSON.stringify(cx_arr)); 7440 var cp_arr=JSON.parse(JSON.stringify(cx_arr));
7670 var pro_pop = this.selectComponent("#pro_pop"); //组件的id 7441 var pro_pop = this.selectComponent("#pro_pop"); //组件的id
7671 - pro_pop.set_init(1,cx_arr,1); 7442 + pro_pop.set_init(1,cp_arr);
7672 }, 7443 },
7673 7444
7674 //--- 选择回来时候的选择 --- 7445 //--- 选择回来时候的选择 ---
@@ -7677,17 +7448,41 @@ Page({ @@ -7677,17 +7448,41 @@ Page({
7677 var idx=this.data.sele_cx_group_cidx; 7448 var idx=this.data.sele_cx_group_cidx;
7678 var gd_key= this.data.cx_group_gd_key; 7449 var gd_key= this.data.cx_group_gd_key;
7679 //-- 获取到-- 7450 //-- 获取到--
7680 - var cx_prom_group=this.data.requestData[idx].show_can_cx[gd_key].act_arr; 7451 + var cx_prom_group=this.data.cartlist[idx].show_can_cx[gd_key].act_arr;
  7452 + var pk=this.data.cartlist[idx].pickup_id;
7681 7453
7682 for(var dx=0;dx<cx_prom_group.length;dx++){ 7454 for(var dx=0;dx<cx_prom_group.length;dx++){
7683 if(dx!=sele_idx) cx_prom_group[dx].sele=0; 7455 if(dx!=sele_idx) cx_prom_group[dx].sele=0;
7684 else cx_prom_group[dx].sele=1; 7456 else cx_prom_group[dx].sele=1;
7685 } 7457 }
7686 -  
7687 //选择后就要把活动确定下来 7458 //选择后就要把活动确定下来
  7459 + //确定一下活动,先看一下有没有选择的活动
  7460 + var ck_prom_type=cx_prom_group.find(function (el){
  7461 + return el.sele;
  7462 + })
7688 7463
7689 - //重新计算价格  
7690 - this.calculatePrice(); 7464 + this.data.cartlist[idx].show_can_cx[gd_key].sele_prom_type=ck_prom_type.prom_type;
  7465 + var goods= this.data.cartlist_y
  7466 + //-- 此时要把购物车中的商品确定活动 --
  7467 + for (var b=0; b<ck_prom_type.goods.length;b++){
  7468 + //-- 开始查找 --
  7469 + var fg=goods.findIndex(function (g_item){
  7470 + return g_item.goods_id==ck_prom_type.goods[b].goods_id
  7471 + && [0,3,5,7,10].indexOf(g_item.prom_type)>-1
  7472 + && g_item.pick_id==pk
  7473 + })
  7474 + if(fg>-1){
  7475 + goods[fg].prom_type=ck_prom_type.prom_type;
  7476 + goods[fg].prom_id=ck_prom_type.prom_id;
  7477 + }
  7478 + }
  7479 +
  7480 + wx.showLoading({
  7481 + title: "处理中.",
  7482 + mask: true
  7483 + })
  7484 + //-- 重新计算一下价格 --
  7485 + this.get_cart_next(null,1);
7691 7486
7692 } 7487 }
7693 7488
packageE/pages/cart/cart2/cart2.json
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 "enablePullDownRefresh": false, 3 "enablePullDownRefresh": false,
4 "usingComponents": { 4 "usingComponents": {
5 "warn": "/components/long_warn/long_warn", 5 "warn": "/components/long_warn/long_warn",
6 - "cart_collect_temp": "/components/cart_collect_temp/cart_collect_temp" 6 + "cart_collect_temp": "/components/cart_collect_temp/cart_collect_temp",
  7 + "pro_pop": "/components/promate_pop/promate_pop"
7 } 8 }
8 } 9 }
9 \ No newline at end of file 10 \ No newline at end of file
packageE/pages/cart/cart2/cart2.wxml
@@ -116,26 +116,30 @@ @@ -116,26 +116,30 @@
116 </view> 116 </view>
117 <!-- 验证活动是不是多个,要不要显示切换 --> 117 <!-- 验证活动是不是多个,要不要显示切换 -->
118 <!-- 新增促销多活动的排版 --> 118 <!-- 新增促销多活动的排版 -->
119 - <view class="bdb16"  
120 - wx:if="{{util.is_more_act(items,item.show_can_cx) && item.show_can_cx[items.goods_id] && item.show_can_cx[items.goods_id].act_arr.length>1}}">  
121 - <view bindtap="switch_cx_group"  
122 - data-index="{{pidx}}"  
123 - data-gd_key="{{items.goods_id}}"  
124 - class="cx-frame flex" style="position: relative">  
125 - <view class="cx-sizs fs30">促销</view>  
126 - <view class="flex ai_c f1 pdh20">  
127 - <view class="xc-coupon-fram" wx:for="{{item.show_can_cx[items.goods_id].act_arr}}" >  
128 - <view wx:if="{{item.prom_type==3}}" class="xc-coupon t-c four-level-word">优惠促销</view>  
129 - <view wx:if="{{item.prom_type==5}}" class="xc-coupon t-c four-level-word">搭配促销</view>  
130 - <view wx:if="{{item.prom_type==7}}" class="xc-coupon t-c four-level-word">组合购</view>  
131 - <view wx:if="{{item.prom_type==10}}" class="xc-coupon t-c four-level-word">阶梯促销</view>  
132 - </view>  
133 - </view>  
134 - <view class="cx-obtain-coupon wsize">  
135 - <text class="bg_jj"></text>  
136 - </view>  
137 - </view>  
138 - </view> 119 +
  120 + <block wx:if="{{(util.is_more_act(items,item.show_can_cx) && item.show_can_cx[items.goods_id] && item.show_can_cx[items.goods_id].act_arr.length>1)}}">
  121 + <view class="bdb16" wx:if="{{util.check_show(items,item.show_can_cx[items.goods_id].sele_prom_type)}}">
  122 + <view bindtap="switch_cx_group"
  123 + data-index="{{pidx}}"
  124 + data-gd_key="{{items.goods_id}}"
  125 + class="cx-frame flex" style="position: relative">
  126 + <view class="cx-sizs fs30">促销</view>
  127 + <view class="flex ai_c f1 pdh20">
  128 + <view class="xc-coupon-fram" wx:for="{{item.show_can_cx[items.goods_id].act_arr}}" >
  129 + <view wx:if="{{item.prom_type==3}}" class="xc-coupon t-c four-level-word">优惠促销</view>
  130 + <view wx:if="{{item.prom_type==5}}" class="xc-coupon t-c four-level-word">搭配促销</view>
  131 + <view wx:if="{{item.prom_type==7}}" class="xc-coupon t-c four-level-word">组合购</view>
  132 + <view wx:if="{{item.prom_type==10}}" class="xc-coupon t-c four-level-word">阶梯促销</view>
  133 + </view>
  134 + </view>
  135 + <view class="cx-obtain-coupon wsize">
  136 + <text class="bg_jj"></text>
  137 + </view>
  138 + </view>
  139 + </view>
  140 + </block>
  141 +
  142 +
139 </block> 143 </block>
140 144
141 <!--此时是多个商品参与活动的切换 验证活动是不是多个,要不要显示切换 --> 145 <!--此时是多个商品参与活动的切换 验证活动是不是多个,要不要显示切换 -->
@@ -177,7 +181,7 @@ @@ -177,7 +181,7 @@
177 <view class="flex"> 181 <view class="flex">
178 <view class="card_bg ellipsis-1" style="margin-right: 10rpx;"> 182 <view class="card_bg ellipsis-1" style="margin-right: 10rpx;">
179 <image src="{{imgUrl}}/miniapp/images/plus/dj_icon.png"> 183 <image src="{{imgUrl}}/miniapp/images/plus/dj_icon.png">
180 - </ image> 184 + </image>
181 <text class="card_name">{{show_card.CardName}}</text> 185 <text class="card_name">{{show_card.CardName}}</text>
182 </view> 186 </view>
183 <view>立减 <text style="color:#f23030;">{{filters.toFix(item.card_cut_price,2) }}</text> 元</view> 187 <view>立减 <text style="color:#f23030;">{{filters.toFix(item.card_cut_price,2) }}</text> 元</view>
packageE/pages/cart/cart2/cart2.wxss
@@ -1164,7 +1164,7 @@ margin-left: 20rpx; @@ -1164,7 +1164,7 @@ margin-left: 20rpx;
1164 1164
1165 .xc-coupon-fram { 1165 .xc-coupon-fram {
1166 position: relative; 1166 position: relative;
1167 - margin-right: 16rpx; 1167 + margin-right: 11rpx;
1168 /* width:200rpx; */ 1168 /* width:200rpx; */
1169 /* padding-top:30rpx; */ 1169 /* padding-top:30rpx; */
1170 1170
@@ -1177,7 +1177,7 @@ margin-left: 20rpx; @@ -1177,7 +1177,7 @@ margin-left: 20rpx;
1177 background-color: #d60021; 1177 background-color: #d60021;
1178 /* margin:0 auto; */ 1178 /* margin:0 auto; */
1179 color: #fff; 1179 color: #fff;
1180 - padding: 6rpx 20rpx; 1180 + padding: 6rpx 16rpx;
1181 1181
1182 } 1182 }
1183 1183
packageE/pages/cart/cart2/filter.wxs
@@ -14,7 +14,15 @@ function is_more_act(items,show_can_cx){ @@ -14,7 +14,15 @@ function is_more_act(items,show_can_cx){
14 return true; 14 return true;
15 } 15 }
16 16
  17 +function check_show(items,sele_prom_type){
  18 + if([7,10].indexOf(sele_prom_type)>-1){
  19 + if(!items.is_act_last) return false;
  20 + }
  21 + return true;
  22 +}
  23 +
17 module.exports = { 24 module.exports = {
18 format: format, 25 format: format,
19 - is_more_act:is_more_act 26 + is_more_act:is_more_act,
  27 + check_show:check_show
20 } 28 }
packageE/pages/cart/cart2/ladder_calculate.js
@@ -129,8 +129,12 @@ module.exports = { @@ -129,8 +129,12 @@ module.exports = {
129 goods.splice(idx, 1); 129 goods.splice(idx, 1);
130 } 130 }
131 131
  132 +
  133 +
132 //-- 只统计是参与活动的商品 -- 134 //-- 只统计是参与活动的商品 --
133 for (var ij in goods) { 135 for (var ij in goods) {
  136 + goods[ij].is_act_last=0;
  137 +
134 var iter = goods[ij]; 138 var iter = goods[ij];
135 if (iter.prom_type != 10 || iter.prom_id != act_item.id) { 139 if (iter.prom_type != 10 || iter.prom_id != act_item.id) {
136 continue; 140 continue;
@@ -138,6 +142,8 @@ module.exports = { @@ -138,6 +142,8 @@ module.exports = {
138 all_price0 += iter.goods_num * iter.goods_price; 142 all_price0 += iter.goods_num * iter.goods_price;
139 } 143 }
140 144
  145 + goods[goods.length-1].is_act_last=1;
  146 +
141 if(!c_item.ladder_prom_goods) c_item.ladder_prom_goods={}; 147 if(!c_item.ladder_prom_goods) c_item.ladder_prom_goods={};
142 if(!c_item.ladder_prom_goods[act_item.id]) c_item.ladder_prom_goods[act_item.id]={}; 148 if(!c_item.ladder_prom_goods[act_item.id]) c_item.ladder_prom_goods[act_item.id]={};
143 149
packageE/pages/cart/cart2/zh_calculate.js
@@ -327,12 +327,16 @@ module.exports = { @@ -327,12 +327,16 @@ module.exports = {
327 327
328 //-- 只统计是参与活动的商品 -- 328 //-- 只统计是参与活动的商品 --
329 for (var ij in goods) { 329 for (var ij in goods) {
  330 + goods[ij].is_act_last=0;
330 var iter = goods[ij]; 331 var iter = goods[ij];
331 if (iter.prom_type != 7 || iter.prom_id != act.id) { 332 if (iter.prom_type != 7 || iter.prom_id != act.id) {
332 continue; 333 continue;
333 } 334 }
334 all_price0 += iter.goods_num * iter.goods_price; 335 all_price0 += iter.goods_num * iter.goods_price;
335 } 336 }
  337 +
  338 + goods[goods.length-1].is_act_last=1;
  339 +
336 //-- 活动的条件已经满足 -- 340 //-- 活动的条件已经满足 --
337 c_item.zh_prom_goods[act.id].is_has_zh = 1; 341 c_item.zh_prom_goods[act.id].is_has_zh = 1;
338 c_item.is_has_zh = 1; 342 c_item.is_has_zh = 1;
pages/cart/cart/cart.js
@@ -57,294 +57,34 @@ Page({ @@ -57,294 +57,34 @@ Page({
57 async buy_pro_group(item1, is_state) { 57 async buy_pro_group(item1, is_state) {
58 //-- 代发商品不参与任何活动 -- 58 //-- 代发商品不参与任何活动 --
59 if(item1.whsle_id) return false; 59 if(item1.whsle_id) return false;
60 - var th=this;  
61 - var url = '/api/weshop/activitylist/listGoodActInfo2New';  
62 - var user_id = getApp().globalData.user_id;  
63 - var zh_id = 0;  
64 - var zh_prom = null;  
65 - var gdlist = null;  
66 60
  61 + var th=this;
67 var req_d = { 62 var req_d = {
68 - "store_id": os.stoid,  
69 - "goods_id": item1.goods_id,  
70 - "user_id": user_id, 63 + store_id: os.stoid,
  64 + user_id: getApp().globalData.user_id,
  65 + goods_id: item1.goods_id,
  66 + goods_num: item1.goods_num,
  67 + goods_price: item1.goods_price,
71 } 68 }
72 -  
73 - await getApp().request.promiseGet(url, {data: req_d}).then(e => {  
74 - if (e.data.code == 0 && e.data.data && e.data.data.length > 0) {  
75 - var arr = e.data.data;  
76 - if (arr.length) {  
77 - var arr3 = arr.filter(function (e) {  
78 - return e.s_time < ut.gettimestamp() && e.prom_type == 7;  
79 - })  
80 - if (arr3 && arr3.length) {  
81 - zh_id = arr3[0].act_id;  
82 - }  
83 - }  
84 - }  
85 - })  
86 -  
87 - //-- 如果有组合购的时候,同时还要判断单件商品的购买数量有没有满足组合购的条件 --  
88 - if (zh_id) {  
89 - var is_zh_ok = 1;  
90 - var zh_pro0 = null;  
91 - //-- 获取活动信息 --  
92 - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + zh_id + "/" + user_id;  
93 - await getApp().request.promiseGet(url, {}).then(res => {  
94 - if (res.data.code == 0 && res.data.data) {  
95 - //如果活动已经结束  
96 - if (res.data.data.is_end == 1) {  
97 - is_zh_ok = 0;  
98 - }  
99 - if (ut.gettimestamp() > res.data.data.end_time) {  
100 - is_zh_ok = 0;  
101 - }  
102 - zh_pro0 = res.data.data;  
103 - //--- 在这里要判断一下活动的组合购总数量 ---  
104 - if (zh_pro0.zh_num > 0 && zh_pro0.zh_buy_num >= zh_pro0.zh_num) {  
105 - is_zh_ok = 0;  
106 - }  
107 - } else {  
108 - is_zh_ok = 0;  
109 - }  
110 - })  
111 -  
112 - //--- 首先组合购的限购 ---  
113 - if(is_zh_ok){  
114 - //-- 组合购活动是限购 --  
115 - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`;  
116 - let res = await getApp().request.promiseGet(url, {  
117 - data: {}  
118 - });  
119 - let userbuynum = 0  
120 - if (res.data.code == 0 && res.data.data) {  
121 - userbuynum = res.data.data.userbuynum  
122 - }  
123 -  
124 - if(zh_pro0.buy_limit>0 && zh_pro0.buy_limit<=userbuynum){  
125 - is_zh_ok=0;  
126 - }  
127 - }  
128 -  
129 - //-- 如果满足条件,才会显示活动 --  
130 - if (is_zh_ok) {  
131 -  
132 - //-- 组合的数组填充一下 --  
133 - th.data.zuhe_map[zh_pro0.id] = zh_pro0;  
134 -  
135 - var url1 = "/api/weshop/prom/zhbuyGoods/page";  
136 - var req_data = {  
137 - page: 1, pageSize: 2000,  
138 - store_id: os.stoid,  
139 - zh_id: zh_id, 69 + //--- 调用接口获取活动 ---
  70 + await getApp().promiseGet('/api/weshop/goods/getGoodsPromInfo', {data:req_d}).then(res => {
  71 + if(res.data.code==0){
  72 + item1.more_cx=res.data.data.more_cx;
  73 + if(res.data.data.zh_pro){
  74 + th.data.zuhe_map[res.data.data.zh_pro.id]=res.data.data.zh_pro;
140 } 75 }
141 -  
142 - await getApp().request.promiseGet(url1, {  
143 - data: req_data  
144 - }).then(res => {  
145 - if (ut.ajax_ok(res)) {  
146 - gdlist = res.data.data.pageData;  
147 - }  
148 - })  
149 -  
150 - var zh_gd_fd = gdlist.find(function (e) {  
151 - return e.goods_id == item1.goods_id;  
152 - })  
153 -  
154 - if (is_zh_ok) {  
155 - //-- 商品的限购 --  
156 - var promgoodsbuynum = 0;  
157 - //--要获得商品,该用户买了多少件,同步应用--  
158 - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {  
159 - data: {  
160 - store_id: os.stoid,  
161 - user_id: getApp().globalData.user_id,  
162 - goods_id: item1.goods_id,  
163 - prom_type: 7,  
164 - prom_id: zh_id  
165 - },  
166 - }).then(res => {  
167 - var buy_num_data = res.data.data;  
168 - if (buy_num_data.promgoodsbuynum) {  
169 - promgoodsbuynum = buy_num_data.promgoodsbuynum;  
170 - } 76 + if(res.data.data.ladder_pro){
  77 + var ladder_pro=res.data.data.ladder_pro;
  78 + th.data.ladder_map[ladder_pro.id]=ladder_pro;
  79 + var fd=res.data.data.more_cx.find(function (e){
  80 + return e.prom_type==10;
171 }) 81 })
172 -  
173 - //-- 组合购活动是限购 --  
174 - var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`;  
175 - let res = await getApp().request.promiseGet(url, {});  
176 - let userbuynum = 0  
177 - if (res.data.code == 0 && res.data.data) {  
178 - userbuynum = res.data.data.userbuynum  
179 - }  
180 -  
181 - //-- 判断是不是超出商品的限购 --  
182 - if (zh_gd_fd.buyqty > 0 && zh_gd_fd.promgoodsbuynum >= zh_gd_fd.buyqty) {  
183 - is_zh_ok = 0;  
184 - }  
185 - //--- 要判断这个商品的必买有没有满足,如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 ---  
186 - if (is_state == 1) {  
187 - //-- 看有没有必买商品不满足的时候 --  
188 - var f_gd = gdlist.find(function (e) {  
189 - return e.zhqty > 0 && e.goods_id != item1.goods_id;  
190 - })  
191 - if (f_gd) {  
192 - is_zh_ok = 0;  
193 - }  
194 - //-- 同时商品的购买数量有没有满足 --  
195 - if(item1.goods_num<zh_pro0.zhbuyqty){  
196 - is_zh_ok = 0;  
197 - }  
198 - }  
199 - //判断组合购活动是不是满足  
200 - if(is_zh_ok){  
201 - if(!item1.more_cx) item1.more_cx=[];  
202 - var show_time=ut.formatTime(zh_pro0.start_time)+"至"+ ut.formatTime(zh_pro0.end_time);  
203 - item1.more_cx.push({  
204 - prom_type:7,prom_id:zh_id,gdlist:gdlist,  
205 - title: zh_pro0.name,  
206 - show_time: show_time,  
207 - id:zh_id  
208 - }) 82 + if(fd){
  83 + th.data.ladder_map[ladder_pro.id].ladder_list=fd.ladder_list;
209 } 84 }
210 } 85 }
211 } 86 }
212 -  
213 - }  
214 -  
215 - //调用接口判断优惠,  
216 - var m_res=await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + item1.goods_id + "/0" + "/" + user_id, {});  
217 - if(m_res && m_res.data.code == 0 && m_res.data.data){  
218 -  
219 - var r_data = m_res.data.data;  
220 - //-- 如果是搭配购的时候 --  
221 - if (r_data.collocationList) {  
222 - if(!item1.more_cx) item1.more_cx=[];  
223 -  
224 - var show_price= '¥'+r_data.collocationPromList.max+'-'+ r_data.collocationPromList.min;  
225 - var show_time=ut.formatTime(r_data.collocationPromList.start_time)+"至"+ ut.formatTime(r_data.collocationPromList.end_time);  
226 -  
227 - item1.more_cx.push({  
228 - prom_type:5,prom_id: r_data.collocationPromList.id,  
229 - title: r_data.collocationPromList.title,  
230 - show_time: show_time,  
231 - id:r_data.collocationPromList.id,  
232 - });  
233 - }  
234 - //-- 如果是阶梯促销的时候 --  
235 - if (r_data.ladderLists) {  
236 - var act_id = r_data.ladderLists[0].form_id;  
237 - //-- 判断会员能不能参与阶梯促销 --  
238 - await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => {  
239 - if (res.data.code == 0 && res.data.data) {  
240 - th.data.ladder_map[act_id] = res.data.data;  
241 - if(!item1.more_cx) item1.more_cx=[];  
242 -  
243 - var prom_content = "";  
244 -  
245 - for (let jj in r_data.ladderLists) {  
246 - if (r_data.ladderLists[jj].discount == 10) {  
247 - prom_content += "第" + (parseInt(jj) + 1) + "件原价,";  
248 - } else {  
249 - prom_content += "第" + (parseInt(jj) + 1) + "件" + r_data.ladderLists[jj].discount + "折,";  
250 - }  
251 - }  
252 - prom_content = ut.sub_last(prom_content);  
253 -  
254 - var s_time=res.data.data.start_time;  
255 - var e_time=res.data.data.end_time;  
256 -  
257 - item1.more_cx.push({  
258 - prom_type:10,prom_id: act_id,  
259 - title: prom_content,  
260 - show_time: ut.formatTime(s_time) + "至" + ut.formatTime(e_time),  
261 - id:act_id  
262 - });  
263 - }  
264 - })  
265 -  
266 - if(th.data.ladder_map[act_id]){  
267 - //-- 获取阶梯规则 --  
268 - var url1 = "/api/weshop/prom/ladderList/list";  
269 - var req_data0 = {  
270 - store_id: os.stoid,  
271 - form_id: act_id,  
272 - }  
273 - await getApp().request.promiseGet(url1, {  
274 - data: req_data0  
275 - }).then(rs1 => {  
276 - if (rs1.data.code == 0 && rs1.data.data) {  
277 - var gdlist = rs1.data.data;  
278 - th.data.ladder_map[act_id].ladder_list = gdlist;  
279 - }  
280 - })  
281 - }  
282 - }  
283 - //-- 优惠促销的时候 -- 此时要注意活动的限购次数,以及活动的购买金额或者购买数量有没有满足  
284 - if (r_data.promGoodsLists) {  
285 -  
286 - var fir_act = r_data.promGoodsLists[0];  
287 - //-- 计算一下限购,满足限购数才显示 --  
288 - var url = `/api/weshop/ordergoods/getUserBuyPromNum?is_all=1&store_id=${os.stoid}&user_id=${user_id}&prom_type=3&prom_id=${fir_act.prom_id}`;  
289 - let res_o = await getApp().request.promiseGet(url, {});  
290 - let user_pre_buynum=0  
291 - if(res_o.data.code==0 && res_o.data.data){  
292 - user_pre_buynum=res_o.data.data.userbuynum  
293 - }  
294 - //--- 这个地方是在计算优惠促销的限购 ---  
295 - if(!fir_act.limit_num || th.data.user_pre_buynum<fir_act.limit_num){  
296 -  
297 -  
298 - var more_arr = [];  
299 - //减价  
300 - if (fir_act.money > 0) more_arr.push('减价'+fir_act.money+'元');  
301 - if (fir_act.sale > 0) more_arr.push('打'+fir_act.sale+'折');  
302 - if (fir_act.past ==1) more_arr.push('包邮');  
303 - if (fir_act.intValue > 0) more_arr.push('送'+fir_act.intValue+'积分');  
304 - if (fir_act.couponId > 0) more_arr.push('送'+fir_act.couponMoney+'元优惠券');  
305 - if (fir_act.gift_id) {  
306 - var is_more_gf=fir_act.gift_id.split(',')  
307 - if(is_more_gf.length>1){  
308 - more_arr.push('送赠品');  
309 - }else{  
310 - more_arr.push('送'+fir_act.goods_name+' x'+fir_act.zp_num);  
311 - }  
312 - }  
313 - if (fir_act.lb_id) more_arr.push('送'+fir_act.lbtitle);  
314 - if (fir_act.zxlb_id) more_arr.push('送'+fir_act.zxlbtitle);  
315 -  
316 - var push_item={  
317 - prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act,  
318 - condition: fir_act.condition + (fir_act.prom_type == 1 ? '件' : '元'),  
319 - limit: '每人' + (fir_act.limit_num ? '限参与' + fir_act.limit_num + '次' : '参与不限次'),  
320 - more: more_arr,  
321 - id:fir_act.prom_id  
322 - };  
323 -  
324 - //--- 如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 ---  
325 - if (is_state == 1) {  
326 - //-- 按件进行计算 --  
327 - if (fir_act.prom_type == 1) {  
328 - if (fir_act.condition <= item1.goods_num) {  
329 - item1.more_cx.push(push_item);  
330 - }  
331 - }else{  
332 - //-- 按数量进行计算 --  
333 - var all_price = item1.goods_price * item1.goods_num;  
334 - if (parseFloat(fir_act.condition) <= parseFloat(parseFloat(all_price).toFixed(2))) {  
335 - item1.more_cx.push(push_item);  
336 - }  
337 - }  
338 -  
339 - }else{  
340 - if(!item1.more_cx) item1.more_cx=[];  
341 - item1.more_cx.push(push_item);  
342 - }  
343 - }  
344 - }  
345 - }  
346 -  
347 - console.log(JSON.stringify(item1.more_cx),333); 87 + })
348 88
349 }, 89 },
350 90
@@ -4724,6 +4464,9 @@ Page({ @@ -4724,6 +4464,9 @@ Page({
4724 //-- 看有没有选中的活动 -- 4464 //-- 看有没有选中的活动 --
4725 if(cx_prom_group[h].sele){ 4465 if(cx_prom_group[h].sele){
4726 find_sele=1; 4466 find_sele=1;
  4467 + cx_prom_group[h].act.sele=1;
  4468 + }else{
  4469 + cx_prom_group[h].act.sele=0;
4727 } 4470 }
4728 cx_arr.push(cx_prom_group[h].act); 4471 cx_arr.push(cx_prom_group[h].act);
4729 } 4472 }
@@ -4731,7 +4474,7 @@ Page({ @@ -4731,7 +4474,7 @@ Page({
4731 //-- if(!find_sele) cx_arr[0].sele=1; -- 4474 //-- if(!find_sele) cx_arr[0].sele=1; --
4732 var cp_arr=JSON.parse(JSON.stringify(cx_arr)); 4475 var cp_arr=JSON.parse(JSON.stringify(cx_arr));
4733 var pro_pop = this.selectComponent("#pro_pop"); //组件的id 4476 var pro_pop = this.selectComponent("#pro_pop"); //组件的id
4734 - pro_pop.set_init(1,cx_arr,1); 4477 + pro_pop.set_init(1,cp_arr,1);
4735 }, 4478 },
4736 4479
4737 //--- 选择回来时候的选择 --- 4480 //--- 选择回来时候的选择 ---