Commit e0129ff12bcae74c387a175bf406be06c5fcc88e
1 parent
4fda5f9f
优化幸运购,在普通购买的时候,参与组合促销的时候总数量和限购的优化
Showing
2 changed files
with
248 additions
and
47 deletions
packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js
... | ... | @@ -2017,6 +2017,113 @@ Page({ |
2017 | 2017 | // e.prom_id = 0; |
2018 | 2018 | } |
2019 | 2019 | |
2020 | + //-- 这一步主要是要让立即购买 走 购物车的逻辑 参与活动,如果有zh_act就强制组合购购买,要计算一下组合购的总数量 -- | |
2021 | + if(th.data.zh_act && (!th.data.zh_act.zh_num || th.data.zh_act.zh_buy_num>th.data.zh_act.zh_num ) | |
2022 | + && th.data.zh_act.zhbuyqty <= th.data.goodsInputNum){ | |
2023 | + wx.hideLoading(); | |
2024 | + | |
2025 | + if((th.data.zh_act.buy_limit !=0 && th.data.zh_act.buy_limit <= th.data.userbuynum)){ | |
2026 | + wx.showModal({ | |
2027 | + title: '提示', | |
2028 | + // content: `商品${str},组合购活动,购买次数已超,将以普通商品购买?`, | |
2029 | + content: `${th.data.data.goods_name}超出组合购限购次数,将以普通商品购买`, | |
2030 | + success:res=>{ | |
2031 | + if (res.confirm) { | |
2032 | + console.log('用户点击确定') | |
2033 | + //----先看会员在购物车中是否加入了该商品,立即购买的----- | |
2034 | + getApp().request.get("/api/weshop/cart/page", { | |
2035 | + data: { | |
2036 | + store_id: os.stoid, | |
2037 | + user_id: oo.user_id, | |
2038 | + state: 1 | |
2039 | + }, | |
2040 | + success: function (res) { | |
2041 | + //-------如果购物车中有相关的数据--------- | |
2042 | + if (res.data.code == 0 && res.data.data.total > 0) { | |
2043 | + for (let j in res.data.data.pageData) { | |
2044 | + let item_j = res.data.data.pageData[j]; | |
2045 | + var url = '/api/weshop/cart/del/' + e.data.stoid + '/' + item_j.id; | |
2046 | + getApp().request.delete(url, {}); | |
2047 | + } | |
2048 | + } | |
2049 | + e.state = 1; | |
2050 | + e.prom_type=0; | |
2051 | + e.prom_id=0 | |
2052 | + getApp().request.post("/api/weshop/cart/save", { | |
2053 | + data: e, | |
2054 | + success: function (t) { | |
2055 | + th.closeSpecModal(); | |
2056 | + getApp().goto("/packageE/pages/cart/cart2/cart2?state=1"); | |
2057 | + } | |
2058 | + }); | |
2059 | + } | |
2060 | + }) | |
2061 | + } else if (res.cancel) { | |
2062 | + | |
2063 | + console.log('用户点击取消') | |
2064 | + } | |
2065 | + } | |
2066 | + }) | |
2067 | + }else{ | |
2068 | + | |
2069 | + | |
2070 | + //----先看会员在购物车中是否加入了该商品,立即购买的----- | |
2071 | + getApp().request.get("/api/weshop/cart/page", { | |
2072 | + data: { | |
2073 | + store_id: os.stoid, | |
2074 | + user_id: oo.user_id, | |
2075 | + state: 1 | |
2076 | + }, | |
2077 | + success: function (res) { | |
2078 | + //-------如果购物车中有相关的数据,先清理掉--------- | |
2079 | + if (res.data.code == 0 && res.data.data.total > 0) { | |
2080 | + for (let j in res.data.data.pageData) { | |
2081 | + let item_j = res.data.data.pageData[j]; | |
2082 | + var url = '/api/weshop/cart/del/' + os.stoid + '/' + item_j.id; | |
2083 | + getApp().request.delete(url, {}); | |
2084 | + } | |
2085 | + } | |
2086 | + | |
2087 | + e.state = 1; | |
2088 | + e.prom_type=7; | |
2089 | + e.prom_id=th.data.zh_act.id; | |
2090 | + getApp().request.post("/api/weshop/cart/save", { | |
2091 | + data: e, | |
2092 | + success: function (t) { | |
2093 | + th.closeSpecModal(); | |
2094 | + getApp().goto("/packageE/pages/cart/cart2/cart2?state=1"); | |
2095 | + } | |
2096 | + }); | |
2097 | + | |
2098 | + } | |
2099 | + }) | |
2100 | + } | |
2101 | + | |
2102 | + | |
2103 | + return false | |
2104 | + }else{ | |
2105 | + //----先看会员在购物车中是否加入了该商品,立即购买的----- | |
2106 | + getApp().request.get("/api/weshop/cart/page", { | |
2107 | + data: { | |
2108 | + store_id: os.stoid, | |
2109 | + user_id: oo.user_id, | |
2110 | + state: 1 | |
2111 | + }, | |
2112 | + success: function (res) { | |
2113 | + //-------如果购物车中有相关的数据--------- | |
2114 | + if (res.data.code == 0 && res.data.data.total > 0) { | |
2115 | + for (let j in res.data.data.pageData) { | |
2116 | + let item_j = res.data.data.pageData[j]; | |
2117 | + var url = '/api/weshop/cart/del/' + e.data.stoid + '/' + item_j.id; | |
2118 | + getApp().request.delete(url, {}); | |
2119 | + } | |
2120 | + } | |
2121 | + | |
2122 | + } | |
2123 | + }) | |
2124 | + | |
2125 | + } | |
2126 | + | |
2020 | 2127 | |
2021 | 2128 | if(e.prom_type==10){ |
2022 | 2129 | //----先看会员在购物车中是否加入了该商品,立即购买的----- |
... | ... | @@ -4514,15 +4621,9 @@ Page({ |
4514 | 4621 | newd['is_normal'] = th.data.is_normal; |
4515 | 4622 | |
4516 | 4623 | if (newd['is_normal']) { |
4517 | - newd['is_pd_normal'] = 1; | |
4518 | - //判断一下有没有全局优惠活动 | |
4519 | - th.check_nor_promgood(newd.goods_id, function (e) { | |
4520 | - if (e && e.act_id) { | |
4521 | - newd['prom_type'] = e.prom_type; | |
4522 | - newd['prom_id'] = e.act_id; | |
4523 | - } | |
4624 | + newd['is_pd_normal'] = 1; | |
4625 | + //判断一下有没有全局优惠活动 | |
4524 | 4626 | th.buyNow(newd); |
4525 | - }); | |
4526 | 4627 | } |
4527 | 4628 | else { |
4528 | 4629 | // 点击立即参团 |
... | ... | @@ -6106,52 +6207,135 @@ Page({ |
6106 | 6207 | }, |
6107 | 6208 | |
6108 | 6209 | //---检查有没有优惠活动--- |
6109 | - check_is_youhui: function (gid, is_nor) { | |
6210 | + check_is_youhui:async function (gid, is_nor) { | |
6110 | 6211 | var th = this; |
6111 | - //如果是普通购买的时候,要进行调用 | |
6112 | - if (is_nor) { | |
6113 | - getApp().request.get("/api/weshop/goods/getGoodsPromNormal/" + os.stoid + "/" + gid, { | |
6114 | - success: function (res) { | |
6115 | - if (res.data.code == 0) { | |
6116 | - var r_data = res.data.data; | |
6117 | - th.setData({ | |
6118 | - prom_goods: r_data.promGoodsLists, | |
6212 | + var user_id = getApp().globalData.user_id; | |
6213 | + if (!user_id) user_id = 0; | |
6214 | + | |
6215 | + //普通购买的时候,重新算一下组合购有没有 | |
6216 | + if(is_nor){ | |
6217 | + var arr3=null; | |
6218 | + var url = '/api/weshop/activitylist/listGoodActInfo2New'; | |
6219 | + var req_d = { | |
6220 | + "store_id": os.stoid, | |
6221 | + "goods_id": this.data.gid, | |
6222 | + "user_id": user_id, | |
6223 | + } | |
6224 | + await getApp().request.promiseGet(url, { | |
6225 | + data: req_d, | |
6226 | + }).then(e=>{ | |
6227 | + if (e.data.code == 0 && e.data.data && e.data.data.length > 0) { | |
6228 | + var arr = e.data.data; | |
6229 | + if(arr.length){ | |
6230 | + arr3 = arr.filter(function (e) { | |
6231 | + return e.s_time < ut.gettimestamp() && e.prom_type==7; | |
6119 | 6232 | }) |
6120 | - th.is_show_more_buy(); | |
6121 | 6233 | } |
6122 | - }, | |
6234 | + } | |
6123 | 6235 | }) |
6124 | 6236 | |
6125 | - } else { | |
6126 | - //调用接口判断订单优惠, | |
6127 | - getApp().request.get("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + gid + "/0", { | |
6128 | - success: function (res) { | |
6129 | - console.log(res); | |
6130 | - if (res.data.code == 0) { | |
6131 | - var r_data = res.data.data; | |
6132 | - var max = 0, min = 0; | |
6133 | - if (r_data.collocationList) { | |
6134 | - for (var i in r_data.collocationList) { | |
6135 | - if (max == 0) max = r_data.collocationList[i].price; | |
6136 | - if (min == 0) min = r_data.collocationList[i].price; | |
6137 | - | |
6138 | - if (max < parseFloat(r_data.collocationList[i].price)) max = r_data.collocationList[i].price; | |
6139 | - if (min > parseFloat(r_data.collocationList[i].price)) min = r_data.collocationList[i].price; | |
6140 | - } | |
6141 | - r_data.collocationPromList.max = (max + th.data.data.shop_price).toFixed(2); | |
6142 | - r_data.collocationPromList.min = (min + th.data.data.shop_price).toFixed(2); | |
6237 | + if(arr3 && arr3.length>0){ | |
6238 | + //获取活动信息 | |
6239 | + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" +arr3[0].act_id + "/" + getApp().globalData.user_id; | |
6240 | + await getApp().request.promiseGet(url, { | |
6241 | + | |
6242 | + }).then(e=>{ | |
6243 | + if (e.data.code == 0 && e.data.data) { | |
6244 | + if (ut.gettimestamp() < e.data.data.start_time) { | |
6245 | + return false; | |
6143 | 6246 | } |
6144 | - th.setData({ | |
6145 | - order_prom: r_data.promOrder, | |
6146 | - collocationGoods: r_data.collocationPromList, | |
6147 | - prom_goods: r_data.promGoodsLists, | |
6148 | - }) | |
6149 | - th.is_show_more_buy(); | |
6247 | + if (e.data.data.is_end == 0 && ut.gettimestamp() < e.data.data.end_time) { | |
6248 | + //-- 获取商品列表 -- | |
6249 | + th.data.zh_act=e.data.data; | |
6250 | + th.getUserBuyPromNum(e.data.data.id) | |
6251 | + } | |
6252 | + } | |
6253 | + }) | |
6254 | + } | |
6255 | + } | |
6256 | + | |
6257 | + | |
6258 | + //调用接口判断订单优惠, | |
6259 | + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromListNew1/" + os.stoid + "/" + gid + "/0" + "/" + user_id, { | |
6260 | + }).then(async res=>{ | |
6261 | + if (res.data.code == 0 && res.data.data) { | |
6262 | + var r_data = res.data.data; | |
6263 | + var max = 0, min = 0; | |
6264 | + //暂时积分够 不和 优惠,阶梯重叠 | |
6265 | + if(th.data.zh_act){ | |
6266 | + r_data.collocationList=null; | |
6267 | + r_data.ladderLists=null; | |
6268 | + r_data.promGoodsLists=null; | |
6269 | + } | |
6270 | + | |
6271 | + if (r_data.collocationList) { | |
6272 | + for (var i in r_data.collocationList) { | |
6273 | + if (max == 0) max = r_data.collocationList[i].price; | |
6274 | + if (min == 0) min = r_data.collocationList[i].price; | |
6275 | + | |
6276 | + if (max < parseFloat(r_data.collocationList[i].price)) max = r_data.collocationList[i].price; | |
6277 | + if (min > parseFloat(r_data.collocationList[i].price)) min = r_data.collocationList[i].price; | |
6150 | 6278 | } |
6279 | + r_data.collocationPromList.max = (max + th.data.data.shop_price).toFixed(2); | |
6280 | + r_data.collocationPromList.min = (min + th.data.data.shop_price).toFixed(2); | |
6281 | + | |
6282 | + //如果有搭配促销先不和 阶梯促销和优惠测序重合,做到后台可以重合 | |
6283 | + r_data.ladderLists=null; | |
6284 | + r_data.promGoodsLists=null; | |
6151 | 6285 | } |
6152 | 6286 | |
6153 | - }) | |
6154 | - } | |
6287 | + | |
6288 | + if (r_data.ladderLists) { | |
6289 | + var act_id = r_data.ladderLists[0].form_id; | |
6290 | + //-- 判断会员能不能参与阶梯促销 -- | |
6291 | + await getApp().request.promiseGet("/api/weshop/prom/ladderForm/getNew/" + os.stoid + "/" + user_id + "/" + act_id, {}).then(res => { | |
6292 | + if (res.data.code == 0 && res.data.data) { | |
6293 | + var prom_content = ""; | |
6294 | + | |
6295 | + //暂定优惠促销还不能重叠 | |
6296 | + if(res.data.data.good_object==0 && (r_data.promGoodsLists || th.data.zh_act)){ | |
6297 | + return false; | |
6298 | + } | |
6299 | + | |
6300 | + if(res.data.data.good_object==1){ | |
6301 | + r_data.promGoodsLists=null; | |
6302 | + } | |
6303 | + | |
6304 | + for (let jj in r_data.ladderLists) { | |
6305 | + if (r_data.ladderLists[jj].discount == 10) { | |
6306 | + prom_content += "第" + (parseInt(jj) + 1) + "件原价,"; | |
6307 | + } else { | |
6308 | + prom_content += "第" + (parseInt(jj) + 1) + "件" + r_data.ladderLists[jj].discount + "折,"; | |
6309 | + } | |
6310 | + } | |
6311 | + prom_content = ut.sub_last(prom_content); | |
6312 | + th.data.prom_type = 10; | |
6313 | + th.data.prom_id = act_id; | |
6314 | + th.setData({ | |
6315 | + jieti_prom: prom_content, | |
6316 | + ladder_act_id: act_id | |
6317 | + }) | |
6318 | + } | |
6319 | + }) | |
6320 | + } | |
6321 | + | |
6322 | + | |
6323 | + //普通购买不在界面显示 | |
6324 | + if(is_nor){ | |
6325 | + th.data.collocationGoods=r_data.collocationPromList; | |
6326 | + th.data.prom_goods=r_data.promGoodsLists; | |
6327 | + }else{ | |
6328 | + th.setData({ | |
6329 | + order_prom: r_data.promOrder, | |
6330 | + collocationGoods: r_data.collocationPromList, | |
6331 | + prom_goods: r_data.promGoodsLists, | |
6332 | + }) | |
6333 | + } | |
6334 | + th.is_show_more_buy(); | |
6335 | + } | |
6336 | + }) | |
6337 | + | |
6338 | + | |
6155 | 6339 | |
6156 | 6340 | |
6157 | 6341 | }, |
... | ... | @@ -6412,7 +6596,7 @@ Page({ |
6412 | 6596 | if(th.data.zh_act){ |
6413 | 6597 | obj = { |
6414 | 6598 | act_id: th.data.zh_act.id, |
6415 | - prom_type:3 | |
6599 | + prom_type:7 | |
6416 | 6600 | } |
6417 | 6601 | back(obj); |
6418 | 6602 | return false; |
... | ... | @@ -6844,5 +7028,22 @@ Page({ |
6844 | 7028 | }, |
6845 | 7029 | |
6846 | 7030 | |
7031 | + async getUserBuyPromNum(prom_id){ | |
7032 | + var userInfo = getApp().globalData.userInfo; | |
7033 | + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_id}`; | |
7034 | + let res = await getApp().request.promiseGet(url, { | |
7035 | + data:{} | |
7036 | + }); | |
7037 | + let userbuynum=0 | |
7038 | + if(res.data.code==0 && res.data.data){ | |
7039 | + userbuynum=res.data.data.userbuynum | |
7040 | + } | |
7041 | + this.setData({ | |
7042 | + userbuynum | |
7043 | + }) | |
7044 | + // return userbuynum | |
7045 | + }, | |
7046 | + | |
7047 | + | |
6847 | 7048 | |
6848 | 7049 | }); | ... | ... |