Commit 137fe81ee032b9babd06fda371f328ff89650a31

Authored by WXD-SEASON\season
2 parents b155965f f8d339cc

Merge branch 'dev' of http://git.vipzhuang.cn/wxd/MShopWeApp into test

packageB/pages/zuhegou/index/index.js
... ... @@ -597,6 +597,16 @@ Page({
597 597 return
598 598 }
599 599  
  600 + if(this.data.act.zh_num>0 && this.data.act.zh_num<=this.data.act.zh_buy_num){
  601 + wx.showToast({
  602 + title: '组合总数不足!',
  603 + icon: 'none',
  604 + duration: 2000
  605 + })
  606 + return
  607 + }
  608 +
  609 +
600 610 //说明是加入购物车是时候
601 611 this.data.is_zuhe_addcart = 1;
602 612 if (!haveAdded) {
... ... @@ -640,14 +650,18 @@ Page({
640 650 return false;
641 651 } else {
642 652 //先判断一下线下库存
643   - th.check_pk_store_conut(function(){
644   - th.setData({
645   - is_no_pipei: 0
646   - });
647   - th.check_is_in_cart(function () {
648   - th.add_cart_func();
  653 +
  654 + th.chect_act_zh_num(function (){
  655 + th.check_pk_store_conut(function(){
  656 + th.setData({
  657 + is_no_pipei: 0
  658 + });
  659 + th.check_is_in_cart(function () {
  660 + th.add_cart_func();
  661 + })
649 662 })
650 663 })
  664 +
651 665 }
652 666 } else {
653 667  
... ... @@ -2023,6 +2037,13 @@ Page({
2023 2037  
2024 2038 // -- 加入之前,先判断有没有在购物车中,没有商品就添加 --
2025 2039 check_is_in_cart: function (func) {
  2040 +
  2041 + var act=this.data.act;
  2042 + if(act.zh_num>0 && act.zh_num<=act.zh_buy_num){
  2043 + func();
  2044 + return false;
  2045 + }
  2046 +
2026 2047 var th = this;
2027 2048 var index = th.data.sele_index;
2028 2049 var txt = "list[" + index + "].haveAdded";
... ... @@ -2200,105 +2221,113 @@ Page({
2200 2221 var delete_num = 0;
2201 2222 var zhqty_len = 0; //几个超量倍增
2202 2223 var be = parseInt(no_in_arr.length / this.data.act.zhbuyqty); //看一下是几倍
2203   - if (this.data.act.is_bzyh && zhqty_bz.length > 0) {
2204   - if (zhqty_bz.length > 1) {
2205   - let zhqty_bz_arr = [];
2206   - let zhqty_bz_flag = this.zhqty_bz_fun(zhqty_bz, be, zhqty_bz_arr);
2207   -
2208   - if (zhqty_bz_flag) {
2209   - for (let i = 0; i < zhqty_bz.length; i++) {
2210   - var vv = zhqty_bz[i];
2211   - for (let j = 0; j < be * vv['zhqty']; j++) {
2212   - let index = no_in_arr.findIndex(i => {
2213   - return vv.goods_id === i.goods_id
2214   - })
2215   - if (index > -1) {
2216   - delete_num++
2217   - no_in_arr.splice(index, 1)
  2224 + //如果有总数控制的时候
  2225 + if(this.data.act.zh_num){
  2226 + var be1=this.data.act.zh_num-this.data.act.zh_buy_num-1;
  2227 + if(be1<be) be=be1;
  2228 + }
  2229 + if(be){
  2230 + if (this.data.act.is_bzyh && zhqty_bz.length > 0) {
  2231 + if (zhqty_bz.length > 1) {
  2232 + let zhqty_bz_arr = [];
  2233 + let zhqty_bz_flag = this.zhqty_bz_fun(zhqty_bz, be, zhqty_bz_arr);
  2234 +
  2235 + if (zhqty_bz_flag) {
  2236 + for (let i = 0; i < zhqty_bz.length; i++) {
  2237 + var vv = zhqty_bz[i];
  2238 + for (let j = 0; j < be * vv['zhqty']; j++) {
  2239 + let index = no_in_arr.findIndex(i => {
  2240 + return vv.goods_id === i.goods_id
  2241 + })
  2242 + if (index > -1) {
  2243 + delete_num++
  2244 + no_in_arr.splice(index, 1)
  2245 + }
2218 2246 }
2219 2247 }
2220   - }
2221   - } else {
2222   - zhqty_len = 1;
2223   - let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) {
2224   - return o['num'];
2225   - }));
2226   - let new_arr = zhqty_bz_arr.filter(ii => {
2227   - return ii['num'] == min_bz_num;
2228   - })
2229   - var vv = new_arr[0];
2230   - var bz_num = be * new_arr[0].zhqty; //超量倍增
2231   - var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量
2232   - bz_num_ok = bz_num - num;
2233   - if (bz_num_ok <= 0) {
2234   - //超量倍增满足,超量倍增就等于倍数
2235   - bz_num_ok = bz_num;
2236 2248 } else {
2237   - //超量倍增不满足,倍数要减去多出得
2238   - // be=be-bz_num_ok;
2239   - if (num % vv.zhqty == 0) {
2240   - be = num / vv.zhqty;
  2249 + zhqty_len = 1;
  2250 + let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) {
  2251 + return o['num'];
  2252 + }));
  2253 + let new_arr = zhqty_bz_arr.filter(ii => {
  2254 + return ii['num'] == min_bz_num;
  2255 + })
  2256 + var vv = new_arr[0];
  2257 + var bz_num = be * new_arr[0].zhqty; //超量倍增
  2258 + var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量
  2259 + bz_num_ok = bz_num - num;
  2260 + if (bz_num_ok <= 0) {
  2261 + //超量倍增满足,超量倍增就等于倍数
  2262 + bz_num_ok = bz_num;
2241 2263 } else {
2242   - be = Math.floor(num / vv.zhqty)
  2264 + //超量倍增不满足,倍数要减去多出得
  2265 + // be=be-bz_num_ok;
  2266 + if (num % vv.zhqty == 0) {
  2267 + be = num / vv.zhqty;
  2268 + } else {
  2269 + be = Math.floor(num / vv.zhqty)
  2270 + }
  2271 + bz_num_ok = be * vv.zhqty;
2243 2272 }
2244   - bz_num_ok = be * vv.zhqty;
2245   - }
2246 2273  
2247   - for (let i = 0; i < zhqty_bz.length; i++) {
2248   - let item1 = zhqty_bz[i];
2249   - for (let j = 0; j < be * item1['zhqty']; j++) {
  2274 + for (let i = 0; i < zhqty_bz.length; i++) {
  2275 + let item1 = zhqty_bz[i];
  2276 + for (let j = 0; j < be * item1['zhqty']; j++) {
  2277 + let index = no_in_arr.findIndex(i => {
  2278 + return item1.goods_id === i.goods_id
  2279 + })
  2280 + if (index > -1) {
  2281 + // delete_num++
  2282 + no_in_arr.splice(index, 1)
  2283 + }
  2284 + }
  2285 + }
  2286 + aprice += be * aprice;
  2287 + }
  2288 + } else {
  2289 + var vv = zhqty_bz[0];
  2290 + var bz_num = be * vv.zhqty; //超量倍增
  2291 + var num = vv['num'] - vv.zhqty; //购买数量减去超量
  2292 + if (num > 0) {
  2293 + bz_num_ok = bz_num - num;
  2294 + if (bz_num_ok <= 0) {
  2295 + //超量倍增满足,超量倍增就等于倍数
  2296 + bz_num_ok = bz_num;
  2297 + } else {
  2298 + //超量倍增不满足,倍数要减去多出得
  2299 + // be=be-bz_num_ok;
  2300 + if (num % vv.zhqty == 0) {
  2301 + be = num / vv.zhqty;
  2302 + } else {
  2303 + be = Math.floor(num / vv.zhqty)
  2304 + }
  2305 + bz_num_ok = be * vv.zhqty;
  2306 + }
  2307 + for (let j = 0; j < bz_num_ok; j++) {
2250 2308 let index = no_in_arr.findIndex(i => {
2251   - return item1.goods_id === i.goods_id
  2309 + return vv.goods_id === i.goods_id
2252 2310 })
2253 2311 if (index > -1) {
2254   - // delete_num++
  2312 + delete_num++
2255 2313 no_in_arr.splice(index, 1)
2256 2314 }
2257 2315 }
2258   - }
2259   - aprice += be * aprice;
2260   - }
2261   - } else {
2262   - var vv = zhqty_bz[0];
2263   - var bz_num = be * vv.zhqty; //超量倍增
2264   - var num = vv['num'] - vv.zhqty; //购买数量减去超量
2265   - if (num > 0) {
2266   - bz_num_ok = bz_num - num;
2267   - if (bz_num_ok <= 0) {
2268   - //超量倍增满足,超量倍增就等于倍数
2269   - bz_num_ok = bz_num;
2270 2316 } else {
2271   - //超量倍增不满足,倍数要减去多出得
2272   - // be=be-bz_num_ok;
2273   - if (num % vv.zhqty == 0) {
2274   - be = num / vv.zhqty;
2275   - } else {
2276   - be = Math.floor(num / vv.zhqty)
2277   - }
2278   - bz_num_ok = be * vv.zhqty;
2279   - }
2280   - for (let j = 0; j < bz_num_ok; j++) {
2281   - let index = no_in_arr.findIndex(i => {
2282   - return vv.goods_id === i.goods_id
2283   - })
2284   - if (index > -1) {
2285   - delete_num++
2286   - no_in_arr.splice(index, 1)
2287   - }
  2317 + zhqty_len = 1;
2288 2318 }
2289   - } else {
2290   - zhqty_len = 1;
2291 2319 }
2292 2320 }
2293   - }
2294   - if (!zhqty_len) {
2295   - //多个超量就不用pop了
2296   - aprice += be * aprice;
2297   - let pop_num = be * this.data.act.zhbuyqty - delete_num;
2298   - for (var m = 0; m < pop_num; m++) {
2299   - no_in_arr.pop();
  2321 + if (!zhqty_len) {
  2322 + //多个超量就不用pop了
  2323 + aprice += be * aprice;
  2324 + let pop_num = be * this.data.act.zhbuyqty - delete_num;
  2325 + for (var m = 0; m < pop_num; m++) {
  2326 + no_in_arr.pop();
  2327 + }
2300 2328 }
2301 2329 }
  2330 +
2302 2331 }
2303 2332  
2304 2333 //算一下剩余的钱
... ... @@ -2518,5 +2547,38 @@ Page({
2518 2547 }
2519 2548 }
2520 2549 return zhqty_bz_flag;
  2550 + },
  2551 +
  2552 + chect_act_zh_num(func){
  2553 + var userInfo = getApp().globalData.userInfo;
  2554 + //获取活动信息
  2555 + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + this.data.id + "/" + userInfo.user_id;
  2556 + getApp().request.get(url, {
  2557 + success: function (e) {
  2558 + if (e.data.code == 0 && e.data.data) {
  2559 + var t_act=e.data.data;
  2560 + if(t_act.zh_num>0 && t_act.zh_num<=t_act.zh_buy_num){
  2561 + wx.showToast({
  2562 + title: '组合活动不足!',
  2563 + icon: 'none',
  2564 + duration: 2000
  2565 + })
  2566 + return false;
  2567 + }
  2568 + func();
  2569 +
  2570 + }else{
  2571 + wx.showToast({
  2572 + title: '未找到活动!',
  2573 + icon: 'none',
  2574 + duration: 2000
  2575 + })
  2576 + }
  2577 +
  2578 + }
  2579 + })
2521 2580 }
  2581 +
  2582 +
  2583 +
2522 2584 })
2523 2585 \ No newline at end of file
... ...
packageC/pages/presell/goodsInfo/goodsInfo.js
... ... @@ -1731,8 +1731,9 @@ Page({
1731 1731 var now = ut.gettimestamp();
1732 1732 var rq_data = {
1733 1733 store_id: o.stoid,
1734   - sku: gd.sku,
1735   - more_spec: gd.more_spec,
  1734 + //sku: gd.sku,
  1735 + //more_spec: gd.more_spec,
  1736 + goods_id:g_id,
1736 1737 isonsale: 1,
1737 1738 is_on_sale: 1,
1738 1739 pageSize: 500,
... ...
packageE/pages/cart/cart2/cart2.js
... ... @@ -147,7 +147,8 @@ Page({
147 147 appoint_pick_keyid: '',
148 148 is_pre_cut:0, //是否可以使用预存 0是不可以1的可以
149 149  
150   - coll_prom:{} //搭配活动存储
  150 + coll_prom:{}, //搭配活动存储
  151 + yh_is_xz_yh:{},//优惠促销优惠券使用开关
151 152  
152 153 },
153 154 onLoad: function (t) {
... ... @@ -714,6 +715,10 @@ Page({
714 715 //---是不是购买等级卡成功的返回---等级卡显示的判断---
715 716 var is_card_back = getApp().globalData.is_card_back;
716 717  
  718 +
  719 + //-- 判断组合购是总数量是不是存在 --
  720 + var no_zh_num={};
  721 +
717 722 for (var i = 0; i < carr.length; i++) {
718 723 var item1 = carr[i];
719 724 //把已经购买了多少见的内容填入
... ... @@ -753,19 +758,44 @@ Page({
753 758 item1.is_post_temp=res.data.data.is_post_temp;
754 759 }
755 760 })
756   - }
757   -
  761 + }
  762 +
758 763 //要把优惠活动加入,prom_goods_map中,赠品不要运算,代发商品不算优惠
759 764 if (item1.prom_type == 3 && item1.is_gift != 1 && !item1.whsle_id) {
760   - // th.check_is_youhui(item1.goods_id, item1.pick_id);
761   - await th.add_prom_goods_map(item1);
  765 + // th.check_is_youhui(item1.goods_id, item1.pick_id);
  766 + //增加优惠活动次数限制
  767 + let limit_num= await th.getprom(item1) //活动限制次数
  768 +
  769 + if(!limit_num){
  770 + await th.add_prom_goods_map(item1);
  771 + // item1.prom_id=''
  772 + // item1.prom_type=''
  773 + }else{
  774 + let user_pre_buynum = await th.getUserBuyPromNum_pre(item1.prom_id) //用户已经参与次数
  775 + if(user_pre_buynum<limit_num){
  776 + await th.add_prom_goods_map(item1);
  777 + }else{
  778 + // await th.add_prom_goods_map(item1);
  779 + item1.prom_id=''
  780 + item1.prom_type=''
  781 + }
  782 + }
762 783 }
763 784  
764   - //要把组合购的东西拿出来算一下
  785 + //-- 如果组合购的总数量不足的处理 --
  786 + if(no_zh_num[item1.prom_id] && item1.prom_type == 7){
  787 + item1.prom_type = 0;
  788 + item1.prom_type1 = 0;
  789 + item1.prom_id = 0;
  790 + item1.prom_id1 = 0
  791 + }
  792 +
  793 + //要把组合购的东西拿出来算一下,同时组合购的总数量要有存在
765 794 if (item1.prom_type == 7) {
766 795 if (!th.data.zuhe_map_good[item1.prom_id]) {
767 796 var isok = 1;
768 797 var is_flag = 1;
  798 + var store_count_ok=1;
769 799 //如果有组合购
770 800 var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + item1.prom_id + '/' + getApp().globalData.userInfo.user_id;
771 801 await getApp().request.promiseGet(url, {}).then(res => {
... ... @@ -778,39 +808,61 @@ Page({
778 808 isok = 0;
779 809 }
780 810 item1.act = res.data.data;
781   - th.data.zhhe_act_map[item1.prom_id] = res.data.data;
  811 +
  812 + //-- 在这里要判断一下活动的组合购总数量 --
  813 + if(item1.act.zh_num>0 && item1.act.zh_buy_num>=item1.act.zh_num){
  814 + store_count_ok = 0;
  815 + no_zh_num[item1.prom_id]=1;
  816 + //-- 清理一下活动的状态 --
  817 + item1.prom_type = 0;
  818 + item1.prom_type1 = 0;
  819 + item1.prom_id = 0;
  820 + item1.prom_id1 = 0
  821 +
  822 + }else{
  823 + th.data.zhhe_act_map[item1.prom_id] = res.data.data;
  824 + }
  825 +
782 826 } else {
783 827 //未找到商品的活动
784 828 is_flag = 0;
785 829 }
786 830 })
  831 +
787 832 if (!isok) {
788 833 getApp().my_warnning("组合购的活动已经过期", 0, th);
789 834 return false;
790 835 }
791   - var url1 = "/api/weshop/prom/zhbuyGoods/page";
792   - var req_data = {
793   - page: 1,
794   - pageSize: 2000,
795   - store_id: os.stoid,
796   - zh_id: item1.prom_id,
797   - }
798   - await getApp().request.promiseGet(url1, {
799   - data: req_data
800   - }).then(res => {
801   - if (ut.ajax_ok(res)) {
802   - var gdlist = res.data.data.pageData;
803   - gdlist.forEach(i => {
804   - if (item1.goods_id == i.goods_id && !is_flag) {
805   - item1.prom_type = 0;
806   - item1.prom_type1 = 0;
807   - item1.prom_id = 0;
808   - item1.prom_id1 = 0
  836 +
  837 + //------ 先增组合活动的总数量的时候 -------
  838 + if(store_count_ok) {
  839 + var url1 = "/api/weshop/prom/zhbuyGoods/page";
  840 + var req_data = {
  841 + page: 1,
  842 + pageSize: 2000,
  843 + store_id: os.stoid,
  844 + zh_id: item1.prom_id,
  845 + }
  846 + await getApp().request.promiseGet(url1, {
  847 + data: req_data
  848 + }).then(res => {
  849 + if (ut.ajax_ok(res)) {
  850 + var gdlist = res.data.data.pageData;
  851 + gdlist.forEach(i => {
  852 + if (item1.goods_id == i.goods_id && !is_flag) {
  853 + item1.prom_type = 0;
  854 + item1.prom_type1 = 0;
  855 + item1.prom_id = 0;
  856 + item1.prom_id1 = 0
  857 + }
  858 + })
  859 + th.data.zuhe_map_good[item1.prom_id] = gdlist;
809 860 }
810 861 })
811   - th.data.zuhe_map_good[item1.prom_id] = gdlist;
812   - }
813   - })
  862 + }
  863 +
  864 +
  865 +
814 866 }
815 867 else {
816 868 item1.act = th.data.zhhe_act_map[item1.prom_id];
... ... @@ -3982,6 +4034,7 @@ Page({
3982 4034  
3983 4035 var order_prom_list_cart = th.data.order_prom_list_cart;
3984 4036  
  4037 +
3985 4038 //--组装推送数据--
3986 4039 for (var i = 0; i < order_prom_list_cart.length; i++) {
3987 4040 var t_item = order_prom_list_cart[i];
... ... @@ -4119,6 +4172,8 @@ Page({
4119 4172 var df_room_ids = "";
4120 4173  
4121 4174  
  4175 + //此单的组合活动汇总
  4176 + var zh_map_count={};
4122 4177 var check_map = {};
4123 4178 let groupchat_ids=[]
4124 4179 //-------------让商品添加到商品列表--------------------
... ... @@ -4179,6 +4234,7 @@ Page({
4179 4234 case 7:
4180 4235 goods.prom_type = 7;
4181 4236 goods.prom_id = g_item.prom_id;
  4237 + zh_map_count[g_item.prom_id]= (zh_map_count[g_item.prom_id]?zh_map_count[g_item.prom_id]:0)+goods.goods_num; //汇总一下组合购的活动
4182 4238 break
4183 4239 default:
4184 4240 goods.prom_type = 0;
... ... @@ -4264,7 +4320,27 @@ Page({
4264 4320 }
4265 4321  
4266 4322  
4267   -
  4323 + //-- 如果订单中有组合购,要统计到倍增的情况 ---
  4324 + if(Object.keys(zh_map_count).length){
  4325 + var zhlist=[];
  4326 +
  4327 + for (var kf in zh_map_count) {
  4328 +
  4329 + var zh_act_th=th.data.zhhe_act_map[kf];
  4330 + var ite={zhid:kf,zhnum:1};
  4331 +
  4332 + if(zh_act_th.is_bz){
  4333 + if(zh_map_count[kf]>zh_act_th.zhbuyqty){
  4334 + ite.zhnum=zh_map_count[kf]/zh_act_th.zhbuyqty;
  4335 + }
  4336 + }
  4337 +
  4338 + zhlist.push(ite);
  4339 +
  4340 + }
  4341 +
  4342 + item.zhlist=zhlist;
  4343 + }
4268 4344  
4269 4345 //如果房间号不为空的时候
4270 4346 if (room_ids != "") item.room_ids = ut.sub_last(room_ids);
... ... @@ -4364,6 +4440,8 @@ Page({
4364 4440 }
4365 4441  
4366 4442 var str = JSON.stringify(pdata);
  4443 + console.log(str,'aaaaaaaaaaaaaaa');
  4444 + //return false;
4367 4445  
4368 4446 wx.showLoading({ title: "加载中" });
4369 4447 th.setData({ submit: 1, })
... ... @@ -5545,50 +5623,96 @@ Page({
5545 5623 return !check;
5546 5624 },
5547 5625 //立即购买获取优惠活动的内容
5548   - buy_now_prom_goods: function (prom_id, arr, func) {
  5626 + buy_now_prom_goods: async function (prom_id, arr, func) {
5549 5627 var th = this;
5550 5628 var price = arr.shop_price * arr.goods_num;
5551 5629 var prom = null;
5552 5630 var gg = to.get_b_now();
5553   - getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + prom_id, {}).then(res => {
  5631 + getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + prom_id, {}).then( async res => {
5554 5632  
5555 5633 if (res.data.code == 0) {
5556 5634 prom = res.data.data;
5557   - let min_value = 0
5558   - if (prom && prom.is_xz_yh) {
5559   - let arr = prom.promGoodsList || []
5560   - arr.map(item => {
5561   - if (min_value) {
5562   - min_value = item.condition
5563   - } else {
5564   - if (min_value < item.condition) {
5565   - min_value = item.condition
  5635 + if(prom && prom.limit_num*1){
  5636 + let user_pre_buynum=await th.getUserBuyPromNum_pre(prom.id)
  5637 + if (user_pre_buynum>=prom.limit_num) {
  5638 + arr.prom_price=null;
  5639 + arr.prom_id="";
  5640 + arr.prom_type="";
  5641 + if(prom.is_xz_yh){
  5642 + arr.is_xz_yh=prom.is_xz_yh
  5643 + }
  5644 + func(arr);
  5645 + }else{
  5646 + let min_value = 0
  5647 + if (prom && prom.is_xz_yh) {
  5648 + let arr = prom.promGoodsList || []
  5649 + arr.map(item => {
  5650 + if (min_value) {
  5651 + min_value = item.condition
  5652 + } else {
  5653 + if (min_value < item.condition) {
  5654 + min_value = item.condition
  5655 + }
  5656 + }
  5657 + })
  5658 + if (arr.length > 0) {
  5659 + if (arr[0].prom_type == 0) {
  5660 + if (price < min_value) {
  5661 + prom.is_xz_yh = 0
  5662 + }
  5663 + } else {
  5664 + if (arr.goods_num < min_value) {
  5665 + prom.is_xz_yh = 0
  5666 + }
  5667 + }
5566 5668 }
5567 5669 }
5568   - })
5569   - if (arr.length > 0) {
5570   - if (arr[0].prom_type == 0) {
5571   - if (price < min_value) {
5572   - prom.is_xz_yh = 0
  5670 + return getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
  5671 + data: {
  5672 + price: parseFloat(price).toFixed(2),
  5673 + prom_id: prom_id,
  5674 + goods_num: arr.goods_num,
  5675 + user_id: getApp().globalData.user_id,
  5676 + is_bz: prom.is_bz
5573 5677 }
5574   - } else {
5575   - if (arr.goods_num < min_value) {
5576   - prom.is_xz_yh = 0
  5678 + })
  5679 + }
  5680 + }else{
  5681 + let min_value = 0
  5682 + if (prom && prom.is_xz_yh) {
  5683 + let arr = prom.promGoodsList || []
  5684 + arr.map(item => {
  5685 + if (min_value) {
  5686 + min_value = item.condition
  5687 + } else {
  5688 + if (min_value < item.condition) {
  5689 + min_value = item.condition
  5690 + }
  5691 + }
  5692 + })
  5693 + if (arr.length > 0) {
  5694 + if (arr[0].prom_type == 0) {
  5695 + if (price < min_value) {
  5696 + prom.is_xz_yh = 0
  5697 + }
  5698 + } else {
  5699 + if (arr.goods_num < min_value) {
  5700 + prom.is_xz_yh = 0
  5701 + }
5577 5702 }
5578 5703 }
5579 5704 }
  5705 + //-------------------
  5706 + return getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
  5707 + data: {
  5708 + price: parseFloat(price).toFixed(2),
  5709 + prom_id: prom_id,
  5710 + goods_num: arr.goods_num,
  5711 + user_id: getApp().globalData.user_id,
  5712 + is_bz: prom.is_bz
  5713 + }
  5714 + })
5580 5715 }
5581   -
5582   - //-------------------
5583   - return getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
5584   - data: {
5585   - price: parseFloat(price).toFixed(2),
5586   - prom_id: prom_id,
5587   - goods_num: arr.goods_num,
5588   - user_id: getApp().globalData.user_id,
5589   - is_bz: prom.is_bz
5590   - }
5591   - })
5592 5716 } else {
5593 5717 func(arr);
5594 5718 }
... ... @@ -5660,6 +5784,38 @@ Page({
5660 5784 func(arr);
5661 5785 })
5662 5786 },
  5787 + //优惠促销用户参与次数
  5788 + async getUserBuyPromNum_pre(prom_id){
  5789 + var userInfo = getApp().globalData.userInfo;
  5790 + var url = `/api/weshop/ordergoods/getUserBuyPromNum?is_all=1&store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=3&prom_id=${prom_id}`;
  5791 + let res = await getApp().request.promiseGet(url, {
  5792 + data:{}
  5793 + });
  5794 + let user_pre_buynum=0
  5795 + if(res.data.code==0 && res.data.data){
  5796 + user_pre_buynum=res.data.data.userbuynum
  5797 + }
  5798 + return user_pre_buynum
  5799 + },
  5800 + //获取优惠活动
  5801 + async getprom(item){
  5802 +
  5803 + let prom_id=item.prom_id
  5804 + let pickup_id=item.pick_id
  5805 + let limit_num=0
  5806 + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + oo.stoid + "/" + prom_id, {}).then(res => {
  5807 + if (res.data.code == 0) {
  5808 + let prom = res.data.data;
  5809 + limit_num =prom.limit_num
  5810 + let yh_is_xz_yh=this.data.yh_is_xz_yh
  5811 + yh_is_xz_yh[pickup_id]=prom.is_xz_yh
  5812 + this.setData({
  5813 + ['yh_is_xz_yh']:yh_is_xz_yh
  5814 + })
  5815 + }
  5816 + })
  5817 + return limit_num
  5818 + },
5663 5819 //--检查订单优惠--
5664 5820 check_is_order_prom: function (condition, func, pick) {
5665 5821 var th = this;
... ... @@ -5682,7 +5838,7 @@ Page({
5682 5838 var pickid = item.pick_id;
5683 5839 var map = th.data.prom_goods_map;
5684 5840 var obj = map[pickid];
5685   -
  5841 +
5686 5842 if (map[pickid]) {
5687 5843 if (map[pickid][item.prom_id]) {
5688 5844  
... ... @@ -5701,6 +5857,7 @@ Page({
5701 5857  
5702 5858 } else {
5703 5859 var prom = null;
  5860 +
5704 5861 await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => {
5705 5862 if (res.data.code == 0) {
5706 5863 prom = res.data.data;
... ... @@ -5745,6 +5902,7 @@ Page({
5745 5902 } else {
5746 5903 var ob = {};
5747 5904 var prom = null;
  5905 +
5748 5906 await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => {
5749 5907 if (res.data.code == 0) {
5750 5908 prom = res.data.data;
... ...
packageE/pages/cart/cart2/cart2.wxml
... ... @@ -241,7 +241,7 @@
241 241 </view>
242 242  
243 243 <!-----使用优惠券------>
244   - <view class="xc-coupon-frame flex-center" data-bn="0" bindtap="open_coupon_list" wx:if="{{(item.quan_list && item.quan_list.length>0) || get_by_quan_list_cart[item.pickup_id]!=null && item.can_num>0}}" data-cind="{{pidx}}" data-pickid="{{item.pickup_id}}">
  244 + <view class="xc-coupon-frame flex-center" data-bn="0" bindtap="open_coupon_list" wx:if="{{!(yh_is_xz_yh[item.pickup_id]) && ((item.quan_list && item.quan_list.length>0 ) || get_by_quan_list_cart[item.pickup_id]!=null && item.can_num>0)}}" data-cind="{{pidx}}" data-pickid="{{item.pickup_id}}">
245 245 <view class="work-frame flex-space-between">
246 246 <view class="work">优惠券<text class="quan_num_show fs20">{{item.can_num}}张可用</text></view>
247 247 <view class="xc-right-frame">
... ...
packageE/pages/cart/cart2/ladder_calculate.js
... ... @@ -43,6 +43,7 @@ module.exports = {
43 43 for (var j = 0; j < item.cart_num; j++) {
44 44 no_in_arr.push({
45 45 price: item.goods_price,
  46 + goods_market_price:item.goods_market_price,
46 47 offline_price: item.offline_price,
47 48 goods_id: item.goods_id,
48 49 shop_price: item.shop_price,
... ... @@ -65,7 +66,7 @@ module.exports = {
65 66 if (no_in_arr.length == 0) break;
66 67 let item_j =ladder_list[j];
67 68 var end = no_in_arr.pop();
68   - var new_price = parseInt(item_j.discount_field) == 1 ? end.shop_price : end.price;
  69 + var new_price = parseInt(item_j.discount_field) == 2?end.goods_market_price:(parseInt(item_j.discount_field) == 1 ? end.shop_price : end.price);
69 70 var account=new_price * parseFloat(item_j.discount) / 10;
70 71 aprice +=account;
71 72  
... ... @@ -240,7 +241,6 @@ module.exports = {
240 241 }
241 242 }
242 243  
243   -
244 244 }
245 245 }
246 246  
... ...
packageE/pages/cart/cart2/zh_calculate.js
... ... @@ -148,107 +148,118 @@ module.exports = {
148 148 no_in_arr.pop();
149 149 }
150 150 }
  151 +
151 152 //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增
152 153 if (act.is_bz && no_in_arr.length >= act.zhbuyqty) {
153 154 var bz_num_ok = 0; //超量倍增是否满足
154 155 var zhqty_len = 0; //几个超量倍增
155 156 var delete_num=0;
156   - let be = parseInt(no_in_arr.length / act.zhbuyqty); //看一下是几倍
157   - if (act.is_bzyh && zhqty_bz.length > 0) {
158   - if (zhqty_bz.length > 1) {
159   - let zhqty_bz_arr = [];
160   - let zhqty_bz_flag=this.zhqty_bz_fun(zhqty_bz,be,zhqty_bz_arr);
161   - if (zhqty_bz_flag) {
162   - for (let i = 0; i < zhqty_bz.length; i++) {
163   - var vv = zhqty_bz[i];
164   - for (let j = 0; j < be * vv['zhqty']; j++) {
165   - let index = no_in_arr.findIndex(i => {
166   - return vv.goods_id === i.goods_id
167   - })
168   - if (index > -1) {
169   - delete_num++
170   - no_in_arr.splice(index, 1)
  157 +
  158 + //看一下是几倍
  159 + let be = parseInt(no_in_arr.length / act.zhbuyqty);
  160 + //如果有总数控制的时候
  161 + if(act.zh_num){
  162 + var be1=act.zh_num-act.zh_buy_num-1;
  163 + if(be1<be) be=be1;
  164 + }
  165 +
  166 + if(be) {
  167 + if (act.is_bzyh && zhqty_bz.length > 0) {
  168 + if (zhqty_bz.length > 1) {
  169 + let zhqty_bz_arr = [];
  170 + let zhqty_bz_flag = this.zhqty_bz_fun(zhqty_bz, be, zhqty_bz_arr);
  171 + if (zhqty_bz_flag) {
  172 + for (let i = 0; i < zhqty_bz.length; i++) {
  173 + var vv = zhqty_bz[i];
  174 + for (let j = 0; j < be * vv['zhqty']; j++) {
  175 + let index = no_in_arr.findIndex(i => {
  176 + return vv.goods_id === i.goods_id
  177 + })
  178 + if (index > -1) {
  179 + delete_num++
  180 + no_in_arr.splice(index, 1)
  181 + }
171 182 }
172 183 }
173   - }
174   - } else {
175   - zhqty_len=1;
176   - let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) {
177   - return o['num'];
178   - }));
179   - let new_arr = zhqty_bz_arr.filter(ii => {
180   - return ii['num'] == min_bz_num;
181   - })
182   - var vv = new_arr[0];
183   - var bz_num = be * new_arr[0].zhqty; //超量倍增
184   - var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量
185   - bz_num_ok = bz_num - num;
186   - if (bz_num_ok <= 0) {
187   - //超量倍增满足,超量倍增就等于倍数
188   - bz_num_ok = bz_num;
189 184 } else {
190   - //超量倍增不满足,倍数要减去多出得
191   - // be=be-bz_num_ok;
192   - if (num % vv.zhqty == 0) {
193   - be = num / vv.zhqty;
  185 + zhqty_len = 1;
  186 + let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) {
  187 + return o['num'];
  188 + }));
  189 + let new_arr = zhqty_bz_arr.filter(ii => {
  190 + return ii['num'] == min_bz_num;
  191 + })
  192 + var vv = new_arr[0];
  193 + var bz_num = be * new_arr[0].zhqty; //超量倍增
  194 + var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量
  195 + bz_num_ok = bz_num - num;
  196 + if (bz_num_ok <= 0) {
  197 + //超量倍增满足,超量倍增就等于倍数
  198 + bz_num_ok = bz_num;
194 199 } else {
195   - be = Math.floor(num / vv.zhqty)
  200 + //超量倍增不满足,倍数要减去多出得
  201 + // be=be-bz_num_ok;
  202 + if (num % vv.zhqty == 0) {
  203 + be = num / vv.zhqty;
  204 + } else {
  205 + be = Math.floor(num / vv.zhqty)
  206 + }
  207 + bz_num_ok = be * vv.zhqty;
  208 + }
  209 +
  210 + for (let i = 0; i < zhqty_bz.length; i++) {
  211 + let item1 = zhqty_bz[i];
  212 + for (let j = 0; j < be * item1['zhqty']; j++) {
  213 + let index = no_in_arr.findIndex(i => {
  214 + return item1.goods_id === i.goods_id
  215 + })
  216 + if (index > -1) {
  217 + // delete_num++
  218 + no_in_arr.splice(index, 1)
  219 + }
  220 + }
196 221 }
197   - bz_num_ok = be * vv.zhqty;
  222 + aprice += be * aprice;
198 223 }
199   -
200   - for(let i = 0; i < zhqty_bz.length; i++){
201   - let item1=zhqty_bz[i];
202   - for (let j = 0; j < be * item1['zhqty']; j++) {
  224 + } else {
  225 + var vv = zhqty_bz[0];
  226 + var bz_num = be * vv.zhqty; //超量倍增
  227 + var num = vv['num'] - vv.zhqty; //购买数量减去超量
  228 + if (num > 0) {
  229 + bz_num_ok = bz_num - num;
  230 + if (bz_num_ok <= 0) {
  231 + //超量倍增满足,超量倍增就等于倍数
  232 + bz_num_ok = bz_num;
  233 + } else {
  234 + //超量倍增不满足,倍数要减去多出得
  235 + // be=be-bz_num_ok;
  236 + if (num % vv.zhqty == 0) {
  237 + be = num / vv.zhqty;
  238 + } else {
  239 + be = Math.floor(num / vv.zhqty)
  240 + }
  241 + bz_num_ok = be * vv.zhqty;
  242 + }
  243 + for (let j = 0; j < bz_num_ok; j++) {
203 244 let index = no_in_arr.findIndex(i => {
204   - return item1.goods_id === i.goods_id
  245 + return vv.goods_id === i.goods_id
205 246 })
206 247 if (index > -1) {
207   - // delete_num++
  248 + delete_num++
208 249 no_in_arr.splice(index, 1)
209 250 }
210 251 }
211   - }
212   - aprice += be * aprice;
213   - }
214   - } else {
215   - var vv = zhqty_bz[0];
216   - var bz_num = be * vv.zhqty; //超量倍增
217   - var num = vv['num'] - vv.zhqty; //购买数量减去超量
218   - if (num > 0) {
219   - bz_num_ok = bz_num - num;
220   - if (bz_num_ok <= 0) {
221   - //超量倍增满足,超量倍增就等于倍数
222   - bz_num_ok = bz_num;
223 252 } else {
224   - //超量倍增不满足,倍数要减去多出得
225   - // be=be-bz_num_ok;
226   - if (num % vv.zhqty == 0) {
227   - be = num / vv.zhqty;
228   - } else {
229   - be = Math.floor(num / vv.zhqty)
230   - }
231   - bz_num_ok = be * vv.zhqty;
232   - }
233   - for (let j = 0; j < bz_num_ok; j++) {
234   - let index = no_in_arr.findIndex(i => {
235   - return vv.goods_id === i.goods_id
236   - })
237   - if (index > -1) {
238   - delete_num++
239   - no_in_arr.splice(index, 1)
240   - }
  253 + zhqty_len = 1;
241 254 }
242   - } else {
243   - zhqty_len = 1;
244 255 }
245 256 }
246   - }
247   - if (!zhqty_len) {
248   - aprice += be * act.zhprice;
249   - let pop_num = be * act.zhbuyqty - delete_num;
250   - for (var m = 0; m < pop_num; m++) {
251   - no_in_arr.pop();
  257 + if (!zhqty_len) {
  258 + aprice += be * act.zhprice;
  259 + let pop_num = be * act.zhbuyqty - delete_num;
  260 + for (var m = 0; m < pop_num; m++) {
  261 + no_in_arr.pop();
  262 + }
252 263 }
253 264 }
254 265  
... ...
packageE/pages/user/nick_avatar/nick_avatar.js
... ... @@ -56,57 +56,60 @@ Page({
56 56 save_data() {
57 57  
58 58 var that=this;
  59 + setTimeout(()=>{
  60 + if (!this.data.ob.head_pic) {
  61 + wx.showToast({
  62 + title: '请选择头像',
  63 + icon: 'none',
  64 + duration: 2000
  65 + });
  66 + return false;
  67 + }
59 68  
60   - if (!this.data.ob.head_pic) {
61   - wx.showToast({
62   - title: '请选择头像',
63   - icon: 'none',
64   - duration: 2000
65   - });
66   - return false;
67   - }
68   -
69   - if (!this.data.ob.nickname) {
70   - wx.showToast({
71   - title: '请输入昵称',
72   - icon: 'none',
73   - duration: 2000
  69 + if (!this.data.ob.nickname) {
  70 + wx.showToast({
  71 + title: '请输入昵称',
  72 + icon: 'none',
  73 + duration: 2000
  74 + });
  75 + return false;
  76 + }
  77 +
  78 + if (this.data.load) return false;
  79 + this.setData({load: 1})
  80 +
  81 + wx.showLoading();
  82 +
  83 + getApp().request.put("/api/weshop/users/update", {
  84 + data: {
  85 + store_id: os.stoid,
  86 + user_id: getApp().globalData.user_id,
  87 + nickname: this.data.ob.nickname,
  88 + head_pic: this.data.ob.head_pic
  89 +
  90 + },
  91 + success: function (su) {
  92 +
  93 + setTimeout(()=>{
  94 + wx.hideLoading();
  95 + if (su.data.code == 0) {
  96 + wx.navigateBack({delta: 1})
  97 + }else{
  98 + that.setData({load: 0})
  99 + wx.showToast({
  100 + title: su.data.msg,
  101 + icon: 'none',
  102 + duration: 2000
  103 + });
  104 + }
  105 + },1000)
  106 +
  107 +
  108 + }
74 109 });
75   - return false;
76   - }
77   -
78   - if (this.data.load) return false;
79   - this.setData({load: 1})
80   -
81   -
82   - wx.showLoading();
83   - getApp().request.put("/api/weshop/users/update", {
84   - data: {
85   - store_id: os.stoid,
86   - user_id: getApp().globalData.user_id,
87   - nickname: this.data.ob.nickname,
88   - head_pic: this.data.ob.head_pic
89   -
90   - },
91   - success: function (su) {
92   -
93   - setTimeout(()=>{
94   - wx.hideLoading();
95   - if (su.data.code == 0) {
96   - wx.navigateBack({delta: 1})
97   - }else{
98   - that.setData({load: 0})
99   - wx.showToast({
100   - title: su.data.msg,
101   - icon: 'none',
102   - duration: 2000
103   - });
104   - }
105   - },1000)
  110 + },500)
106 111  
107 112  
108   - }
109   - });
110 113 }
111 114  
112 115  
... ...
pages/cart/cart/cart.js
... ... @@ -548,7 +548,80 @@ Page({
548 548 })
549 549 item.goods_num = cbuy;
550 550 }
551   -
  551 +
  552 + //-- 如果有优惠促销,和阶梯促销,要看下有没有组合购,搭配购,看一下优惠促销和阶梯促销谁是指定商品参与的 --
  553 + if(item.prom_type==0 || item.prom_type==3 || item.prom_type==10){
  554 +
  555 + var c_prom_type=0;
  556 + var c_prom_id=0;
  557 +
  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 + }
  594 +
  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 + }
  603 +
  604 + }
  605 + })
  606 +
  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 + }
  624 +
552 625 //判断如果是普通商品,后面参加活动了,变成失效商品
553 626 if (item.prom_type == 0 ) {
554 627  
... ... @@ -838,6 +911,10 @@ Page({
838 911 if (ut.gettimestamp() < res.data.data.start_time) {
839 912 isok = 0;
840 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 +
841 918 act = res.data.data;
842 919  
843 920 } else {
... ... @@ -3837,12 +3914,19 @@ Page({
3837 3914 if (th.data.promgoods_map[p_item[0]]) {
3838 3915 prom = th.data.promgoods_map[p_item[0]];
3839 3916 } else {
  3917 +
3840 3918 await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + p_item[0], {}).then(res => {
3841 3919 if (res.data.code == 0) {
3842 3920 prom = res.data.data;
3843 3921 }
3844 3922 })
3845 3923 }
  3924 + let limit_num=0
  3925 + let user_pre_buynum=0
  3926 + if (prom && prom.limit_num) {
  3927 + limit_num=prom.limit_num;
  3928 + user_pre_buynum = await this.getUserBuyPromNum_pre(prom.id)
  3929 + }
3846 3930 //如果活动已经结束
3847 3931 if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {
3848 3932 for (var ii in list.goods) {
... ... @@ -3856,7 +3940,7 @@ Page({
3856 3940 }
3857 3941 continue;
3858 3942 }
3859   -
  3943 +
3860 3944 if (!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]] = prom;
3861 3945 //---读取打折的详情---
3862 3946 var ob = p_item[1];
... ... @@ -3880,36 +3964,37 @@ Page({
3880 3964 if (!promgoods_list) continue;
3881 3965 th.data.promgoods_list[p_item[0]] = promgoods_list;
3882 3966 }
3883   -
3884   - for (var i in promgoods_list) {
3885   - var item = promgoods_list[i];
3886   - if (item.prom_type == 0) {
3887   - if (ob.price < item.condition) {
3888   - var elem = {
3889   - prom_id: prom.id,
3890   - diff_type: item.prom_type,
3891   - diff: (item.condition - ob.price).toFixed(2),
3892   - content: JSON.parse(item.preferential_type)
  3967 +
  3968 + if (!limit_num || user_pre_buynum<limit_num) {
  3969 + for (var i in promgoods_list) {
  3970 + var item = promgoods_list[i];
  3971 + if (item.prom_type == 0) {
  3972 + if (ob.price < item.condition) {
  3973 + var elem = {
  3974 + prom_id: prom.id,
  3975 + diff_type: item.prom_type,
  3976 + diff: (item.condition - ob.price).toFixed(2),
  3977 + content: JSON.parse(item.preferential_type)
  3978 + }
  3979 + make_up_arr.push(elem);
  3980 + break;
3893 3981 }
3894   - make_up_arr.push(elem);
3895   - break;
3896   - }
3897   - } else {
3898   - if (ob.num < item.condition) {
3899   - var elem = {
3900   - prom_id: prom.id,
3901   - diff_type: item.prom_type,
3902   - diff: (item.condition - ob.num).toFixed(2),
3903   - content: JSON.parse(item.preferential_type)
  3982 + } else {
  3983 + if (ob.num < item.condition) {
  3984 + var elem = {
  3985 + prom_id: prom.id,
  3986 + diff_type: item.prom_type,
  3987 + diff: (item.condition - ob.num).toFixed(2),
  3988 + content: JSON.parse(item.preferential_type)
  3989 + }
  3990 + make_up_arr.push(elem);
  3991 + break;
3904 3992 }
3905   - make_up_arr.push(elem);
3906   - break;
3907 3993 }
3908 3994 }
3909 3995 }
3910 3996  
3911 3997  
3912   -
3913 3998 //-- 只有在单赠品的时候,才要进行计算 --
3914 3999 await getApp().request.promiseGet("/api/weshop/goods/getDiscount", {
3915 4000 data: {
... ... @@ -4059,7 +4144,19 @@ Page({
4059 4144 }
4060 4145  
4061 4146 },
4062   -
  4147 + //优惠促销用户参与次数
  4148 + async getUserBuyPromNum_pre(prom_id){
  4149 + var userInfo = getApp().globalData.userInfo;
  4150 + var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=3&prom_id=${prom_id}`;
  4151 + let res = await getApp().request.promiseGet(url, {
  4152 + data:{}
  4153 + });
  4154 + let user_pre_buynum=0
  4155 + if(res.data.code==0 && res.data.data){
  4156 + user_pre_buynum=res.data.data.userbuynum
  4157 + }
  4158 + return user_pre_buynum
  4159 + },
4063 4160 async all_check_prom_activity() {
4064 4161 this.data.duo_zp_num_arr = {};
4065 4162 for (var i in this.data.requestData) {
... ... @@ -4146,6 +4243,12 @@ Page({
4146 4243 }
4147 4244 })
4148 4245 }
  4246 + let limit_num=0
  4247 + let user_pre_buynum=0
  4248 + if (prom && prom.limit_num) {
  4249 + limit_num=prom.limit_num;
  4250 + user_pre_buynum = await this.getUserBuyPromNum_pre(prom.id)
  4251 + }
4149 4252 //如果活动已经结束
4150 4253 if (!prom || prom.is_end || prom.end_time < ut.gettimestamp()) {
4151 4254 for (var ii in list.goods) {
... ... @@ -4159,7 +4262,7 @@ Page({
4159 4262 }
4160 4263 continue;
4161 4264 }
4162   -
  4265 +
4163 4266 if (!th.data.promgoods_map[p_item[0]]) th.data.promgoods_map[p_item[0]] = prom;
4164 4267 //---读取打折的详情---
4165 4268 var ob = p_item[1];
... ... @@ -4183,30 +4286,31 @@ Page({
4183 4286 if (!promgoods_list) continue;
4184 4287 th.data.promgoods_list[p_item[0]] = promgoods_list;
4185 4288 }
4186   -
4187   - for (var i in promgoods_list) {
4188   - var item = promgoods_list[i];
4189   - if (item.prom_type == 0) {
4190   - if (ob.price < item.condition) {
4191   - var elem = {
4192   - prom_id: prom.id,
4193   - diff_type: item.prom_type,
4194   - diff: (item.condition - ob.price).toFixed(2),
4195   - content: JSON.parse(item.preferential_type)
  4289 + if (!limit_num || user_pre_buynum<limit_num) {
  4290 + for (var i in promgoods_list) {
  4291 + var item = promgoods_list[i];
  4292 + if (item.prom_type == 0) {
  4293 + if (ob.price < item.condition) {
  4294 + var elem = {
  4295 + prom_id: prom.id,
  4296 + diff_type: item.prom_type,
  4297 + diff: (item.condition - ob.price).toFixed(2),
  4298 + content: JSON.parse(item.preferential_type)
  4299 + }
  4300 + make_up_arr.push(elem);
  4301 + break;
4196 4302 }
4197   - make_up_arr.push(elem);
4198   - break;
4199   - }
4200   - } else {
4201   - if (ob.num < item.condition) {
4202   - var elem = {
4203   - prom_id: prom.id,
4204   - diff_type: item.prom_type,
4205   - diff: (item.condition - ob.num).toFixed(2),
4206   - content: JSON.parse(item.preferential_type)
  4303 + } else {
  4304 + if (ob.num < item.condition) {
  4305 + var elem = {
  4306 + prom_id: prom.id,
  4307 + diff_type: item.prom_type,
  4308 + diff: (item.condition - ob.num).toFixed(2),
  4309 + content: JSON.parse(item.preferential_type)
  4310 + }
  4311 + make_up_arr.push(elem);
  4312 + break;
4207 4313 }
4208   - make_up_arr.push(elem);
4209   - break;
4210 4314 }
4211 4315 }
4212 4316 }
... ...
pages/cart/cart/ladder_calculate.js
... ... @@ -107,7 +107,7 @@ module.exports = {
107 107 all_num += item.cart_num;
108 108 for (var j = 0; j < item.cart_num; j++) {
109 109 no_in_arr.push({
110   - price: item.goods_price,offline_price:item.offline_price,goods_id:item.goods_id,shop_price:item.shop_price
  110 + price: item.goods_price,offline_price:item.offline_price,goods_id:item.goods_id,shop_price:item.shop_price,goods_market_price:item.goods_market_price
111 111 })
112 112 }
113 113 }
... ... @@ -123,7 +123,7 @@ module.exports = {
123 123 if(no_in_arr.length==0) break;
124 124 let item_j=act.ladder_list[j];
125 125 var end=no_in_arr.pop();
126   - var new_price=parseInt(item_j.discount_field)==1?end.shop_price:end.price;
  126 + var new_price = parseInt(item_j.discount_field) == 2?end.goods_market_price:(parseInt(item_j.discount_field) == 1 ? end.shop_price : end.price);
127 127 aprice+=new_price* parseFloat(item_j.discount)/10;
128 128 lev++;
129 129 }
... ...
pages/cart/cart/zh_calculate.js
... ... @@ -239,105 +239,115 @@ module.exports = {
239 239 var delete_num = 0;
240 240 var zhqty_len = 0; //几个超量倍增
241 241 var be = parseInt(no_in_arr.length / act.zhbuyqty); //看一下是几倍
242   - if (act.is_bzyh && zhqty_bz.length > 0) {
243   - if (zhqty_bz.length > 1) {
244   - let zhqty_bz_arr = [];
245   - let zhqty_bz_flag=this.zhqty_bz_fun(zhqty_bz,be,zhqty_bz_arr);
246   -
247   - if (zhqty_bz_flag) {
248   - for (let i = 0; i < zhqty_bz.length; i++) {
249   - var vv = zhqty_bz[i];
250   - for (let j = 0; j < be * vv['zhqty']; j++) {
251   - let index = no_in_arr.findIndex(i => {
252   - return vv.goods_id === i.goods_id
253   - })
254   - if (index > -1) {
255   - delete_num++
256   - no_in_arr.splice(index, 1)
  242 +
  243 + //如果有总数控制的时候
  244 + if(act.zh_num){
  245 + var be1=act.zh_num-act.zh_buy_num-1;
  246 + if(be1<be) be=be1;
  247 + }
  248 +
  249 + if(be){
  250 + if (act.is_bzyh && zhqty_bz.length > 0) {
  251 + if (zhqty_bz.length > 1) {
  252 + let zhqty_bz_arr = [];
  253 + let zhqty_bz_flag=this.zhqty_bz_fun(zhqty_bz,be,zhqty_bz_arr);
  254 +
  255 + if (zhqty_bz_flag) {
  256 + for (let i = 0; i < zhqty_bz.length; i++) {
  257 + var vv = zhqty_bz[i];
  258 + for (let j = 0; j < be * vv['zhqty']; j++) {
  259 + let index = no_in_arr.findIndex(i => {
  260 + return vv.goods_id === i.goods_id
  261 + })
  262 + if (index > -1) {
  263 + delete_num++
  264 + no_in_arr.splice(index, 1)
  265 + }
257 266 }
258 267 }
259   - }
260   - } else {
261   - zhqty_len=1;
262   - let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) {
263   - return o['num'];
264   - }));
265   - let new_arr = zhqty_bz_arr.filter(ii => {
266   - return ii['num'] == min_bz_num;
267   - })
268   - var vv = new_arr[0];
269   - var bz_num = be * new_arr[0].zhqty; //超量倍增
270   - var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量
271   - bz_num_ok = bz_num - num;
272   - if (bz_num_ok <= 0) {
273   - //超量倍增满足,超量倍增就等于倍数
274   - bz_num_ok = bz_num;
275 268 } else {
276   - //超量倍增不满足,倍数要减去多出得
277   - // be=be-bz_num_ok;
278   - if (num % vv.zhqty == 0) {
279   - be = num / vv.zhqty;
  269 + zhqty_len=1;
  270 + let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) {
  271 + return o['num'];
  272 + }));
  273 + let new_arr = zhqty_bz_arr.filter(ii => {
  274 + return ii['num'] == min_bz_num;
  275 + })
  276 + var vv = new_arr[0];
  277 + var bz_num = be * new_arr[0].zhqty; //超量倍增
  278 + var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量
  279 + bz_num_ok = bz_num - num;
  280 + if (bz_num_ok <= 0) {
  281 + //超量倍增满足,超量倍增就等于倍数
  282 + bz_num_ok = bz_num;
280 283 } else {
281   - be = Math.floor(num / vv.zhqty)
  284 + //超量倍增不满足,倍数要减去多出得
  285 + // be=be-bz_num_ok;
  286 + if (num % vv.zhqty == 0) {
  287 + be = num / vv.zhqty;
  288 + } else {
  289 + be = Math.floor(num / vv.zhqty)
  290 + }
  291 + bz_num_ok = be * vv.zhqty;
  292 + }
  293 +
  294 + for(let i = 0; i < zhqty_bz.length; i++){
  295 + let item1=zhqty_bz[i];
  296 + for (let j = 0; j < be * item1['zhqty']; j++) {
  297 + let index = no_in_arr.findIndex(i => {
  298 + return item1.goods_id === i.goods_id
  299 + })
  300 + if (index > -1) {
  301 + // delete_num++
  302 + no_in_arr.splice(index, 1)
  303 + }
  304 + }
282 305 }
283   - bz_num_ok = be * vv.zhqty;
  306 + aprice += be * aprice;
284 307 }
285   -
286   - for(let i = 0; i < zhqty_bz.length; i++){
287   - let item1=zhqty_bz[i];
288   - for (let j = 0; j < be * item1['zhqty']; j++) {
  308 + } else {
  309 + var vv = zhqty_bz[0];
  310 + var bz_num = be * vv.zhqty; //超量倍增
  311 + var num = vv['num'] - vv.zhqty; //购买数量减去超量
  312 + if (num > 0) {
  313 + bz_num_ok = bz_num - num;
  314 + if (bz_num_ok <= 0) {
  315 + //超量倍增满足,超量倍增就等于倍数
  316 + bz_num_ok = bz_num;
  317 + } else {
  318 + //超量倍增不满足,倍数要减去多出得
  319 + // be=be-bz_num_ok;
  320 + if (num % vv.zhqty == 0) {
  321 + be = num / vv.zhqty;
  322 + } else {
  323 + be = Math.floor(num / vv.zhqty)
  324 + }
  325 + bz_num_ok = be * vv.zhqty;
  326 + }
  327 + for (let j = 0; j < bz_num_ok; j++) {
289 328 let index = no_in_arr.findIndex(i => {
290   - return item1.goods_id === i.goods_id
  329 + return vv.goods_id === i.goods_id
291 330 })
292 331 if (index > -1) {
293   - // delete_num++
  332 + delete_num++
294 333 no_in_arr.splice(index, 1)
295 334 }
296 335 }
297   - }
298   - aprice += be * aprice;
299   - }
300   - } else {
301   - var vv = zhqty_bz[0];
302   - var bz_num = be * vv.zhqty; //超量倍增
303   - var num = vv['num'] - vv.zhqty; //购买数量减去超量
304   - if (num > 0) {
305   - bz_num_ok = bz_num - num;
306   - if (bz_num_ok <= 0) {
307   - //超量倍增满足,超量倍增就等于倍数
308   - bz_num_ok = bz_num;
309 336 } else {
310   - //超量倍增不满足,倍数要减去多出得
311   - // be=be-bz_num_ok;
312   - if (num % vv.zhqty == 0) {
313   - be = num / vv.zhqty;
314   - } else {
315   - be = Math.floor(num / vv.zhqty)
316   - }
317   - bz_num_ok = be * vv.zhqty;
318   - }
319   - for (let j = 0; j < bz_num_ok; j++) {
320   - let index = no_in_arr.findIndex(i => {
321   - return vv.goods_id === i.goods_id
322   - })
323   - if (index > -1) {
324   - delete_num++
325   - no_in_arr.splice(index, 1)
326   - }
  337 + zhqty_len = 1;
327 338 }
328   - } else {
329   - zhqty_len = 1;
330 339 }
331 340 }
332   - }
333 341  
334   - if (!zhqty_len) {
335   - aprice += be * act.zhprice;
336   - let pop_num = be * act.zhbuyqty - delete_num;
337   - for (var m = 0; m < pop_num; m++) {
338   - no_in_arr.pop();
  342 + if (!zhqty_len) {
  343 + aprice += be * act.zhprice;
  344 + let pop_num = be * act.zhbuyqty - delete_num;
  345 + for (var m = 0; m < pop_num; m++) {
  346 + no_in_arr.pop();
  347 + }
339 348 }
340 349 }
  350 +
341 351 }
342 352 //算一下剩余的钱
343 353 if (no_in_arr.length) {
... ...
pages/goods/goodsInfo/goodsInfo.js
... ... @@ -267,6 +267,7 @@ Page({
267 267 base_nor_prom_type:0,
268 268 base_nor_prom_id:0,
269 269 base_nor_goods_id:0,
  270 + user_pre_buynum:0, //用户优惠促销参与次数
270 271 },
271 272  
272 273 //------初始化加载----------
... ... @@ -1540,7 +1541,21 @@ Page({
1540 1541 })
1541 1542 // return userbuynum
1542 1543 },
1543   -
  1544 + //优惠促销用户参与次数
  1545 + async getUserBuyPromNum_pre(prom_id){
  1546 + var userInfo = getApp().globalData.userInfo;
  1547 + var url = `/api/weshop/ordergoods/getUserBuyPromNum?is_all=1&store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=3&prom_id=${prom_id}`;
  1548 + let res = await getApp().request.promiseGet(url, {
  1549 + data:{}
  1550 + });
  1551 + let user_pre_buynum=0
  1552 + if(res.data.code==0 && res.data.data){
  1553 + user_pre_buynum=res.data.data.userbuynum
  1554 + }
  1555 + this.setData({
  1556 + user_pre_buynum
  1557 + })
  1558 + },
1544 1559 //-- 加入购物的函数 --
1545 1560 add_cart_func: function (t) {
1546 1561 var i = getApp().request;
... ... @@ -1973,7 +1988,7 @@ Page({
1973 1988 }
1974 1989  
1975 1990 //如果有搭配购的时候的时候
1976   - if(th.data.zh_act && newd.prom_type==0){
  1991 + if(th.data.zh_act && (!th.data.zh_act.zh_num || th.data.zh_act.zh_buy_num>th.data.zh_act.zh_num ) && newd.prom_type==0){
1977 1992 newd.prom_type = 7;
1978 1993 newd.prom_id = th.data.zh_act.id;
1979 1994 }
... ... @@ -7461,7 +7476,7 @@ Page({
7461 7476 getApp().pre_img(this.data.sele_g.original_img);
7462 7477 },
7463 7478  
7464   - is_show_more_buy: function () {
  7479 + is_show_more_buy: async function () {
7465 7480 var prom_goods = this.data.prom_goods;
7466 7481 var per_price = this.data.sele_g.shop_price
7467 7482 if (this.data.card_field && this.data.sele_g[this.data.card_field] > 0) {
... ... @@ -7485,7 +7500,10 @@ Page({
7485 7500 }
7486 7501 }
7487 7502 }
7488   -
  7503 + //获取用户参与优惠促销的次数
  7504 + if(con && con.prom_id){
  7505 + await this.getUserBuyPromNum_pre(con.prom_id);
  7506 + }
7489 7507 this.setData({
7490 7508 hui_condition: con
7491 7509 });
... ... @@ -7724,6 +7742,11 @@ Page({
7724 7742 isok = 0;
7725 7743 }
7726 7744  
  7745 + //还未开始
  7746 + if (res.data.data.zh_num>0 && res.data.data.zh_num<=res.data.data.zh_buy_num ) {
  7747 + isok = 0;
  7748 + }
  7749 +
7727 7750 } else {
7728 7751 //未找到商品的活动
7729 7752 isok = 0;
... ...
pages/goods/goodsInfo/goodsInfo.wxml
... ... @@ -507,7 +507,7 @@
507 507 <view class="fs28 f1" wx:for="{{prom_goods}}">
508 508 <view>
509 509 <text class="prom_condition">
510   - <text class="fill-box">消费满{{item.condition}}{{item.prom_type==1 ? '件':'元'}}</text>享优惠
  510 + <text class="fill-box">消费满{{item.condition}}{{item.prom_type==1 ? '件':'元'}}</text>享优惠(每人{{item.limit_num ? '限参与'+item.limit_num+'次' : '参与不限次' }})
511 511 </text>
512 512 </view>
513 513  
... ... @@ -1346,7 +1346,7 @@
1346 1346 </view>
1347 1347 </view>
1348 1348 <!-- 提示再买多少优惠 -->
1349   - <view style="margin-top: 35rpx;color:#333;font-size:28rpx;" wx:if="{{hui_condition && openSpecModal_ind==2}}">
  1349 + <view style="margin-top: 35rpx;color:#333;font-size:28rpx;" wx:if="{{hui_condition && openSpecModal_ind==2 && (!hui_condition.limit_num || user_pre_buynum<hui_condition.limit_num)}}">
1350 1350 再买{{hui_condition.need}}
1351 1351 <text wx:if="{{hui_condition.money}}">,免{{hui_condition.money}}元</text>
1352 1352 <text wx:if="{{hui_condition.sale}}">,打{{hui_condition.sale}}折</text>
... ...
pages/goods/goodsList/goodsList.js
... ... @@ -41,6 +41,7 @@ Page({
41 41 fil_nation_state:0,
42 42 fil_brand_state:0,
43 43 fil_price_state:0,
  44 + limit_num:0,
44 45 },
45 46  
46 47 onLoad: function(t) {
... ... @@ -125,6 +126,9 @@ Page({
125 126 th.set_prom_list(arr);
126 127 }
127 128 })
  129 + if (t.prom_id) {
  130 + this.getprom(t.prom_id)
  131 + }
128 132 }
129 133  
130 134 //--- 阶梯优惠活动的凑单 ---
... ... @@ -236,7 +240,18 @@ Page({
236 240 onShow:function () {
237 241 getApp().check_can_share();
238 242 },
239   -
  243 + //获取优惠活动
  244 + async getprom(prom_id){
  245 + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + oo.stoid + "/" + prom_id, {}).then(res => {
  246 + if (res.data.code == 0) {
  247 + let prom = res.data.data;
  248 + let limit_num =prom.limit_num
  249 + this.setData({
  250 + limit_num
  251 + })
  252 + }
  253 + })
  254 + },
240 255 //设置优惠券的
241 256 set_prom_list:async function(arr){
242 257 var th=this;
... ...
pages/goods/goodsList/goodsList.wxml
1 1 <wxs module="g_filter" src="../search/g_filter.wxs"></wxs>
2 2 <view class="container" wx:if="{{show_all}}">
3 3 <view>
  4 +
4 5 <block wx:for="{{prom_goods_list}}">
5 6 <view class="fs30 ellipsis-1" style="padding: 20rpx 30rpx">
  7 + <text style="color: red;" wx:if="{{index==0 && limit_num>0}}">每人限参与{{limit_num}}次;</text>
6 8 满{{item.condition}}<text space="{{true}}" wx:if="{{item.prom_type==0}}">元 </text> <text space="{{true}}" wx:else>件 </text>
7 9 <text space="{{true}}" wx:if="{{item.content.is_money && item.content.is_money!='0'}}">减{{item.content.money}}元 </text>
8 10 <text space="{{true}}" wx:if="{{item.content.is_sale && item.content.is_sale!='0'}}">打{{item.content.sale}}折 </text>
... ...
pages/user/order_detail/order_detail.js
... ... @@ -1222,26 +1222,31 @@ Page({
1222 1222 b_item.price = prom.price;
1223 1223 }
1224 1224 break;
1225   - case 6:
1226   - b_item.is_pd_normal = 1;
1227   - break;
1228   - case 7:
1229   - //如果有组合购
1230   - var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + good.prom_id + "/" + getApp().globalData.userInfo.user_id;
1231   - await getApp().request.promiseGet(url, {}).then(res => {
1232   - if (res.data.code == 0 && res.data.data) {
1233   - if (res.data.data.is_show == 1 && res.data.data.is_end == 0
1234   - && ut.gettimestamp() < res.data.data.end_time
1235   - && ut.gettimestamp() > res.data.data.start_time
1236   - ) {
1237   - b_item.prom_type = 7;
1238   - b_item.prom_id = res.data.data.id;
1239   - good.prom_type = 7;
1240   - good.prom_id = res.data.data.id;
1241   - }
1242   - }
1243   - })
1244   - break;
  1225 + case 6:
  1226 + b_item.is_pd_normal = 1;
  1227 + break;
  1228 + case 7:
  1229 + //如果有组合购
  1230 + var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + good.prom_id + "/" + getApp().globalData.userInfo.user_id;
  1231 + await getApp().request.promiseGet(url, {}).then(res => {
  1232 + if (res.data.code == 0 && res.data.data) {
  1233 +
  1234 + var t_act=res.data.data;
  1235 + if(!t_act.zh_num || t_act.zh_num>t_act.zh_buy_num) {
  1236 +
  1237 + if (res.data.data.is_show == 1 && res.data.data.is_end == 0
  1238 + && ut.gettimestamp() < res.data.data.end_time
  1239 + && ut.gettimestamp() > res.data.data.start_time
  1240 + ) {
  1241 + b_item.prom_type = 7;
  1242 + b_item.prom_id = res.data.data.id;
  1243 + good.prom_type = 7;
  1244 + good.prom_id = res.data.data.id;
  1245 + }
  1246 + }
  1247 + }
  1248 + })
  1249 + break;
1245 1250 case 10:
1246 1251  
1247 1252 var url = `/api/weshop/prom/ladderForm/getNew/${os.stoid}/${user_id}/${good.prom_id}`;
... ... @@ -1252,7 +1257,7 @@ Page({
1252 1257 }
1253 1258 })
1254 1259 break;
1255   - }
  1260 + }
1256 1261  
1257 1262  
1258 1263 //如果有优惠促销的时候,要看下商品的优惠活动有没有过期
... ...
pages/user/order_list/order_list.js
... ... @@ -1583,13 +1583,16 @@ Page({
1583 1583 var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + good.prom_id + "/" + getApp().globalData.userInfo.user_id;
1584 1584 await getApp().request.promiseGet(url, {}).then(res => {
1585 1585 if (res.data.code == 0 && res.data.data) {
1586   - if (res.data.data.is_show == 1 && res.data.data.is_end == 0
1587   - && ut.gettimestamp() < res.data.data.end_time
1588   - && ut.gettimestamp() > res.data.data.start_time
1589   - ) {
1590   - b_item.prom_type = 7;
1591   - b_item.prom_id = res.data.data.id;
  1586 + var t_act=res.data.data;
  1587 + if(!t_act.zh_num || t_act.zh_num>t_act.zh_buy_num) {
  1588 + if (res.data.data.is_show == 1 && res.data.data.is_end == 0
  1589 + && ut.gettimestamp() < res.data.data.end_time
  1590 + && ut.gettimestamp() > res.data.data.start_time
  1591 + ) {
  1592 + b_item.prom_type = 7;
  1593 + b_item.prom_id = res.data.data.id;
1592 1594  
  1595 + }
1593 1596 }
1594 1597 }
1595 1598 })
... ...