Commit 75f749f4a6bf5d306c3fd7cfa1171b4ce6952665

Authored by yvan.ni
1 parent e2015e88

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

packageE/pages/cart/cart2/cart2.js
... ... @@ -720,10 +720,8 @@ Page({
720 720 store_id: oo.stoid, pageSize: 600
721 721 },
722 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 725 th.setData({ is_all_zt: 1 });
728 726  
729 727 //-- 找出所有的门店 --
... ... @@ -743,545 +741,566 @@ Page({
743 741 })
744 742  
745 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 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 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 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 1306 get_buy_goods: function (e) {
... ... @@ -1794,294 +1813,35 @@ Page({
1794 1813 //先用着,后面会用接口来代替
1795 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 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 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 7147 //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 --
7388 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 7153 for (var b=0; b<ck_prom_type.goods.length;b++){
7392 7154 //-- 开始查找 --
... ... @@ -7430,8 +7192,8 @@ Page({
7430 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 7198 //-- 如果活动数量大于1个,那么活动就要排序一下,有商品种类数最多排再前面,降序进行排列 --
7437 7199 if(cx_act_map.length>1){
... ... @@ -7540,6 +7302,11 @@ Page({
7540 7302 if(can_calc_cx.length){
7541 7303 for(var p=0;p<can_calc_cx.length;p++){
7542 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 7310 can_calc_cx[p].goods.map(function (gd){
7544 7311 ch_map.push(gd.goods_id);
7545 7312 })
... ... @@ -7596,6 +7363,9 @@ Page({
7596 7363 }
7597 7364 //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 --
7598 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 7370 for (var b=0; b<ck_prom_type.goods.length;b++){
7601 7371 //-- 开始查找 --
... ... @@ -7653,14 +7423,15 @@ Page({
7653 7423 this.data.sele_cx_group_cidx=idx;
7654 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 7428 var cx_arr=[];
7659   - var find_sele=0;
  7429 +
7660 7430 for (var h=0;h<cx_prom_group.length;h++){
  7431 + cx_prom_group[h].act.sele=0;
7661 7432 //-- 看有没有选中的活动 --
7662 7433 if(cx_prom_group[h].sele){
7663   - find_sele=1;
  7434 + cx_prom_group[h].act.sele=1;
7664 7435 }
7665 7436 cx_arr.push(cx_prom_group[h].act);
7666 7437 }
... ... @@ -7668,7 +7439,7 @@ Page({
7668 7439 //-- if(!find_sele) cx_arr[0].sele=1; --
7669 7440 var cp_arr=JSON.parse(JSON.stringify(cx_arr));
7670 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 7448 var idx=this.data.sele_cx_group_cidx;
7678 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 7454 for(var dx=0;dx<cx_prom_group.length;dx++){
7683 7455 if(dx!=sele_idx) cx_prom_group[dx].sele=0;
7684 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 3 "enablePullDownRefresh": false,
4 4 "usingComponents": {
5 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 10 \ No newline at end of file
... ...
packageE/pages/cart/cart2/cart2.wxml
... ... @@ -116,26 +116,30 @@
116 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 143 </block>
140 144  
141 145 <!--此时是多个商品参与活动的切换 验证活动是不是多个,要不要显示切换 -->
... ... @@ -177,7 +181,7 @@
177 181 <view class="flex">
178 182 <view class="card_bg ellipsis-1" style="margin-right: 10rpx;">
179 183 <image src="{{imgUrl}}/miniapp/images/plus/dj_icon.png">
180   - </ image>
  184 + </image>
181 185 <text class="card_name">{{show_card.CardName}}</text>
182 186 </view>
183 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 1164  
1165 1165 .xc-coupon-fram {
1166 1166 position: relative;
1167   - margin-right: 16rpx;
  1167 + margin-right: 11rpx;
1168 1168 /* width:200rpx; */
1169 1169 /* padding-top:30rpx; */
1170 1170  
... ... @@ -1177,7 +1177,7 @@ margin-left: 20rpx;
1177 1177 background-color: #d60021;
1178 1178 /* margin:0 auto; */
1179 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 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 24 module.exports = {
18 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 129 goods.splice(idx, 1);
130 130 }
131 131  
  132 +
  133 +
132 134 //-- 只统计是参与活动的商品 --
133 135 for (var ij in goods) {
  136 + goods[ij].is_act_last=0;
  137 +
134 138 var iter = goods[ij];
135 139 if (iter.prom_type != 10 || iter.prom_id != act_item.id) {
136 140 continue;
... ... @@ -138,6 +142,8 @@ module.exports = {
138 142 all_price0 += iter.goods_num * iter.goods_price;
139 143 }
140 144  
  145 + goods[goods.length-1].is_act_last=1;
  146 +
141 147 if(!c_item.ladder_prom_goods) c_item.ladder_prom_goods={};
142 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 327  
328 328 //-- 只统计是参与活动的商品 --
329 329 for (var ij in goods) {
  330 + goods[ij].is_act_last=0;
330 331 var iter = goods[ij];
331 332 if (iter.prom_type != 7 || iter.prom_id != act.id) {
332 333 continue;
333 334 }
334 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 341 c_item.zh_prom_goods[act.id].is_has_zh = 1;
338 342 c_item.is_has_zh = 1;
... ...
pages/cart/cart/cart.js
... ... @@ -57,294 +57,34 @@ Page({
57 57 async buy_pro_group(item1, is_state) {
58 58 //-- 代发商品不参与任何活动 --
59 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 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 4464 //-- 看有没有选中的活动 --
4725 4465 if(cx_prom_group[h].sele){
4726 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 4471 cx_arr.push(cx_prom_group[h].act);
4729 4472 }
... ... @@ -4731,7 +4474,7 @@ Page({
4731 4474 //-- if(!find_sele) cx_arr[0].sele=1; --
4732 4475 var cp_arr=JSON.parse(JSON.stringify(cx_arr));
4733 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 //--- 选择回来时候的选择 ---
... ...