Commit f808ba387e81728b84ec73b29225d8729a04f0ef
1 parent
d4373af5
多促销的优化
Showing
4 changed files
with
676 additions
and
552 deletions
packageE/pages/cart/cart2/cart2.js
... | ... | @@ -151,6 +151,7 @@ Page({ |
151 | 151 | yh_is_xz_yh:{},//优惠促销优惠券使用开关 |
152 | 152 | |
153 | 153 | }, |
154 | + | |
154 | 155 | onLoad: function (t) { |
155 | 156 | wx.setNavigationBarTitle({ title: "填写订单", }) |
156 | 157 | var th = this; |
... | ... | @@ -161,8 +162,7 @@ Page({ |
161 | 162 | //清空is_pick_up |
162 | 163 | getApp().request.put("/api/weshop/useraddress/updatePickUp", { |
163 | 164 | data: { user_id: getApp().globalData.user_id, is_pickup: 0 }, |
164 | - success: function (s) { | |
165 | - } | |
165 | + success: function (s) {} | |
166 | 166 | }); |
167 | 167 | |
168 | 168 | //阶梯购 或者 组合购的立即购买 |
... | ... | @@ -355,6 +355,8 @@ Page({ |
355 | 355 | } |
356 | 356 | this.calculatePrice()//计算金额 |
357 | 357 | }, |
358 | + | |
359 | + | |
358 | 360 | //直接购买预存开启关闭 |
359 | 361 | prestore2() { |
360 | 362 | let txt = 'bn_goods.yck_off'; |
... | ... | @@ -376,7 +378,6 @@ Page({ |
376 | 378 | }else{ |
377 | 379 | this.calculatePrice2()//计算金额 |
378 | 380 | } |
379 | - | |
380 | 381 | }, |
381 | 382 | //计算商品预存款前置方法------------------------------------ |
382 | 383 | async beforAdvancesum(cartList) { |
... | ... | @@ -542,7 +543,7 @@ Page({ |
542 | 543 | }); |
543 | 544 | }, |
544 | 545 | |
545 | - //----------------展示页面,是再获取用户信息之后-------------- | |
546 | + //---------------- 展示页面,是再获取用户信息之后 -------------- | |
546 | 547 | async show_page() { |
547 | 548 | var th = this, ta = this.data.param; |
548 | 549 | //获取用户预存款 |
... | ... | @@ -676,6 +677,37 @@ Page({ |
676 | 677 | |
677 | 678 | }, |
678 | 679 | |
680 | + | |
681 | + //获取促销活动的组合 | |
682 | + cx_prom_group(prom_list){ | |
683 | + var th=this; | |
684 | + | |
685 | + //需要读者系统顺序 | |
686 | + var json_d =this.data.json_d; | |
687 | + var auto_promote_sale=json_d.auto_promote_sale; | |
688 | + var sort_type=''; | |
689 | + | |
690 | + if(!auto_promote_sale){ | |
691 | + sort_type='prom_id'; | |
692 | + }else{ | |
693 | + var auto_promote_sale=auto_promote_sale.split(','); | |
694 | + //-- 循环处理 -- | |
695 | + prom_list.map(function (e){ | |
696 | + var fd=auto_promote_sale.indexOf(e.prom_type+''); | |
697 | + e.sort=fd; | |
698 | + }) | |
699 | + sort_type='sort'; | |
700 | + } | |
701 | + | |
702 | + //-- 排序一下,进行升序 -- | |
703 | + function comp(a, b,sort_type) { | |
704 | + return a[sort_type]-b[sort_type]; //升序 | |
705 | + } | |
706 | + | |
707 | + //使用sort排序 | |
708 | + prom_list.sort(comp); | |
709 | + }, | |
710 | + | |
679 | 711 | //-----真的获取购物车,入口-------- |
680 | 712 | get_cart: function () { |
681 | 713 | var th = this, app = getApp(); |
... | ... | @@ -715,14 +747,25 @@ Page({ |
715 | 747 | //---是不是购买等级卡成功的返回---等级卡显示的判断--- |
716 | 748 | var is_card_back = getApp().globalData.is_card_back; |
717 | 749 | |
718 | - | |
719 | 750 | //-- 判断组合购是总数量是不是存在 -- |
720 | 751 | var no_zh_num={}; |
721 | 752 | |
753 | + //-------- 如果是立即购买过来的时候 或者购买的商品只有一种的时候 --- | |
754 | + if(carr.length==1){ | |
755 | + var item1=carr[0]; | |
756 | + await th.buy_pro_group(item1,1); | |
757 | + if(item1.prom_type==0 && item1.more_cx){ | |
758 | + //-- 对活动进行排序 -- | |
759 | + th.cx_prom_group(item1.more_cx); | |
760 | + item1.prom_type=item1.more_cx[0].prom_type; | |
761 | + item1.prom_type=item1.more_cx[0].prom_id; | |
762 | + } | |
763 | + } | |
764 | + | |
765 | + | |
722 | 766 | for (var i = 0; i < carr.length; i++) { |
723 | 767 | var item1 = carr[i]; |
724 | 768 | //把已经购买了多少见的内容填入 |
725 | - | |
726 | 769 | var goodsbuynum = 0, promgoodsbuynum = 0; |
727 | 770 | //--要获得商品,该用户买了多少件,同步应用-- |
728 | 771 | await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { |
... | ... | @@ -1244,7 +1287,7 @@ Page({ |
1244 | 1287 | }, |
1245 | 1288 | |
1246 | 1289 | |
1247 | - //-----获取立即购买的商品信息,入口---- | |
1290 | + //-----单个商品购买的入口判断---- | |
1248 | 1291 | get_buy_goods: function (e) { |
1249 | 1292 | var th = this; |
1250 | 1293 | var gg = to.get_b_now(); |
... | ... | @@ -1750,37 +1793,198 @@ Page({ |
1750 | 1793 | } |
1751 | 1794 | }, |
1752 | 1795 | |
1753 | - //-- 立即购买的时候,获取商品优惠活动 -- | |
1754 | - async buy_pro_group(gd){ | |
1796 | + //-- 立即购买的时候,获取商品优惠活动,is_state判断是不是单个商品购买, | |
1797 | + // 很多活动需要判断会员的plus等级, 权益登陆,user_id调用接口是必须的 -- | |
1798 | + //先用着,后面会用接口来代替 | |
1799 | + async buy_pro_group(item1, is_state) { | |
1800 | + //-- 代发商品不参与任何活动 -- | |
1801 | + if(item1.whsle_id) return false; | |
1755 | 1802 | var url = '/api/weshop/activitylist/listGoodActInfo2New'; |
1756 | - var user_id=getApp().globalData.user_id; | |
1757 | - var zh_id=0; | |
1803 | + var user_id = getApp().globalData.user_id; | |
1804 | + var zh_id = 0; | |
1805 | + var zh_prom = null; | |
1806 | + var gdlist = null; | |
1807 | + | |
1758 | 1808 | var req_d = { |
1759 | 1809 | "store_id": os.stoid, |
1760 | - "goods_id": gd.goods_id, | |
1810 | + "goods_id": item1.goods_id, | |
1761 | 1811 | "user_id": user_id, |
1762 | 1812 | } |
1763 | 1813 | |
1764 | - await getApp().request.promiseGet(url, {}).then(res=>{ | |
1765 | - | |
1814 | + await getApp().request.promiseGet(url, {data: req_d}).then(res => { | |
1815 | + if (e.data.code == 0 && e.data.data && e.data.data.length > 0) { | |
1816 | + var arr = e.data.data; | |
1817 | + if (arr.length) { | |
1818 | + arr3 = arr.filter(function (e) { | |
1819 | + return e.s_time < ut.gettimestamp() && e.prom_type == 7; | |
1820 | + }) | |
1821 | + if (arr3 && arr3.length) { | |
1822 | + zh_id = arr3[0].act_id; | |
1823 | + } | |
1824 | + } | |
1825 | + } | |
1766 | 1826 | }) |
1767 | 1827 | |
1768 | 1828 | //-- 如果有组合购的时候,同时还要判断单件商品的购买数量有没有满足组合购的条件 -- |
1769 | - if(zh_id){ | |
1770 | - //获取活动信息 | |
1771 | - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + zh_id + "/" + user_id; | |
1772 | - getApp().request.promiseGet(url, { | |
1829 | + if (zh_id) { | |
1830 | + var is_zh_ok = 1; | |
1831 | + | |
1832 | + | |
1833 | + //--- 首先组合购的限购 --- | |
1834 | + if(is_zh_ok){ | |
1835 | + //-- 组合购活动是限购 -- | |
1836 | + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`; | |
1837 | + let res = await getApp().request.promiseGet(url, { | |
1838 | + data: {} | |
1839 | + }); | |
1840 | + let userbuynum = 0 | |
1841 | + if (res.data.code == 0 && res.data.data) { | |
1842 | + userbuynum = res.data.data.userbuynum | |
1843 | + } | |
1844 | + | |
1845 | + if(zh_pro0.buy_limit>0 && zh_pro0.buy_limit<=userbuynum){ | |
1846 | + is_zh_ok=0; | |
1847 | + } | |
1848 | + } | |
1849 | + | |
1850 | + //-- 如果满足条件,才会显示活动 -- | |
1851 | + if (is_zh_ok) { | |
1852 | + var url1 = "/api/weshop/prom/zhbuyGoods/page"; | |
1853 | + var req_data = { | |
1854 | + page: 1, pageSize: 2000, | |
1855 | + store_id: os.stoid, | |
1856 | + zh_id: zh_id, | |
1857 | + } | |
1858 | + | |
1859 | + await getApp().request.promiseGet(url1, { | |
1860 | + data: req_data | |
1861 | + }).then(res => { | |
1862 | + if (ut.ajax_ok(res)) { | |
1863 | + gdlist = res.data.data.pageData; | |
1864 | + } | |
1865 | + }) | |
1773 | 1866 | |
1867 | + var zh_gd_fd = gdlist.find(function (e) { | |
1868 | + return e.goods_id == item.goods_id; | |
1774 | 1869 | }) |
1870 | + | |
1871 | + if (is_zh_ok) { | |
1872 | + //-- 商品的限购 -- | |
1873 | + var promgoodsbuynum = 0; | |
1874 | + //--要获得商品,该用户买了多少件,同步应用-- | |
1875 | + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
1876 | + data: { | |
1877 | + store_id: os.stoid, | |
1878 | + user_id: getApp().globalData.user_id, | |
1879 | + goods_id: item1.goods_id, | |
1880 | + prom_type: 7, | |
1881 | + prom_id: zh_id | |
1882 | + }, | |
1883 | + }).then(res => { | |
1884 | + var buy_num_data = res.data.data; | |
1885 | + if (buy_num_data.promgoodsbuynum) { | |
1886 | + promgoodsbuynum = buy_num_data.promgoodsbuynum; | |
1887 | + } | |
1888 | + }) | |
1889 | + | |
1890 | + //-- 组合购活动是限购 -- | |
1891 | + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`; | |
1892 | + let res = await getApp().request.promiseGet(url, {}); | |
1893 | + let userbuynum = 0 | |
1894 | + if (res.data.code == 0 && res.data.data) { | |
1895 | + userbuynum = res.data.data.userbuynum | |
1896 | + } | |
1897 | + | |
1898 | + //-- 判断是不是超出商品的限购 -- | |
1899 | + if (zh_gd_fd.buyqty > 0 && zh_gd_fd.promgoodsbuynum >= zh_gd_fd.buyqty) { | |
1900 | + is_zh_ok = 0; | |
1901 | + } | |
1902 | + //--- 要判断这个商品的必买有没有满足,如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- | |
1903 | + if (is_state == 1) { | |
1904 | + //-- 看有没有必买商品不满足的时候 -- | |
1905 | + var f_gd = gdlist.find(function (e) { | |
1906 | + return e.zhqty > 0 && e.goods_id != item.goods_id; | |
1907 | + }) | |
1908 | + if (f_gd) { | |
1909 | + is_zh_ok = 0; | |
1910 | + } | |
1911 | + //-- 同时商品的购买数量有没有满足 -- | |
1912 | + if(item1.goods_num<zh_pro0.zhbuyqty){ | |
1913 | + is_zh_ok = 0; | |
1914 | + } | |
1915 | + } | |
1916 | + //判断组合购活动是不是满足 | |
1917 | + if(is_zh_ok){ | |
1918 | + if(!item1.more_cx) item1.more_cx=[]; | |
1919 | + item1.more_cx.push({prom_type:7,prom_id:zh_id,gdlist:gdlist}) | |
1920 | + } | |
1921 | + } | |
1922 | + } | |
1923 | + } | |
1924 | + | |
1925 | + //调用接口判断优惠, | |
1926 | + var m_res=await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + gd.goods_id + "/0" + "/" + user_id, {}); | |
1927 | + if(m_res && m_res.data.code == 0 && m_res.data.data){ | |
1928 | + | |
1929 | + var r_data = res.data.data; | |
1930 | + //-- 如果是搭配购的时候 -- | |
1931 | + if (r_data.collocationList) { | |
1932 | + if(!item1.more_cx) item1.more_cx=[]; | |
1933 | + item1.more_cx.push({prom_type:5,prom_id: r_data.collocationPromList.id}); | |
1934 | + } | |
1935 | + //-- 如果是阶梯促销的时候 -- | |
1936 | + if (r_data.ladderLists) { | |
1937 | + var act_id = r_data.ladderLists[0].form_id; | |
1938 | + //-- 判断会员能不能参与阶梯促销 -- | |
1939 | + await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => { | |
1940 | + if (res.data.code == 0 && res.data.data) { | |
1941 | + if(!item1.more_cx) item1.more_cx=[]; | |
1942 | + item1.more_cx.push({prom_type:10,prom_id: act_id}); | |
1943 | + } | |
1944 | + }) | |
1945 | + } | |
1946 | + //-- 优惠促销的时候 -- 此时要注意活动的限购次数,以及活动的购买金额或者购买数量有没有满足 | |
1947 | + if (r_data.promGoodsLists) { | |
1948 | + | |
1949 | + var fir_act = r_data.promGoodsLists[0]; | |
1950 | + //-- 计算一下限购,满足限购数才显示 -- | |
1951 | + var url = `/api/weshop/ordergoods/getUserBuyPromNum?is_all=1&store_id=${os.stoid}&user_id=${user_id}&prom_type=3&prom_id=${fir_act.prom_id}`; | |
1952 | + let res_o = await getApp().request.promiseGet(url, {}); | |
1953 | + let user_pre_buynum=0 | |
1954 | + if(res_o.data.code==0 && res_o.data.data){ | |
1955 | + user_pre_buynum=res_o.data.data.userbuynum | |
1956 | + } | |
1957 | + //--- 这个地方是在计算优惠促销的限购 --- | |
1958 | + if(!fir_act.limit_num || th.data.user_pre_buynum<fir_act.limit_num){ | |
1959 | + | |
1960 | + var push_item={prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act}; | |
1961 | + //--- 如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- | |
1962 | + if (is_state == 1) { | |
1963 | + //-- 按件进行计算 -- | |
1964 | + if (fir_act.prom_type == 1) { | |
1965 | + if (fir_act.condition > item1.goods_num) { | |
1966 | + item1.more_cx.push(push_item); | |
1967 | + } | |
1968 | + }else{ | |
1969 | + //-- 按数量进行计算 -- | |
1970 | + var all_price = item.goods_price * item1.goods_num; | |
1971 | + if (parseFloat(fir_act.condition) > parseFloat(parseFloat(all_price).toFixed(2))) { | |
1972 | + item1.more_cx.push(push_item); | |
1973 | + } | |
1974 | + } | |
1975 | + | |
1976 | + }else{ | |
1977 | + if(!item1.more_cx) item1.more_cx=[]; | |
1978 | + item1.more_cx.push(push_item); | |
1979 | + } | |
1980 | + } | |
1981 | + } | |
1775 | 1982 | } |
1776 | 1983 | |
1777 | - //调用接口判断订单优惠, | |
1778 | - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + gd.goods_id + "/0" + "/" + user_id, { | |
1779 | - }).then(async res=>{ | |
1780 | 1984 | |
1781 | - }); | |
1782 | 1985 | }, |
1783 | 1986 | |
1987 | + | |
1784 | 1988 | //---------------检查是否有收货地址------------------- |
1785 | 1989 | checkAddressList: function () { |
1786 | 1990 | var t = this; | ... | ... |
pages/cart/cart/cart.js
... | ... | @@ -8,6 +8,7 @@ var t = getApp(), |
8 | 8 | zh_calc = require("zh_calculate.js"), |
9 | 9 | ladder_calc = require("ladder_calculate.js"); |
10 | 10 | var regeneratorRuntime = require('../../../utils/runtime.js'); |
11 | +const e = require("../../../../utils/common.js"); | |
11 | 12 | |
12 | 13 | |
13 | 14 | Page({ |
... | ... | @@ -41,6 +42,7 @@ Page({ |
41 | 42 | zuhe_map: {}, |
42 | 43 | zuhe_map_good: {}, |
43 | 44 | in_zhact_gdmap: {}, //不同门店参与同一活动的限购 |
45 | + in_zhact_gdmap_gp: {}, //不同门店参与同一活动的限购,新版判断的时候 | |
44 | 46 | |
45 | 47 | ladder_map: {}, //阶梯促销需要的map |
46 | 48 | |
... | ... | @@ -48,8 +50,220 @@ Page({ |
48 | 50 | promgoods_list: {} |
49 | 51 | |
50 | 52 | }, |
51 | - onLoad: function () { | |
52 | 53 | |
54 | + //-- 立即购买的时候,获取商品优惠活动,is_state判断是不是单个商品购买, | |
55 | + // 很多活动需要判断会员的plus等级, 权益登陆,user_id调用接口是必须的 -- | |
56 | + //先用着,后面会用接口来代替 | |
57 | + async buy_pro_group(item1, is_state) { | |
58 | + //-- 代发商品不参与任何活动 -- | |
59 | + if(item1.whsle_id) return false; | |
60 | + var url = '/api/weshop/activitylist/listGoodActInfo2New'; | |
61 | + var user_id = getApp().globalData.user_id; | |
62 | + var zh_id = 0; | |
63 | + var zh_prom = null; | |
64 | + var gdlist = null; | |
65 | + | |
66 | + var req_d = { | |
67 | + "store_id": os.stoid, | |
68 | + "goods_id": item1.goods_id, | |
69 | + "user_id": user_id, | |
70 | + } | |
71 | + | |
72 | + await getApp().request.promiseGet(url, {data: req_d}).then(res => { | |
73 | + if (e.data.code == 0 && e.data.data && e.data.data.length > 0) { | |
74 | + var arr = e.data.data; | |
75 | + if (arr.length) { | |
76 | + arr3 = arr.filter(function (e) { | |
77 | + return e.s_time < ut.gettimestamp() && e.prom_type == 7; | |
78 | + }) | |
79 | + if (arr3 && arr3.length) { | |
80 | + zh_id = arr3[0].act_id; | |
81 | + } | |
82 | + } | |
83 | + } | |
84 | + }) | |
85 | + | |
86 | + //-- 如果有组合购的时候,同时还要判断单件商品的购买数量有没有满足组合购的条件 -- | |
87 | + if (zh_id) { | |
88 | + var is_zh_ok = 1; | |
89 | + var zh_pro0 = null; | |
90 | + //-- 获取活动信息 -- | |
91 | + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + zh_id + "/" + user_id; | |
92 | + await getApp().request.promiseGet(url, {}).then(rh => { | |
93 | + if (res.data.code == 0 && res.data.data) { | |
94 | + //如果活动已经结束 | |
95 | + if (res.data.data.is_end == 1) { | |
96 | + is_zh_ok = 0; | |
97 | + } | |
98 | + if (ut.gettimestamp() > res.data.data.end_time) { | |
99 | + is_zh_ok = 0; | |
100 | + } | |
101 | + zh_pro0 = res.data.data; | |
102 | + //--- 在这里要判断一下活动的组合购总数量 --- | |
103 | + if (zh_pro0.zh_num > 0 && zh_pro0.zh_buy_num >= zh_pro0.zh_num) { | |
104 | + is_zh_ok = 0; | |
105 | + } | |
106 | + } else { | |
107 | + is_zh_ok = 0; | |
108 | + } | |
109 | + }) | |
110 | + | |
111 | + //--- 首先组合购的限购 --- | |
112 | + if(is_zh_ok){ | |
113 | + //-- 组合购活动是限购 -- | |
114 | + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`; | |
115 | + let res = await getApp().request.promiseGet(url, { | |
116 | + data: {} | |
117 | + }); | |
118 | + let userbuynum = 0 | |
119 | + if (res.data.code == 0 && res.data.data) { | |
120 | + userbuynum = res.data.data.userbuynum | |
121 | + } | |
122 | + | |
123 | + if(zh_pro0.buy_limit>0 && zh_pro0.buy_limit<=userbuynum){ | |
124 | + is_zh_ok=0; | |
125 | + } | |
126 | + } | |
127 | + | |
128 | + //-- 如果满足条件,才会显示活动 -- | |
129 | + if (is_zh_ok) { | |
130 | + var url1 = "/api/weshop/prom/zhbuyGoods/page"; | |
131 | + var req_data = { | |
132 | + page: 1, pageSize: 2000, | |
133 | + store_id: os.stoid, | |
134 | + zh_id: zh_id, | |
135 | + } | |
136 | + | |
137 | + await getApp().request.promiseGet(url1, { | |
138 | + data: req_data | |
139 | + }).then(res => { | |
140 | + if (ut.ajax_ok(res)) { | |
141 | + gdlist = res.data.data.pageData; | |
142 | + } | |
143 | + }) | |
144 | + | |
145 | + var zh_gd_fd = gdlist.find(function (e) { | |
146 | + return e.goods_id == item.goods_id; | |
147 | + }) | |
148 | + | |
149 | + if (is_zh_ok) { | |
150 | + //-- 商品的限购 -- | |
151 | + var promgoodsbuynum = 0; | |
152 | + //--要获得商品,该用户买了多少件,同步应用-- | |
153 | + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
154 | + data: { | |
155 | + store_id: os.stoid, | |
156 | + user_id: getApp().globalData.user_id, | |
157 | + goods_id: item1.goods_id, | |
158 | + prom_type: 7, | |
159 | + prom_id: zh_id | |
160 | + }, | |
161 | + }).then(res => { | |
162 | + var buy_num_data = res.data.data; | |
163 | + if (buy_num_data.promgoodsbuynum) { | |
164 | + promgoodsbuynum = buy_num_data.promgoodsbuynum; | |
165 | + } | |
166 | + }) | |
167 | + | |
168 | + //-- 组合购活动是限购 -- | |
169 | + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${user_id}&prom_type=7&prom_id=${zh_id}`; | |
170 | + let res = await getApp().request.promiseGet(url, {}); | |
171 | + let userbuynum = 0 | |
172 | + if (res.data.code == 0 && res.data.data) { | |
173 | + userbuynum = res.data.data.userbuynum | |
174 | + } | |
175 | + | |
176 | + //-- 判断是不是超出商品的限购 -- | |
177 | + if (zh_gd_fd.buyqty > 0 && zh_gd_fd.promgoodsbuynum >= zh_gd_fd.buyqty) { | |
178 | + is_zh_ok = 0; | |
179 | + } | |
180 | + //--- 要判断这个商品的必买有没有满足,如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- | |
181 | + if (is_state == 1) { | |
182 | + //-- 看有没有必买商品不满足的时候 -- | |
183 | + var f_gd = gdlist.find(function (e) { | |
184 | + return e.zhqty > 0 && e.goods_id != item.goods_id; | |
185 | + }) | |
186 | + if (f_gd) { | |
187 | + is_zh_ok = 0; | |
188 | + } | |
189 | + //-- 同时商品的购买数量有没有满足 -- | |
190 | + if(item1.goods_num<zh_pro0.zhbuyqty){ | |
191 | + is_zh_ok = 0; | |
192 | + } | |
193 | + } | |
194 | + //判断组合购活动是不是满足 | |
195 | + if(is_zh_ok){ | |
196 | + if(!item1.more_cx) item1.more_cx=[]; | |
197 | + item1.more_cx.push({prom_type:7,prom_id:zh_id,gdlist:gdlist}) | |
198 | + } | |
199 | + } | |
200 | + } | |
201 | + | |
202 | + } | |
203 | + | |
204 | + //调用接口判断优惠, | |
205 | + var m_res=await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + gd.goods_id + "/0" + "/" + user_id, {}); | |
206 | + if(m_res && m_res.data.code == 0 && m_res.data.data){ | |
207 | + | |
208 | + var r_data = res.data.data; | |
209 | + //-- 如果是搭配购的时候 -- | |
210 | + if (r_data.collocationList) { | |
211 | + if(!item1.more_cx) item1.more_cx=[]; | |
212 | + item1.more_cx.push({prom_type:5,prom_id: r_data.collocationPromList.id}); | |
213 | + } | |
214 | + //-- 如果是阶梯促销的时候 -- | |
215 | + if (r_data.ladderLists) { | |
216 | + var act_id = r_data.ladderLists[0].form_id; | |
217 | + //-- 判断会员能不能参与阶梯促销 -- | |
218 | + await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => { | |
219 | + if (res.data.code == 0 && res.data.data) { | |
220 | + if(!item1.more_cx) item1.more_cx=[]; | |
221 | + item1.more_cx.push({prom_type:10,prom_id: act_id}); | |
222 | + } | |
223 | + }) | |
224 | + } | |
225 | + //-- 优惠促销的时候 -- 此时要注意活动的限购次数,以及活动的购买金额或者购买数量有没有满足 | |
226 | + if (r_data.promGoodsLists) { | |
227 | + | |
228 | + var fir_act = r_data.promGoodsLists[0]; | |
229 | + //-- 计算一下限购,满足限购数才显示 -- | |
230 | + var url = `/api/weshop/ordergoods/getUserBuyPromNum?is_all=1&store_id=${os.stoid}&user_id=${user_id}&prom_type=3&prom_id=${fir_act.prom_id}`; | |
231 | + let res_o = await getApp().request.promiseGet(url, {}); | |
232 | + let user_pre_buynum=0 | |
233 | + if(res_o.data.code==0 && res_o.data.data){ | |
234 | + user_pre_buynum=res_o.data.data.userbuynum | |
235 | + } | |
236 | + //--- 这个地方是在计算优惠促销的限购 --- | |
237 | + if(!fir_act.limit_num || th.data.user_pre_buynum<fir_act.limit_num){ | |
238 | + | |
239 | + var push_item={prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act}; | |
240 | + //--- 如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- | |
241 | + if (is_state == 1) { | |
242 | + //-- 按件进行计算 -- | |
243 | + if (fir_act.prom_type == 1) { | |
244 | + if (fir_act.condition > item1.goods_num) { | |
245 | + item1.more_cx.push(push_item); | |
246 | + } | |
247 | + }else{ | |
248 | + //-- 按数量进行计算 -- | |
249 | + var all_price = item.goods_price * item1.goods_num; | |
250 | + if (parseFloat(fir_act.condition) > parseFloat(parseFloat(all_price).toFixed(2))) { | |
251 | + item1.more_cx.push(push_item); | |
252 | + } | |
253 | + } | |
254 | + | |
255 | + }else{ | |
256 | + if(!item1.more_cx) item1.more_cx=[]; | |
257 | + item1.more_cx.push(push_item); | |
258 | + } | |
259 | + } | |
260 | + } | |
261 | + } | |
262 | + | |
263 | + | |
264 | + }, | |
265 | + | |
266 | + onLoad: function () { | |
53 | 267 | var a = this, |
54 | 268 | ee = a; |
55 | 269 | |
... | ... | @@ -79,7 +293,6 @@ Page({ |
79 | 293 | getApp().requestCardNum(this); |
80 | 294 | } |
81 | 295 | |
82 | - | |
83 | 296 | var th = this; |
84 | 297 | this.setData({ |
85 | 298 | requestData: null, |
... | ... | @@ -450,7 +663,6 @@ Page({ |
450 | 663 | var g_arr = []; |
451 | 664 | for (var i = 0; i < carr.length; i++) { |
452 | 665 | |
453 | - | |
454 | 666 | //-- 清理购物车的选中状态 -- |
455 | 667 | var url = '/api/weshop/cart/update'; |
456 | 668 | getApp().request.put(url, { |
... | ... | @@ -495,8 +707,6 @@ Page({ |
495 | 707 | var item = carr[i]; |
496 | 708 | var good = item; |
497 | 709 | |
498 | - | |
499 | - | |
500 | 710 | if (item.is_gift) { |
501 | 711 | var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; |
502 | 712 | getApp().request.delete(url, { |
... | ... | @@ -550,82 +760,36 @@ Page({ |
550 | 760 | } |
551 | 761 | |
552 | 762 | //-- 如果有优惠促销,和阶梯促销,要看下有没有组合购,搭配购,看一下优惠促销和阶梯促销谁是指定商品参与的 -- |
553 | - if(item.prom_type==0 || item.prom_type==3 || item.prom_type==10){ | |
554 | - | |
763 | + if(item.prom_type==3 || item.prom_type==5 || item.prom_type==7 || item.prom_type==10){ | |
555 | 764 | var c_prom_type=0; |
556 | 765 | var c_prom_id=0; |
557 | 766 | |
558 | - //因为有全场优惠活动,商品参加的活动还未开始 | |
559 | - var url_ch_more_act = "/api/weshop/activitylist/getGoodActInfo"; | |
560 | - var req_data_m = { | |
561 | - store_id: os.stoid, goodsidlist: item.goods_id, is_detail: 1, user_id: user_id | |
562 | - }; | |
563 | - await getApp().request.promiseGet(url_ch_more_act, { data: req_data_m }).then(async function (res) { | |
564 | - if (res.data.code == 0 && res.data.data && res.data.data.length) { | |
565 | - //-- 先看一下有没有组合购 -- | |
566 | - var zh_fd=res.data.data.filter(function (e) { | |
567 | - return e.prom_type==7; | |
568 | - }) | |
569 | - if(zh_fd && zh_fd.length){ | |
570 | - c_prom_type=zh_fd[0].prom_type; | |
571 | - c_prom_id=zh_fd[0].act_id; | |
572 | - return; | |
573 | - } | |
574 | - | |
575 | - //-- 先看一下有没有搭配购 -- | |
576 | - var dp_fd=res.data.data.filter(function (e) { | |
577 | - return e.prom_type==5; | |
578 | - }) | |
579 | - if(dp_fd && dp_fd.length){ | |
580 | - c_prom_type=dp_fd[0].prom_type; | |
581 | - c_prom_id=dp_fd[0].act_id; | |
582 | - return; | |
583 | - } | |
584 | - | |
585 | - //-- 先看一下有没有指定优惠促销 -- | |
586 | - var yh_fd=res.data.data.filter(function (e) { | |
587 | - return e.prom_type==3 && e.good_object==1; | |
588 | - }) | |
589 | - if(yh_fd && yh_fd.length){ | |
590 | - c_prom_type=yh_fd[0].prom_type; | |
591 | - c_prom_id=yh_fd[0].act_id; | |
592 | - return; | |
593 | - } | |
767 | + item.prom_type=c_prom_type; | |
768 | + item.prom_id=c_prom_id; | |
594 | 769 | |
595 | - //-- 先看一下有没有指定阶梯促销 -- | |
596 | - var jt_fd=res.data.data.filter(function (e) { | |
597 | - return e.prom_type==10 && e.good_object==1; | |
598 | - }) | |
599 | - if(jt_fd && jt_fd.length){ | |
600 | - c_prom_type=jt_fd[0].prom_type; | |
601 | - c_prom_id=jt_fd[0].act_id; | |
602 | - } | |
770 | + if (th.data.card_field && good[th.data.card_field]) { | |
771 | + item.goods_price = good[th.data.card_field]; //要同步下线商品的id | |
772 | + } else { | |
773 | + item.goods_price = good.shop_price; | |
774 | + } | |
603 | 775 | |
604 | - } | |
776 | + //-- 购物车更新 -- | |
777 | + var updata1 = { | |
778 | + id: item.id, | |
779 | + prom_type: c_prom_type, | |
780 | + prom_id:c_prom_id, | |
781 | + store_id: os.stoid, | |
782 | + user_id: getApp().globalData.userInfo.user_id | |
783 | + }; | |
784 | + getApp().request.put("/api/weshop/cart/update", { | |
785 | + data: updata1, | |
605 | 786 | }) |
606 | 787 | |
607 | - if(c_prom_type && (c_prom_type!=item.prom_type || c_prom_id!=item.prom_id )){ | |
608 | - item.prom_type=c_prom_type; | |
609 | - item.prom_id=c_prom_id; | |
610 | - //-- 购物车更新 -- | |
611 | - var updata1 = { | |
612 | - id: item.id, | |
613 | - prom_type: c_prom_type, | |
614 | - prom_id:c_prom_id, | |
615 | - store_id: os.stoid, | |
616 | - user_id: getApp().globalData.userInfo.user_id | |
617 | - }; | |
618 | - getApp().request.put("/api/weshop/cart/update", { | |
619 | - data: updata1, | |
620 | - }) | |
621 | - } | |
622 | - | |
623 | 788 | } |
624 | 789 | |
625 | 790 | //判断如果是普通商品,后面参加活动了,变成失效商品 |
626 | 791 | if (item.prom_type == 0 ) { |
627 | 792 | |
628 | - | |
629 | 793 | var prom = null; |
630 | 794 | var now = ut.gettimestamp(); |
631 | 795 | await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2New`, { |
... | ... | @@ -644,41 +808,20 @@ Page({ |
644 | 808 | prom.push(a_item); |
645 | 809 | } |
646 | 810 | } |
647 | - | |
648 | - | |
649 | 811 | } |
650 | 812 | }) |
651 | - let prom_true = 0 | |
652 | - let prom_id = 0 | |
653 | - if (prom) { | |
654 | - prom.map(item => { | |
655 | - if (item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7 || item.prom_type == 10) { | |
656 | - prom_true = item.prom_type | |
657 | - prom_id = item.act_id | |
658 | - } | |
659 | - }) | |
660 | - } | |
661 | - if (prom_true) { | |
662 | - //-- 购物车更新 -- | |
663 | - var updata1 = { | |
664 | - id: item.id, | |
665 | - prom_type: prom_true, | |
666 | - prom_id, | |
667 | - store_id: os.stoid, | |
668 | - user_id: getApp().globalData.userInfo.user_id | |
669 | - }; | |
670 | - item.prom_id = prom_id | |
671 | - item.prom_type = prom_true | |
672 | - getApp().request.put("/api/weshop/cart/update", { | |
673 | - data: updata1, | |
674 | - }) | |
675 | 813 | |
676 | - } else { | |
677 | - if (prom && !item.is_integral_normal && !item.is_pd_normal && prom[0].prom_type != 5) { | |
678 | - th.disInvalid(item); | |
814 | + //只有一种活动,但是又是秒杀之类是互动,就要失效。不能是普通购买 | |
815 | + if (prom.length==1 && [1,2,4,6,8,9].indexOf(prom.prom_type)>-1 && !prom.is_integral_normal && !prom.is_pd_normal) { | |
816 | + th.disInvalid(item); | |
817 | + continue; | |
818 | + } | |
819 | + //只有秒杀和积分购的时候,不能是普通购买 | |
820 | + 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) { | |
821 | + th.disInvalid(item); | |
679 | 822 | continue; |
680 | - } | |
681 | 823 | } |
824 | + | |
682 | 825 | } |
683 | 826 | |
684 | 827 | |
... | ... | @@ -699,7 +842,6 @@ Page({ |
699 | 842 | }) |
700 | 843 | } |
701 | 844 | |
702 | - | |
703 | 845 | //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着 |
704 | 846 | if (item.prom_type == 1) { |
705 | 847 | var prom = null; |
... | ... | @@ -784,392 +926,7 @@ Page({ |
784 | 926 | |
785 | 927 | |
786 | 928 | } |
787 | - //--判断优惠活动有没有过期,-- | |
788 | - else if (item.prom_type == 3) { | |
789 | - var isok = 1, is_g_prom = 0; | |
790 | - | |
791 | - //因为有全场优惠活动,商品参加的活动还未开始 | |
792 | - var url = "/api/weshop/activitylist/getGoodActInfo"; | |
793 | - var req_data = { | |
794 | - store_id: os.stoid, goodsidlist: item.goods_id, is_detail: 1, user_id: user_id | |
795 | - }; | |
796 | - await getApp().request.promiseGet(url, { data: req_data }).then(async function (res) { | |
797 | - if (res.data.code == 0 && res.data.data && res.data.data.length) { | |
798 | - for (let i in res.data.data) { | |
799 | - let item = res.data.data[i]; | |
800 | - if (item.prom_type == 3) { | |
801 | - is_g_prom = 1; break; | |
802 | - } | |
803 | - } | |
804 | - } | |
805 | - }) | |
806 | 929 | |
807 | - if (is_g_prom) { | |
808 | - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew/" + os.stoid + "/" + item.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => { | |
809 | - if (res.data.code == 0) { | |
810 | - var r_data = res.data.data; | |
811 | - if (!r_data.promGoodsLists) { | |
812 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
813 | - // getApp().request.delete(url, {}); | |
814 | - //商品已经无活动 | |
815 | - // th.disInvalid(item); | |
816 | - // isok = 0; | |
817 | - item.prom_type = 0 | |
818 | - //购物车更新 | |
819 | - th.cartUpFn(item) | |
820 | - } else { | |
821 | - //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了 | |
822 | - if (item.prom_id != r_data.promGoodsLists[0].prom_id) { | |
823 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
824 | - // getApp().request.delete(url, {}); | |
825 | - //商品已经下架 | |
826 | - // th.disInvalid(item); | |
827 | - // isok = 0; | |
828 | - item.prom_type = 0 | |
829 | - //购物车更新 | |
830 | - th.cartUpFn(item) | |
831 | - } | |
832 | - } | |
833 | - | |
834 | - } else { | |
835 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
836 | - // getApp().request.delete(url, {}); | |
837 | - // th.disInvalid(item); | |
838 | - // //商品已经下架 | |
839 | - // isok = 0; | |
840 | - item.prom_type = 0 | |
841 | - //购物车更新 | |
842 | - th.cartUpFn(item) | |
843 | - } | |
844 | - }) | |
845 | - | |
846 | - } else { | |
847 | - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + item.goods_id, {}).then(res => { | |
848 | - if (res.data.code == 0) { | |
849 | - var r_data = res.data.data; | |
850 | - if (!r_data.promGoodsLists) { | |
851 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
852 | - // getApp().request.delete(url, {}); | |
853 | - // th.disInvalid(item); | |
854 | - // //商品已经无活动 | |
855 | - // isok = 0; | |
856 | - item.prom_type = 0 | |
857 | - //购物车更新 | |
858 | - th.cartUpFn(item) | |
859 | - } else { | |
860 | - //如果活动的ID不一样,说明原先的活动已经没有参与了或者过期了 | |
861 | - if (item.prom_id != r_data.promGoodsLists[0].prom_id) { | |
862 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
863 | - // getApp().request.delete(url, {}); | |
864 | - // th.disInvalid(item); | |
865 | - // //商品已经下架 | |
866 | - // isok = 0; | |
867 | - item.prom_type = 0 | |
868 | - //购物车更新 | |
869 | - th.cartUpFn(item) | |
870 | - } | |
871 | - } | |
872 | - | |
873 | - } else { | |
874 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
875 | - // getApp().request.delete(url, {}); | |
876 | - // th.disInvalid(item,1); | |
877 | - // //商品已经下架 | |
878 | - // isok = 0; | |
879 | - item.prom_type = 0 | |
880 | - //购物车更新 | |
881 | - th.cartUpFn(item) | |
882 | - } | |
883 | - }) | |
884 | - } | |
885 | - // if (!isok) continue; | |
886 | - } | |
887 | - else if (item.prom_type == 7) { | |
888 | - console.log('组合购------------'); | |
889 | - if (!th.data.zuhe_map[item.prom_id]) { | |
890 | - console.log('组1') | |
891 | - //如果有组合购 | |
892 | - var isok = 1; | |
893 | - var is_flag = 1; | |
894 | - var act = null; | |
895 | - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item.prom_id + "/" + getApp().globalData.user_id; | |
896 | - await getApp().request.promiseGet(url, {}).then(res => { | |
897 | - console.log(res); | |
898 | - if (res.data.code == 0 && res.data.data) { | |
899 | - if (res.data.data.is_show != 1) { | |
900 | - isok = 0; | |
901 | - } | |
902 | - //如果活动已经结束 | |
903 | - if (res.data.data.is_end == 1) { | |
904 | - isok = 0; | |
905 | - } | |
906 | - //已经结束 | |
907 | - if (ut.gettimestamp() > res.data.data.end_time) { | |
908 | - isok = 0; | |
909 | - } | |
910 | - //还未开始 | |
911 | - if (ut.gettimestamp() < res.data.data.start_time) { | |
912 | - isok = 0; | |
913 | - } | |
914 | - if(res.data.data.zh_num>0 && res.data.data.zh_num<=res.data.data.zh_buy_num){ | |
915 | - isok = 0; | |
916 | - } | |
917 | - | |
918 | - act = res.data.data; | |
919 | - | |
920 | - } else { | |
921 | - //未找到商品的活动 | |
922 | - is_flag = 0; | |
923 | - } | |
924 | - }) | |
925 | - if (!isok) { | |
926 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
927 | - // getApp().request.delete(url, {}); | |
928 | - //组合购失效不处理 | |
929 | - // th.disInvalid(item); | |
930 | - // th.data.zuhe_map[item.prom_id] = -1; | |
931 | - // continue; | |
932 | - item.prom_type = 0 | |
933 | - //购物车更新 | |
934 | - th.cartUpFn(item) | |
935 | - } else { | |
936 | - th.data.zuhe_map[item.prom_id] = act; | |
937 | - var url1 = "/api/weshop/prom/zhbuyGoods/page"; | |
938 | - var req_data = { | |
939 | - page: 1, | |
940 | - pageSize: 2000, | |
941 | - store_id: os.stoid, | |
942 | - zh_id: item.prom_id, | |
943 | - } | |
944 | - await getApp().request.promiseGet(url1, { | |
945 | - data: req_data | |
946 | - }).then(res => { | |
947 | - console.log(res, 2000); | |
948 | - if (ut.ajax_ok(res)) { | |
949 | - var gdlist = res.data.data.pageData; | |
950 | - gdlist.forEach(i => { | |
951 | - if (item.goods_id == i.goods_id && !is_flag) { | |
952 | - item.prom_type = 0; | |
953 | - item.prom_type1 = 0; | |
954 | - item.prom_id = 0; | |
955 | - item.prom_id1 = 0 | |
956 | - } | |
957 | - }) | |
958 | - th.data.zuhe_map_good[item.prom_id] = gdlist; | |
959 | - } | |
960 | - }) | |
961 | - } | |
962 | - } | |
963 | - console.log('组2') | |
964 | - if (th.data.zuhe_map[item.prom_id] && th.data.zuhe_map[item.prom_id] != -1) { | |
965 | - console.log('组3') | |
966 | - var gdlist = th.data.zuhe_map_good[item.prom_id]; | |
967 | - var t_item = gdlist.find(function (ele) { | |
968 | - return ele.goods_id == item.goods_id | |
969 | - }) | |
970 | - if (!t_item) { | |
971 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
972 | - // getApp().request.delete(url, {}); | |
973 | - //组合购不处理 | |
974 | - // th.disInvalid(item,1); | |
975 | - // th.data.zuhe_map[item.prom_id] = -1; | |
976 | - // continue; | |
977 | - item.prom_type = 0 | |
978 | - //购物车更新 | |
979 | - th.cartUpFn(item) | |
980 | - } else { | |
981 | - let act =th.data.zuhe_map[item.prom_id] | |
982 | - //判断是否超出组合购次数限制 | |
983 | - | |
984 | - if(act.buy_limit !=0){ | |
985 | - let userbuynum = await th.getUserBuyPromNum(item.goods_prom_id) | |
986 | - if(userbuynum>=act.buy_limit){ | |
987 | - item.goods_prom_type = 0 | |
988 | - item.goods_prom_id = 0 | |
989 | - item.prom_type = 0 | |
990 | - item.prom_id = 0 | |
991 | - //购物车更新 | |
992 | - th.cartUpFn(item) | |
993 | - }else{ | |
994 | - item.buyqty = t_item.buyqty; | |
995 | - item.zh_b_num = promgoodsbuynum; | |
996 | - item.act = th.data.zuhe_map[item.prom_id]; | |
997 | - } | |
998 | - }else{ | |
999 | - item.buyqty = t_item.buyqty; | |
1000 | - item.zh_b_num = promgoodsbuynum; | |
1001 | - item.act = th.data.zuhe_map[item.prom_id]; | |
1002 | - } | |
1003 | - } | |
1004 | - } //else{ | |
1005 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
1006 | - // getApp().request.delete(url, {}); | |
1007 | - // th.data.zuhe_map[item.prom_id]=-1; | |
1008 | - // continue; | |
1009 | - // } | |
1010 | - } | |
1011 | - else if (item.prom_type == 10) { | |
1012 | - if (!th.data.ladder_map[item.prom_id]) { | |
1013 | - //如果有阶梯购 | |
1014 | - var isok = 1; | |
1015 | - var is_flag = 1; | |
1016 | - var act = null; | |
1017 | - var url = "/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + item.prom_id; | |
1018 | - await getApp().request.promiseGet(url, {}).then(res => { | |
1019 | - console.log(res, 1000); | |
1020 | - if (res.data.code == 0 && res.data.data) { | |
1021 | - if (res.data.data.isuse != 1) { | |
1022 | - isok = 0; | |
1023 | - } | |
1024 | - //如果活动已经结束 | |
1025 | - if (res.data.data.is_end == 1) { | |
1026 | - isok = 0; | |
1027 | - } | |
1028 | - //已经结束 | |
1029 | - if (ut.gettimestamp() > res.data.data.end_time) { | |
1030 | - isok = 0; | |
1031 | - } | |
1032 | - //还未开始 | |
1033 | - if (ut.gettimestamp() < res.data.data.start_time) { | |
1034 | - isok = 0; | |
1035 | - } | |
1036 | - act = res.data.data; | |
1037 | - | |
1038 | - } else { | |
1039 | - //未找到商品的活动 | |
1040 | - isok = 0; | |
1041 | - } | |
1042 | - }) | |
1043 | - if (!isok) { | |
1044 | - // var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; | |
1045 | - // getApp().request.delete(url, {}); | |
1046 | - th.disInvalid(item, 1); | |
1047 | - th.data.ladder_map[item.prom_id] = -1; | |
1048 | - continue; | |
1049 | - } | |
1050 | - th.data.ladder_map[item.prom_id] = act; | |
1051 | - | |
1052 | - //-- 获取阶梯规则 -- | |
1053 | - var url1 = "/api/weshop/prom/ladderList/list"; | |
1054 | - var req_data = { | |
1055 | - store_id: os.stoid, | |
1056 | - form_id: item.prom_id, | |
1057 | - } | |
1058 | - await getApp().request.promiseGet(url1, { | |
1059 | - data: req_data | |
1060 | - }).then(rs1 => { | |
1061 | - if (rs1.data.code == 0 && rs1.data.data) { | |
1062 | - var gdlist = rs1.data.data; | |
1063 | - th.data.ladder_map[item.prom_id].ladder_list = gdlist; | |
1064 | - } | |
1065 | - }) | |
1066 | - } | |
1067 | - //直接把活动赋值给元素 | |
1068 | - if (th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id] != -1) { | |
1069 | - item.act = th.data.ladder_map[item.prom_id]; | |
1070 | - } | |
1071 | - | |
1072 | - } | |
1073 | - //判断不是代发的商品 | |
1074 | - else if (item.prom_type == 0 && !item.whsle_id) { | |
1075 | - | |
1076 | - //如果有优惠活动,要更新活动 | |
1077 | - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + item.goods_id + "/1" + "/" + getApp().globalData.user_id, {}).then(res => { | |
1078 | - if (res.data.code == 0 && res.data.data) { | |
1079 | - var r_data = res.data.data; | |
1080 | - if (r_data.promGoodsLists) { | |
1081 | - var url = '/api/weshop/cart/update'; | |
1082 | - getApp().request.put(url, { | |
1083 | - data: { | |
1084 | - id: item.id, | |
1085 | - store_id: oo.stoid, | |
1086 | - prom_type: 3, | |
1087 | - prom_id: r_data.promGoodsLists[0].prom_id | |
1088 | - } | |
1089 | - }); | |
1090 | - item.prom_type = 3; | |
1091 | - item.prom_id = r_data.promGoodsLists[0].prom_id; | |
1092 | - } else if (r_data.ladderLists) { | |
1093 | - | |
1094 | - item.prom_type = 10; | |
1095 | - item.prom_id = r_data.ladderLists[0].form_id; | |
1096 | - | |
1097 | - } | |
1098 | - } | |
1099 | - }) | |
1100 | - | |
1101 | - //如果是阶梯购的时候 | |
1102 | - if (item.prom_type == 10) { | |
1103 | - | |
1104 | - | |
1105 | - if (!th.data.ladder_map[item.prom_id]) { | |
1106 | - //如果有阶梯购,要判断身份 | |
1107 | - var isok = 1; | |
1108 | - var is_flag = 1; | |
1109 | - var act = null; | |
1110 | - var url = "/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + item.prom_id; | |
1111 | - await getApp().request.promiseGet(url, {}).then(res => { | |
1112 | - console.log(res, 1000); | |
1113 | - if (res.data.code == 0 && res.data.data) { | |
1114 | - if (res.data.data.isuse != 1) { | |
1115 | - isok = 0; | |
1116 | - } | |
1117 | - //如果活动已经结束 | |
1118 | - if (res.data.data.is_end == 1) { | |
1119 | - isok = 0; | |
1120 | - } | |
1121 | - //已经结束 | |
1122 | - if (ut.gettimestamp() > res.data.data.end_time) { | |
1123 | - isok = 0; | |
1124 | - } | |
1125 | - //还未开始 | |
1126 | - if (ut.gettimestamp() < res.data.data.start_time) { | |
1127 | - isok = 0; | |
1128 | - } | |
1129 | - act = res.data.data; | |
1130 | - | |
1131 | - } else { | |
1132 | - //未找到商品的活动 | |
1133 | - isok = 0; | |
1134 | - } | |
1135 | - }) | |
1136 | - if (!isok) { | |
1137 | - item.prom_type = 0; | |
1138 | - item.prom_id = 0; | |
1139 | - } else { | |
1140 | - | |
1141 | - th.data.ladder_map[item.prom_id] = act; | |
1142 | - //-- 获取阶梯规则 -- | |
1143 | - var url1 = "/api/weshop/prom/ladderList/list"; | |
1144 | - var req_data = { | |
1145 | - store_id: os.stoid, | |
1146 | - form_id: item.prom_id, | |
1147 | - } | |
1148 | - await getApp().request.promiseGet(url1, { | |
1149 | - data: req_data | |
1150 | - }).then(rs1 => { | |
1151 | - if (rs1.data.code == 0 && rs1.data.data) { | |
1152 | - var gdlist = rs1.data.data; | |
1153 | - th.data.ladder_map[item.prom_id].ladder_list = gdlist; | |
1154 | - } | |
1155 | - }) | |
1156 | - } | |
1157 | - | |
1158 | - } | |
1159 | - //直接把活动赋值给元素 | |
1160 | - if (th.data.ladder_map[item.prom_id] && th.data.ladder_map[item.prom_id] != -1) { | |
1161 | - item.act = th.data.ladder_map[item.prom_id]; | |
1162 | - | |
1163 | - //如果有活动,就更新商品的活动那个 | |
1164 | - var url = '/api/weshop/cart/update'; | |
1165 | - getApp().request.put(url, { | |
1166 | - data: { id: item.id, store_id: oo.stoid, prom_type: 10, prom_id: item.prom_id } | |
1167 | - }); | |
1168 | - | |
1169 | - } | |
1170 | - } | |
1171 | - | |
1172 | - } | |
1173 | 930 | |
1174 | 931 | all_num += item.goods_num; |
1175 | 932 | item.original_img = oo.imghost + item.original_img; |
... | ... | @@ -1177,26 +934,9 @@ Page({ |
1177 | 934 | item.erpwareid = good.erpwareid; //要同步下线商品的id |
1178 | 935 | item.shop_price = good.shop_price; //要同步下线商品的id |
1179 | 936 | |
1180 | - //当商品要计算等级价的售 | |
1181 | - if (item.prom_type == 0 || item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7) { | |
1182 | - if (th.data.card_field && good[th.data.card_field]) { | |
1183 | - item.goods_price = good[th.data.card_field]; //要同步下线商品的id | |
1184 | - } else { | |
1185 | - item.goods_price = good.shop_price; | |
1186 | - } | |
1187 | - | |
1188 | - var t = { | |
1189 | - id: item.id, | |
1190 | - store_id: os.stoid, | |
1191 | - user_id: getApp().globalData.userInfo.user_id, | |
1192 | - goods_price: item.goods_price | |
1193 | - } | |
1194 | - getApp().request.put("/api/weshop/cart/update", { | |
1195 | - isShowLoading: 0, | |
1196 | - data: t, | |
1197 | - }) | |
1198 | - | |
1199 | - } | |
937 | + //-- 读出每一种商品的所有的活动,方便后面的活动切换使用 -- | |
938 | + if(item.prom_type==0) | |
939 | + th.buy_pro_group(item,0); | |
1200 | 940 | |
1201 | 941 | var pcid = item.pick_id; |
1202 | 942 | var find = 0; |
... | ... | @@ -1251,21 +991,6 @@ Page({ |
1251 | 991 | } |
1252 | 992 | } |
1253 | 993 | } |
1254 | - | |
1255 | - for (let u1 in arr) { | |
1256 | - var u_item = arr[u1]; | |
1257 | - //把组合购进行分组 | |
1258 | - var obj = zh_calc.find_split(u_item); | |
1259 | - if (!obj) continue; | |
1260 | - //存储不同活动的商品列表 | |
1261 | - u_item.zh_prom_goods = {}; | |
1262 | - for (let var1 in obj) { | |
1263 | - var h_item = obj[var1]; | |
1264 | - var gdlist = th.data.zuhe_map_good[h_item.prom_id]; | |
1265 | - //获取活动需要的商品列表 | |
1266 | - u_item.zh_prom_goods[h_item.prom_id] = gdlist; | |
1267 | - } | |
1268 | - } | |
1269 | 994 | |
1270 | 995 | th.setData({ |
1271 | 996 | requestData: arr, |
... | ... | @@ -2157,12 +1882,6 @@ Page({ |
2157 | 1882 | |
2158 | 1883 | } |
2159 | 1884 | |
2160 | - | |
2161 | - | |
2162 | - e.setData({ | |
2163 | - [txt]: Number(!a.selected), | |
2164 | - }); | |
2165 | - | |
2166 | 1885 | if (a.prom_type == 3) { |
2167 | 1886 | e.data.duo_zp_num_arr = {}; |
2168 | 1887 | if (!a.selected) { |
... | ... | @@ -2174,6 +1893,11 @@ Page({ |
2174 | 1893 | await e.check_prom_activity(i); |
2175 | 1894 | } |
2176 | 1895 | } |
1896 | + | |
1897 | + e.setData({ | |
1898 | + [txt]: Number(!a.selected), | |
1899 | + }); | |
1900 | + | |
2177 | 1901 | this.doCheckAll(); |
2178 | 1902 | } |
2179 | 1903 | }, |
... | ... | @@ -2265,7 +1989,7 @@ Page({ |
2265 | 1989 | }, |
2266 | 1990 | |
2267 | 1991 | //----------检查是否全选--------- |
2268 | - doCheckAll: function () { | |
1992 | + doCheckAll:async function () { | |
2269 | 1993 | var th = this, |
2270 | 1994 | tfeel = 0, |
2271 | 1995 | t_num = 0, |
... | ... | @@ -2274,11 +1998,19 @@ Page({ |
2274 | 1998 | car2 = this.data.service_data, |
2275 | 1999 | all_num = 0; |
2276 | 2000 | |
2001 | + | |
2002 | + th.data.zuhe_map={}; | |
2003 | + th.data.zuhe_map_good={}; | |
2004 | + | |
2277 | 2005 | //-- 购物车 -- |
2278 | 2006 | if (car && car.length > 0) { |
2279 | 2007 | th.data.in_zhact_gdmap = {}; |
2280 | 2008 | for (var a = 0; a < car.length; a++) { |
2009 | + | |
2281 | 2010 | var item = car[a].goods, is_s_sele = 1; |
2011 | + //-- 先批量判断一下活动的类型,同时要同步跟新 -- | |
2012 | + await th.cart_cx_group(item,a); | |
2013 | + | |
2282 | 2014 | var offline_price = 0; |
2283 | 2015 | var offline_num = 0; |
2284 | 2016 | for (var c = 0; c < item.length; c++) { |
... | ... | @@ -2405,6 +2137,7 @@ Page({ |
2405 | 2137 | }); |
2406 | 2138 | }, |
2407 | 2139 | |
2140 | + | |
2408 | 2141 | //----------------------更新购物数量,加减,调用接口--------------------- |
2409 | 2142 | postCardList: function (t, item, pitem) { |
2410 | 2143 | var e = this, |
... | ... | @@ -4561,6 +4294,110 @@ Page({ |
4561 | 4294 | icon: 'none', |
4562 | 4295 | duration: 2000 |
4563 | 4296 | }); |
4297 | + }, | |
4298 | + | |
4299 | + | |
4300 | + //-- 判读一下促销分组的问题 -- | |
4301 | + async cart_cx_group(goods,index){ | |
4302 | + var th=this; | |
4303 | + //-- 促销活动对象表 --- | |
4304 | + var cx_act_map=[]; | |
4305 | + for(var i=0; i<goods.length;i++){ | |
4306 | + var c_item=goods[i]; | |
4307 | + //没有选中 | |
4308 | + if(!c_item.selected) continue; | |
4309 | + //如果是秒杀之类是商品 | |
4310 | + if([1,2,4,6,8,9].indexOf(c_item.prom_type)) continue; | |
4311 | + | |
4312 | + //-- 把活动进行规整 -- | |
4313 | + var more_cx=c_item.more_cx; | |
4314 | + for (var j=0;j<more_cx.length;j++){ | |
4315 | + var n_item=more_cx[j]; | |
4316 | + var key=n_item.prom_type+'-'+n_item.prom_id; | |
4317 | + var fd=cx_act_map.find(function (e){ | |
4318 | + return e.key==key; | |
4319 | + }) | |
4320 | + if(fd){ | |
4321 | + fd.goods.push(c_item); | |
4322 | + }else{ | |
4323 | + var p_item={key:key,prom_type:c_item.prom_type,prom_id:c_item.prom_id,goods:[],act:n_item}; | |
4324 | + p_item.goods.push(c_item); | |
4325 | + cx_act_map.push(p_item); | |
4326 | + } | |
4327 | + } | |
4328 | + goods[i].prom_type=0; | |
4329 | + goods[i].prom_id=0; | |
4330 | + } | |
4331 | + | |
4332 | + //-- 如果活动数量大于1个,那么活动就要排序一下,有商品种类数最多排再前面,降序进行排列 -- | |
4333 | + if(cx_act_map.length>1){ | |
4334 | + //门店分类要排序下 | |
4335 | + function compare() { | |
4336 | + return function (a, b) { | |
4337 | + var value1 = a.goods.length; | |
4338 | + var value2 = b.goods.length; | |
4339 | + return value2 - value1; | |
4340 | + } | |
4341 | + } | |
4342 | + cx_act_map.sort(compare); | |
4343 | + } | |
4344 | + //-- 能够进行最后计算的活动(包含切换) -- | |
4345 | + var can_calc_cx=[]; | |
4346 | + //-- 此时对数组的活动进行判断,看能不能达到购买数量的条件 -- | |
4347 | + for(var ii=0;ii<cx_act_map.length;ii++){ | |
4348 | + var item_act_map=cx_act_map[ii]; | |
4349 | + | |
4350 | + //如果活动有交集的时候,商品数量一样多(不是完全相同时,就是参与的商品有交集),就按照后台确定的活动顺序 | |
4351 | + //如果活动的商品一样(那就是多活动切换),优先计算的活动按照后台确定的活动顺序 | |
4352 | + //如果活动商品数量少的和 活动数量多的 有交集,那么数量少的不显示,也不计算 | |
4353 | + if(!th.check_ok_cx_pro(item_act_map,can_calc_cx)){ | |
4354 | + continue; | |
4355 | + } | |
4356 | + switch(item_act_map.prom_type){ | |
4357 | + case 3: | |
4358 | + var fir_act=item_act_map.act.fir_act; | |
4359 | + | |
4360 | + | |
4361 | + break | |
4362 | + case 7: | |
4363 | + //-- 活动列表 -- | |
4364 | + var zhact_gdlist=item_act_map.act.gdlist; | |
4365 | + var zh_goods=item_act_map.goods; | |
4366 | + | |
4367 | + for(var h=0;h<zh_goods.length;h++){ | |
4368 | + | |
4369 | + | |
4370 | + } | |
4371 | + | |
4372 | + //-- 放到map中 -- | |
4373 | + th.data.zuhe_map[item.prom_id] = act; | |
4374 | + th.data.zuhe_map_good[item.prom_id] = zhact_gdlist; | |
4375 | + | |
4376 | + var zh_pro0 = null; | |
4377 | + //-- 获取活动信息 -- | |
4378 | + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + zh_id + "/" + getApp().globalData.user_id; | |
4379 | + await getApp().request.promiseGet(url, {}).then(rh => { | |
4380 | + zh_pro0 = res.data.data; | |
4381 | + }) | |
4382 | + if(!zh_pro0) break; | |
4383 | + //当满足组合的要求:总数要满足,起购数要满足 | |
4384 | + if(zh_calc.ch_zh_ok(zh_pro0,zhact_gdlist,zh_goods,th)){ | |
4385 | + can_calc_cx.push(item_act_map) | |
4386 | + } | |
4387 | + break; | |
4388 | + default: | |
4389 | + can_calc_cx.push(item_act_map); | |
4390 | + } | |
4391 | + | |
4392 | + } | |
4393 | + | |
4394 | + if(can_calc_cx.length){ | |
4395 | + | |
4396 | + } | |
4397 | + | |
4398 | + th.setData({can_calc_cx}) | |
4564 | 4399 | } |
4565 | 4400 | |
4401 | + | |
4402 | + | |
4566 | 4403 | }); |
4567 | 4404 | \ No newline at end of file | ... | ... |
pages/cart/cart/zh_calculate.js
... | ... | @@ -519,7 +519,89 @@ module.exports = { |
519 | 519 | } |
520 | 520 | } |
521 | 521 | return zhqty_bz_flag; |
522 | - } | |
522 | + }, | |
523 | + | |
524 | + //-- 判断组合购有没有满足 --- | |
525 | + ch_zh_ok(act,gdlist,c_goods,th){ | |
526 | + //-- 寻找一下 -- | |
527 | + function get_num(ite) { | |
528 | + for (let v1 in c_goods) { | |
529 | + var vh = c_goods[v1]; | |
530 | + if (vh.goods_id == ite.goods_id) { | |
531 | + return vh; | |
532 | + } | |
533 | + } | |
534 | + return 0; | |
535 | + } | |
536 | + var goods =gdlist; | |
537 | + for (var i in goods) { | |
538 | + var item = goods[i]; | |
539 | + var cart_num = get_num(item).goods_num; | |
540 | + var zh_b_num = get_num2(item).zh_b_num; | |
541 | + if (!cart_num) { | |
542 | + if (item.zhqty) { | |
543 | + need_to_buy += item.zhqty; | |
544 | + } | |
545 | + continue; | |
546 | + } | |
547 | + | |
548 | + item.cart_num = cart_num; | |
549 | + //-- 当商品有购买的时候,以及有限购的时候 -- | |
550 | + if (item.buyqty > 0) { | |
551 | + var cbuy = item.buyqty - zh_b_num; | |
552 | + var key = item.goods_id + "" + act.id; | |
553 | + if (th.data.in_zhact_gdmap_gp[key]) { | |
554 | + var cbuy = item.buyqty - zh_b_num - th.data.in_zhact_gdmap_gp[key]; | |
555 | + } | |
556 | + //当可买的数量为0 | |
557 | + if (cbuy <= 0) { | |
558 | + item.num = 0; | |
559 | + } else { | |
560 | + if (cbuy >= cart_num) item.num = cart_num; | |
561 | + else { | |
562 | + item.num = cbuy; | |
563 | + } | |
564 | + } | |
565 | + } else { | |
566 | + item.num = cart_num; | |
567 | + } | |
568 | + | |
569 | + if (item.num) { | |
570 | + all_num += item.num; | |
571 | + //当有起购数的控制的时候 | |
572 | + if (item.zhqty) { | |
573 | + if (item.num < item.zhqty) { | |
574 | + need_to_buy += item.zhqty - item.num; | |
575 | + } | |
576 | + } | |
577 | + } else { | |
578 | + if (item.zhqty) { | |
579 | + need_to_buy += item.zhqty; | |
580 | + } | |
581 | + } | |
582 | + } | |
583 | + | |
584 | + //当满足组合的要求:总数要满足,起购数要满足 | |
585 | + if (all_num >= act.zhbuyqty && !need_to_buy) { | |
586 | + //商品的列表 | |
587 | + for (var u in goods) { | |
588 | + var ite = goods[u]; | |
589 | + if (ite.buyqty > 0 && ite.num > 0) { | |
590 | + console.log(222, th.data.in_zhact_gdmap_gp); | |
591 | + var key = ite.goods_id + "" + act.id; | |
592 | + if (th.data.in_zhact_gdmap_gp[key]) { | |
593 | + th.data.in_zhact_gdmap_gp[key] += ite.num; | |
594 | + } else { | |
595 | + th.data.in_zhact_gdmap_gp[key] = ite.num; | |
596 | + } | |
597 | + } | |
598 | + } | |
599 | + return true; | |
600 | + } | |
601 | + return false; | |
602 | + } | |
603 | + | |
604 | + | |
523 | 605 | |
524 | 606 | |
525 | 607 | } |
526 | 608 | \ No newline at end of file | ... | ... |
pages/goods/goodsInfo/goodsInfo.js
... | ... | @@ -293,7 +293,6 @@ Page({ |
293 | 293 | |
294 | 294 | |
295 | 295 | self = this; |
296 | - | |
297 | 296 | //检查测肤 |
298 | 297 | getApp().check_skin_face(t, 0, gid); |
299 | 298 | |
... | ... | @@ -1544,6 +1543,7 @@ Page({ |
1544 | 1543 | }) |
1545 | 1544 | // return userbuynum |
1546 | 1545 | }, |
1546 | + | |
1547 | 1547 | //优惠促销用户参与次数 |
1548 | 1548 | async getUserBuyPromNum_pre(prom_id){ |
1549 | 1549 | var user_id=0 |
... | ... | @@ -6978,6 +6978,7 @@ Page({ |
6978 | 6978 | } |
6979 | 6979 | } |
6980 | 6980 | }, |
6981 | + | |
6981 | 6982 | //-----显示优惠券的时候情况----- |
6982 | 6983 | show_more_cx: function () { |
6983 | 6984 | if (this.data.is_more_cx) { |
... | ... | @@ -7230,7 +7231,7 @@ Page({ |
7230 | 7231 | }) |
7231 | 7232 | }, |
7232 | 7233 | |
7233 | - //-- 获取默认的促销活动的默认活动 -- | |
7234 | + //--- 获取默认的促销活动的默认活动 --- | |
7234 | 7235 | check_prom_custom(ind) { |
7235 | 7236 | if(ind){ |
7236 | 7237 | if (!this.data.cx_prom_group.length) return 0; | ... | ... |