Commit 11466af4912387d6d114f9bd9333db9279f37803
1 parent
93cd196b
多促销的优化
Showing
3 changed files
with
119 additions
and
13 deletions
packageE/pages/cart/cart2/cart2.js
| ... | ... | @@ -705,7 +705,7 @@ Page({ |
| 705 | 705 | } |
| 706 | 706 | |
| 707 | 707 | //使用sort排序 |
| 708 | - prom_list.sort(comp(sort_type)); | |
| 708 | + prom_list.sort(comp); | |
| 709 | 709 | }, |
| 710 | 710 | |
| 711 | 711 | //-----真的获取购物车,入口-------- |
| ... | ... | @@ -1799,6 +1799,7 @@ Page({ |
| 1799 | 1799 | async buy_pro_group(item1, is_state) { |
| 1800 | 1800 | //-- 代发商品不参与任何活动 -- |
| 1801 | 1801 | if(item1.whsle_id) return false; |
| 1802 | + var th=this; | |
| 1802 | 1803 | var url = '/api/weshop/activitylist/listGoodActInfo2New'; |
| 1803 | 1804 | var user_id = getApp().globalData.user_id; |
| 1804 | 1805 | var zh_id = 0; |
| ... | ... | @@ -1828,7 +1829,27 @@ Page({ |
| 1828 | 1829 | //-- 如果有组合购的时候,同时还要判断单件商品的购买数量有没有满足组合购的条件 -- |
| 1829 | 1830 | if (zh_id) { |
| 1830 | 1831 | var is_zh_ok = 1; |
| 1831 | - | |
| 1832 | + var zh_pro0 = null; | |
| 1833 | + //-- 获取活动信息 -- | |
| 1834 | + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + zh_id + "/" + user_id; | |
| 1835 | + await getApp().request.promiseGet(url, {}).then(res => { | |
| 1836 | + if (res.data.code == 0 && res.data.data) { | |
| 1837 | + //如果活动已经结束 | |
| 1838 | + if (res.data.data.is_end == 1) { | |
| 1839 | + is_zh_ok = 0; | |
| 1840 | + } | |
| 1841 | + if (ut.gettimestamp() > res.data.data.end_time) { | |
| 1842 | + is_zh_ok = 0; | |
| 1843 | + } | |
| 1844 | + zh_pro0 = res.data.data; | |
| 1845 | + //--- 在这里要判断一下活动的组合购总数量 --- | |
| 1846 | + if (zh_pro0.zh_num > 0 && zh_pro0.zh_buy_num >= zh_pro0.zh_num) { | |
| 1847 | + is_zh_ok = 0; | |
| 1848 | + } | |
| 1849 | + } else { | |
| 1850 | + is_zh_ok = 0; | |
| 1851 | + } | |
| 1852 | + }) | |
| 1832 | 1853 | |
| 1833 | 1854 | //--- 首先组合购的限购 --- |
| 1834 | 1855 | if(is_zh_ok){ |
| ... | ... | @@ -1849,6 +1870,10 @@ Page({ |
| 1849 | 1870 | |
| 1850 | 1871 | //-- 如果满足条件,才会显示活动 -- |
| 1851 | 1872 | if (is_zh_ok) { |
| 1873 | + | |
| 1874 | + //-- 组合的数组填充一下 -- | |
| 1875 | + th.data.zuhe_map[zh_pro0.id] = zh_pro0; | |
| 1876 | + | |
| 1852 | 1877 | var url1 = "/api/weshop/prom/zhbuyGoods/page"; |
| 1853 | 1878 | var req_data = { |
| 1854 | 1879 | page: 1, pageSize: 2000, |
| ... | ... | @@ -1865,7 +1890,7 @@ Page({ |
| 1865 | 1890 | }) |
| 1866 | 1891 | |
| 1867 | 1892 | var zh_gd_fd = gdlist.find(function (e) { |
| 1868 | - return e.goods_id == item.goods_id; | |
| 1893 | + return e.goods_id == item1.goods_id; | |
| 1869 | 1894 | }) |
| 1870 | 1895 | |
| 1871 | 1896 | if (is_zh_ok) { |
| ... | ... | @@ -1903,7 +1928,7 @@ Page({ |
| 1903 | 1928 | if (is_state == 1) { |
| 1904 | 1929 | //-- 看有没有必买商品不满足的时候 -- |
| 1905 | 1930 | var f_gd = gdlist.find(function (e) { |
| 1906 | - return e.zhqty > 0 && e.goods_id != item.goods_id; | |
| 1931 | + return e.zhqty > 0 && e.goods_id != item1.goods_id; | |
| 1907 | 1932 | }) |
| 1908 | 1933 | if (f_gd) { |
| 1909 | 1934 | is_zh_ok = 0; |
| ... | ... | @@ -1916,21 +1941,37 @@ Page({ |
| 1916 | 1941 | //判断组合购活动是不是满足 |
| 1917 | 1942 | if(is_zh_ok){ |
| 1918 | 1943 | if(!item1.more_cx) item1.more_cx=[]; |
| 1919 | - item1.more_cx.push({prom_type:7,prom_id:zh_id,gdlist:gdlist}) | |
| 1944 | + var show_time=ut.formatTime(zh_pro0.start_time)+"至"+ ut.formatTime(zh_pro0.end_time); | |
| 1945 | + item1.more_cx.push({ | |
| 1946 | + prom_type:7,prom_id:zh_id,gdlist:gdlist, | |
| 1947 | + title: zh_pro0.name, | |
| 1948 | + show_time: show_time, | |
| 1949 | + id:zh_id | |
| 1950 | + }) | |
| 1920 | 1951 | } |
| 1921 | 1952 | } |
| 1922 | 1953 | } |
| 1954 | + | |
| 1923 | 1955 | } |
| 1924 | 1956 | |
| 1925 | 1957 | //调用接口判断优惠, |
| 1926 | 1958 | var m_res=await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + item1.goods_id + "/0" + "/" + user_id, {}); |
| 1927 | 1959 | if(m_res && m_res.data.code == 0 && m_res.data.data){ |
| 1928 | 1960 | |
| 1929 | - var r_data = res.data.data; | |
| 1961 | + var r_data = m_res.data.data; | |
| 1930 | 1962 | //-- 如果是搭配购的时候 -- |
| 1931 | 1963 | if (r_data.collocationList) { |
| 1932 | 1964 | if(!item1.more_cx) item1.more_cx=[]; |
| 1933 | - item1.more_cx.push({prom_type:5,prom_id: r_data.collocationPromList.id}); | |
| 1965 | + | |
| 1966 | + var show_price= '¥'+r_data.collocationPromList.max+'-'+ r_data.collocationPromList.min; | |
| 1967 | + var show_time=ut.formatTime(r_data.collocationPromList.start_time)+"至"+ ut.formatTime(r_data.collocationPromList.end_time); | |
| 1968 | + | |
| 1969 | + item1.more_cx.push({ | |
| 1970 | + prom_type:5,prom_id: r_data.collocationPromList.id, | |
| 1971 | + title: r_data.collocationPromList.title, | |
| 1972 | + show_time: show_time, | |
| 1973 | + id:r_data.collocationPromList.id, | |
| 1974 | + }); | |
| 1934 | 1975 | } |
| 1935 | 1976 | //-- 如果是阶梯促销的时候 -- |
| 1936 | 1977 | if (r_data.ladderLists) { |
| ... | ... | @@ -1938,10 +1979,48 @@ Page({ |
| 1938 | 1979 | //-- 判断会员能不能参与阶梯促销 -- |
| 1939 | 1980 | await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => { |
| 1940 | 1981 | if (res.data.code == 0 && res.data.data) { |
| 1982 | + th.data.ladder_map[act_id] = res.data.data; | |
| 1941 | 1983 | if(!item1.more_cx) item1.more_cx=[]; |
| 1942 | - item1.more_cx.push({prom_type:10,prom_id: act_id}); | |
| 1984 | + | |
| 1985 | + var prom_content = ""; | |
| 1986 | + | |
| 1987 | + for (let jj in r_data.ladderLists) { | |
| 1988 | + if (r_data.ladderLists[jj].discount == 10) { | |
| 1989 | + prom_content += "第" + (parseInt(jj) + 1) + "件原价,"; | |
| 1990 | + } else { | |
| 1991 | + prom_content += "第" + (parseInt(jj) + 1) + "件" + r_data.ladderLists[jj].discount + "折,"; | |
| 1992 | + } | |
| 1993 | + } | |
| 1994 | + prom_content = ut.sub_last(prom_content); | |
| 1995 | + | |
| 1996 | + var s_time=res.data.data.start_time; | |
| 1997 | + var e_time=res.data.data.end_time; | |
| 1998 | + | |
| 1999 | + item1.more_cx.push({ | |
| 2000 | + prom_type:10,prom_id: act_id, | |
| 2001 | + title: prom_content, | |
| 2002 | + show_time: ut.formatTime(s_time) + "至" + ut.formatTime(e_time), | |
| 2003 | + id:act_id | |
| 2004 | + }); | |
| 1943 | 2005 | } |
| 1944 | 2006 | }) |
| 2007 | + | |
| 2008 | + if(th.data.ladder_map[act_id]){ | |
| 2009 | + //-- 获取阶梯规则 -- | |
| 2010 | + var url1 = "/api/weshop/prom/ladderList/list"; | |
| 2011 | + var req_data0 = { | |
| 2012 | + store_id: os.stoid, | |
| 2013 | + form_id: act_id, | |
| 2014 | + } | |
| 2015 | + await getApp().request.promiseGet(url1, { | |
| 2016 | + data: req_data0 | |
| 2017 | + }).then(rs1 => { | |
| 2018 | + if (rs1.data.code == 0 && rs1.data.data) { | |
| 2019 | + var gdlist = rs1.data.data; | |
| 2020 | + th.data.ladder_map[act_id].ladder_list = gdlist; | |
| 2021 | + } | |
| 2022 | + }) | |
| 2023 | + } | |
| 1945 | 2024 | } |
| 1946 | 2025 | //-- 优惠促销的时候 -- 此时要注意活动的限购次数,以及活动的购买金额或者购买数量有没有满足 |
| 1947 | 2026 | if (r_data.promGoodsLists) { |
| ... | ... | @@ -1957,7 +2036,33 @@ Page({ |
| 1957 | 2036 | //--- 这个地方是在计算优惠促销的限购 --- |
| 1958 | 2037 | if(!fir_act.limit_num || th.data.user_pre_buynum<fir_act.limit_num){ |
| 1959 | 2038 | |
| 1960 | - var push_item={prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act}; | |
| 2039 | + | |
| 2040 | + var more_arr = []; | |
| 2041 | + //减价 | |
| 2042 | + if (fir_act.money > 0) more_arr.push('减价'+fir_act.money+'元'); | |
| 2043 | + if (fir_act.sale > 0) more_arr.push('打'+fir_act.sale+'折'); | |
| 2044 | + if (fir_act.past ==1) more_arr.push('包邮'); | |
| 2045 | + if (fir_act.intValue > 0) more_arr.push('送'+fir_act.intValue+'积分'); | |
| 2046 | + if (fir_act.couponId > 0) more_arr.push('送'+fir_act.couponMoney+'元优惠券'); | |
| 2047 | + if (fir_act.gift_id) { | |
| 2048 | + var is_more_gf=fir_act.gift_id.split(',') | |
| 2049 | + if(is_more_gf.length>1){ | |
| 2050 | + more_arr.push('送赠品'); | |
| 2051 | + }else{ | |
| 2052 | + more_arr.push('送'+fir_act.goods_name+' x'+fir_act.zp_num); | |
| 2053 | + } | |
| 2054 | + } | |
| 2055 | + if (fir_act.lb_id) more_arr.push('送'+fir_act.lbtitle); | |
| 2056 | + if (fir_act.zxlb_id) more_arr.push('送'+fir_act.zxlbtitle); | |
| 2057 | + | |
| 2058 | + var push_item={ | |
| 2059 | + prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act, | |
| 2060 | + condition: fir_act.condition + (fir_act.prom_type == 1 ? '件' : '元'), | |
| 2061 | + limit: '每人' + (fir_act.limit_num ? '限参与' + fir_act.limit_num + '次' : '参与不限次'), | |
| 2062 | + more: more_arr, | |
| 2063 | + id:fir_act.prom_id | |
| 2064 | + }; | |
| 2065 | + | |
| 1961 | 2066 | //--- 如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- |
| 1962 | 2067 | if (is_state == 1) { |
| 1963 | 2068 | //-- 按件进行计算 -- |
| ... | ... | @@ -1967,7 +2072,7 @@ Page({ |
| 1967 | 2072 | } |
| 1968 | 2073 | }else{ |
| 1969 | 2074 | //-- 按数量进行计算 -- |
| 1970 | - var all_price = item.goods_price * item1.goods_num; | |
| 2075 | + var all_price = item1.goods_price * item1.goods_num; | |
| 1971 | 2076 | if (parseFloat(fir_act.condition) > parseFloat(parseFloat(all_price).toFixed(2))) { |
| 1972 | 2077 | item1.more_cx.push(push_item); |
| 1973 | 2078 | } |
| ... | ... | @@ -1981,10 +2086,8 @@ Page({ |
| 1981 | 2086 | } |
| 1982 | 2087 | } |
| 1983 | 2088 | |
| 1984 | - | |
| 1985 | 2089 | }, |
| 1986 | 2090 | |
| 1987 | - | |
| 1988 | 2091 | //---------------检查是否有收货地址------------------- |
| 1989 | 2092 | checkAddressList: function () { |
| 1990 | 2093 | var t = this; | ... | ... |
packageE/pages/cart/cart2/cart2.wxml