Commit 5f5f53a6572e2d7bbf4e28496eeab77f4fa8936b
1 parent
620f449d
购物车的优化
Showing
5 changed files
with
218 additions
and
182 deletions
components/promate_pop/promate_pop.wxml
... | ... | @@ -18,10 +18,11 @@ |
18 | 18 | </view> |
19 | 19 | |
20 | 20 | <view class="item_pro_right"> |
21 | - <view wx:if="{{item.prom_type!=3}}" class="fs26">{{item.title}}</view> | |
22 | - <view wx:else class="fs26">{{item.title}} | |
21 | + <view wx:if="{{item.prom_type!=3}}" class="fs26" style="max-width:81%" >{{item.title}}</view> | |
22 | + <view wx:else class="fs26" style="max-width:81%" >{{item.title}} | |
23 | 23 | 消费满<text class="c-red">{{item.condition}}</text>享优惠({{item.limit}}) |
24 | 24 | </view> |
25 | + | |
25 | 26 | <view wx:if="{{item.prom_type==5}}" class="fs26">搭配价:<text class="c-red">{{item.show_price}}</text></view> |
26 | 27 | |
27 | 28 | <view wx:if="{{item.prom_type!=3}}" class="fs22" style="color: #b9b6b6"> | ... | ... |
packageE/pages/cart/cart2/cart2.js
... | ... | @@ -788,9 +788,29 @@ Page({ |
788 | 788 | }, |
789 | 789 | |
790 | 790 | |
791 | + //-- is_change是有没有切换活动的意思 -- | |
791 | 792 | async get_cart_next(carr,is_change){ |
792 | 793 | |
793 | - if(is_change) carr=this.data.cartlist_y; | |
794 | + //--- 切换的时候一定要把赠品去掉 --- | |
795 | + if(is_change){ | |
796 | + | |
797 | + carr=this.data.cartlist_y; | |
798 | + //-- 剔除赠品的数据,等到确定活动是优惠促销的时候,在显示赠品, 赠品直接删除 -- | |
799 | + var new_arr=[]; | |
800 | + for (var ir = 0; ir < carr.length; ir++) { | |
801 | + if(carr[ir].is_gift && ) { | |
802 | + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
803 | + getApp().request.delete(url, { | |
804 | + success: function (t) {} | |
805 | + }); | |
806 | + //商品已经下架 | |
807 | + continue; | |
808 | + } | |
809 | + new_arr.push(carr[ir]); | |
810 | + } | |
811 | + carr=new_arr; | |
812 | + | |
813 | + } | |
794 | 814 | //按门店分类的数组 |
795 | 815 | var arr = new Array(); |
796 | 816 | |
... | ... | @@ -803,6 +823,7 @@ Page({ |
803 | 823 | var no_zh_num={}; |
804 | 824 | |
805 | 825 | for (var i = 0; i < carr.length; i++) { |
826 | + | |
806 | 827 | var item1 = carr[i]; |
807 | 828 | //-- 获取一下商品的所有活动 -- |
808 | 829 | await th.buy_pro_group(item1); |
... | ... | @@ -844,179 +865,10 @@ Page({ |
844 | 865 | }) |
845 | 866 | } |
846 | 867 | |
847 | - //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠 | |
848 | - if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) { | |
849 | - // th.check_is_youhui(item1.goods_id, item1.pick_id); | |
850 | - //增加优惠活动次数限制 | |
851 | - let limit_num= await th.getprom(item1) //活动限制次数 | |
852 | - | |
853 | - if(!limit_num){ | |
854 | - await th.add_prom_goods_map(item1); | |
855 | - // item1.prom_id='' | |
856 | - // item1.prom_type='' | |
857 | - }else{ | |
858 | - let user_pre_buynum = await th.getUserBuyPromNum_pre(item1.prom_id) //用户已经参与次数 | |
859 | - if(user_pre_buynum<limit_num){ | |
860 | - await th.add_prom_goods_map(item1); | |
861 | - }else{ | |
862 | - // await th.add_prom_goods_map(item1); | |
863 | - item1.prom_id='' | |
864 | - item1.prom_type='' | |
865 | - } | |
866 | - } | |
867 | - } | |
868 | - | |
869 | - //-- 如果组合购的总数量不足的处理 -- | |
870 | - if(no_zh_num[item1.prom_id] && item1.prom_type == 7){ | |
871 | - item1.prom_type = 0; | |
872 | - item1.prom_type1 = 0; | |
873 | - item1.prom_id = 0; | |
874 | - item1.prom_id1 = 0 | |
875 | - } | |
876 | - | |
877 | - //要把组合购的东西拿出来算一下,同时组合购的总数量要有存在 | |
878 | - if (item1.prom_type == 7) { | |
879 | - if (!th.data.zuhe_map_good[item1.prom_id]) { | |
880 | - var isok = 1; | |
881 | - var is_flag = 1; | |
882 | - var store_count_ok=1; | |
883 | - //如果有组合购 | |
884 | - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id + '/' + getApp().globalData.userInfo.user_id; | |
885 | - await getApp().request.promiseGet(url, {}).then(res => { | |
886 | - if (res.data.code == 0 && res.data.data) { | |
887 | - //如果活动已经结束 | |
888 | - if (res.data.data.is_end == 1) { | |
889 | - isok = 0; | |
890 | - } | |
891 | - if (ut.gettimestamp() > res.data.data.end_time) { | |
892 | - isok = 0; | |
893 | - } | |
894 | - item1.act = res.data.data; | |
895 | - | |
896 | - //-- 在这里要判断一下活动的组合购总数量 -- | |
897 | - if(item1.act.zh_num>0 && item1.act.zh_buy_num>=item1.act.zh_num){ | |
898 | - store_count_ok = 0; | |
899 | - no_zh_num[item1.prom_id]=1; | |
900 | - //-- 清理一下活动的状态 -- | |
901 | - item1.prom_type = 0; | |
902 | - item1.prom_type1 = 0; | |
903 | - item1.prom_id = 0; | |
904 | - item1.prom_id1 = 0 | |
905 | - | |
906 | - }else{ | |
907 | - th.data.zhhe_act_map[item1.prom_id] = res.data.data; | |
908 | - } | |
909 | - | |
910 | - } else { | |
911 | - //未找到商品的活动 | |
912 | - is_flag = 0; | |
913 | - } | |
914 | - }) | |
915 | - | |
916 | - if (!isok) { | |
917 | - getApp().my_warnning("组合购的活动已经过期", 0, th); | |
918 | - return false; | |
919 | - } | |
920 | - | |
921 | - //------ 先增组合活动的总数量的时候 ------- | |
922 | - if(store_count_ok) { | |
923 | - var url1 = "/api/weshop/prom/zhbuyGoods/page"; | |
924 | - var req_data = { | |
925 | - page: 1, | |
926 | - pageSize: 2000, | |
927 | - store_id: os.stoid, | |
928 | - zh_id: item1.prom_id, | |
929 | - } | |
930 | - await getApp().request.promiseGet(url1, { | |
931 | - data: req_data | |
932 | - }).then(res => { | |
933 | - if (ut.ajax_ok(res)) { | |
934 | - var gdlist = res.data.data.pageData; | |
935 | - gdlist.forEach(i => { | |
936 | - if (item1.goods_id == i.goods_id && !is_flag) { | |
937 | - item1.prom_type = 0; | |
938 | - item1.prom_type1 = 0; | |
939 | - item1.prom_id = 0; | |
940 | - item1.prom_id1 = 0 | |
941 | - } | |
942 | - }) | |
943 | - th.data.zuhe_map_good[item1.prom_id] = gdlist; | |
944 | - } | |
945 | - }) | |
946 | - } | |
947 | - | |
948 | - | |
949 | - | |
950 | - } | |
951 | - else { | |
952 | - item1.act = th.data.zhhe_act_map[item1.prom_id]; | |
953 | - } | |
954 | - } | |
955 | - if (item1.prom_type == 10) { | |
956 | - if (!th.data.ladder_map[item1.prom_id]) { | |
957 | - //如果有预售 | |
958 | - var isok = 1; | |
959 | - var is_flag = 1; | |
960 | - var act = null; | |
961 | - var url = "/api/weshop/prom/ladderForm/get/" + os.stoid + "/" + item1.prom_id; | |
962 | - await getApp().request.promiseGet(url, {}).then(res => { | |
963 | - console.log(res, 1000); | |
964 | - if (res.data.code == 0 && res.data.data) { | |
965 | - if (res.data.data.isuse != 1) { | |
966 | - isok = 0; | |
967 | - } | |
968 | - //如果活动已经结束 | |
969 | - if (res.data.data.is_end == 1) { | |
970 | - isok = 0; | |
971 | - } | |
972 | - //已经结束 | |
973 | - if (ut.gettimestamp() > res.data.data.end_time) { | |
974 | - isok = 0; | |
975 | - } | |
976 | - //还未开始 | |
977 | - if (ut.gettimestamp() < res.data.data.start_time) { | |
978 | - isok = 0; | |
979 | - } | |
980 | - act = res.data.data; | |
981 | - | |
982 | - } else { | |
983 | - //未找到商品的活动 | |
984 | - is_flag = 0; | |
985 | - } | |
986 | - }) | |
987 | - if (!isok) { | |
988 | - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item1.id; | |
989 | - getApp().request.delete(url, {}); | |
990 | - th.data.ladder_map[item1.prom_id] = -1; | |
991 | - continue; | |
992 | - } | |
993 | - th.data.ladder_map[item1.prom_id] = act; | |
994 | - | |
995 | - //-- 获取阶梯规则 -- | |
996 | - var url1 = "/api/weshop/prom/ladderList/list"; | |
997 | - var req_data = { | |
998 | - store_id: os.stoid, | |
999 | - form_id: item1.prom_id, | |
1000 | - } | |
1001 | - await getApp().request.promiseGet(url1, { | |
1002 | - data: req_data | |
1003 | - }).then(rs1 => { | |
1004 | - if (rs1.data.code == 0 && rs1.data.data) { | |
1005 | - var gdlist = rs1.data.data; | |
1006 | - th.data.ladder_map[item1.prom_id].ladder_list = gdlist; | |
1007 | - } | |
1008 | - }) | |
1009 | - } | |
1010 | - } | |
1011 | - | |
1012 | 868 | if(is_change){ |
1013 | - carr[i].collocationList=null; | |
869 | + carr[i].collocationList=null; | |
1014 | 870 | } |
1015 | 871 | |
1016 | - //-- 判断一下,获取搭配购的消息,只有prom_type==5才会判断优惠活动 -- | |
1017 | - if ( item1.prom_type == 5 && (!carr[i].collocationList || !carr[i].collocationList.length)) { | |
1018 | - await th.set_collection(item1, carr, i); | |
1019 | - } | |
1020 | 872 | } |
1021 | 873 | |
1022 | 874 | //在分组的时候,就不要再调用接口,await |
... | ... | @@ -1250,6 +1102,179 @@ Page({ |
1250 | 1102 | } |
1251 | 1103 | } |
1252 | 1104 | |
1105 | + //要在多活动确定之后,在来计算 | |
1106 | + for(var jh=0;jh<arr[k].goods.length;jh++){ | |
1107 | + var item1=arr[k].goods[jh] | |
1108 | + //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠 | |
1109 | + if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) { | |
1110 | + // th.check_is_youhui(item1.goods_id, item1.pick_id); | |
1111 | + //增加优惠活动次数限制 | |
1112 | + let limit_num= await th.getprom(item1) //活动限制次数 | |
1113 | + | |
1114 | + if(!limit_num){ | |
1115 | + await th.add_prom_goods_map(item1); | |
1116 | + // item1.prom_id='' | |
1117 | + // item1.prom_type='' | |
1118 | + }else{ | |
1119 | + let user_pre_buynum = await th.getUserBuyPromNum_pre(item1.prom_id) //用户已经参与次数 | |
1120 | + if(user_pre_buynum<limit_num){ | |
1121 | + await th.add_prom_goods_map(item1); | |
1122 | + }else{ | |
1123 | + // await th.add_prom_goods_map(item1); | |
1124 | + item1.prom_id='' | |
1125 | + item1.prom_type='' | |
1126 | + } | |
1127 | + } | |
1128 | + } | |
1129 | + //-- 如果组合购的总数量不足的处理 -- | |
1130 | + if(no_zh_num[item1.prom_id] && item1.prom_type == 7){ | |
1131 | + item1.prom_type = 0; | |
1132 | + item1.prom_type1 = 0; | |
1133 | + item1.prom_id = 0; | |
1134 | + item1.prom_id1 = 0 | |
1135 | + } | |
1136 | + //要把组合购的东西拿出来算一下,同时组合购的总数量要有存在 | |
1137 | + if (item1.prom_type == 7) { | |
1138 | + if (!th.data.zuhe_map_good[item1.prom_id]) { | |
1139 | + var isok = 1; | |
1140 | + var is_flag = 1; | |
1141 | + var store_count_ok=1; | |
1142 | + //如果有组合购 | |
1143 | + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id + '/' + getApp().globalData.userInfo.user_id; | |
1144 | + await getApp().request.promiseGet(url, {}).then(res => { | |
1145 | + if (res.data.code == 0 && res.data.data) { | |
1146 | + //如果活动已经结束 | |
1147 | + if (res.data.data.is_end == 1) { | |
1148 | + isok = 0; | |
1149 | + } | |
1150 | + if (ut.gettimestamp() > res.data.data.end_time) { | |
1151 | + isok = 0; | |
1152 | + } | |
1153 | + item1.act = res.data.data; | |
1154 | + | |
1155 | + //-- 在这里要判断一下活动的组合购总数量 -- | |
1156 | + if(item1.act.zh_num>0 && item1.act.zh_buy_num>=item1.act.zh_num){ | |
1157 | + store_count_ok = 0; | |
1158 | + no_zh_num[item1.prom_id]=1; | |
1159 | + //-- 清理一下活动的状态 -- | |
1160 | + item1.prom_type = 0; | |
1161 | + item1.prom_type1 = 0; | |
1162 | + item1.prom_id = 0; | |
1163 | + item1.prom_id1 = 0 | |
1164 | + | |
1165 | + }else{ | |
1166 | + th.data.zhhe_act_map[item1.prom_id] = res.data.data; | |
1167 | + } | |
1168 | + | |
1169 | + } else { | |
1170 | + //未找到商品的活动 | |
1171 | + is_flag = 0; | |
1172 | + } | |
1173 | + }) | |
1174 | + | |
1175 | + if (!isok) { | |
1176 | + getApp().my_warnning("组合购的活动已经过期", 0, th); | |
1177 | + return false; | |
1178 | + } | |
1179 | + | |
1180 | + //------ 先增组合活动的总数量的时候 ------- | |
1181 | + if(store_count_ok) { | |
1182 | + var url1 = "/api/weshop/prom/zhbuyGoods/page"; | |
1183 | + var req_data = { | |
1184 | + page: 1, | |
1185 | + pageSize: 2000, | |
1186 | + store_id: os.stoid, | |
1187 | + zh_id: item1.prom_id, | |
1188 | + } | |
1189 | + await getApp().request.promiseGet(url1, { | |
1190 | + data: req_data | |
1191 | + }).then(res => { | |
1192 | + if (ut.ajax_ok(res)) { | |
1193 | + var gdlist = res.data.data.pageData; | |
1194 | + gdlist.forEach(i => { | |
1195 | + if (item1.goods_id == i.goods_id && !is_flag) { | |
1196 | + item1.prom_type = 0; | |
1197 | + item1.prom_type1 = 0; | |
1198 | + item1.prom_id = 0; | |
1199 | + item1.prom_id1 = 0 | |
1200 | + } | |
1201 | + }) | |
1202 | + th.data.zuhe_map_good[item1.prom_id] = gdlist; | |
1203 | + } | |
1204 | + }) | |
1205 | + } | |
1206 | + | |
1207 | + | |
1208 | + | |
1209 | + } | |
1210 | + else { | |
1211 | + item1.act = th.data.zhhe_act_map[item1.prom_id]; | |
1212 | + } | |
1213 | + } | |
1214 | + if (item1.prom_type == 10) { | |
1215 | + if (!th.data.ladder_map[item1.prom_id]) { | |
1216 | + //如果有预售 | |
1217 | + var isok = 1; | |
1218 | + var is_flag = 1; | |
1219 | + var act = null; | |
1220 | + var url = "/api/weshop/prom/ladderForm/get/" + os.stoid + "/" + item1.prom_id; | |
1221 | + await getApp().request.promiseGet(url, {}).then(res => { | |
1222 | + console.log(res, 1000); | |
1223 | + if (res.data.code == 0 && res.data.data) { | |
1224 | + if (res.data.data.isuse != 1) { | |
1225 | + isok = 0; | |
1226 | + } | |
1227 | + //如果活动已经结束 | |
1228 | + if (res.data.data.is_end == 1) { | |
1229 | + isok = 0; | |
1230 | + } | |
1231 | + //已经结束 | |
1232 | + if (ut.gettimestamp() > res.data.data.end_time) { | |
1233 | + isok = 0; | |
1234 | + } | |
1235 | + //还未开始 | |
1236 | + if (ut.gettimestamp() < res.data.data.start_time) { | |
1237 | + isok = 0; | |
1238 | + } | |
1239 | + act = res.data.data; | |
1240 | + | |
1241 | + } else { | |
1242 | + //未找到商品的活动 | |
1243 | + is_flag = 0; | |
1244 | + } | |
1245 | + }) | |
1246 | + if (!isok) { | |
1247 | + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item1.id; | |
1248 | + getApp().request.delete(url, {}); | |
1249 | + th.data.ladder_map[item1.prom_id] = -1; | |
1250 | + continue; | |
1251 | + } | |
1252 | + th.data.ladder_map[item1.prom_id] = act; | |
1253 | + | |
1254 | + //-- 获取阶梯规则 -- | |
1255 | + var url1 = "/api/weshop/prom/ladderList/list"; | |
1256 | + var req_data = { | |
1257 | + store_id: os.stoid, | |
1258 | + form_id: item1.prom_id, | |
1259 | + } | |
1260 | + await getApp().request.promiseGet(url1, { | |
1261 | + data: req_data | |
1262 | + }).then(rs1 => { | |
1263 | + if (rs1.data.code == 0 && rs1.data.data) { | |
1264 | + var gdlist = rs1.data.data; | |
1265 | + th.data.ladder_map[item1.prom_id].ladder_list = gdlist; | |
1266 | + } | |
1267 | + }) | |
1268 | + } | |
1269 | + } | |
1270 | + | |
1271 | + //-- 判断一下,获取搭配购的消息,只有prom_type==5才会判断优惠活动 -- | |
1272 | + if ( item1.prom_type == 5 && (!carr[i].collocationList || !carr[i].collocationList.length)) { | |
1273 | + await th.set_collection(item1, carr, i); | |
1274 | + } | |
1275 | + } | |
1276 | + | |
1277 | + | |
1253 | 1278 | var item = arr[k].goods; |
1254 | 1279 | var offline_price = 0; |
1255 | 1280 | var offline_num = 0; |
... | ... | @@ -1384,8 +1409,6 @@ Page({ |
1384 | 1409 | }, 500) |
1385 | 1410 | }, |
1386 | 1411 | |
1387 | - | |
1388 | - | |
1389 | 1412 | //-----单个商品购买的入口判断---- |
1390 | 1413 | get_buy_goods: function (e) { |
1391 | 1414 | var th = this; |
... | ... | @@ -1903,6 +1926,10 @@ Page({ |
1903 | 1926 | async buy_pro_group(item1, is_state) { |
1904 | 1927 | //-- 代发商品不参与任何活动 -- |
1905 | 1928 | if (item1.whsle_id) return false; |
1929 | + //-- 购物车的秒杀和团购不计算 -- | |
1930 | + var p_type=parseInt(item1.prom_type); | |
1931 | + if([1,2].indexOf(p_type)>-1) return false; | |
1932 | + | |
1906 | 1933 | var th=this; |
1907 | 1934 | var req_d = { |
1908 | 1935 | store_id: os.stoid, |
... | ... | @@ -2087,6 +2114,13 @@ Page({ |
2087 | 2114 | duo_zp_num_arr[item_map.prom_id] = t_zp_num; |
2088 | 2115 | } |
2089 | 2116 | } |
2117 | + //--- 不是多个赠品赠送的时候, --- | |
2118 | + else{ | |
2119 | + | |
2120 | + } | |
2121 | + | |
2122 | + | |
2123 | + | |
2090 | 2124 | } else item_map.cy_cx = 0; |
2091 | 2125 | }) |
2092 | 2126 | } |
... | ... | @@ -2271,8 +2305,6 @@ Page({ |
2271 | 2305 | }, |
2272 | 2306 | |
2273 | 2307 | |
2274 | - | |
2275 | - | |
2276 | 2308 | calclate_lbNum(r_data) { |
2277 | 2309 | |
2278 | 2310 | if(!r_data) return false; |
... | ... | @@ -7550,14 +7582,18 @@ Page({ |
7550 | 7582 | var fg=goods.findIndex(function (g_item){ |
7551 | 7583 | return g_item.goods_id==ck_prom_type.goods[b].goods_id |
7552 | 7584 | && [0,3,5,7,10].indexOf(g_item.prom_type)>-1 |
7553 | - && g_item.pick_id==pk | |
7585 | + && g_item.pick_id==pk && g_item.is_gift==0; | |
7554 | 7586 | }) |
7555 | 7587 | if(fg>-1){ |
7556 | 7588 | goods[fg].prom_type=ck_prom_type.prom_type; |
7557 | 7589 | goods[fg].prom_id=ck_prom_type.prom_id; |
7558 | - th.data.cartlist_y[idx].goods[fg].prom_type= goods[fg].prom_type; | |
7559 | - th.data.cartlist_y[idx].goods[fg].prom_id= goods[fg].prom_id; | |
7560 | 7590 | |
7591 | + for(var ik=0;ik< th.data.cartlist[idx].goods.length;ik++){ | |
7592 | + if(th.data.cartlist[idx].goods[ik].id==goods[fg].id){ | |
7593 | + th.data.cartlist[idx].goods[ik].prom_type= goods[fg].prom_type; | |
7594 | + th.data.cartlist[idx].goods[ik].prom_id= goods[fg].prom_id; | |
7595 | + } | |
7596 | + } | |
7561 | 7597 | } |
7562 | 7598 | } |
7563 | 7599 | ... | ... |
packageE/pages/cart/cart2/cart2.wxml
pages/cart/cart/cart.js
... | ... | @@ -4203,7 +4203,6 @@ Page({ |
4203 | 4203 | continue; |
4204 | 4204 | } |
4205 | 4205 | |
4206 | - | |
4207 | 4206 | var url = "/api/weshop/cart/delGift?store_id=" + newd.store_id + "&user_id=" + |
4208 | 4207 | newd.user_id + "&goods_id=" + newd.goods_id + "&is_gift=1&pick_id=" + newd.pick_id + "&prom_id=" + newd.prom_id |
4209 | 4208 | await getApp().request.promiseDelete(url, {}) | ... | ... |
pages/goods/goodsInfo/goodsInfo.js
... | ... | @@ -7637,6 +7637,7 @@ Page({ |
7637 | 7637 | } |
7638 | 7638 | if (fir_act.lb_id) more_arr.push('送' + fir_act.lbtitle); |
7639 | 7639 | if (fir_act.zxlb_id) more_arr.push('送' + fir_act.zxlbtitle); |
7640 | + if (fir_act.monthgiftbag_id) more_arr.push('送' + fir_act.monthgiftbag_title); | |
7640 | 7641 | |
7641 | 7642 | //-- 开始组装数据 -- |
7642 | 7643 | th.add_cx_prom_group({ | ... | ... |