Commit e0129ff12bcae74c387a175bf406be06c5fcc88e

Authored by yvan.ni
1 parent 4fda5f9f

优化幸运购,在普通购买的时候,参与组合促销的时候总数量和限购的优化

packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js
@@ -2017,6 +2017,113 @@ Page({ @@ -2017,6 +2017,113 @@ Page({
2017 // e.prom_id = 0; 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 if(e.prom_type==10){ 2128 if(e.prom_type==10){
2022 //----先看会员在购物车中是否加入了该商品,立即购买的----- 2129 //----先看会员在购物车中是否加入了该商品,立即购买的-----
@@ -4514,15 +4621,9 @@ Page({ @@ -4514,15 +4621,9 @@ Page({
4514 newd['is_normal'] = th.data.is_normal; 4621 newd['is_normal'] = th.data.is_normal;
4515 4622
4516 if (newd['is_normal']) { 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 th.buyNow(newd); 4626 th.buyNow(newd);
4525 - });  
4526 } 4627 }
4527 else { 4628 else {
4528 // 点击立即参团 4629 // 点击立即参团
@@ -6106,52 +6207,135 @@ Page({ @@ -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 var th = this; 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,7 +6596,7 @@ Page({
6412 if(th.data.zh_act){ 6596 if(th.data.zh_act){
6413 obj = { 6597 obj = {
6414 act_id: th.data.zh_act.id, 6598 act_id: th.data.zh_act.id,
6415 - prom_type:3 6599 + prom_type:7
6416 } 6600 }
6417 back(obj); 6601 back(obj);
6418 return false; 6602 return false;
@@ -6844,5 +7028,22 @@ Page({ @@ -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 });
pages/goods/goodsInfo/goodsInfo.js
@@ -7651,7 +7651,7 @@ Page({ @@ -7651,7 +7651,7 @@ Page({
7651 if(th.data.zh_act){ 7651 if(th.data.zh_act){
7652 obj = { 7652 obj = {
7653 act_id: th.data.zh_act.id, 7653 act_id: th.data.zh_act.id,
7654 - prom_type:3 7654 + prom_type:7
7655 } 7655 }
7656 back(obj); 7656 back(obj);
7657 return false; 7657 return false;