Commit 5356a47374657338b332aa2533cf0042ace2a5d4
1 parent
2388cf59
促销的数量的优化
Showing
1 changed file
with
101 additions
and
53 deletions
pages/cart/cart/cart.js
... | ... | @@ -89,23 +89,44 @@ Page({ |
89 | 89 | }); |
90 | 90 | |
91 | 91 | },1) |
92 | - | |
93 | - //--获取是否又秒杀活动-- | |
94 | - getApp().request.promiseGet("/api/ms/flash_sale/spikepage", { | |
95 | - data: { | |
96 | - store_id: oo.stoid, | |
97 | - timetype: 2, | |
98 | - is_end: 0, | |
99 | - is_show: 1, | |
100 | - pageSize: 1 | |
101 | - }, | |
102 | - }).then(res => { | |
103 | - if (res.data.code == 0 && res.data.data && res.data.data.pageData.length > 0) { | |
104 | - th.setData({ | |
105 | - is_has_flash: 1 | |
106 | - }) | |
107 | - } | |
108 | - }); | |
92 | + | |
93 | + //-- 判断有没有自定义的广告图片 -- | |
94 | + getApp().request.promiseGet("/api/weshop/ad/page?pid=1101&store_id=" + os.stoid, { | |
95 | + data: { | |
96 | + enabled: 1 | |
97 | + } | |
98 | + }).then(res => { | |
99 | + if(res.data.code==0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length>0){ | |
100 | + var a = res.data.data.pageData; | |
101 | + var tt = { | |
102 | + 'ad_code': os.imghost + a[0].ad_code, | |
103 | + 'media_link': '', | |
104 | + 'ad_weapplink':a[0].ad_weapplink | |
105 | + }; | |
106 | + th.setData({ad_data:tt}); | |
107 | + }else{ | |
108 | + //--获取是否又秒杀活动-- | |
109 | + getApp().request.promiseGet("/api/ms/flash_sale/spikepage", { | |
110 | + data: { | |
111 | + store_id: oo.stoid, | |
112 | + timetype: 2, | |
113 | + is_end: 0, | |
114 | + is_show: 1, | |
115 | + pageSize: 1 | |
116 | + }, | |
117 | + }).then(res => { | |
118 | + if (res.data.code == 0 && res.data.data && res.data.data.pageData.length > 0) { | |
119 | + th.setData({ | |
120 | + is_has_flash: 1 | |
121 | + }) | |
122 | + } | |
123 | + }); | |
124 | + } | |
125 | + }) | |
126 | + | |
127 | + | |
128 | + | |
129 | + | |
109 | 130 | |
110 | 131 | }, |
111 | 132 | |
... | ... | @@ -584,7 +605,11 @@ Page({ |
584 | 605 | e.setData({ |
585 | 606 | [txt]: Number(!sele), |
586 | 607 | }); |
587 | - await e.check_prom_activity(pitems); | |
608 | + | |
609 | + await e.check_prom_activity(pitems); | |
610 | + for(var i in e.data.requestData){ | |
611 | + if(i!=pitems) await e.check_prom_activity(i); | |
612 | + } | |
588 | 613 | this.doCheckAll(); |
589 | 614 | }, |
590 | 615 | |
... | ... | @@ -630,8 +655,12 @@ Page({ |
630 | 655 | }); |
631 | 656 | |
632 | 657 | if(a.prom_type==3){ |
658 | + | |
659 | + await e.check_prom_activity(pitems); | |
633 | 660 | //判断商品是不是优惠活动 |
634 | - await e.check_prom_activity(pitems); | |
661 | + for(var i in e.data.requestData){ | |
662 | + if(i!=pitems) await e.check_prom_activity(i); | |
663 | + } | |
635 | 664 | } |
636 | 665 | |
637 | 666 | this.doCheckAll(); |
... | ... | @@ -953,9 +982,11 @@ Page({ |
953 | 982 | e.setData({ |
954 | 983 | [txt]: t.goods_num, |
955 | 984 | }); |
956 | - //for(var i in e.data.requestData){ | |
957 | - await e.check_prom_activity(pitem) | |
958 | - //} | |
985 | + | |
986 | + await e.check_prom_activity(pitem) | |
987 | + for(var i in e.data.requestData){ | |
988 | + if(i!=pitem) await e.check_prom_activity(i) | |
989 | + } | |
959 | 990 | e.doCheckAll(); |
960 | 991 | getApp().requestCardNum(e); |
961 | 992 | } |
... | ... | @@ -1321,10 +1352,19 @@ Page({ |
1321 | 1352 | var map=new Map(); |
1322 | 1353 | var list= JSON.parse(JSON.stringify(this.data.requestData[cindex])); |
1323 | 1354 | //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量 |
1324 | - | |
1325 | - for(var i=0;i<list.goods.length;i++){ | |
1326 | - var item=list.goods[i]; | |
1355 | + | |
1356 | + //-- 所有的购物车的数据,要用拷贝的赖进行计算 -- | |
1357 | + var alllist= JSON.parse(JSON.stringify(this.data.requestData)); | |
1358 | + var list2=alllist[cindex]; | |
1359 | + var no_gift_arr=[]; | |
1360 | + | |
1361 | + //主要判断有没有促销活动 | |
1362 | + var is_sele_prom=0; | |
1363 | + var is_gift_del=0; | |
1364 | + for(var i=0;i<list.goods.length;i++){ | |
1365 | + var item=list.goods[i]; | |
1327 | 1366 | if(item.prom_type==3 && item.selected && !item.is_gift){ |
1367 | + is_sele_prom=1; | |
1328 | 1368 | if(map.has(item.prom_id+"")){ |
1329 | 1369 | var ob=map.get(item.prom_id+""); |
1330 | 1370 | ob.num+=item.goods_num; |
... | ... | @@ -1342,10 +1382,20 @@ Page({ |
1342 | 1382 | var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; |
1343 | 1383 | //getApp().request.delete(url, {}); |
1344 | 1384 | await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除 |
1345 | - list.goods.splice(i--,1); | |
1385 | + list2.goods.splice(i,1); | |
1386 | + list.goods.splice(i--,1); | |
1387 | + is_gift_del=1; | |
1346 | 1388 | } |
1347 | 1389 | } |
1348 | - | |
1390 | + //--如果没有选中的促销活动的,直接退出 -- | |
1391 | + if(!is_sele_prom){ | |
1392 | + //如果有赠品,要重新更新购物车的前台渲染-- | |
1393 | + if(is_gift_del){ | |
1394 | + var rq_text="requestData["+cindex+"]"; | |
1395 | + this.setData({[rq_text]:list}); | |
1396 | + } | |
1397 | + return false; | |
1398 | + } | |
1349 | 1399 | /*-- |
1350 | 1400 | var map2=new Map(); |
1351 | 1401 | //请那些是赠品,但是优惠活动并没有被选中的商品要删除,同时满足条件的要放到map2, |
... | ... | @@ -1365,7 +1415,6 @@ Page({ |
1365 | 1415 | }--*/ |
1366 | 1416 | |
1367 | 1417 | var t_prom_list=new Array(); |
1368 | - | |
1369 | 1418 | for(let p_item of map.entries()){ |
1370 | 1419 | var prom=null; |
1371 | 1420 | await getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+p_item[0],{}).then(res=> { |
... | ... | @@ -1387,7 +1436,6 @@ Page({ |
1387 | 1436 | } |
1388 | 1437 | |
1389 | 1438 | t_prom_list.push(prom); |
1390 | - | |
1391 | 1439 | //---读取打折的详情--- |
1392 | 1440 | var ob=p_item[1];var discount=null; |
1393 | 1441 | await getApp().request.promiseGet("/api/weshop/goods/getDiscount",{ |
... | ... | @@ -1403,7 +1451,9 @@ Page({ |
1403 | 1451 | }) |
1404 | 1452 | |
1405 | 1453 | //---如果有打折的信息,赠送的信息,赠送的时候要判断是不是限购数量--- |
1406 | - if(discount && discount['goods_id'] && discount.limit_num>=discount.bs && discount.gift_storecount>=discount.bs){ | |
1454 | + if(discount && discount['goods_id'] && discount.limit_num>=discount.bs && discount.gift_storecount>=discount.bs){ | |
1455 | + //如果这礼品超了情况下 | |
1456 | + if(no_gift_arr.indexOf(discount.gift_id)!=-1) continue; | |
1407 | 1457 | var o=discount.goodsinfo; |
1408 | 1458 | var newd = { |
1409 | 1459 | goods_id: o.goods_id, |
... | ... | @@ -1424,28 +1474,27 @@ Page({ |
1424 | 1474 | original_img:th.data.imgUrl+o.original_img |
1425 | 1475 | }; |
1426 | 1476 | |
1427 | - | |
1428 | - /*--- | |
1429 | - if(map2.has(p_item[0]+"")){ | |
1430 | - var index=map2.get(p_item[0]+""); | |
1431 | - if( list.goods[index].goods_num!=discount.bs){ | |
1432 | - list.goods[index].goods_num=discount.bs; | |
1433 | - getApp().request.put("/api/weshop/cart/update", { | |
1434 | - data: { | |
1435 | - id: list.goods[index].id, | |
1436 | - selected: 1, | |
1437 | - store_id: oo.stoid, | |
1438 | - goods_num:discount.bs | |
1439 | - }, | |
1440 | - success: function(ee) { | |
1441 | - console.log(ee); | |
1442 | - } | |
1443 | - }); | |
1444 | - } | |
1445 | - | |
1446 | - }else{---*/ | |
1477 | + | |
1478 | + list2.goods.push(newd); | |
1479 | + var all_num=0; | |
1480 | + for(var i in alllist){ | |
1481 | + var list_item=alllist[i]; | |
1482 | + for(var j in list_item.goods){ | |
1483 | + //如果赠品的ID一样,要进行统计数量 | |
1484 | + if(list_item.goods[j].is_gift==1 && list_item.goods[j].gift_id==newd.gift_id){ | |
1485 | + all_num+= list_item.goods[j].goods_num; | |
1486 | + } | |
1487 | + } | |
1488 | + } | |
1489 | + //-- 赠品的数量超出,这里是保证所有的赠品部会超出 -- | |
1490 | + if(discount.gift_storecount<all_num){ | |
1491 | + no_gift_arr.push(discount.gift_id); | |
1492 | + //--进入下一个循环 -- | |
1493 | + continue; | |
1494 | + } | |
1495 | + | |
1447 | 1496 | var url="/api/weshop/cart/delGift?store_id="+newd.store_id+"&user_id=" |
1448 | - +newd.user_id+"&goods_id="+newd.goods_id+"&is_gift=1&pick_id="+newd.pick_id; | |
1497 | + +newd.user_id+"&goods_id="+newd.goods_id+"&is_gift=1&pick_id="+newd.pick_id+"&prom_id="+newd.prom_id | |
1449 | 1498 | await getApp().request.promiseDelete(url, {}) |
1450 | 1499 | |
1451 | 1500 | var add_data=null; |
... | ... | @@ -1457,8 +1506,7 @@ Page({ |
1457 | 1506 | if(add_data){ |
1458 | 1507 | newd.id=add_data.id; |
1459 | 1508 | list.goods.push(newd); |
1460 | - } | |
1461 | - //} | |
1509 | + } | |
1462 | 1510 | } |
1463 | 1511 | |
1464 | 1512 | } | ... | ... |