Commit 36b9985b3624675af01a785b0996cbac1dd54105

Authored by yvan.ni
1 parent 5f5f53a6

优惠促销送赠品的优化

packageE/pages/cart/cart2/cart2.js
... ... @@ -798,8 +798,8 @@ Page({
798 798 //-- 剔除赠品的数据,等到确定活动是优惠促销的时候,在显示赠品, 赠品直接删除 --
799 799 var new_arr=[];
800 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;
  801 + if(carr[ir].is_gift && carr[ir].id) {
  802 + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + carr[ir].id;
803 803 getApp().request.delete(url, {
804 804 success: function (t) {}
805 805 });
... ... @@ -810,6 +810,22 @@ Page({
810 810 }
811 811 carr=new_arr;
812 812  
  813 + //-- map cy_cx属性要删除 --
  814 + var map=this.data.prom_goods_map;
  815 + if(map){
  816 + for (var ky in map) {
  817 + if(map[ky]){
  818 + var ob=map[ky];
  819 + for (var ii in ob) {
  820 + var item_map = ob[ii];
  821 + if (item_map.hasOwnProperty('cy_cx')) {
  822 + delete item_map.cy_cx;
  823 + }
  824 + }
  825 + }
  826 + }
  827 + }
  828 +
813 829 }
814 830 //按门店分类的数组
815 831 var arr = new Array();
... ... @@ -913,11 +929,14 @@ Page({
913 929 for (var j = 0; j < arr.length; j++) {
914 930 if (arr[j].pickup_id == pcid) {
915 931 if (item.is_gift != 1) {
916   - //确定配送方式
917   - if (arr[j].distr_t == 0) {
918   - arr[j].distr_t = car_item.distr_type;
919   - }
  932 + //确定配送方式
  933 + if (arr[j].distr_t == 0) {
  934 + arr[j].distr_t = car_item.distr_type;
  935 + }
  936 + }else{
  937 + item.distr_type=0; //赠品不控制物流的方式
920 938 }
  939 +
921 940 var e_t = 0, dis_t = 0;//物流方式,配送方式
922 941 if (item.distr_type == 0) {
923 942 dis_t = sto.distr_type;
... ... @@ -2006,6 +2025,81 @@ Page({
2006 2025 });
2007 2026 },
2008 2027  
  2028 +
  2029 + //寻找活动在列表中的最后一个
  2030 + find_pro_last(ord_goods,prom_type,prom_id){
  2031 + if(!ord_goods || ord_goods.length==0) return -1;
  2032 + var len=ord_goods.length;
  2033 + for(var i=len-1;i>-1;i--){
  2034 + var e=ord_goods[i];
  2035 + if(e.prom_type==prom_type && e.prom_id==prom_id && e.is_gift!=1){
  2036 + return i;
  2037 + }
  2038 + }
  2039 + return -1;
  2040 + },
  2041 +
  2042 + //寻找活动在列表中的最后一个
  2043 + is_has_gift(ord_goods,prom_id){
  2044 + if(!ord_goods || ord_goods.length==0) return false;
  2045 + var len=ord_goods.length;
  2046 + for(var i=0;i<len;i++){
  2047 + var e=ord_goods[i];
  2048 + if(e.prom_type==3 && e.prom_id==prom_id && e.is_gift==1){
  2049 + return true;
  2050 + }
  2051 + }
  2052 + return false;
  2053 + },
  2054 +
  2055 +
  2056 + /**
  2057 + *
  2058 + * @param item_map //是门店ID
  2059 + * @param pickid //是门店ID
  2060 + * @param i //是购物车索引
  2061 + * @param ord_goods 对应的商品列表
  2062 + * @param get_data
  2063 + */
  2064 + cart_add_gift(item_map,pickid,i,ord_goods,get_data){
  2065 +
  2066 + var th=this;
  2067 + var pos=this.find_pro_last(ord_goods,3,item_map.prom_id);
  2068 + var is_has_gift=this.is_has_gift(ord_goods,item_map.prom_id)
  2069 + //-- 没有赠品的时候才添加,避免购物车重复出现 --
  2070 + if(pos>-1 && !is_has_gift){
  2071 +
  2072 + var newd = {
  2073 + goods_id: get_data.goods_id,
  2074 + goods_num: get_data.bs * get_data.zp_num, //是赠品的翻倍
  2075 + pick_id: pickid,
  2076 + user_id: app.globalData.user_id,
  2077 + store_id: os.stoid,
  2078 + goods_price: 0,
  2079 + member_goods_price: 0,
  2080 + goods_name: get_data.goods_name,
  2081 + goods_sn: get_data.goodsinfo.goods_sn,
  2082 + sku: get_data.goodsinfo.sku,
  2083 + is_gift: 1,
  2084 + prom_id: item_map.prom_id,
  2085 + prom_type: 3,
  2086 + selected: 1,
  2087 + gift_id: get_data.gift_id,
  2088 + original_img: th.data.imgUrl + get_data.goodsinfo.original_img
  2089 + };
  2090 + var fd_gd=ord_goods[pos]
  2091 +
  2092 + newd.guide_id=fd_gd.guide_id;
  2093 + newd.guide_type=fd_gd.guide_type;
  2094 + newd.distr_type=fd_gd.distr_type;
  2095 +
  2096 + ord_goods.splice(1,0,newd);
  2097 +
  2098 +
  2099 + }
  2100 +
  2101 + },
  2102 +
2009 2103 calc_per: async function (c_arr) {
2010 2104  
2011 2105 var send_gf = {};
... ... @@ -2032,6 +2126,8 @@ Page({
2032 2126 var ob = th.data.prom_goods_map[pickid];
2033 2127 for (var ii in ob) {
2034 2128 var item_map = ob[ii];
  2129 + var b=1;
  2130 +
2035 2131 //if (item_map.bs == undefined || item_map.bs == null) {
2036 2132 if (!item_map.hasOwnProperty('cy_cx')) {
2037 2133 //等待,获取一下优惠活动的信息
... ... @@ -2076,6 +2172,9 @@ Page({
2076 2172 item_map.uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum;
2077 2173 item_map.whsle_id = get_data.goodsinfo.whsle_id;
2078 2174  
  2175 + //-- 购物车添加赠品 --
  2176 + th.cart_add_gift(item_map,pickid,i,ord_goods,get_data);
  2177 +
2079 2178 }
2080 2179 item_map.s_libao = get_data.libao;
2081 2180 item_map.s_lb_num = get_data.lb_num;
... ... @@ -2114,12 +2213,6 @@ Page({
2114 2213 duo_zp_num_arr[item_map.prom_id] = t_zp_num;
2115 2214 }
2116 2215 }
2117   - //--- 不是多个赠品赠送的时候, ---
2118   - else{
2119   -
2120   - }
2121   -
2122   -
2123 2216  
2124 2217 } else item_map.cy_cx = 0;
2125 2218 })
... ...
pages/cart/cart/cart.js
... ... @@ -666,12 +666,12 @@ Page({
666 666 })
667 667  
668 668 //只有一种活动,但是又是秒杀之类是互动,就要失效。不能是普通购买
669   - if (prom.length == 1 && [1, 2, 4, 6, 8, 9].indexOf(prom.prom_type) > -1 && !prom.is_integral_normal && !prom.is_pd_normal) {
  669 + if (prom && prom.length == 1 && [1, 2, 4, 6, 8, 9].indexOf(prom.prom_type) > -1 && !prom.is_integral_normal && !prom.is_pd_normal) {
670 670 th.disInvalid(item);
671 671 continue;
672 672 }
673 673 //只有秒杀和积分购的时候,不能是普通购买
674   - if (prom.length == 2 && [1, 4].indexOf(prom.prom_type) > -1 && [1, 4].indexOf(prom.prom_type) > -1 && !prom.is_integral_normal && !prom.is_pd_normal) {
  674 + if (prom && prom.length == 2 && [1, 4].indexOf(prom.prom_type) > -1 && [1, 4].indexOf(prom.prom_type) > -1 && !prom.is_integral_normal && !prom.is_pd_normal) {
675 675 th.disInvalid(item);
676 676 continue;
677 677 }
... ...