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,23 +89,44 @@ Page({
89 }); 89 });
90 90
91 },1) 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,7 +605,11 @@ Page({
584 e.setData({ 605 e.setData({
585 [txt]: Number(!sele), 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 this.doCheckAll(); 613 this.doCheckAll();
589 }, 614 },
590 615
@@ -630,8 +655,12 @@ Page({ @@ -630,8 +655,12 @@ Page({
630 }); 655 });
631 656
632 if(a.prom_type==3){ 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 this.doCheckAll(); 666 this.doCheckAll();
@@ -953,9 +982,11 @@ Page({ @@ -953,9 +982,11 @@ Page({
953 e.setData({ 982 e.setData({
954 [txt]: t.goods_num, 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 e.doCheckAll(); 990 e.doCheckAll();
960 getApp().requestCardNum(e); 991 getApp().requestCardNum(e);
961 } 992 }
@@ -1321,10 +1352,19 @@ Page({ @@ -1321,10 +1352,19 @@ Page({
1321 var map=new Map(); 1352 var map=new Map();
1322 var list= JSON.parse(JSON.stringify(this.data.requestData[cindex])); 1353 var list= JSON.parse(JSON.stringify(this.data.requestData[cindex]));
1323 //循环处理活动,看活动商品的数量,用map来出来存储,key为活动id,值是数量 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 if(item.prom_type==3 && item.selected && !item.is_gift){ 1366 if(item.prom_type==3 && item.selected && !item.is_gift){
  1367 + is_sele_prom=1;
1328 if(map.has(item.prom_id+"")){ 1368 if(map.has(item.prom_id+"")){
1329 var ob=map.get(item.prom_id+""); 1369 var ob=map.get(item.prom_id+"");
1330 ob.num+=item.goods_num; 1370 ob.num+=item.goods_num;
@@ -1342,10 +1382,20 @@ Page({ @@ -1342,10 +1382,20 @@ Page({
1342 var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; 1382 var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
1343 //getApp().request.delete(url, {}); 1383 //getApp().request.delete(url, {});
1344 await getApp().request.promiseDelete(url, {}) // 要用同步让赠品删除 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 var map2=new Map(); 1400 var map2=new Map();
1351 //请那些是赠品,但是优惠活动并没有被选中的商品要删除,同时满足条件的要放到map2, 1401 //请那些是赠品,但是优惠活动并没有被选中的商品要删除,同时满足条件的要放到map2,
@@ -1365,7 +1415,6 @@ Page({ @@ -1365,7 +1415,6 @@ Page({
1365 }--*/ 1415 }--*/
1366 1416
1367 var t_prom_list=new Array(); 1417 var t_prom_list=new Array();
1368 -  
1369 for(let p_item of map.entries()){ 1418 for(let p_item of map.entries()){
1370 var prom=null; 1419 var prom=null;
1371 await getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+p_item[0],{}).then(res=> { 1420 await getApp().request.promiseGet("/api/weshop/promgoods/get/"+os.stoid+"/"+p_item[0],{}).then(res=> {
@@ -1387,7 +1436,6 @@ Page({ @@ -1387,7 +1436,6 @@ Page({
1387 } 1436 }
1388 1437
1389 t_prom_list.push(prom); 1438 t_prom_list.push(prom);
1390 -  
1391 //---读取打折的详情--- 1439 //---读取打折的详情---
1392 var ob=p_item[1];var discount=null; 1440 var ob=p_item[1];var discount=null;
1393 await getApp().request.promiseGet("/api/weshop/goods/getDiscount",{ 1441 await getApp().request.promiseGet("/api/weshop/goods/getDiscount",{
@@ -1403,7 +1451,9 @@ Page({ @@ -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 var o=discount.goodsinfo; 1457 var o=discount.goodsinfo;
1408 var newd = { 1458 var newd = {
1409 goods_id: o.goods_id, 1459 goods_id: o.goods_id,
@@ -1424,28 +1474,27 @@ Page({ @@ -1424,28 +1474,27 @@ Page({
1424 original_img:th.data.imgUrl+o.original_img 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 var url="/api/weshop/cart/delGift?store_id="+newd.store_id+"&user_id=" 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 await getApp().request.promiseDelete(url, {}) 1498 await getApp().request.promiseDelete(url, {})
1450 1499
1451 var add_data=null; 1500 var add_data=null;
@@ -1457,8 +1506,7 @@ Page({ @@ -1457,8 +1506,7 @@ Page({
1457 if(add_data){ 1506 if(add_data){
1458 newd.id=add_data.id; 1507 newd.id=add_data.id;
1459 list.goods.push(newd); 1508 list.goods.push(newd);
1460 - }  
1461 - //} 1509 + }
1462 } 1510 }
1463 1511
1464 } 1512 }