Commit 5356a47374657338b332aa2533cf0042ace2a5d4

Authored by yvan.ni
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 }
... ...