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 | } | ... | ... |